Jump to content
Sign in to follow this  
vivivor

[Решено] Переход на страницу продукта с открытой вкладкой отзывов

Recommended Posts

Подскажите как сделать так чтоб перейти в товар с открытой вкладкой отзывов(по отдельной ссылке)

Share this post


Link to post
Share on other sites

по отдельной ссылке... ???

а так...в продукт тпл.. отзывы поставь раньше описания, при заходе в продукт отзывы будут открыты всегда

Share this post


Link to post
Share on other sites

на главной есть 2 ссылки

1 ведет на страницу продукта с открытой вкладкой описания

2 туда же только с открытой вкладкой отзывов

Share this post


Link to post
Share on other sites

конечно есть.
 
[=== catalog/controller/product/product.php ===]
 
после

$this->model_catalog_product->updateViewed($this->request->get['product_id']);


добавляем

$this->data['_tab'] = '';
if (isset($this->request->get['_tab'])) {
$this->data['_tab'] = $this->request->get['_tab'];
}


[=== catalog/view/theme/{theme}/template/product/product.tpl ===]
 

<a href="#tab-review"><?php echo $tab_review; ?></a>


меняем на

<a href="#tab-review" id="tab-review-ctrl"><?php echo $tab_review; ?></a>


 
перед

<?php echo $footer; ?>


добавляем

<?php if (isset($_tab) && !empty($_tab)) { ?>
<script type="text/javascript"><!--
$('#tab-<?php echo $_tab; ?>-ctrl').trigger('click');
//--></script>
<?php } ?>


ссылка на страницу товара с открытой вкладкой отзывов выглядит так

index.php?route=product/product&product_id=40&_tab=review


в контроллерах задается

$this->url->link('product/product', 'product_id='.$result['product_id'].'&_tab=review'),


= = =

пример для категорий:

[=== catalog/controller/product/category.php ===]

 $this->data['products'][] = array(
...
'tab_review_href' => $this->url->link('product/product', 'path='.$this->request->get['path'].'&product_id='.$result['product_id'].'&_tab=review'),


[=== catalog/view/theme/{theme}/template/product/category.tpl ===]

 <?php if ($product['tab_review_href']) { ?>
<div class="tab_review_href"><a href="<?php echo $product['tab_review_href']; ?>">tab_review_href</a></div>
<?php } ?>

<?php if ($product['thumb']) { ?>


 var tab_review_href = $(element).find('.tab_review_href').html();
if (tab_review_href != null) {
html += '<div class="tab_review_href">' + tab_review_href + '</div>';
}

var image = $(element).find('.image').html();
if (image != null) {
html += '<div class="image">' + image + '</div>';
}


2 блока

  • +1 1

Share this post


Link to post
Share on other sites

Спасибо за решение, а как сделать, что бы прокручивалась страница к этой вкладке? А то если много опций, то вкладка отзывы открывается, но она находится (внизу) на втором экране и пользователю кажется, что ничего не произошло,а он просто попал в карточку товара

Share this post


Link to post
Share on other sites

а можно при данной реализации сделать так, чтобы еще и title страницы отзывов о товаре можно было редактировать, или просто добавить в него слово - отзывы

Edited by afwollis
не надо цитировать огромные сообщения

Share this post


Link to post
Share on other sites

...title страницы отзывов о товаре...

 

непонятно, о чем речь.

Share this post


Link to post
Share on other sites

...title страницы отзывов о товаре...

 

непонятно, о чем речь.

ссылка на страницу выглядит так - index.php?route=product/product&product_id=40&_tab=review

а может ли у этой страницы быть свой <title> ... </title> не такой как у продукта - index.php?route=product/product&product_id=40

Share this post


Link to post
Share on other sites

да, может.

Share this post


Link to post
Share on other sites

например, так (сравнивайте с кодом выше)

/* [w] */
$this->data['_tab'] = '';
if (isset($this->request->get['_tab'])) {
	$this->data['_tab'] = $this->request->get['_tab'];
	$this->document->setTitle($product_info['name'].' > '.$this->language->get('text_reviews'));
}
  • +1 1

Share this post


Link to post
Share on other sites

как сделать, что бы страница прокручивалась к вкладке отзывы при переходе, а то кажется, что ничего не произошло, просто попали на страницу товара. 

 

для этого надо в шаблоне карточки товара после

$('#tab-<?php echo $_tab; ?>-ctrl').trigger('click');
всего лишь добавить следующий код
$('html, body').animate({
scrollTop: $('#tab-<?php echo $_tab; ?>-ctrl').offset().top
}, 2000);
  • +1 2

Share this post


Link to post
Share on other sites

Отлично теперь бомба :-)

Edited by afwollis
overquote deleted

Share this post


Link to post
Share on other sites

ссылка на страницу выглядит так - index.php?route=product/product&product_id=40&_tab=review

подскажите как сделать что бы просто была такая же ссылка как на страницу товара index.php?route=product/product&product_id=40&  БЕЗ ДОБАВЛЕНИЯ _tab=review Спасибо!

Share this post


Link to post
Share on other sites

Подскажите когда включаешь сео про то при переходе страница не прокручивается, так как без сео про ссылка имеет вид http://site.ru/kamera/sony_3421-01?_tab=review  а когда включаешь сео про при наведении видно, что она такая http://site.ru/kamera/sony_3421-01 без ?_tab=review и поэтому при переходе не прокручивается!!!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.