hering Posted January 23, 2014 Share Posted January 23, 2014 Potrzebuję pomocy.Sprawa dotyczy product.tpl i pewnie ProductController.phporaz tych wątków:http://www.prestashop.com/forums/topic/285708-kod-php-w-tpl/http://www.prestashop.com/forums/topic/302989-zapytanie-sql-indeksy-atrybut%C3%B3w/ PrestaShop 1.5.6.1:http://lu-boo.pl/index.php?id_product=6&controller=product&id_lang=7 Link to comment Share on other sites More sharing options...
hering Posted January 28, 2014 Author Share Posted January 28, 2014 Nie ma chętnych? Dla znającego się na rzeczy to pikuś. Szacuję, że góra 30min. roboty. Proponuję 200zł za poświęcony czas i oczywiście przykład może być udostępniony na forum. Potrzebuję pomocy.Sprawa dotyczy product.tpl i pewnie ProductController.phporaz tych wątków:http://www.prestashop.com/forums/topic/285708-kod-php-w-tpl/http://www.prestashop.com/forums/topic/302989-zapytanie-sql-indeksy-atrybut%C3%B3w/ PrestaShop 1.5.6.1:http://lu-boo.pl/index.php?id_product=6&controller=product&id_lang=7 Link to comment Share on other sites More sharing options...
vekia Posted January 28, 2014 Share Posted January 28, 2014 to co bym zrobił ja, to napisał statyczną klasę w productController która te dane wyciągnie i wyświetli. w jaki sposób chcesz te "reference" wyświetlać? po prostu, samo reference ? tak bez ładu i składu? ps. zrobię za darmo Link to comment Share on other sites More sharing options...
hering Posted January 29, 2014 Author Share Posted January 29, 2014 (edited) Popieram statyczną klasę w productController ;-) Reference (przypisane, do każdej wartości atrybutu) chcę wyświetlić tak: wartości atrybutu (tylko jeden atrybut) w jednej kolumnie, a w drugiej kolumnie wartości reference odpowiadające (w wierszach) danej (i każdej) wartości atrybutu. Teraz w szablonie w product.tpl mam (kolumna z wartościami reference): <p id="product_reference" {if isset($groups) OR !$product->reference}style="display: none;"{/if}> <label>{l s='Reference:'}</label> {foreach from=$group.attributes key=id_attribute_group item=group_attribute} {l s='- lenght'} <span class="editable">{$product->reference|escape:'htmlall':'UTF-8'}</span> {l s='cm'}</br> {/foreach} </p> Tutaj możesz zobaczyć jak jest wyświetlane: http://lu-boo.pl/index.php?id_product=3&controller=product&id_lang=7#/rozmiar-36 Niestety wartości w kolumnie reference (indeks) są wierszami powielane (identyczne wartości w wierszach). Wartość jest pobierana z aktualnie zaznaczonej wartości atrybutu i zmienia się, po przełączeniu na inną wartość atrybutu. Czyli jest tak: WARTOŚCI ATRYBUTU REFERENCE *36 A 37 A 38 A WARTOŚCI ATRYBUTU REFERENCE 36 C 37 C *38 C Potrzebne tak: WARTOŚCI ATRYBUTU REFERENCE *36 A 37 B 38 C WARTOŚCI ATRYBUTU REFERENCE 36 A 37 B *38 C Napisałem (lepsze określenie - wypociłem i wystękałem | proszę się nie śmiać - to efekt 3x6godzin) taki kod PHP do pobierania i wyświetlania wszystkich wartości "reference" z wszystkich wartości atrybutu dla aktualnie wyświetlanego produktu: <?php $polaczenie = @new mysqli('localhost', 'xxx', '$$$', 'xxx'); if (mysqli_connect_errno() != 0){ echo '<p>Wystąpił błąd połączenia: ' . mysqli_connect_error() . '</p>'; } else { $wynik = @$polaczenie -> query("SELECT ps_product_attribute.id_product, ps_product_attribute.reference FROM ps_product_attribute WHERE id_product=? ORDER BY reference"); $wynik -> bind_param('d', $product); if ($wynik === false){ echo '<p>Zapytanie nie zostało wykonane poprawnie!</p>'; $polaczenie -> close(); } else { while (($produkt = $wynik -> fetch_assoc()) !== null){ echo '' . $produkt['reference'] . '</br>'; } $wynik -> close(); // zwolnienie pamięci $polaczenie -> close(); } } ?> Co prawda przekazywanie z bind_param do id_product=? nie działa ale testy "sztywne" dla wpisanego konkretnego id_product działa (hura). Edited March 3, 2014 by hering (see edit history) Link to comment Share on other sites More sharing options...
hering Posted March 1, 2014 Author Share Posted March 1, 2014 (edited) to co bym zrobił ja, to napisał statyczną klasę w productController która te dane wyciągnie i wyświetli. w jaki sposób chcesz te "reference" wyświetlać? po prostu, samo reference ? tak bez ładu i składu? ps. zrobię za darmo Vekia, chyba Cię nieco zawstydzę ;-) <p id="product_reference"> <label>{l s='Reference:'}</label> {assign var='zmienna' value=0} {foreach from=$combinations key=idCombination item=combination} {assign var='zmienna' value=$zmienna+1} <div class="editable"> {l s='- lenght'} {if $zmienna == $combinations|@count} {$combination.reference} {else} {$combination.reference} {/if} {l s='cm'} </div> {/foreach} </p> I sprawa elegancko załatwiona. Bez kombinacji z jakimiś klasami na dodatek statycznymi ;-) Jak będę miał chwilę i siły to sprawdzę moje poprzednie wypociny: <p id="product_reference" {if isset($groups) OR !$product->reference}style="display: none;"{/if}> <label>{l s='Reference:'}</label> {foreach from=$group.attributes key=id_attribute_group item=group_attribute} {l s='- lenght'} <span class="editable">{$product->reference|escape:'htmlall':'UTF-8'}</span> {l s='cm'}</br> {/foreach} </p> może wystarczy usunąć z nich <span>, który jest "kontrolowany" przez javascript. Edited March 3, 2014 by hering (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts