Jump to content

Categorie in pagina unica.


Grafikamania

Recommended Posts

Ciao ragazzi vorrei strutturare il catalogo prodotti in questo modo:

Cliccando sulla "MARCA" link in home page, dentro la pagina mi deve uscire ciò:

TIPOLOGIA 1 - taglia 1 - link modello 1 - prodotto - taglia 2 - link modello 2 - prodotto - taglia 3 - link modello 3 -prodotto
TIPOLOGIA 2 - taglia 1 - link modello 1 - prodotto - taglia 2 - link modello 2 - prodotto - taglia 3 - link modello 3 -prodotto
TIPOLOGIA 3 - taglia 1 - link modello 1 - prodotto - taglia 2 - link modello 2 - prodotto - taglia 3 - link modello 3 -prodotto

Invece comè configurato attualmente PS cliccando su MARCA trovo i link alla tipologie, poi cliccando su una tipologia si va in un'altra pagina dove trovo i link alle taglie, poi cliccando sulle taglie trovo i link ai modellii poi cliccando su modello trovo il prodotti giusto?

Qualcuno sa darmi qualche dritta?

Saluti

Link to comment
Share on other sites

POtresti inserire un menù che non ti fà aprire forzatamente tutte le pagine, ma ti apre solo ad esempio il modello della taglia della tipologia che hai scelto, il menù è dinamico e passando su ad esempio "tipologia", ti visualizza il link sulla sinistra "taglia" e passando su taglia ti visualizza il o i modelli su quel link clicckera un tuo potenziale acquirente che vedrà tutti i prodotti nella categoria.... comunque il modulo lo trovi su prestamodules.com
Spero di essere stato quasi chiaro... buona Giornata

Link to comment
Share on other sites

Ciao nicodemo grazie 1000 per la risposta, ora faro delle prove e ricerche comunque io vorrei ottenere quello che praticamente fa il BLOCCO CATEGORIES cioe è il blocco contiene i link alle categorie e le sottocategorie escono cliccando sul pulsantino + o scompaiono col pulsantino - rimanendo sempre nella stessa pagina.

Ma io cmq non parlo di menu parlo della pagina che esce cliccando su una voce di menù.

Link to comment
Share on other sites

Ragazzi nessuno mi aiuta? E' importante :D

Cmq posso ribadire che questo meccanismo lo fa benissimo il BLOCCO CATEGORIE.

Io vorrei fare proprio una sostituzione cioe NEL BLOCCO CATEGORIE vorrei visualizzare solo il link della prima categoria senza le sottocategorie che si aprono con i pulsantini + e -. Invece cliccando sul link della categoria scelta, nella pagina che si apre vorrei avere tutte le sottocategorie della categoria scelta visualizzate in un unica pagina.

E' possibile? penso proprio di si :D

Help

Link to comment
Share on other sites

  • 2 weeks later...

Qualcuno mi può aiutare?

Riepilogo che vorrei che quando si clicca su un link (categoria) che si trova nel blocco categorie si visualizzino tutte le sottocategorie contenute nella categoria cliccata in un unica pagina.

Il giochetto lo fa benissimo il blocco categorie utilizzando il pulsantino + e -

Troppo difficile?

Link to comment
Share on other sites

  • 2 weeks later...

Posto un immaginetta, German lo slidedown è un'altra cosa...

Categorie e sottocategorie saranno tutte a video in un unica pagina credo si debba agire nel richiamare le categorie "figlie" della categoria superiore "padre"

