jiritomekeu Posted February 23, 2012 Share Posted February 23, 2012 Zdravím všechny, nevíte někdo o free variantě tohoto modulu: http://www.prestashop.com/forums/topic/79758-module-product-list-attributes-allow-customers-to-select-product-attributes-on-the-category-manufacturer-supplier-and-search-pages/ ? Jde o to, že na stránce kategorií, výrobců, dodavatelů a vyhledávání je u každého produktu přehled jejich vlastností - v podstatě mám 2 skupiny, barvu a velikost a třetí bude velikost bot - postačí pouze velikosti, barvy vypisovat nepotřebuji. Nebo nevíte alespoň nějaký postup? Stačí pouze nakopnout a když se mi to poté podaří, uvolním zdrojáky zde, jako vždy. Jedná se o verzi 1.4.7.0. Link to comment Share on other sites More sharing options...
jiritomekeu Posted February 28, 2012 Author Share Posted February 28, 2012 Zdravím všechny, nevíte někdo o free variantě tohoto modulu: http://www.prestasho...d-search-pages/ ? Jde o to, že na stránce kategorií, výrobců, dodavatelů a vyhledávání je u každého produktu přehled jejich vlastností - v podstatě mám 2 skupiny, barvu a velikost a třetí bude velikost bot - postačí pouze velikosti, barvy vypisovat nepotřebuji. Nebo nevíte alespoň nějaký postup? Stačí pouze nakopnout a když se mi to poté podaří, uvolním zdrojáky zde, jako vždy. Jedná se o verzi 1.4.7.0. Věděl by někdo o postupu, rád zaplatím, ale cena toho modulu mi přijde dost velká, chtěl bych to pouze pro jeden můj eshop a řešit to formou modulu mi přijde zbytečné. Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 3, 2012 Author Share Posted March 3, 2012 Věděl by někdo o postupu, rád zaplatím, ale cena toho modulu mi přijde dost velká, chtěl bych to pouze pro jeden můj eshop a řešit to formou modulu mi přijde zbytečné. Vyřešeno! Zobrazují se atributy na stránce kategorie, vyhledávání, výrobců i dodavatelů. Kdo má zájem pište PM. Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 A nemůžeš to postnout sem? Ocenil bych to... Dík Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 A nemůžeš to postnout sem? Ocenil bych to... Dík Nejprve si stáhni modul, z tohoto odkazu: http://test.jiritome...tsattribute.rar. Poté ho nahraj do složky s modulama. Nainstaluj. Poté vytvoř nový HOOK (např. productAttributes) jako to mám já. Uprav soubor productsattribute.php a přidej možnost zobrazení v tomto hooku. V přiložených souborech už tento hook přidaný je. public function hookProductAttributes($params) { return $this->hookHome($params); } Potom musíš upravit soubory: controllers/CategoryController.php controllers/SearchController.php controllers/Manufacturer.php controllers/SupplierContoller.php - na správném místě vložíž vytvořený hook. CategoryController.php: self::$smarty->assign(array( 'products' => (isset($this->cat_products) AND $this->cat_products) ? $this->cat_products : NULL, 'id_category' => (int)($this->category->id), 'id_category_parent' => (int)($this->category->id_parent), 'return_category_name' => Tools::safeOutput($this->category->name), 'path' => Tools::getPath((int)($this->category->id)), 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize('category'), 'mediumSize' => Image::getSize('medium'), 'thumbSceneSize' => Image::getSize('thumb_scene'), 'homeSize' => Image::getSize('home') )); self::$smarty->assign(array( 'HOOK_PRODUCT_ATTRIBUTES' => Module::hookExec('productAttributes') )); SearchController.php: $this->productSort(); $this->n = abs((int)(Tools::getValue('n', Configuration::get('PS_PRODUCTS_PER_PAGE')))); $this->p = abs((int)(Tools::getValue('p', 1))); $search = Search::find((int)(self::$cookie->id_lang), $query, $this->p, $this->n, $this->orderBy, $this->orderWay); Module::hookExec('search', array('expr' => $query, 'total' => $search['total'])); $nbProducts = $search['total']; $this->pagination($nbProducts); self::$smarty->assign(array( 'products' => $search['result'], // DEPRECATED (since to 1.4), not use this: conflict with block_cart module 'search_products' => $search['result'], 'nbProducts' => $search['total'], 'search_query' => $query, 'homeSize' => Image::getSize('home'))); self::$smarty->assign(array( 'HOOK_PRODUCT_ATTRIBUTES' => Module::hookExec('productAttributes') )); ManufacturerContoller.php: self::$smarty->assign(array( 'nb_products' => $nbProducts, 'products' => $this->manufacturer->getProducts($this->manufacturer->id, (int)self::$cookie->id_lang, (int)$this->p, (int)$this->n, $this->orderBy, $this->orderWay), 'path' => ($this->manufacturer->active ? Tools::safeOutput($this->manufacturer->name) : ''), 'manufacturer' => $this->manufacturer)); self::$smarty->assign(array( 'HOOK_PRODUCT_ATTRIBUTES' => Module::hookExec('productAttributes') )); Souror SupplierContoller.php upravený nemám, nepoužívám ho. Dále musíš upravit soubor v themes/tvétéma/product-list.tpl: - vložíš na správné místo, na kterém chceš zobrazovat tento seznam atributů {$HOOK_PRODUCT_ATTRIBUTES} Poté už se ti zobrazují atributy, ale POZOR! V souboru productsattribute.php na tomto místě: if(count($product->group) >0){ $listatt = ""; $attributeTag .= '<div id="attributes_list">'; foreach($groups as $inkey => $inval){ if ($inkey == 1){ $attributeTag .= '<ul id="group_'.$inkey.'">'; foreach ($inval['attributes'] as $id_attribute => $id_attribute_val ){ $attributeTag .= '<li id="'.$id_attribute.'">'.$id_attribute_val.'</li>'; } $attvalue = 0; $attributeTag .= '</ul>'; } } $attributeTag .= '</div>'; } - upravuješ, jak se bude seznam zobrazovat, defaultně to bylo jako SELECT, já to mám jako UL jen pro informaci a mám zde podmínku (if ($inkey == 1)) - to je pouze skupina s číslem 1 - velikosti, takže pokud chceš více skupin atributů, musíš podmínku smazat nebo pro každou skupinu vytvořit jiný seznam. Defaultně byl tento modul dělaný tak, že vypadal jako výpis produktů a zobrazoval se pouze na úvodní stránce a byla tam možnost objednávát různé atributy bez kliknutí na detail produktu, takže soubor productsattribute.tpl jsem celý překódoval. Moje úprava vypadá takto: http://test.jiritomek.eu/vypis.jpg Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 Jen kontrolní otázka: v jaké verzi PS jsi to dělal? A co když zboží nemá atribut, nebude se to zobrazovat nebo dělat neplechu? 1 Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 Jen kontrolní otázka: v jaké verzi PS jsi to dělal? A co když zboží nemá atribut, nebude se to zobrazovat nebo dělat neplechu? Nebude to dělat neplechu, je tam podmínka, zda skupina existuje.Je to verze 1.4.7.0. 1 Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 Ok, hned jak nasypu zboží do shopu, tak to musím vyzkoušet. Vypadá to zajímavě. Každopádně dík za tip ;-) Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 Ok, hned jak nasypu zboží do shopu, tak to musím vyzkoušet. Vypadá to zajímavě. Každopádně dík za tip ;-) Ještě jeden takový detail. Musíš mít všechny produkty, u kterých chceš vypisovat atributy zobrazené také v hlavní kategorii (myslím kat. s názvem "DOMŮ" č. 1). Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 No nedalo mi to a prubnul jsem to hned...bohužel se změna neprojevila :-( Později si s tím zkusím pohrát víc... Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 Udělal jsem pokrok, nezobrazí se mi zboží ale jen atribut :-) Takže problém mám v tom, že to neumím předělat na ten select, můžeš mi s tím helpnout? Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 Udělal jsem pokrok, nezobrazí se mi zboží ale jen atribut :-) Takže problém mám v tom, že to neumím předělat na ten select, můžeš mi s tím helpnout? A ty to chceš mít jako select? if(count($product->group) >0){ $listatt = ""; $attributeTag .= '<div id="attributes_'.$product->id.'">'; $attributeTag .= '<table >'; foreach($groups as $inkey => $inval){ $attributeTag .= '<tr>'; $attributeTag .= '<td >'; $attributeTag .= '<label for="group_'.$inkey.'">'.$inval['name'].'</label>'; $attributeTag .= '</td>'; $attributeTag .= '<td>'; $attributeTag .= '<select name="group_'.$inkey.'" id="group_'.$inkey.'" onchange="javascript:findCombination('.$product->id.');" >'; foreach ($inval['attributes'] as $id_attribute => $id_attribute_val ){ if($inval['attributes'][$inval['default']] == $id_attribute_val ){ $attributeTag .= '<option value="'.$id_attribute.'" selected="selected" title="'.$id_attribute_val.'" >'.$id_attribute_val.'</option>'; $listatt .= ",'".$id_attribute."'"; }else{ $attributeTag .= '<option value="'.$id_attribute.'" title="'.$id_attribute_val.'" >'.$id_attribute_val.'</option>'; } } $attvalue = 0; $attributeTag .= '</select>'; $attributeTag .= '</td>'; $attributeTag .= '</tr>'; } $attributeTag .= '<tr>'; $attributeTag .= '<td>'; $attributeTag .= '<label>Quantity</label>'; $attributeTag .= '</td>'; $attributeTag .= '<td>'; $attributeTag .= '<input type="text" name="qty" id="quantity_wanted" class="text" value="1" size="2" maxlength="3" />'; $attributeTag .= '</td>'; $attributeTag .= '</tr>'; $attributeTag .= '</table>'; $attributeTag .= '</div>'; }else{ $attributeTag .= '<table >'; $attributeTag .= '<tr>'; $attributeTag .= '<td>'; $attributeTag .= '<label>Quantity</label>'; $attributeTag .= '</td>'; $attributeTag .= '<td>'; $attributeTag .= '<input type="text" name="qty" id="quantity_wanted" class="text" value="1" size="2" maxlength="3" />'; $attributeTag .= '</td>'; $attributeTag .= '</tr>'; $attributeTag .= '</table>'; } Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 No mně by se to hodilo na výběr velikosti boty, je jich hodně, nicméně tudy cesta nevede, viz screen :-( U všech bot to zobrazilo velikosti dostupné u první boty. A i když vyberu velist, tak do košíku to dá defaultní velikost. Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 No mně by se to hodilo na výběr velikosti boty, je jich hodně, nicméně tudy cesta nevede, viz screen :-( U všech bot to zobrazilo velikosti dostupné u první boty. Tak to je zajímavý.Přepiš funkci public function hookHome($params) za tohle: public function hookHome($params){ global $smarty, $cookie,$attributeList; $category = new Category(1); if (isset($params['category']->id_category)){ $category = $params['category']; } $sizeOfCategoryProducts = $category->getProducts(intval($cookie->id_lang), 1, 30, NULL, NULL, true); $categoryProducts = $category->getProducts(intval($cookie->id_lang), 1, $sizeOfCategoryProducts); $pd = (isset($categoryProducts) AND $categoryProducts) ? $categoryProducts : NUL; $attributeTag = ''; $attributehtml= new ArrayObject; for($i=0; $i< count($categoryProducts);$i++){ $catpro = $categoryProducts[$i]; $id_product = $catpro['id_product']; $product = new Product($id_product, true, intval($cookie->id_lang)); /* Attributes / Groups & colors */ if ($product->quantity > 0 OR Product::isAvailableWhenOutOfStock($product->out_of_stock)) { $colors = array(); $attributesGroups = $product->getAttributesGroups(intval($cookie->id_lang)); //print_r($attributesGroups); //echo "<hr>"; if (Db::getInstance()->numRows()) { $combinationImages = $product->getCombinationImages(intval($cookie->id_lang)); foreach ($attributesGroups AS $k => $row) { /* Color management */ if (((isset($row['attribute_color']) AND $row['attribute_color']) OR (file_exists(_PS_COL_IMG_DIR_.$row['id_attribute'].'.jpg'))) AND $row['id_attribute_group'] == $product->id_color_default) { $colors[$row['id_attribute']]['value'] = $row['attribute_color']; $colors[$row['id_attribute']]['name'] = $row['attribute_name']; } $groups[$row['id_attribute_group']]['attributes'][$row['id_attribute']] = $row['attribute_name']; $groups[$row['id_attribute_group']]['name'] = $row['public_group_name']; $groups[$row['id_attribute_group']]['is_color_group'] = $row['is_color_group']; if ($row['default_on']) $groups[$row['id_attribute_group']]['default'] = intval($row['id_attribute']); if (!isset($groups[$row['id_attribute_group']]['attributes_quantity'][$row['id_attribute']])) $groups[$row['id_attribute_group']]['attributes_quantity'][$row['id_attribute']] = 0; $groups[$row['id_attribute_group']]['attributes_quantity'][$row['id_attribute']] += intval($row['quantity']); $combinations[$row['id_product_attribute']]['attributes_values'][$row['id_attribute_group']] = $row['attribute_name']; $combinations[$row['id_product_attribute']]['attributes'][] = intval($row['id_attribute']); $combinations[$row['id_product_attribute']]['price'] = floatval($row['price']); $combinations[$row['id_product_attribute']]['ecotax'] = floatval($row['ecotax']); $combinations[$row['id_product_attribute']]['weight'] = floatval($row['weight']); $combinations[$row['id_product_attribute']]['quantity'] = intval($row['quantity']); $combinations[$row['id_product_attribute']]['reference'] = $row['reference']; $combinations[$row['id_product_attribute']]['id_image'] = isset($combinationImages[$row['id_product_attribute']][0]['id_image']) ? $combinationImages[$row['id_product_attribute']][0]['id_image'] : -1; } //wash attributes list (if some attributes are unavailables and if allowed to wash it) if (!Product::isAvailableWhenOutOfStock($product->out_of_stock) && Configuration::get('PS_DISP_UNAVAILABLE_ATTR') == 0) foreach ($groups AS &$group) foreach ($group['attributes_quantity'] AS $key => &$quantity) if (!$quantity) unset($group['attributes'][$key]); foreach($groups AS &$group) natcasesort($group['attributes']); foreach ($combinations AS $id_product_attribute => $comb) { $attributeList = ''; foreach ($comb['attributes'] AS $id_attribute) $attributeList .= '\''.intval($id_attribute).'\','; $attributeList = rtrim($attributeList, ','); $combinations[$id_product_attribute]['list'] = $attributeList; } $colorw = (sizeof($colors) AND $product->id_color_default) ? $colors : false; $product->group = $groups; $product_id = $product->id; $combina[$i] = $combinations; } foreach($combina as $key => $val){ foreach($val as $key2 => $val2){ $attributes_num[$key2] = $val2['list']; //print_r($attributes_num[$key2]); //print_r($val2); //echo "<hr>"; } } if(count($product->group) >0){ $listatt = ""; $attributeTag .= '<div id="attributes_'.$product->id.'">'; $attributeTag .= '<table >'; foreach($groups as $inkey => $inval){ $attributeTag .= '<tr>'; $attributeTag .= '<td >'; $attributeTag .= '<label for="group_'.$inkey.'">'.$inval['name'].'</label>'; $attributeTag .= '</td>'; $attributeTag .= '<td>'; $attributeTag .= '<select name="group_'.$inkey.'" id="group_'.$inkey.'" onchange="javascript:findCombination('.$product->id.');" >'; foreach ($inval['attributes'] as $id_attribute => $id_attribute_val ){ if($inval['attributes'][$inval['default']] == $id_attribute_val ){ $attributeTag .= '<option value="'.$id_attribute.'" selected="selected" title="'.$id_attribute_val.'" >'.$id_attribute_val.'</option>'; $listatt .= ",'".$id_attribute."'"; }else{ $attributeTag .= '<option value="'.$id_attribute.'" title="'.$id_attribute_val.'" >'.$id_attribute_val.'</option>'; } } $attvalue = 0; $attributeTag .= '</select>'; $attributeTag .= '</td>'; $attributeTag .= '</tr>'; } $attributeTag .= '<tr>'; $attributeTag .= '<td>'; $attributeTag .= '<label>Quantity</label>'; $attributeTag .= '</td>'; $attributeTag .= '<td>'; $attributeTag .= '<input type="text" name="qty" id="quantity_wanted" class="text" value="1" size="2" maxlength="3" />'; $attributeTag .= '</td>'; $attributeTag .= '</tr>'; $attributeTag .= '</table>'; $attributeTag .= '</div>'; }else{ $attributeTag .= '<table >'; $attributeTag .= '<tr>'; $attributeTag .= '<td>'; $attributeTag .= '<label>Quantity</label>'; $attributeTag .= '</td>'; $attributeTag .= '<td>'; $attributeTag .= '<input type="text" name="qty" id="quantity_wanted" class="text" value="1" size="2" maxlength="3" />'; $attributeTag .= '</td>'; $attributeTag .= '</tr>'; $attributeTag .= '</table>'; } $attributehtml[$product->name] = $attributeTag; $attributehtml[$product->id] = substr($listatt,1); $attributeTag = ""; $listatt =""; } $colors = null; $groups = null; } $smarty->assign('combinations',$combinations); $smarty->assign('attributehtml', $attributehtml); return $this->display(__FILE__, 'productsattribute.tpl'); } Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 Tak to zobrazuje u každého zboží volbu+množství tolikrát, kolik řádků má výpis zboží. Mám tím na mysli, že mám zobrazeno 3 zboži vedle sebe na 5 řádcích (15 ks zboží), tak to tam dá 5x ke každému zboží (aspoň jsem se tohoto počtu dopočítal). Navíc pokud vyberu nějakou velikost, do košíku to dá defaultní nastavenou velikost. Čili v tomto stavu nepoužitelné. Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 Tak to zobrazuje u každého zboží volbu+množství tolikrát, kolik řádků má výpis zboží. Mám tím na mysli, že mám zobrazeno 3 zboži vedle sebe na 5 řádcích (15 ks zboží), tak to tam dá 5x ke každému zboží (aspoň jsem se tohoto počtu dopočítal). Navíc pokud vyberu nějakou velikost, do košíku to dá defaultní nastavenou velikost. Čili v tomto stavu nepoužitelné. Mě to tak dělalo myslím také, je třeba upravit stylizaci (CSS). Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 Tak to zobrazuje u každého zboží volbu+množství tolikrát, kolik řádků má výpis zboží. Mám tím na mysli, že mám zobrazeno 3 zboži vedle sebe na 5 řádcích (15 ks zboží), tak to tam dá 5x ke každému zboží (aspoň jsem se tohoto počtu dopočítal). Navíc pokud vyberu nějakou velikost, do košíku to dá defaultní nastavenou velikost. Čili v tomto stavu nepoužitelné. Už jsem vyřešil tvůj, respektive i můj problém. Všechny atributy se vypisovali u každého produktu. Musíš svůj product-list.tpl překopírovat do souboru productsattribute.tpl ve složce s modulem a zobrazit tam také atributy následovně: product-list.tpl: {$HOOK_PRODUCT_ATTRIBUTES} productsattribute.tpl: {if isset($products)} <!-- Products list --> <ul id="product_list" class="clear"> {foreach from=$products item=product name=products} <li class="ajax_block_product {if $smarty.foreach.products.first}first_item{elseif $smarty.foreach.products.last}last_item{/if} {if $smarty.foreach.products.index % 2}alternate_item{else}item{/if}"> <div class="center_block"> <h3><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'}</a></h3> <a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} /></a> </div> <div class="right_block"> {foreach from=$attributehtml key=name item=attribute} {if $name eq $product.name} {$attribute} {/if} {/foreach} {if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if} {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="on_sale">{l s='On sale!'}</span> {elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="discount">{l s='Reduced price!'}</span>{/if} {if isset($product.online_only) && $product.online_only}<span class="online_only">{l s='Online only!'}</span>{/if} {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} <div class="right_block_left"> {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}<span class="availability">{if (isset($product.quantity) && $product.quantity > 5)}{l s='Stock remains > 5pcs'}{elseif ($product.quantity <= 5)}{l s='Stock remains 5pcs and lower'}{else}{l s='Out of stock'}{/if}</span>{/if} {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>{/if} </div> {/if} <a id="button_details" href="{$product.link|escape:'htmlall':'UTF-8'}" title="{l s='View'}">{l s='View'}</a> </div> </li> {/foreach} </ul> <!-- /Products list --> {/if} Vypadá to následovně: http://test.jiritomek.eu/vypis2.jpg Ještě je třeba modul přeložit, protože výrazy z product-list jsou nyní v tomto modulu, ale nějak se mi to nedaří uložit, když to přeložím a práva na složku i soubor mám nastavené. Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 :-) tak a mám v tom honkong :-) kam v tom productsattribute.tpl to mám nakopčit? :-) Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 :-) tak a mám v tom honkong :-) kam v tom productsattribute.tpl to mám nakopčit? :-) to co jsem tu psal, je celý soubor productsattribute.tpl a product-list.tpl, tam je taky pouze to co vidiš v mém postu nahoře. Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 Tak ono to asi bude specifické pro různé šablony. Ať se snažím sebevíc, ty velikosti mi to nezobrazuje... No co už :-) Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 Tak ono to asi bude specifické pro různé šablony. Ať se snažím sebevíc, ty velikosti mi to nezobrazuje... No co už :-) A co ti to nezobrazuje? Jak to teda vypadá? Vymazal jsi tu podmínku pro skupinu?Jinak jsem ručně udělal pomocí MD5 překlad mých výrazů. cs.php Vypadá to už lépe: http://test.jiritomek.eu/vypis2.jpg Dej mi přístup do adminu a já se na to podívám. Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 Předtím jsem překopíroval svůj soubor product-list.tpl, a nezobrazovalo to, překopčil jsem ten cos poslal ty, a už se to zobrazuje (kupodivu ale ne u všech, u některých produktů to vynechá-musím přijít na to, proč). Nicméně teď musím najít tu část kódu, která ty selekty zobrazuje, abych je dal podle svého product-list.tpl, aby se to zobrazovalo jak má, protože přes ten tvůj se to zobrazuje haluzově bez možnosti přidat do košíku. Každopádně pokrok tu je :-) Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 Předtím jsem překopíroval svůj soubor product-list.tpl, a nezobrazovalo to, překopčil jsem ten cos poslal ty, a už se to zobrazuje (kupodivu ale ne u všech, u některých produktů to vynechá-musím přijít na to, proč). Nicméně teď musím najít tu část kódu, která ty selekty zobrazuje, abych je dal podle svého product-list.tpl, aby se to zobrazovalo jak má, protože přes ten tvůj se to zobrazuje haluzově bez možnosti přidat do košíku. Každopádně pokrok tu je :-) Já tam tohle nechci, mám to pro info, protože chci, aby si člověk vybral na detailu. Jinak se to upravuje v souboru productsattribute.php ve složce modulu. Myslím, že jsem to tu posílal předtím jak to má byýt upravené na select s buttonem pro přidání do košíke i množstvím tak se podívej zpět. Jinak se to zobrazuje pouze u těch produktů, které máš jak v kategorii, kde je samozřejmě chceš, tak v hlavní kategorii (domů). Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 Tak je to tahle část kódu: {foreach from=$attributehtml key=name item=attribute} {if $name eq $product.name} {$attribute} {/if} {/foreach} Nicméně stále při výběru jiné velikosti než default to do košíku přidá default. Nějaký nápad? Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 Předtím jsem překopíroval svůj soubor product-list.tpl, a nezobrazovalo to, překopčil jsem ten cos poslal ty, a už se to zobrazuje (kupodivu ale ne u všech, u některých produktů to vynechá-musím přijít na to, proč). Nicméně teď musím najít tu část kódu, která ty selekty zobrazuje, abych je dal podle svého product-list.tpl, aby se to zobrazovalo jak má, protože přes ten tvůj se to zobrazuje haluzově bez možnosti přidat do košíku. Každopádně pokrok tu je :-) Asi jsi také při tom kopírování vynechal příkaz pro vypsání atributů: {foreach from=$attributehtml key=name item=attribute} {if $name eq $product.name} {$attribute} {/if} {/foreach} Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 Asi jsi také při tom kopírování vynechal příkaz pro vypsání atributů: {foreach from=$attributehtml key=name item=attribute} {if $name eq $product.name} {$attribute} {/if} {/foreach} Zkus poladit ten soubor kde je ta funkce selectu. Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 To mně taky napadlo, ale to je nad moje síly, bohužel :-( Třeba na o někdo příjde časem, každopádně i tak díky za pomoc ;-) Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 To mně taky napadlo, ale to je nad moje síly, bohužel :-( Třeba na o někdo příjde časem, každopádně i tak díky za pomoc ;-) Jako pro informaci můžeš použít mojí úpravu, a stáhni si můj překlad a přelož si výrazy podle sebe ale v editoru natvrdo, jinak to nejde. A mám také zvláštní podmínky pro zobrazení dostupnosti, tak na to také nezapomeň. :-) Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 No jak říkám, vše už funguje,jen do košíku se pošle velikost,která je nastavena jako default. Zkuzím pak zapátrat na příčině, ale tohle bude na základě nějakého javaskriptu, takže nad mé síly. Ale uvažoval jsem nad tím, že bych to předělal tak, jak to máš ty, ikonky s velikostmi, které jsou dostupné a samotný výběr na detailu zboží. Tohle by asi bylo snadnější. Předpokládám, že těch ikonek jsi docílil tak, že jsi velikosti natavil jako barvu č.2 a dal jim obrázek místo barvy, že? Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 No jak říkám, vše už funguje,jen do košíku se pošle velikost,která je nastavena jako default. Zkuzím pak zapátrat na příčině, ale tohle bude na základě nějakého javaskriptu, takže nad mé síly. Ale uvažoval jsem nad tím, že bych to předělal tak, jak to máš ty, ikonky s velikostmi, které jsou dostupné a samotný výběr na detailu zboží. Tohle by asi bylo snadnější. Předpokládám, že těch ikonek jsi docílil tak, že jsi velikosti natavil jako barvu č.2 a dal jim obrázek místo barvy, že? Ne to vůbec, je to seznam (UL), je to v mém původním souboru, který jsem tu prve nahrával (productsattribute.php) a pomocí CSS (product-list.css). div#attributes_list { float: left; margin-left: 14px; margin-top: 0; } div#attributes_list ul { margin: 0; padding: 0; } div#attributes_list ul li, div#attributes_list ul li:hover { float: left; margin: 0 5px 0 0; border: 1px solid #333333; width: 25px; height: 25px; cursor: default; background: #ffffff; color: #333333; text-align: center; vertical-align: middle; line-height: 25px; list-style: none; font-size: 11px; font-weight: bold; } 1 Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 Ty jo! Jednoduché jako facka! Tak to moc díky! :-) Takhle mi to bohatě stačí, je to funkční a přehledné :-) Je vidět, že se vyznáš ;-) Já bych to hledal strašně dlouho, možná ty budeš vědět hned kam sáhnout, aby se mi zvýšilo okno s výrobkem a díky těm velikostem to nepřetékalo přes DIV, viď? ;-) Viz screen :-) Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 Ty jo! Jednoduché jako facka! Tak to moc díky! :-) Takhle mi to bohatě stačí, je to funkční a přehledné :-) Je vidět, že se vyznáš ;-) Já bych to hledal strašně dlouho, možná ty budeš vědět hned kam sáhnout, aby se mi zvýšilo okno s výrobkem a díky těm velikostem to nepřetékalo přes DIV, viď? ;-) Viz screen :-) Co ti kam přetéká? Taky bych potřeboval poradit. V objednávce bez reg. mi to píše po vyplnění všech údajů a uložení že jméno a příjmení je vyžadováno. Viz odkaz: http://test.jiritomek.eu/opc.jpg Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 Ty jo! Jednoduché jako facka! Tak to moc díky! :-) Takhle mi to bohatě stačí, je to funkční a přehledné :-) Je vidět, že se vyznáš ;-) Já bych to hledal strašně dlouho, možná ty budeš vědět hned kam sáhnout, aby se mi zvýšilo okno s výrobkem a díky těm velikostem to nepřetékalo přes DIV, viď? ;-) Viz screen :-) A taky uprav vlastnost margin níže: div#attributes_list ul li, div#attributes_list ul li:hover { float: left; margin: 0 5px 0 0; border: 1px solid #333333; width: 25px; height: 25px; cursor: default; background: #ffffff; color: #333333; text-align: center; vertical-align: middle; line-height: 25px; list-style: none; font-size: 11px; font-weight: bold; } na margin: 0 5px 5px 0; To je, aby jsi měl atributy pod sebou oddělené taky o 5px, takhle to vypadá hrozně, jak to máš na sobě. Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 Ty jo! Jednoduché jako facka! Tak to moc díky! :-) Takhle mi to bohatě stačí, je to funkční a přehledné :-) Je vidět, že se vyznáš ;-) Já bych to hledal strašně dlouho, možná ty budeš vědět hned kam sáhnout, aby se mi zvýšilo okno s výrobkem a díky těm velikostem to nepřetékalo přes DIV, viď? ;-) Viz screen :-) Jo takhle to myslíš, je to špatně vidět ta šedá linka. Uprav vlastnost height u divu níže v product-list.css ul#product_list li { background: #cccccc; border: 1px solid #999999; width: 280px; height: 440px; float: left; margin-left: 13px; margin-bottom: 13px } Nastav hodnotu vyšší, než máš teď. Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 jj, tohle jsem si už poladil... s tím vyžadováním polí mi dělalo, když jsem upravoval controler poté, co jsem přidával ičo/dič. a nevyřešil jsem to. ale bude to někde v tom AddressController.php podle mého názoru. Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 4, 2012 Author Share Posted March 4, 2012 jj, tohle jsem si už poladil... s tím vyžadováním polí mi dělalo, když jsem upravoval controler poté, co jsem přidával ičo/dič. a nevyřešil jsem to. ale bude to někde v tom AddressController.php podle mého názoru. To je divný protože v souboru AuthController mám vyžadovaná pole pro reg. pouze jméno a příjmení, mám upravenou registraci pro zvláštní jQuery panel nahoře v liště, takže orig. formulář vůbec nevyužívám. Ale zkusím se v tom ještě pohrabat, je to divný. Link to comment Share on other sites More sharing options...
Aramon Posted March 4, 2012 Share Posted March 4, 2012 Tak ještě bych potřeboval helpnout s jednou věcí. Jak jsou bloky Nejprovávanější, Slevy atd, tak když klikneš třeba zobrazit všechny slevy, tak to nic nevypíše. Kde by mohla být zrada? Link to comment Share on other sites More sharing options...
Aramon Posted March 5, 2012 Share Posted March 5, 2012 Tak jsem na to přišel. Jsou potřeba další úpravy v souborech: prices-drop.tpl new-products.tpl best-sales.tpl ve vzhledu. V každém z nich se nachází cca toto: {if $products} {include file="$tpl_dir./product-sort.tpl"} {include file="$tpl_dir./product-list.tpl" products=$products} {include file="$tpl_dir./pagination.tpl"} {else} <p class="warning">{l s='No top sellers.'}</p> {/if} ten třetí řádek {include file="$tpl_dir./product-list.tpl" products=$products} je potřeba nahradit tím, co jsme nakopírovali do souboru v modulu productsattribute.tpl Tím se nám opět začně vypisovat seznam zboží dle parametrů. Ovšem nejsou u něj na výběr ty vlastnosti. Vyřešil jsem to tak, že jsem ten modul zavěsil ještě do hooku Head. Normálně to nejde, takže je potřeba upravit soubor productsattribute.php na jeho konci je kód public function hookProductAttributes($params) { return $this->hookHome($params); } } ?> Tak mu tam přidáme ještě hook Head, bude to tedy vypadat takto: public function hookProductAttributes($params) { return $this->hookHome($params); } public function hookHeader($params) { return $this->hookHome($params); } } ?> Nyní už jde modul zavěsit do hooku Head a tak se nám vlastnosti zase začnou zobrazovat :-) Samozřejmě, pokud má někdo ten modul již nainstalovaný, musí jej nejprve odinstalovat a poté zas nainstalovat, aby se PS naučila, že ten modul jde zavěsit do Head. Link to comment Share on other sites More sharing options...
jiritomekeu Posted March 5, 2012 Author Share Posted March 5, 2012 Tak jsem na to přišel. Jsou potřeba další úpravy v souborech: prices-drop.tpl new-products.tpl best-sales.tpl ve vzhledu. V každém z nich se nachází cca toto: {if $products} {include file="$tpl_dir./product-sort.tpl"} {include file="$tpl_dir./product-list.tpl" products=$products} {include file="$tpl_dir./pagination.tpl"} {else} <p class="warning">{l s='No top sellers.'}</p> {/if} ten třetí řádek {include file="$tpl_dir./product-list.tpl" products=$products} je potřeba nahradit tím, co jsme nakopírovali do souboru v modulu productsattribute.tpl Tím se nám opět začně vypisovat seznam zboží dle parametrů. Ovšem nejsou u něj na výběr ty vlastnosti. Vyřešil jsem to tak, že jsem ten modul zavěsil ještě do hooku Head. Normálně to nejde, takže je potřeba upravit soubor productsattribute.php na jeho konci je kód public function hookProductAttributes($params) { return $this->hookHome($params); } } ?> Tak mu tam přidáme ještě hook Head, bude to tedy vypadat takto: public function hookProductAttributes($params) { return $this->hookHome($params); } public function hookHeader($params) { return $this->hookHome($params); } } ?> Nyní už jde modul zavěsit do hooku Head a tak se nám vlastnosti zase začnou zobrazovat :-) Samozřejmě, pokud má někdo ten modul již nainstalovaný, musí jej nejprve odinstalovat a poté zas nainstalovat, aby se PS naučila, že ten modul jde zavěsit do Head. No vidíš taky sis poradil sám, já se tady odpovědi většinou nikdy nedočkám. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now