Перейти к содержанию
SAY

[Решено] Активная вкладка на странице товара в зависимости от условий

Рекомендуемые сообщения

Всем привет.

 

Необходимо на странице товара при условии, что количество товара <1 и если у товара есть "похожие товары", то делать при открытии страницы товара делать активной закладку "похожие товары".

 

Буду делать на vqmod, не могу найти где при загрузке страницы  на закладки устанавливается class="selected", а а на блок с текстом style="display: block;".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я бы не рекомендовал делать то, что Вы собрались...
Вопервых у похожих товаров и так есть условие при котором эта вкладка диактивируется если похожих у товара на представленной странице нет...Этого условия вполне достаточно, чтобы похожие товары хорошо функционировали и не мешали поисковикам индексировать товар.
Во вторых display:none; ни к чему хорошему не приведет, особенно если он будет то включаться, то выключаться в зависимости от наличия главного товара на странице...Вы понимаете, что таким образом влияете на внутреннюю перелинковку товаров 
Ну и в третьих - вкладкам типа "похожие товар" и "описание" присваивается класс class="htabs"...если я Вас правильно понял конешн...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я бы не рекомендовал делать то, что Вы собрались...

Вопервых у похожих товаров и так есть условие при котором эта вкладка диактивируется если похожих у товара на представленной странице нет...Этого условия вполне достаточно, чтобы похожие товары хорошо функционировали и не мешали поисковикам индексировать товар.

Во вторых display:none; ни к чему хорошему не приведет, особенно если он будет то включаться, то выключаться в зависимости от наличия главного товара на странице...Вы понимаете, что таким образом влияете на внутреннюю перелинковку товаров 

 

Вы наверное не поняли мою задумку:

При отсутствии товара и при наличии у этого товара похожих товаров - клиенту показывать при открытии страницы товара сразу закладку "похожие товары", что бы клиент переходил на другие товары, которые в наличии (вывод в "похожие товары" только товары в наличии я уже реализовал).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в теории:
catalog/controller/product/product.php

добавить после 

$this->data['points'] = $product_info['points'];

вот это:

$this->data['quantity'] = $product_info['quantity'];

и после:

$this->data['products'][] = array(

вот это:

'quantity' => $result['quantity'],

а в шаблоне product.tpl добавляем условие прямо во вкладки, или как Вам уже будет удобней

<div <?php if ($product['quantity'] <= 0) { echo 'style="display:none"'; } ?> id="tab-related" class="tab-content">

опять же...написано на коленке - я не тестировал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в теории:

catalog/controller/product/product.php

добавить после 

$this->data['points'] = $product_info['points'];

вот это:

$this->data['quantity'] = $product_info['quantity'];

и после:

$this->data['products'][] = array(

вот это:

'quantity' => $result['quantity'],

а в шаблоне product.tpl добавляем условие прямо во вкладки, или как Вам уже будет удобней

<div <?php if ($product['quantity'] <= 0) { echo 'style="display:none"'; } ?> id="tab-related" class="tab-content">

опять же...написано на коленке - я не тестировал

Чего-то не то получается (даже с исправлением на коленного написания). Где в коде устанавливается class="selected" на закладку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в контроллере все правильно

в шаблоне заменяете строчку 

  <div id="tab-related" class="tab-content">

на

  <div <?php if ($quantity <= 0) { echo 'style="display:none"'; } ?> class="tab-content">

Или сделайте по своему

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Во - сконстраляпал.

 

Если кому надо вот готовый vqmod:

<modification>
	<id>RELATED ACTIVE</id>
	<version>1.0.0</version>
	<vqmver>1.2.3</vqmver>
	<author>SAY</author>
	<file name="catalog/view/theme/default/template/product/product.tpl">
		<operation>
			<search position="replace"><![CDATA[
  <div id="tabs" class="htabs"><a href="#tab-description"><?php echo $tab_description; ?></a>
			]]></search>
			<add><![CDATA[
  <div id="tabs" class="htabs"><a id="nonactive" href="#tab-description"><?php echo $tab_description; ?></a>
			]]></add>
		</operation>
		<operation>
			<search position="replace"><![CDATA[
    <a href="#tab-related"><?php echo $tab_related; ?> (<?php echo count($products); ?>)</a>
			]]></search>
			<add><![CDATA[
    <a id="active" href="#tab-related"><?php echo $tab_related; ?> (<?php echo count($products); ?>)</a>
<?php if ($stock == "Нет в наличии") { ?>
<script>
  $(document).ready(function(){
    $('#nonactive').removeClass('selected');
    $('#active').addClass('selected');
    $('#tab-description').css( 'display', 'none' );
    $('#tab-related').css( 'display', 'block' );
  });
</script>
<?php } ?>
			]]></add>
		</operation>
	</file>
</modification>

Описание: на странице товара при условии, что статус товара "нет в наличии" и если у товара есть "похожие товары", то делать при открытии страницы товара делать активной закладку "похожие товары".

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

перед

$this->model_catalog_product->updateViewed($this->request->get['product_id']);
добавить

$this->data['quantity'] = $product_info['quantity'];
[=== catalog/view/theme/default/template/product/product.tpl ===]

<a href="#tab-related"><?php echo $tab_related; ?> (<?php echo count($products); ?>)</a>
заменить на

<a id="tab_related_ctrl" href="#tab-related"><?php echo $tab_related; ?> (<?php echo count($products); ?>)</a>
<?php if ($quantity < 1) { ?>
<script type="text/javascript"><!--
$(document).ready(function(){
	$('#tab_related_ctrl').trigger('click');
});
//--></script>
<?php } ?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.