Právě je 20 dub 2024 09:07

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 6 ] 
Autor Zpráva
 Předmět příspěvku: PrestaShop - Řazení vlastností (parametrů) produktu
PříspěvekNapsal: 04 čer 2012 05:53 

Registrován:
14 úno 2011 18:58
Příspěvky:
61
Dobrý den,
naházel jsem si nové vlastnosti produktu. Přímo v Administrace/Catalog/Features se vše zobrazuje v pořadí jak jsem potřeboval a nahrál. Ale v Administrace/Catalog/Speciální vlastnosti se vše seřadí podle abecedy začínajícího písmena a takhle se to zobrazí i přímo v eshopu v kolonce Parametry. Takže např., když chci slovo váha na prvním místě a potom až délka, šířka, barva atd., váhu na první místo nedostanu. Napadlo mě, že před každé slovo dám číslici, ale to bude vypadat blbě. Nejde to řešit nějakým modulem a potom si to popřetahovat podle potřeby, tak jak je to např. u kategorii, nebo u produktů.
Děkuji.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Administrace/Catalog/Features
PříspěvekNapsal: 05 čer 2012 10:52 

Registrován:
11 črc 2011 15:43
Příspěvky:
140
Taky bych mel zajem o toto reseni. U kazdeho produktu moznost jineho poradi


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Řazení vlastností (parametrů) produktu
PříspěvekNapsal: 06 čer 2012 10:38 
C4 podpora
C4 podpora

Registrován:
01 lis 2011 15:02
Příspěvky:
746
Dobrý den.

Modul na to není a jak jsem zjistil, v mojí instalaci dokonce nejsou vlastnosti na stránce produktu řazeny vůbec - prosté přidání pořadových čísel nemělo efekt. Seřazení dle libosti lze ale dosáhnout následující úpravou:
  • Doplňte si před názvy vlastností čísla, určující pořadí, např. "01 Výška", "02 Šířka", "05 Hloubka" atd. Pro tuto verzi úpravy je třeba použít 2 číslice, případně jednu číslici a mezeru.
  • Vytvořte zcela nový soubor tools/smarty/plugins/modifier.sortby.php a vložte do něj tento obsah:
    Kód:
    <?php
    # sorts an array of named arrays by the supplied fields
    #   code by dholmes at jccc d0t net
    #   taken from http://au.php.net/function.uasort
    # modified by cablehead, messju and pscs at http://www.phpinsider.com/smarty-forum

    function array_sort_by_fields(&$data, $sortby){
          static $sort_funcs = array();
         
        if (empty($sort_funcs[$sortby]))
        {
            $code = "\$c=0;";
            foreach (split(',', $sortby) as $key)
            {
               $d = '1';
                  if (substr($key, 0, 1) == '-')
                  {
                     $d = '-1';
                     $key = substr($key, 1);
                  }
                  if (substr($key, 0, 1) == '#')
                  {
                     $key = substr($key, 1);
                   $code .= "if ( ( \$c = (\$a['$key'] - \$b['$key'])) != 0 ) return $d * \$c;\n";
                  }
                  else
                  {
                   $code .= "if ( (\$c = strcasecmp(\$a['$key'],\$b['$key'])) != 0 ) return $d * \$c;\n";
                }
            }
            $code .= 'return $c;';
            $sort_func = $sort_funcs[$sortby] = create_function('$a, $b', $code);
        }
        else
        {
            $sort_func = $sort_funcs[$sortby];
        }   
        uasort($data, $sort_func);   
    }

    # Modifier: sortby - allows arrays of named arrays to be sorted by a given field
    function smarty_modifier_sortby($arrData,$sortfields) {
       array_sort_by_fields($arrData,$sortfields);
       return $arrData;
    }
    ?>

  • Dále v souboru themes/prestashop/product.tpl nalezněte řádek
    Kód:
    {foreach from=$features item=feature}
    a změňte jej na
    Kód:
    {foreach from=$features|@sortby:name item=feature}

  • V témže souboru o řádek níže změňte úsek kódu
    Kód:
    {$feature.name|escape:'htmlall':'UTF-8'}
    na
    Kód:
    {$feature.name|substr:2|escape:'htmlall':'UTF-8'}

  • Poté je ještě nutno v Administrace > Preferences > Performance změnit Nucená kompilace na ANO a Cache na NE, uložit, úpravu vyzkoušet a tyto 2 volby zase nastavit zpět.

Úprava v zobrazení produktu přeskočí první 2 znaky názvu vlastnosti a zobrazuje ho až od znaku třetího. Rovněž jsou přeskočeny úvodní mezery - je tedy jen na Vás, jestli v názvu vlastnosti za dvojicí číslic pro určení pořadí vložíte či nevložíte jednu nebo více mezer.

Pro Phenixe: nastavení pro každý produkt zvlášť nelze takto vyřešit. Leda byste vytvořil vícero různých vlastností se stejným viditelným názvem - například "01 výška", "02 šířka" a "03 výška" - pak si můžete vybrat, které pořadí vlastnosti výška bude produkt mít. Potíže ale budou v případě použití filtrace a možná i dalších funkcí s vlastnostmi spojených, protože jde technicky o 2 různé nezávislé vlastnosti.

_________________
Adam Chyský
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Řazení vlastností (parametrů) produktu
PříspěvekNapsal: 07 čer 2012 23:02 

Registrován:
20 čer 2011 11:30
Příspěvky:
72
Vyzkoušeno na verzi 1.4.3 a funguje bezvadně ;)
Díky za návod :)

_________________
Provozovatel e-shopu INhair.cz na systému Prestashop verze 1.4.3.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Řazení vlastností (parametrů) produktu
PříspěvekNapsal: 18 črc 2012 11:14 

Registrován:
20 čer 2011 11:30
Příspěvky:
72
Dobrý den,
měl bych dotaz k řazení features. Ve specifikaci produktu to funguje bezvadně. Problém ovšem nastane při porovnání zboží - viz. http://www.inhair.cz/products-compariso ... 85%7C86%7C
Zde je zachováno číslování ovšem nefunguje ani řazení podle čísel.

Bude pravděpodobně nutné upravit products-comparison.tpl

Rád bych Vás tedy poprosil o návod ;)

S pozdravem a přáním hezkého dne
FK

_________________
Provozovatel e-shopu INhair.cz na systému Prestashop verze 1.4.3.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Řazení vlastností (parametrů) produktu
PříspěvekNapsal: 18 črc 2012 11:22 

Registrován:
20 čer 2011 11:30
Příspěvky:
72
Vyřešeno :-)

Řešení v products-comparison.tpl

Kód:
   {if $ordered_features}
      {foreach from=$ordered_features|@sortby:name item=feature}
      <tr>
         {cycle values='comparison_feature_odd,comparison_feature_even' assign='classname'}
         <td class="{$classname}" >
            {$feature.name|substr:2|escape:'htmlall':'UTF-8'}
         </td>

_________________
Provozovatel e-shopu INhair.cz na systému Prestashop verze 1.4.3.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 6 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
FTP Uploader
Staňte se naším zákazníkem!
Hledáme kolegy
PrestaShop partneři

Seznam všech partnerů

PrestaShop Hosting
Návody pro C4

© 2009-2024 ČESKÝ WEBHOSTING s.r.o. Kontaktní e-mail: forum@c4.cz
Diskuzní fórum využívá technologie: phpBB, phpBB-SEO.com, phpBB.cz