cscreenstore Posted July 16, 2018 Share Posted July 16, 2018 Hello, I am trying to find the code that populates the "Write a Review" Product Comment form on the Product Details page. Prestashop version 1.6.1.14. This is the code in the tpl: {if ($too_early == false AND ($is_logged OR $allow_guests))} <li> <a class="open-comment-form" href="#new_comment_form"> {l s='Write a review' mod='productcomments'} </a> </li> {/if} This is the js code: $(function() { $('input.star').rating(); $('.auto-submit-star').rating(); $('.open-comment-form').fancybox({ 'hideOnContentClick': false, }); $('button.usefulness_btn').click(function() { var id_product_comment = $(this).data('id-product-comment'); var is_usefull = $(this).data('is-usefull'); var parent = $(this).parent(); $.ajax({ url: productcomments_controller_url + '?rand=' + new Date().getTime(), data: { id_product_comment: id_product_comment, action: 'comment_is_usefull', value: is_usefull }, type: 'POST', headers: { "cache-control": "no-cache" }, success: function(result){ parent.fadeOut('slow', function() { parent.remove(); }); } }); }); $('span.report_btn').click(function() { if (confirm(confirm_report_message)) { var idProductComment = $(this).data('id-product-comment'); var parent = $(this).parent(); $.ajax({ url: productcomments_controller_url + '?rand=' + new Date().getTime(), data: { id_product_comment: idProductComment, action: 'report_abuse' }, type: 'POST', headers: { "cache-control": "no-cache" }, success: function(result){ parent.fadeOut('slow', function() { parent.remove(); }); } }); } }); $('#submitNewMessage').click(function(e) { // Kill default behaviour e.preventDefault(); // Form element url_options = '?'; if (!productcomments_url_rewrite) url_options = '&'; $.ajax({ url: productcomments_controller_url + url_options + 'action=add_comment&secure_key=' + secure_key + '&rand=' + new Date().getTime(), data: $('#id_new_comment_form').serialize(), type: 'POST', headers: { "cache-control": "no-cache" }, dataType: "json", success: function(data){ if (data.result) { $.fancybox.close(); var buttons = {}; buttons[productcomment_ok] = "productcommentRefreshPage"; fancyChooseBox(moderation_active ? productcomment_added_moderation : productcomment_added, productcomment_title, buttons); } else { $('#new_comment_form_error ul').html(''); $.each(data.errors, function(index, value) { $('#new_comment_form_error ul').append('<li>'+value+'</li>'); }); $('#new_comment_form_error').slideDown('slow'); } } }); return false; }); }); function productcommentRefreshPage() { window.location.reload(); } And this is the php code: public function hookDisplayRightColumnProduct($params) { require_once dirname(__FILE__).'/ProductComment.php'; require_once dirname(__FILE__).'/ProductCommentCriterion.php'; $id_guest = (!$id_customer = (int) $this->context->cookie->id_customer) ? (int) $this->context->cookie->id_guest : false; $customerComment = ProductComment::getByCustomer((int) (Tools::getValue('id_product')), (int) $this->context->cookie->id_customer, true, (int) $id_guest); $average = ProductComment::getAverageGrade((int) Tools::getValue('id_product')); $product = $this->context->controller->getProduct(); $image = Product::getCover((int) Tools::getValue('id_product')); $cover_image = $this->context->link->getImageLink($product->link_rewrite, $image['id_image'], 'medium_default'); $this->context->smarty->assign(array( 'id_product_comment_form' => (int) Tools::getValue('id_product'), 'product' => $product, 'secure_key' => $this->secure_key, 'logged' => $this->context->customer->isLogged(true), 'allow_guests' => (int) Configuration::get('PRODUCT_COMMENTS_ALLOW_GUESTS'), 'productcomment_cover' => (int) Tools::getValue('id_product').'-'.(int) $image['id_image'], // retro compat 'productcomment_cover_image' => $cover_image, 'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), 'criterions' => ProductCommentCriterion::getByProduct((int) Tools::getValue('id_product'), $this->context->language->id), 'action_url' => '', 'averageTotal' => round($average['grade']), 'ratings' => ProductComment::getRatings((int) Tools::getValue('id_product')), 'too_early' => ($customerComment && (strtotime($customerComment['date_add']) + Configuration::get('PRODUCT_COMMENTS_MINIMAL_TIME')) > time()), 'nbComments' => (int) (ProductComment::getCommentNumber((int) Tools::getValue('id_product'))), )); return $this->display(__FILE__, '/productcomments-extra.tpl'); } I am assuming the code is in one of these. An explanation would be appreciated, as I would like to understand how it works, not just be shown. If I am wrong and it is not in the code above, can you let me know where it is located. Thank you to anyone that replies. KR Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now