Jump to content

FunkyJunky

Members
  • Posts

    21
  • Joined

  • Last visited

Profile Information

  • Location
    France
  • Activity
    Other

FunkyJunky's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Bonjour, Comme vous pouvez le voir, ce topic date d'il y a un an et demi. A cette date, ce n'était pas aussi simple, sinon je n'aurais pas eu besoin de poster ici. Merci d'éviter de déterrer des sujets aussi vieux et marqués comme résolus. Bonne journée
  2. Up, personne n'a de solution pour retrouver cette petite boîte à onglet ? J'ai fouillé tout le BO et le product.tpl et je n'ai absolument rien trouvé. Un petit coup de pouce ne serait pas de refus
  3. Pourtant j'utilise le thème par défaut et je ne vois rien qui s'apparente à une boîte à onglet :S J'utilise la version 1.6.0.8 de prestashop et depuis la 1.6.0.1, la boîte à onglet qu'il y avait sur les fiches produits a été remplacée. Exemple : http://www.masolutionbienetre.com/produits-de-soin-corps-et-visage-pour-femme/105-creme-de-jour-lissante-a-la-rose-musquee-.html (ne pas considérer l'iframe que j'ai rajouté moi-même)
  4. Pour clore ce topic, je vais poster les portions de code qui ont été modifiées. /themes/votretheme/module/blockspecials.tpl : <!-- MODULE Block specials --> <section id="specials special_block_right" class="block products_block column_box"> <h4><span>{l s='Specials' mod='blockspecials'}</span></h4> <div class="block_content toggle_content"> {if $specials} <ul class="block_content products-block"> {foreach from=$specials item=special} <li class="clearfix"> <a class="products_block_img content_img clearfix" href="{$special.link}"> <img class="replace-2x img-responsive" src="{$link->getImageLink($special.link_rewrite, $special.id_image, 'small_default')}" alt="{$special.legend|escape:html:'UTF-8'}" title="{$special.name|escape:html:'UTF-8'}" /></a> <div class="product-content"> <h5> <a class="product-name" href="{$special.link}" title="{$special.name|escape:html:'UTF-8'}">{$special.name|escape:html:'UTF-8'|truncate:35:'...'}</a></h5> <p class="product-description">{$special.description_short|strip_tags:'UTF-8'|truncate:75:'...'}</p> {if !$PS_CATALOG_MODE} <span class="special-price"> {if !$priceDisplay} {displayWtPrice p=$special.price}{else}{displayWtPrice p=$special.price_tax_exc} {/if} </span> {if $special.specific_prices} {assign var='specific_prices' value=$special.specific_prices} {if $specific_prices.reduction_type == 'percentage' && ($specific_prices.from == $specific_prices.to OR ($smarty.now|date_format:'%Y-%m-%d %H:%M:%S' <= $specific_prices.to && $smarty.now|date_format:'%Y-%m-%d %H:%M:%S' >= $specific_prices.from))} <span class="price-percent-reduction">-{$specific_prices.reduction*100|floatval}%</span> {/if} {/if} <span class="old-price"> {if !$priceDisplay} {displayWtPrice p=$special.price_without_reduction}{else}{displayWtPrice p=$priceWithoutReduction_tax_excl} {/if} </span> {/if} </div> </li> {/foreach} </ul> <div class="lnk"> <a class="btn btn-default button button-small" href="{$link->getPageLink('prices-drop')}" title="{l s='All specials' mod='blockspecials'}"><span>{l s='All specials' mod='blockspecials'}<i class="icon-chevron-right right"></i></span></a> </div> {else} <p>{l s='No product specials are available at this time.' mod='blockspecials'}</p> {/if} </div> </section> <!-- /MODULE Block specials --> /classes/product.php /** * Get a random special * * @param integer $id_lang Language id * @return array Special */ public static function getRandomSpecial($id_lang, $beginning = false, $ending = false, Context $context = null, $nb_items = 1) { if((int) $nb_items > 4) $nb_items = 4; elseif((int) $nb_items <= 0) $nb_items = 1; if (!$context) $context = Context::getContext(); $front = true; if (!in_array($context->controller->controller_type, array('front', 'modulefront'))) $front = false; $current_date = date('Y-m-d H:i:s'); $product_reductions = Product::_getProductIdByDate((!$beginning ? $current_date : $beginning), (!$ending ? $current_date : $ending), $context, true); if ($product_reductions) { $ids_product = ' AND ('; foreach ($product_reductions as $product_reduction) $ids_product .= '( product_shop.`id_product` = '.(int)$product_reduction['id_product'].($product_reduction['id_product_attribute'] ? ' AND product_attribute_shop.`id_product_attribute`='.(int)$product_reduction['id_product_attribute'] :'').') OR'; $ids_product = rtrim($ids_product, 'OR').')'; $groups = FrontController::getCurrentCustomerGroups(); $sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1'); // Please keep 2 distinct queries because RAND() is an awful way to achieve this result $sql = 'SELECT product_shop.id_product, MAX(product_attribute_shop.id_product_attribute) id_product_attribute FROM `'._DB_PREFIX_.'product` p '.Shop::addSqlAssociation('product', 'p').' LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (product_shop.id_product = pa.id_product) '.Shop::addSqlAssociation('product_attribute', 'pa', false, 'product_attribute_shop.default_on = 1').' WHERE product_shop.`active` = 1 '.(($ids_product) ? $ids_product : '').' AND p.`id_product` IN ( SELECT cp.`id_product` FROM `'._DB_PREFIX_.'category_group` cg LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`) WHERE cg.`id_group` '.$sql_groups.' ) '.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '').' GROUP BY product_shop.id_product ORDER BY RAND() LIMIT 0, '.$nb_items; $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql); $results = array(); foreach($result as $item) { if($item['id_product']) { $results[$item['id_product']] = $item['id_product_attribute']; } } if(count($results)==0) return false; $sql = 'SELECT p.*, product_shop.*, stock.`out_of_stock` out_of_stock, pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, pl.`available_now`, pl.`available_later`, p.`ean13`, p.`upc`, MAX(image_shop.`id_image`) id_image, il.`legend`, DATEDIFF(product_shop.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new FROM `'._DB_PREFIX_.'product` p LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON ( p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').' ) '.Shop::addSqlAssociation('product', 'p').' LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product`)'. Shop::addSqlAssociation('image', 'i', false, 'image_shop.cover=1').' LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.') '.Product::sqlStock('p', 0).' WHERE p.id_product IN ('. implode(',', array_keys($results)).') GROUP BY product_shop.id_product'; $rows = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql); if (!$rows) return false; $products = array(); foreach($rows as $key=>$value) { if ($results[$value['id_product']]) $rows[$key]['id_product_attribute'] = $results[$value['id_product']]; $products[$key] = Product::getProductProperties($id_lang, $value); } return $products; } else return false; } /modules/blockspecials/blockspecials.php public function hookRightColumn($params) { if (Configuration::get('PS_CATALOG_MODE')) return; // We need to create multiple caches because the products are sorted randomly $random = date('Ymd').'|'.round(rand(1, max(Configuration::get('BLOCKSPECIALS_NB_CACHES'), 1))); if (!Configuration::get('BLOCKSPECIALS_NB_CACHES') || !$this->isCached('blockspecials.tpl', $this->getCacheId('blockspecials|'.$random))) { if (!($special = Product::getRandomSpecial((int)$params['cookie']->id_lang, false, false, null, 2)) && !Configuration::get('PS_BLOCK_SPECIALS_DISPLAY')) return; foreach($special as $key => $value) { $special[$key]['priceWithoutReduction_tax_excl'] = Tools::ps_round($value['price_without_reduction'], 2); } $this->smarty->assign(array( 'specials' => $special, //'priceWithoutReduction_tax_excl' => Tools::ps_round($special['price_without_reduction'], 2), 'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), )); } return $this->display(__FILE__, 'blockspecials.tpl', (Configuration::get('BLOCKSPECIALS_NB_CACHES') ? $this->getCacheId('blockspecials|'.$random) : null)); } Voilà, en espérant que ça aidera ceux qui veulent faire pareil
  5. Ca veut dire qu'en cherchant via le Back Office de presta, je peux le faire ? Sans avoir à toucher au code ? Pour la version 1.6 ? Perso, ça m'arrange énormément de pas avoir à le coder ^^
  6. Bonjour à tous, Sur le site http://www.maspatule.com/ustensile-de-cuisine-enfants/1696-fouet-silicone-enfant-mastrad.html on peut voir en bas de la page un petit menu à onglet avec les catégories "En savoir plus" et "Commentaires". Je souhaite réaliser la même chose. J'ai donc suivi le tuto de ce site : http://www.xul.fr/ecmascript/onglets.php pour mettre tout en forme. J'ai un problème au moment d'intégrer le PHP dans l'iframe. Comme le suggère le tuto, je dois créer des pages php correspondant à mes onglets. J'ai donc créé ensavoirplus.php et avis.php. J'ai récupéré le code du fichiers product.tpl afin de gérer les accès dynamiques aux commentaires et aux descriptions des produits. Cependant, rien ne s'affiche dans mon iframe ! Si joint un screen pour voir le soucis : http://imageshack.us/photo/my-images/536/662421.png (la section d'en dessous "en savoir plus" est encore là parce que je n'ai pas touché au code du product.tpl, sauf pour rajouter ma frame. Mais c'est ça que je veux intégrer dans mon iframe !) Ci joint le code rajouté dans product.tpl <script src="http://www.masolutionbienetre.com/themes/default-bootstrap/tabs.js" type="text/javascript"></script> <div id="content"> <div id="tabs"> <ul> <li><a href="#" rel="http://www.masolutionbienetre.com/themes/default-bootstrap/fichetechnique.php" class="selected" onclick="loadit(this)">Fiche technique</a></li> <li><a href="#" rel="http://www.masolutionbienetre.com/themes/default-bootstrap/ensavoirplus.php" onClick="loadit(this)">En savoir +</a></li> <li><a href="#" rel="http://www.masolutionbienetre.com/themes/default-bootstrap/avis.php" onClick="loadit(this)">Avis</a></li> </ul> <iframe id="container"></iframe> </div> </div> Le fichier fichetechnique.php : <?php <section class="page-product-box"> <a class="page-product-heading">{l s='Data sheet'}</a> <table class="table-data-sheet"> {foreach from=$features item=feature} <tr class="{cycle values="odd,even"}"> {if isset($feature.value)} <td>{$feature.name|escape:'html':'UTF-8'}</td> <td>{$feature.value|escape:'html':'UTF-8'}</td> {/if} </tr> {/foreach} </table>< </section> ?> Voilà, petit coup de main please Merci d'avance.
  7. Bump, toujours aucune idée ? Pas de brute de <?php> qui a trouvé comment faire ?
  8. Bump, personne n'a de solution ? C'est vraiment une galère ^^'
  9. Bonjour à tous. Je viens vers la communauté afin d'avoir un peu d'aide sur le module blockspecials. Je souhaiterai pouvoir afficher plusieurs produits dans la colonne de gauche. J'ai trouvé beaucoup de chose sur le net mais malheureusement, rien pour la version 1.6 de presta qui est (mal)heureusement la mienne ! J'ai notamment trouvé ce tuto : http://nemops.com/product-list-prestashop-specials-module/#.U57hofl_t2U Le soucis étant qu'il a été fait pour la version 1.5 alors que le fichiers blockspecials.tpl a changé quelque peu. Quand j'effectue les modifs du tuto en adaptant aux fichiers que j'ai, aucun produit ne s'affiche en solde Quelqu'un aurait-il la solution pour presta 1.6 ? Merci d'avance.
  10. Bonjour, Tout d'abord, merci de la réponse et du temps passé sur mon problème ! Je ne comprends pas très bien le but de votre manipulation. On ajoute un paramètre d'entrée à la fonction getBestSellers afin de pouvoir changer pseudo-dynamiquement le nombre de produit à afficher. Cependant, je crois que cela ne m'aide pas plus : comment dois-je faire pour dissocier le nombre de produits affiché dans la fenêtre ainsi que dans l'onglet ? C'est simplement la même ligne de code à mettre à des endroits différents ? Si oui, où ? Merci d'avance !
  11. Bonjour à tous. Comme nombre d'entre nous sur le forum, je galère un peu avec le blockbestsales. Plus particulièrement avec le nombre de produit à afficher. En effet, j'ai modifié le fichier blockbestsellers.php afin de n'afficher que 3 produits dans la colonne de gauche. Le soucis maintenant est que lorsque je clique sur l'onglet "meilleures ventes" sur l'accueil, il ne m'affiche plus que 3 produits également ! Est-il possible de dissocier le nombre de produits affichés dans la colonne à gauche et le nombre de produits affichés lorsque l'on clique sur l'onglet ? Mon site : www.masolutionbienetre.com Version de presta : 1.6 Merci d'avance !
  12. Ca fonctionne ! J'ai viré le "max-width: 100%" de product.css et j'ai ajouté ".sous-menu img { max-width:auto; }" dans ce même fichier et tout marche. Merci beaucoup du coup de main ! Bonne fin de journée.
  13. Et pourtant, quand j'utilise le magnifique outil de FF afin de voir le site en 3D, on peut voir que l'image n'est tout simplement pas là ! J'ai tenté de rajouter le morceau de code que vous m'avez proposé et cela n'a rien changé. J'insiste sur le fait que l'image s'affiche normalement sous FF n'importe où, sauf sur les pages produits... J'ai bien mis les liens des images en absolus et tout charge correctement sur les autres navigateurs... Merci pour votre aide et l'attention portée à mon problème.
  14. Up, je reste dans le même topic parce que c'est toujours "plus ou moins" le même problème. Mes images s'affichent bien partout sous tous les explorateurs, SAUF sur Firefox. Franchement, je ne comprends pas. Après analyse grâce aux outils de devWeb de Firefox, on remarque que le navigateur reconnait bien l'image, il sait ou elles vont mais il ne les affiche pas ! Mindfuck... Ce soucis ne se produit que sur Firefox et uniquement sur les pages produits... Une idée ? Merci d'avance !
×
×
  • Create New...