Jump to content
xt:Commerce Community Forum
Sign in to follow this  
redcat63

Formular "Bewertung schreiben" in Produktseite integrieren

Recommended Posts

Hallo,

ich möchte gerne das Formular "Bewertung schreiben" auf jeder Produktseite ausgeben.

Hat jemand von Euch dies bereits gemacht und kann mir dazu einige Hinweise geben?

Über eine Antwort würde ich mich sehr freuen.

VG Elke

Share this post


Link to post
Share on other sites

mach lieber ein Link zur Formular - ist dezenter...

/includes/modules/product_info.php

$info_smarty->assign('REVIEW_LINK', xtc_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, '&info='.$product->data['products_id']));

/templates/.../modules/product_info/product_info_v1.html

<a href="{$REVIEW_LINK}">{#review_text#}</a>

in den jeweilige lang conf Dateien

[product_info]

review_text = 'Schreiben Sie eine Bewertung'

Share this post


Link to post
Share on other sites

Hallo Rovert,

herzlichen Dank für Deine schnelle Hilfe.

Trotz Deines Einwands möchte ich nach wie vor das Formular in der Produktansicht integrieren.

Solltest Du oder jemand anderes mir da weiterhelfen können, wäre ich sehr dankbar.

VG Elke

Edit:

Ich habe in der Zwischenzeit mein Problem gelöst und habe die Datei "product_review_write.php" erstellt und in den Ordner includes/modules kopiert. Diese enthält folgenden Code:

<?php
if (isset ($_GET['action']) && $_GET['action'] == 'process') {
if (is_object($product) && $product->isProduct()) {
// We got to the process but it is an illegal product, don't write
$customer = xtc_db_query("select customers_firstname, customers_lastname from ".TABLE_CUSTOMERS." where customers_id = '".(int) $_SESSION['customer_id']."'");
$customer_values = xtc_db_fetch_array($customer);
$date_now = date('Ymd');
if ($customer_values['customers_lastname'] == '')
$customer_values['customers_lastname'] = TEXT_GUEST;
xtc_db_query("insert into ".TABLE_REVIEWS." (products_id, customers_id, customers_name, reviews_rating, date_added) values ('".$product->data['products_id']."', '".(int) $_SESSION['customer_id']."', '".addslashes($customer_values['customers_firstname']).' '.addslashes($customer_values['customers_lastname'])."', '".addslashes($_POST['rating'])."', now())");
$insert_id = xtc_db_insert_id();
xtc_db_query("insert into ".TABLE_REVIEWS_DESCRIPTION." (reviews_id, languages_id, reviews_text) values ('".$insert_id."', '".(int) $_SESSION['languages_id']."', '".addslashes($_POST['review'])."')");
}
xtc_redirect(xtc_href_link(FILENAME_PRODUCT_INFO, $_POST['get_params']));
}

// lets retrieve all $HTTP_GET_VARS keys and values..
$get_params = xtc_get_all_get_params();
$get_params_back = xtc_get_all_get_params(array ('reviews_id')); // for back button
$get_params = substr($get_params, 0, -1); //remove trailing &
if (xtc_not_null($get_params_back)) {
$get_params_back = substr($get_params_back, 0, -1); //remove trailing &
} else {
$get_params_back = $get_params;
}

$breadcrumb->add(NAVBAR_TITLE_REVIEWS_WRITE, xtc_href_link(FILENAME_PRODUCT_REVIEWS, $get_params));

$customer_info_query = xtc_db_query("select customers_firstname, customers_lastname from ".TABLE_CUSTOMERS." where customers_id = '".(int) $_SESSION['customer_id']."'");
$customer_info = xtc_db_fetch_array($customer_info_query);

$name = $customer_info['customers_firstname'].' '.$customer_info['customers_lastname'];
if ($name == ' ')
$customer_info['customers_lastname'] = TEXT_GUEST;
$info_smarty->assign('PRODUCTS_NAME', $product->data['products_name']);
$info_smarty->assign('AUTHOR', $customer_info['customers_firstname'].' '.$customer_info['customers_lastname']);
$info_smarty->assign('INPUT_TEXT', xtc_draw_textarea_field('review', 'soft', 30, 15, '', '', false));
$info_smarty->assign('INPUT_RATING', xtc_draw_radio_field('rating', '1').' '.xtc_draw_radio_field('rating', '2').' '.xtc_draw_radio_field('rating', '3').' '.xtc_draw_radio_field('rating', '4').' '.xtc_draw_radio_field('rating', '5'));
$info_smarty->assign('FORM_ACTION', xtc_draw_form('product_reviews_write', xtc_href_link(FILENAME_PRODUCT_INFO, 'action=process&'.xtc_product_link($product->data['products_id'],$product->data['products_name'])), 'post', 'onSubmit="return checkForm();"'));
$info_smarty->assign('BUTTON_BACK', '<a href="javascript:history.back(1)">'.xtc_image_button('button_back.gif', IMAGE_BUTTON_BACK).'</a>');
$info_smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE).xtc_draw_hidden_field('get_params', $get_params));
$info_smarty->assign('FORM_END', '</form>');
?>[/php]

Per include-Befehl habe ich diese dann in die Datei product_info.php eingebunden und zwar nach den Zeilen:

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

Anschließend habe ich die Datei product_info_v1.html mit dem Code aus der Datei product_reviews_write.html ergänzt. (Beide Dateien findet ihr in den Template-Ordnern.)

Fertig. :-)

Vielen Dank noch mal für die Hilfe, denn die hat mich letztendlich auf die Idee gebracht, den o.g. Code nicht in der product_info.php im Rootverzeichnis, sondern die Datei im Ordner includes/modules product_info.php zu ändern.

VG Elke

Share this post


Link to post
Share on other sites

mach lieber ein Link zur Formular - ist dezenter...

/includes/modules/product_info.php

$info_smarty->assign('REVIEW_LINK', xtc_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, '&info='.$product->data['products_id']));

/templates/.../modules/product_info/product_info_v1.html

<a href="{$REVIEW_LINK}">{#review_text#}</a>

in den jeweilige lang conf Dateien

[product_info]

review_text = 'Schreiben Sie eine Bewertung'

Hallo. Wenn ich diesen Code so in meinem Shop einbaue erscheint als Link leider nur die Grund-URL ohne Verweis auf das Bewertungsformular, also nur www.xyz.de. Wie bekomme ich denn das nun wirklich zum Laufen? Oder ist da doch noch ein Fehler? Oder hab ich was falsch gemacht?

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...