[Помогите] Якорь на категории

Тема в разделе "OpenCart", создана пользователем gtx, 4 дек 2013.

  1. gtx

    gtx

    Регистрация:
    8 янв 2013
    Сообщения:
    108
    Симпатии:
    10
    Не получается сделать что бы когда переходишь в категории и срабатывал якорь, что бы страница проматывалась под баннер

    пример

    http://cmmural.ru/vilochnue-pogruzchiki#show
     
  2. IgorVS

    IgorVS

    Регистрация:
    23 окт 2013
    Сообщения:
    74
    Симпатии:
    17
    Банер, это ты имеешь в виду, как я понял, шапку с картинкой. У меня срабатывает всё, верхняя строчка до которой мотается начинаетчя с поиска по сайту так. Значит вопрос к браузеру, у меня мозила, если что. Возможно у тебя кеш в браузере надо почистить или обновить страницу.
     
  3. gtx

    gtx

    Регистрация:
    8 янв 2013
    Сообщения:
    108
    Симпатии:
    10
    Да но это я для примера сайт дал, а мне нужно на опенкарте
     
  4. IgorVS

    IgorVS

    Регистрация:
    23 окт 2013
    Сообщения:
    74
    Симпатии:
    17
    Давай подробнее, что и как делал и ссылка на сайт, хотя бы описание как и что у тебя на странице стоит.
    У меня встало так. Файл /catalog/language/russian/module/category.php, вставил прям в строчку.
    PHP:
    <?php
    // Heading
    $_['heading_title'] = '<a name="имя_якоря"></a>Категории';
    ?>
    Всё перематывается прям под шапку на категорию.
     
    cereberlum и gtx нравится это.
  5. gtx

    gtx

    Регистрация:
    8 янв 2013
    Сообщения:
    108
    Симпатии:
    10

    а как присвоить якорь до всех ссылок категорий

    вот например для одной ссылки
    <ahref="testimonials.html#shopping">ПОКУПКА</a>
     
  6. IgorVS

    IgorVS

    Регистрация:
    23 окт 2013
    Сообщения:
    74
    Симпатии:
    17
    А seopro включён? Или другой сео всяк.
     
  7. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    251
    Симпатии:
    159
    Вообще не понятно в чем проблема. Просто в tpl в нужные места проставяете якоря и меняете соответственно необходимые ссылки
     
  8. IgorVS

    IgorVS

    Регистрация:
    23 окт 2013
    Сообщения:
    74
    Симпатии:
    17
    Знаете, Vlad-i-Slav, а я честно говоря, что то ненашёл. В старой версии opencart нашёл в файле /catalog/controller/module/category.php, вставил.
    PHP:
                    $output .= '<a href="' $this->model_tool_seo_url->rewrite(HTTP_SERVER 'index.php?route=product/category&amp;path=' $new_path '#имя_якоря')  . '"><b>' $result['name'] . '</b></a>';
                } else {
                    
    $output .= '<a href="' $this->model_tool_seo_url->rewrite(HTTP_SERVER 'index.php?route=product/category&amp;path=' $new_path '#имя_якоря')  . '">' $result['name'] . '</a>';
    И всех делов.
    В последней стабильной ocstore так и неразобрался куда вставлять. Там /catalog/controller/module/category.php уже другой.
    PHP:
    <?php
    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);
      
            
    //Показывать или нет количество товаров
            
    $show_product_count $this->config->get('config_product_count');

            foreach (
    $categories as $category) {
                
    //Будем вычислять кол-во товаров в категориях только если это кол-во надо показывать
                
    if ($show_product_count) {
                    
    $total $this->model_catalog_product->getTotalProducts(array('filter_category_id' => $category['category_id']));
                }

                
    $children_data = array();

                
    $children $this->model_catalog_category->getCategories($category['category_id']);

                foreach (
    $children as $child) {
                    
    //Будем вычислять кол-во товаров в категориях только если это кол-во надо показывать
                    
    if ($show_product_count) {
                        
    $data = array(
                            
    'filter_category_id'  => $child['category_id'],
                            
    'filter_sub_category' => true
                        
    );

                        
    $product_total $this->model_catalog_product->getTotalProducts($data);

                        
    $total += $product_total;
                    }

                    
    $children_data[] = array(
                        
    'category_id' => $child['category_id'],
                        
    'name'        => $child['name'] . ($show_product_count ' (' $product_total ')' ''),
                        
    'href'        => $this->url->link('product/category''path=' $category['category_id'] . '_' $child['category_id'])
                    );  
                }

                
    $this->data['categories'][] = array(
                    
    'category_id' => $category['category_id'],
                    
    'name'        => $category['name'] . ($show_product_count ' (' $total ')' ''),
                    
    'children'    => $children_data,
                    
    'href'        => $this->url->link('product/category''path=' $category['category_id'])
                );
            }
      
            if (
    file_exists(DIR_TEMPLATE $this->config->get('config_template') . '/template/module/category.tpl')) {
                
    $this->template $this->config->get('config_template') . '/template/module/category.tpl';
            } else {
                
    $this->template 'default/template/module/category.tpl';
            }
      
            
    $this->render();
          }

    }
    ?>
    По идеи вот так надо.
    PHP:
                    $children_data[] = array(
                        
    'category_id' => $child['category_id'],
                        
    'name'        => $child['name'] . ($show_product_count ' (' $product_total ')' ''),
                        
    'href'        => $this->url->link('product/category''path=' $category['category_id'] . '_' $child['category_id'] . '#имя_якоря')
                    );  
                }

                
    $this->data['categories'][] = array(
                    
    'category_id' => $category['category_id'],
                    
    'name'        => $category['name'] . ($show_product_count ' (' $total ')' ''),
                    
    'children'    => $children_data,
                    
    'href'        => $this->url->link('product/category''path=' $category['category_id'] . '#имя_якоря')
                );    
    Но тогда при включённом seopro работать небудет. А с ним я ещё неразобрался.
    Так что если seopro выключен, то решение выше. Если нет, надо спросить у тех, кто уже разобрал его кодом достаточно.
    Кстати после внесения изменений надо обязательно чистить кеш в /system/cache, для внесения изменений.
    Пробуйте, должно получиться.
     
    Последнее редактирование: 8 дек 2013