Darstellung Attribute

Diskussionen rund um die Templates (incl. Smarty)
Antworten
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Darstellung Attribute

Beitrag von Kopernikus »

Grüsst Euch :)

Ich habe mal eine kurze Frage zur Darstellung der Attribute. Seit Urzeiten werden die Attribute ja wie folgt dargestellt:

Attributdarstellung unübersichtlich:

Bild

Dabei fehlt der Preis des günstigsten Artikels in der Liste und muss vom Kunden oben gesucht werden. Manche Kunden kapieren dieses System, andere riefen mich schon an und beschwerten sich, weil der Preis für Artikel XY fehlte. Ich habe damals (ca. 2006) eine einfache Lösung für dieses Problem gefunden. Ich weiss es waren nur ein paar Zeilen Code (Arbeitsaufwand ca. 2 Minuten). Doch leider weiss ich nicht mehr welcher das war und in welchen Dateien ich etwas verändert habe. Denn ganz ehrlich, so wie oben möchte ich meine Produkte nicht mehr anzeigen lassen.

Attributdarstellung Übersichtlich:

Bild

Hat möglicherweise jemand eine Idee wie ich wieder zu diese Anzeige wechseln kann?
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Darstellung Attribute

Beitrag von Xantiva »

In dem Du die Smarty Funktion function.products_attributes.php sowie das Template product_options_selection.html entsprechend anpasst? (Smarty ins Template kopieren und nach eigenen Wünschen adaptieren.)

z. B. FULL_PRICE statt PRICE ...
Mein Shop: http://www.basteln-selbermachen.de
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Darstellung Attribute

Beitrag von Kopernikus »

Wow, das ging ja flott. Früher musste ich mindestens in zwei Dateien Anpassungen machen. Nun reichte die Anpassung des Templates und es klappt.

Bild

Nun aber noch folgende Frage. Wäre es irgendwie möglich, die Preisanzeige mit dem ändern der Optionsbuttons dynamisch darzustellen? D.h. wenn man auf den höheren Preis klickt, sich auch der orange Preis unten ändert? Ich denke das wäre am übersichtlichsten.
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Darstellung Attribute

Beitrag von Kopernikus »

Ich habe nun ein Modul gefunden, welches mittels javascript die dynamische Preisanzeige ermöglicht. Der Einbau macht mir nun aber etwas Probleme, weil die product_info.php nicht mehr auf die product_attributes.php verweist. Hier spielt sich nun ja alles in der includes / classes / smarty_plugins / function.products_attributes.php ab. Mein Problem ist die folgende Einbauanweisung unten. Denn in der product_info.php wird die function.products_attributes.php ja nicht mehr inkludiert. Die Frage ist dann, wo baue ich in diesem Fall den unteren Code ein? Habt Ihr mir da einen Tipp?

Code: Alles auswählen

includes/modules/product_info.php
-----------------------------
Suche:
	include (DIR_WS_MODULES.'product_attributes.php');
	include (DIR_WS_MODULES.'product_reviews.php');
  
Füge danach ein:
  // ioptcalc beginn 
    if( isset($products_options_data) ) {
      $count_opt=0;
      $options_js_idlist='';
      $options_js_pricelist='';
      $sep='';
      foreach( $products_options_data as $opt ) {
        $count_opt += sizeof($opt['DATA']);
        foreach ( $opt['DATA'] as $opt_val ) {
          $options_js_idlist .= $sep."'".$opt_val['JS_ID']."'";
          $options_js_pricelist .= $sep.$opt_val['JS_PRICE'];
          $sep=', ';
        }
      }
      
      $info_smarty->assign('curr_format_symbol_left',     $xtPrice->currencies[$xtPrice->actualCurr]['symbol_left']);  
      $info_smarty->assign('curr_format_symbol_right',    $xtPrice->currencies[$xtPrice->actualCurr]['symbol_right']);  
      $info_smarty->assign('curr_format_decimal_point',   $xtPrice->currencies[$xtPrice->actualCurr]['decimal_point']);  
      $info_smarty->assign('curr_format_thousands_point', $xtPrice->currencies[$xtPrice->actualCurr]['thousands_point']);  
      $info_smarty->assign('curr_format_decimal_places',  $xtPrice->currencies[$xtPrice->actualCurr]['decimal_places']);  

      $info_smarty->assign('OPTIONS_JS_COUNT',  $count_opt);  
      $info_smarty->assign('OPTIONS_JS_IDLIST', $options_js_idlist);  
      $info_smarty->assign('OPTIONS_JS_PRICELIST', $options_js_pricelist);  
    }  
  // ioptcalc end
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Darstellung Attribute

Beitrag von Kopernikus »

Hmmm, bin gerade etwas am Verzweifeln. Der Einbau macht mir wegen der geänderten product_attributes.php nun doch etwas mehr Schwierigkeiten als angenommen.

Das erste Problem erhalte ich in der product_info.php, weil ich dort ja unterhalb von:

