Jump to content
Sign in to follow this  
V4mp

Править модуль "Категории" - неактивная ссылка на саму себя

Recommended Posts

ocStore 1.5.5.1.1
В связи с требованиями СЕО, сделал в родном модуле "Категории" ссылки неактивными на саму себя + раскрыл все категории. 
Модуль вывожу и на товаре - продвигаю категории в поисковиках.

Структура: категория - подкатегория - товар
 
Так вот именно на товаре неактивна ссылка подкатегории, которой принадлежит товар, это очень неудобно для юзабилити, тем более что магазин для женщин :(

Как сделать чтобы ссылка подкатегории была активной на карточке товара?
 
Код vQmode файла: 

<modification>
	<id><![CDATA[display all subcategories on category module 1.5.5.x]]></id>
	<version><![CDATA[1.1]]></version>
	<vqmver><![CDATA[2.2.1]]></vqmver>
	<author><![CDATA[Chetan Paliwal ( ChetanCx on OC  community forums)]]></author>
	<file name="catalog/view/theme/*/template/module/category.tpl">
		<operation>
			<search position="replace" offset="32"><![CDATA[<div class="box">]]></search>
			<add><![CDATA[<div class="box">
  <div class="box-heading"><?php echo $heading_title; ?></div>
  <div class="box-content">
    <ul class="box-category">
      <?php foreach ($categories as $category) { ?>
      <li>
	  <?php if ($category['category_id'] == $category_id && !$child_id) { ?>
	    <span class="active" style="
         font-family: 'PT Sans Narrow', 'sans-serif';
         color: #FFF;
         font-size: 22px;
         padding: 3px 0px 20px 11px;
         width: 177px;
         margin: -3px;
         border-top: 1px solid #FFF;
         background-color: #99AFAF;
         display: block;
         ;
         border-top-left-radius: 16px;"> 
        <?php echo $category['name']; ?></span>
		<?php } elseif ($category['category_id'] == $category_id && $child_id) { ?>
        <a href="<?php echo $category['href']; ?>" class="active" ><?php echo $category['name']; ?></a>
		<?php } else { ?>
        <a href="<?php echo $category['href']; ?>" class="active" ><?php echo $category['name']; ?></a>
        <?php } ?>
        <?php if ($category['children']) { ?>
        <ul>
          <?php foreach ($category['children'] as $child) { ?>
          <li>
            <?php if ($child['category_id'] == $child_id) { ?>
			<span class="active"><?php echo $child['name']; ?></span>
            <?php } else { ?>
            <a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a>
            <?php } ?>
          </li>
          <?php } ?>
        </ul>
        <?php } ?>
      </li>
      <?php } ?>
	  <li><a href="http://top-shopping.com.ua/specials" style="
           margin-top: 2px;
           ">СКИДКИ !!!</a>
	  </li>
    </ul>
  </div>
</div>]]></add>
		</operation>
	</file>
</modification>

Ссылка на товар - http://top-shopping.com.ua/platya-new/vesna-leto/platye-00301-9135/

  • +1 1

Share this post


Link to post
Share on other sites

Может быть создать чистый стандартный клон Категорий, отключить исправленный модуль на товарах, и вывести клон на товарах без неактивных ссылок? Только как реализовать х3, бьюсь над данным вопросом уже неделю, гугл не знает ответа(

Хотя что-то мне подсказывает, что решение будет достаточно простым  :-)

Share this post


Link to post
Share on other sites

Решение суперпросто: ваш vqmod редактирует шаблон, а ссылка формируется в контроллере.

Share this post


Link to post
Share on other sites

Спасибо, но у меня познания программирования крайне слабые, боюсь напортачить, могли бы вы выложить измененный код контроллера? Вопрос крайне интересный, многие скажут вам спасибо за развернутый ответ  :-)

Share this post


Link to post
Share on other sites

Вот нужный кусок кода контроллера, что тут нужно сделать? 

class ControllerModuleCategory extends Controller {
	protected function index($setting) {
		$this->language->load('module/category');
		
    	$this->data['heading_title'] = $this->language->get('heading_title');
		
		if (isset($this->request->get['path'])) {
			$parts = explode('_', (string)$this->request->get['path']);
		} else {
			$parts = array();
		}
		
		if (isset($parts[0])) {
			$this->data['category_id'] = $parts[0];
		} else {
			$this->data['category_id'] = 0;
		}
		
		if (isset($parts[1])) {
			$this->data['child_id'] = $parts[1];
		} else {
			$this->data['child_id'] = 0;
		}
							
		$this->load->model('catalog/category');

		$this->load->model('catalog/product');

		$this->data['categories'] = array();

		$categories = $this->model_catalog_category->getCategories(0);
Пробовал различные комбинации 0 или 1 - результата нет

Share this post


Link to post
Share on other sites

Помогите пожалуйста, очень надо  :(

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.