Jump to content

Zlecę drobną modyfikację strony produktu


Recommended Posts

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.

 

Link to comment
Share on other sites

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

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 by hering (see edit history)
Link to comment
Share on other sites

  • 1 month later...

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 by hering (see edit history)
Link to comment
Share on other sites

×
×
  • Create New...