Ripeto il blocco categorie fà proprio così ma non riesco ad implementare il codice nel file category.tpl e farlo funzionare :(

19312_rUd3OZG4MZN0io7bWpAV_t

Link to comment
Share on other sites

//animate the opening of the branch (span.grower jQueryElement)
function openBranch(jQueryElement, noAnimation) {
       jQueryElement.addClass('OPEN').removeClass('CLOSE');
       if(noAnimation)
           jQueryElement.parent().find('ul:first').show();
       else
           jQueryElement.parent().find('ul:first').slideDown();
}
//animate the closing of the branch (span.grower jQueryElement)
function closeBranch(jQueryElement, noAnimation) {
   jQueryElement.addClass('CLOSE').removeClass('OPEN');
   if(noAnimation)
       jQueryElement.parent().find('ul:first').hide();
   else
       jQueryElement.parent().find('ul:first').slideUp();
}

//animate the closing or opening of the branch (ul jQueryElement)
function toggleBranch(jQueryElement, noAnimation) {
   if(jQueryElement.hasClass('OPEN'))
       closeBranch(jQueryElement, noAnimation);
   else
       openBranch(jQueryElement, noAnimation);
}

//when the page is loaded...
$(document).ready(function () {
   //to do not execute this script as much as it's called...
   if(!$('ul.tree.dhtml').hasClass('dynamized'))
   {
       //add growers to each ul.tree elements
       $('ul.tree.dhtml ul').prev().before(" ");

       //dynamically add the '.last' class on each last item of a branch
       $('ul.tree.dhtml ul li:last-child, ul.tree.dhtml li:last-child').addClass('last');

       //collapse every expanded branch
       $('ul.tree.dhtml span.grower.OPEN').addClass('CLOSE').removeClass('OPEN').parent().find('ul:first').hide();
       $('ul.tree.dhtml').show();

       //open the tree for the selected branch
           $('ul.tree.dhtml .selected').parents().each( function() {
               if ($(this).is('ul'))
                   toggleBranch($(this).prev().prev(), true);
           });
           toggleBranch( $('ul.tree.dhtml .selected').prev(), true);

       //add a fonction on clicks on growers
       $('ul.tree.dhtml span.grower').click(function(){
           toggleBranch($(this));
       });
       //mark this 'ul.tree' elements as already 'dynamized'
       $('ul.tree.dhtml').addClass('dynamized');

       $('ul.tree.dhtml').removeClass('dhtml');
   }
});




Questo è il JS che richiama le categorie nel blocco laterale ora bisogna vedere cosa ti serve di fare ma secondo me se ti gestisci le classi con il dropdown fai prima bisogna assegnare a ogni categoria principale la classe per far aprire le sue sottocategorie

spero postandoti il codice JS di farti capire come si comportano le categorie

Ciao ;-)

Link to comment
Share on other sites

Si certamente provvederò anche in questo ma se non risolvo questo problema non posso andare avanti.

E' così difficile aggiungere la funzione che fa il blocco categorie alla pagina di un categoria?

Ho provato anche a copiare il codice del blocco categorie nel file category.tpl e .php ma niente :(

Link to comment
Share on other sites

il blocco categorie usa dei drop down al clik sulla classe con un open close il problema è definire bene altrimenti tutti i div si aprirebbero in contemporanea ed evitare il sistema che hai ora vorrei capire come hai strutturato la cosa altrimenti non riesco a seguire la logica per tentare a darti una soluzione

a parte che si è rotta la palla magica altrimenti avrei già risolto :-)

Ciao ;-)

Link to comment
Share on other sites

German come posso fare, ti invio il sito via e-mail?


Primo mi chiamo Germano o Germanoufo come volete

Invio il sito via mail cosa me ne faccio del tuo sito via mail ?

O almeno dimmi te un alternativa…dai che poi mi compro una bella maglietta ricamata !!!


Sul forum do una mano volentieri per tutti i problemi come ho sempre fatto nel tempo libero

assistenza legata a un unico scopo in secondo piano

caricarmi lo shop in locale per risolvere il problema la cosa è diversa li mi faccio pagare

La maglietta ricamata non è un problema se ti serve quando aprirò potrai comprarne quante ne vuoi

Ciao ;-)
Link to comment
Share on other sites

Ciao,
per fare quello che vuoi ci sono 3 strade:

1) copi il blocco categories, in un altro modulo, cambiando tutti i nomi, e disattivi il js che nasconde le cose, rigestisci i li e qualche div e lo leghi all'hook della home.....questo è il metodo semplice
2) ricrei la stessa situazione in smarty, tieni presente che il blocco categorie richiama il tree....tpl in maniera ricursiva, devi fare lo stesso con una tua pagina per ricreare il ciclo di sottocategorie
3) più semplicemente invece crei il ciclo in php che carichi in un (o più) array le categorie e poi le butti in un tpl legato all'hook home.

Ti renderai conto che a meno di qualcuno che abbia bisogno dello stesso modulo, ci vuole tempo per farlo, e quindi non è facile trovare qualcuno che lo realizzi per il forum.

Spero che uno dei 3 sistemi consigliato ti possa aiutare.

Link to comment
Share on other sites

Ti ringrazio disarci, infatti ieri sera ho provato fino all'una di notte ma nulla...

Ho fatto una cosa del genere:
ho copiato il codice del file blockcategories.php nel file category.php cambiando i nomi dei file alla fine

    function getTree($resultParents, $resultIds, $maxDepth, $id_category = 1, $currentDepth = 0)
   {
       global $link;

       $children = array();
       if (isset($resultParents[$id_category]) AND sizeof($resultParents[$id_category]) AND ($maxDepth == 0 OR $currentDepth < $maxDepth))
           foreach ($resultParents[$id_category] as $subcat)
               $children[] = $this->getTree($resultParents, $resultIds, $maxDepth, $subcat['id_category'], $currentDepth + 1);
       if (!isset($resultIds[$id_category]))
           return false;
       return array('id' => $id_category, 'link' => $link->getCategoryLink($id_category, $resultIds[$id_category]['link_rewrite']),
                    'name' => Category::hideCategoryPosition($resultIds[$id_category]['name']), 'desc'=> $resultIds[$id_category]['description'],
                    'children' => $children);
   }

   function hookLeftColumn($params)
   {
       global $smarty, $cookie;

       /*  ONLY FOR THEME OLDER THAN v1.0 */
       global $link;
       $smarty->assign(array(
           'categories' => Category::getHomeCategories(intval($params['cookie']->id_lang), true),
           'link' => $link
       ));
       /* ELSE */

       $id_customer = intval($params['cookie']->id_customer);
       $maxdepth = Configuration::get('BLOCK_CATEG_MAX_DEPTH');

       if (!$result = Db::getInstance()->ExecuteS('
       SELECT DISTINCT c.*, cl.*
       FROM `'._DB_PREFIX_.'category` c 
       LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND `id_lang` = '.intval($params['cookie']->id_lang).')
       LEFT JOIN `'._DB_PREFIX_.'category_group` cg ON (cg.`id_category` = c.`id_category`)
       WHERE 1'
       .(intval($maxdepth) != 0 ? ' AND `level_depth` <= '.intval($maxdepth) : '').'
       AND (c.`active` = 1 OR c.`id_category`= 1)
       AND cg.`id_group` '.(!$cookie->id_customer ?  '= 1' : 'IN (SELECT id_group FROM '._DB_PREFIX_.'customer_group WHERE id_customer = '.intval($cookie->id_customer).')').'
       ORDER BY `level_depth` ASC, cl.`name` ASC'))
           return;
       $resultParents = array();
       $resultIds = array();

       foreach ($result as $row)
       {
           $$row['name'] = Category::hideCategoryPosition($row['name']);
           $resultParents[$row['id_parent']][] = $row;
           $resultIds[$row['id_category']] = $row;
       }
       $blockCategTree = $this->getTree($resultParents, $resultIds, Configuration::get('BLOCK_CATEG_MAX_DEPTH'));
       $isDhtml = (Configuration::get('BLOCK_CATEG_DHTML') == 1 ? true : false);

       if (isset($_GET['id_category']))
       {
           $cookie->last_visited_category = intval($_GET['id_category']);
           $smarty->assign('currentCategoryId', intval($_GET['id_category']));    
       }
       if (isset($_GET['id_product']))
       {            
           if (!isset($cookie->last_visited_category) OR !Product::idIsOnCategoryId(intval($_GET['id_product']), array('0' => array('id_category' => $cookie->last_visited_category))))
           {
               $product = new Product(intval($_GET['id_product']));
               if (isset($product) AND Validate::isLoadedObject($product))
                   $cookie->last_visited_category = intval($product->id_category_default);
           }
           $smarty->assign('currentCategoryId', intval($cookie->last_visited_category));
       }    
       $smarty->assign('blockCategTree', $blockCategTree);

       if (file_exists(_PS_THEME_DIR_.'category.tpl'))
           $smarty->assign('branche_tpl_path', _PS_THEME_DIR_.'category-tree-branch.tpl');
       else
           $smarty->assign('branche_tpl_path', _PS_THEME_DIR_.'category-tree-branch.tpl');
       $smarty->assign('isDhtml', $isDhtml);
       /* /ONLY FOR THEME OLDER THAN v1.0 */

       return $this->(_PS_THEME_DIR_.'category.tpl');

include(dirname(__FILE__).'/footer.php');



Ho copiato nel file category.tpl il codice che si trova in blockcategories.tpl

[removed][removed]

<!-- Block categories module -->

{l s='Categories' mod='blockcategories'}


       {foreach from=$blockCategTree.children item=child name=blockCategTree}
           {if $smarty.foreach.blockCategTree.last}
                       {include file=$branche_tpl_path node=$child last='true'}
           {else}
                       {include file=$branche_tpl_path node=$child}
           {/if}
       {/foreach}



[removed]
// <![CDATA[
   // we hide the tree only if JavaScript is activated
   $('div#categories_block_left ul.dhtml').hide();
// ]]>
[removed]
<!-- /Block categories module -->[removed]



i file categories-tree-branch.tpl invece hanno lo stesso codice.

Il problema è che non succede nulla, la funzione non viene richiamata.

E' anche vero che questo procedimento ricreerebbe quello che fa il blocco categorie cioe richiamare le categorie con tutte le sue figlie

Ma piu precisamente a me interessa che quando clicco su una categoria del blocco categorie ad esempio " VINO "
nella pagina venissero fuori le sottocategorie di "VINO" e le sotto sotto categorie della sottocategoria primaria di "VINO".

Spero di essermi spiegata meglio.

Link to comment
Share on other sites

Leggendo un po il codice a spanne posso dirti che semplicemente che se hai usato il modulo left column in centro non funziona

vedo dei removed dentro al codice da dove escono ?

[removed][removed]



magari manca il JS

<script type="text/javascript" src="{$js_dir}tools/treeManagement.js">  


< / script>



se non richiami il codice non va terza cosa ti consiglio di cambiare almeno le classi onde evitare problemi di conflitti

Se fosse in rete sarebbe molto più semplice

Ciao ;-)

Link to comment
Share on other sites

Ho praticamente incollato il codice dei file che si trovano nella cartella blockcategories, nei file category.php, category.tpl e category-tree-branch.tpl

Allego un immagine piu chiara di quello che vorrei utilizzare.

Ho spulciato anche nel forum inglesi e sono molteplici quelli che chiedono aiuto su questa cosa senza risoluzione.

19597_qMfVf5wYRjlwvMNKYBHO_t

Link to comment
Share on other sites

Sembra proprio di si :)... be hai più confidenza con prestashop immagino e con la programmazione, io purtroppo no... però vedo che cmq le categorie sono nella home page e si vedono tutte le categorie ACCESSORIES, LAPTOP ect...

Non è proprio quello che ho richiesto io, cioè il visitatore clicca sulla categoria ad esempio ACCESSORIES come vedo nell'immagine e nella pagina che ne viene fuori esce la struttura che vedi nell'immagine.

Link to comment
Share on other sites

Ti premetto cosa ho semplicemente fatto

ho preso il modulo blockcategory e ho aggiunto a fondo pagina del file php queste righe di codice

function hookHome($params)
   {
       return $this->hookLeftColumn($params);
   }    



in questo caso ho aggiunto all' hook home che poi si può inserire un hook anche in pagina categorie

diciamo che si può realizzare tramite selezione della categoria madre sempre dello stesso blocco

non è proprio semplice ma con un po di impegno si salta fuori


Ciao ;-)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...