include (DIR_WS_MODULES.'product_attributes.php');
include (DIR_WS_MODULES.'product_reviews.php');

etwas einfügen sollte. Und das zweite Problem beginnt in der function.products_attributes.php (welche die products_attributes.php) ersetzt. Dort wurde ja auch einiges geändert. Vielleicht hat hier jemand eine Ahnung wie ich den Einbau in diese zwei Dateien bewerkstelligen könnte. :roll:
includes/modules/product_info.php
-----------------------------
Suche:
$info_smarty->assign('FORM_ACTION', xtc_draw_form('cart_quantity', xtc_href_link(FILENAME_PRODUCT_INFO, xtc_get_all_get_params(array ('action')).'action=add_product')));
$info_smarty->assign('FORM_END', '</form>');
$info_smarty->assign('PRODUCTS_PRICE', $products_price['formated']);

Füge danach ein:
$info_smarty->assign('PRODUCTS_PRICE_PLAIN', $products_price['plain']); // ioptcalc
-----------------------------
Suche:
include (DIR_WS_MODULES.'product_attributes.php');
include (DIR_WS_MODULES.'product_reviews.php');

Füge danach ein:
// ioptcalc beginn
if( isset($products_options_data) ) {
$count_opt=0;
$options_js_idlist='';
$options_js_pricelist='';
$sep='';
foreach( $products_options_data as $opt ) {
$count_opt += sizeof($opt['DATA']);
foreach ( $opt['DATA'] as $opt_val ) {
$options_js_idlist .= $sep."'".$opt_val['JS_ID']."'";
$options_js_pricelist .= $sep.$opt_val['JS_PRICE'];
$sep=', ';
}
}

$info_smarty->assign('curr_format_symbol_left', $xtPrice->currencies[$xtPrice->actualCurr]['symbol_left']);
$info_smarty->assign('curr_format_symbol_right', $xtPrice->currencies[$xtPrice->actualCurr]['symbol_right']);
$info_smarty->assign('curr_format_decimal_point', $xtPrice->currencies[$xtPrice->actualCurr]['decimal_point']);
$info_smarty->assign('curr_format_thousands_point', $xtPrice->currencies[$xtPrice->actualCurr]['thousands_point']);
$info_smarty->assign('curr_format_decimal_places', $xtPrice->currencies[$xtPrice->actualCurr]['decimal_places']);

$info_smarty->assign('OPTIONS_JS_COUNT', $count_opt);
$info_smarty->assign('OPTIONS_JS_IDLIST', $options_js_idlist);
$info_smarty->assign('OPTIONS_JS_PRICELIST', $options_js_pricelist);
}
// ioptcalc end
-----------------------------
-----------------------------
-----------------------------
includes/modules/product_attributes.php
-----------------------------
Suche:
if ($product->getAttributesCount() > 0) {
$products_options_name_query = xtDBquery("select distinct ............. etc..........

$row = 0;
$col = 0;

Füge danach ein:
$js_id_count=0; // ioptcalc
-----------------------------
Suche die Zeile (Zeile hier ist übersichtlicher formatiert als im Original!):
$products_options_data[$row]['DATA'][$col] = array ('ID' => $products_options['products_options_values_id'],
'TEXT' => $products_options['products_options_values_name'],
'MODEL' => $products_options['attributes_model'],
'PRICE' => $xtPrice->xtcFormat($price, true),
'FULL_PRICE' => $xtPrice->xtcFormat($full, true),
'PREFIX' => $products_options['price_prefix']);

Ersetze durch:
$products_options_data[$row]['DATA'][$col] = array ('ID' => $products_options['products_options_values_id'],
'JS_ID' => "f0_a$js_id_count", // ioptcalc
'JS_PRICE' => $attr_price*1, // ioptcalc
'TEXT' => $products_options['products_options_values_name'],
'MODEL' => $products_options['attributes_model'],
'PRICE' => $xtPrice->xtcFormat($price, true),
'FULL_PRICE' => $xtPrice->xtcFormat($full, true),
'PREFIX' => $products_options['price_prefix']);
$js_id_count++; // ioptcalc
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Darstellung Attribute

Beitrag von Xantiva »

Ich glaube, ich würde das alles in die "Tonne klopfen" und dann mal überlegen, was Du benötigst ...

... beim Ändern der Selektion muss eine JavaScript Funktion aufgerufen werden. Die benötigt dann nur den anzuzeigenden Preis für die Auswahl. Das sollte sich komplett in der Smarty Funktion und dem Template realisieren lassen.

Um das auszuarbeiten fehlt mir allerdings gerade etwas die Zeit ... :|
Mein Shop: http://www.basteln-selbermachen.de
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Darstellung Attribute

Beitrag von Kopernikus »

Ich hake dieses Thema mal als erledigt an. Die dynamische Preisanzeige ist nun wirklich eine Spielerei welche niemand wirklich benötigt. Ist ja eigentlich alles gut so wie es ist :D
Antworten