Jump to content
xt:Commerce Community Forum

Formular "Bewertung schreiben" in Produktseite integrieren


redcat63

Recommended Posts

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'

Link to comment
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

Link to comment
Share on other sites

  • 1 year later...

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?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...