SEO Thresh 293 Report post Posted January 29, 2016 Доброе утро, форумчане. Ситуация такова, я понял что на оф. форуме опенкарта сидят один выпендрежники и павлины(( и помощи от них не дождаться...буду просить у любимой публики сеошников. Суть - кто может подсказать что,где убрать что бы не выводился 3 уровень категорий в главном верхнем меню опенкарта. Просьба не кидать тапками если вопрос нубский, я только начал) s003.radikal.ru/i201/1601/6f/2153293f82e3.png - выделенное надо убрать...Заранее всем спасибо! Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 Доброе утро, форумчане. Ситуация такова, я понял что на оф. форуме опенкарта сидят один выпендрежники и павлины(( и помощи от них не дождаться...буду просить у любимой публики сеошников. Суть - кто может подсказать что,где убрать что бы не выводился 3 уровень категорий в главном верхнем меню опенкарта. Просьба не кидать тапками если вопрос нубский, я только начал) s003.radikal.ru/i201/1601/6f/2153293f82e3.png - выделенное надо убрать...Заранее всем спасибо! Доброе утро. Посмотри в самих подкатегориях, стоит на вкладке "Данные" галка? Главное меню: Показывать в главном меню (только для главных родительских категорий). Quote Share this post Link to post Share on other sites
SEO Thresh 293 Report post Posted January 29, 2016 Доброе утро. Посмотри в самих подкатегориях, стоит на вкладке "Данные" галка? Главное меню: Показывать в главном меню (только для главных родительских категорий). спасибо, но нет...тут все четко...к тому же если бы стояла галочка, тогда мои подкатегории ушли бы именно в главное меню...а так мне просто надо убрать из всплывающего меню...на скрине выделил для наглядности... Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 спасибо, но нет...тут все четко...к тому же если бы стояла галочка, тогда мои подкатегории ушли бы именно в главное меню...а так мне просто надо убрать из всплывающего меню...на скрине выделил для наглядности... В общем заходишь в каждое родительскую категорию, вкладка Данные В колонке: Колонки: Количество колонок в выпадающем меню категорий (только для главных родительских категорий). Необходимо поставить значение 0 и будет тебе счастье Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 спасибо, но нет...тут все четко...к тому же если бы стояла галочка, тогда мои подкатегории ушли бы именно в главное меню...а так мне просто надо убрать из всплывающего меню...на скрине выделил для наглядности... нет. блин не то вообще написал. погоди Quote Share this post Link to post Share on other sites
SEO Thresh 293 Report post Posted January 29, 2016 В общем заходишь в каждое родительскую категорию, вкладка Данные В колонке: Колонки: Количество колонок в выпадающем меню категорий (только для главных родительских категорий). Необходимо поставить значение 0 и будет тебе счастье и опять там все по нулям...((проверено 3 раза Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 и опять там все по нулям...((проверено 3 раза Сначала бекап сделай. Вообще в админке в редактировании категории во вкладке ДАННЫЕ есть такое поле “Столбцы:“. Там настраивается количество столбцов в выпадающем списке для пункта меню. Это поле мы и будем использовать, добавив в файл контроллера header.php небольшой хак. Смысл модификации в том, что если в поле ” Столбцы: ” ввести цифру ноль, то выпадающее меню вообще не будет выводиться. Итак модифицируем файл catalog/controller/common/header.php Практически в самом низу файла находим 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $children_data[] = array( 'name' => $child['name'] . ' (' . $product_total . ')', 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } И заменяем на 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 if($category['column']){ $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $children_data[] = array( 'name' => $child['name'] . ' (' . $product_total . ')', 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } } Суть в том, что этот участок кода после модификации выполнится только в том случае, если в поле ” Столбцы: ” будет стоять число, отличное от нуля. Quote Share this post Link to post Share on other sites
SEO Thresh 293 Report post Posted January 29, 2016 Сначала бекап сделай. Вообще в админке в редактировании категории во вкладке ДАННЫЕ есть такое поле “Столбцы:“. Там настраивается количество столбцов в выпадающем списке для пункта меню. Это поле мы и будем использовать, добавив в файл контроллера header.php небольшой хак. Смысл модификации в том, что если в поле ” Столбцы: ” ввести цифру ноль, то выпадающее меню вообще не будет выводиться. Итак модифицируем файл catalog/controller/common/header.php Практически в самом низу файла находим 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $children_data[] = array( 'name' => $child['name'] . ' (' . $product_total . ')', 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } И заменяем на 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 if($category['column']){ $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $children_data[] = array( 'name' => $child['name'] . ' (' . $product_total . ')', 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } } Суть в том, что этот участок кода после модификации выполнится только в том случае, если в поле ” Столбцы: ” будет стоять число, отличное от нуля. К сожалению не могу найти или просто слепой...у меня версия 1.5.6.4 если это что то изменит... <?php class ControllerCommonHeader extends Controller { protected function index() { $this->data['title'] = $this->document->getTitle(); // start body_class code $current_path = $this->request->get; if (empty($current_path) || $current_path['route'] == 'common/home') { $body_class = 'home'; } else { $body_class = explode('/', str_replace('product/', '', $current_path['route'])); unset($current_path['route']); if (isset($current_path['_route_'])) { $body_class = array_merge($body_class, explode('/', str_replace('-', '_', $current_path['_route_']))); unset($current_path['_route_']); } foreach ($current_path as $key => $value) { $body_class[] = $key . "_" . $value; } $body_class = 'page_' . implode(" page_", array_unique($body_class)); } $body_class .= ' lang_' . $this->language->get('code'); $this->data['body_class'] = $body_class; // end body_class code if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) { $server = $this->config->get('config_ssl'); } else { $server = $this->config->get('config_url'); } if (isset($this->session->data['error']) && !empty($this->session->data['error'])) { $this->data['error'] = $this->session->data['error']; unset($this->session->data['error']); } else { $this->data['error'] = ''; } $this->data['base'] = $server; $this->data['description'] = $this->document->getDescription(); $this->data['keywords'] = $this->document->getKeywords(); $this->data['links'] = $this->document->getLinks(); $this->data['styles'] = $this->document->getStyles(); $this->data['scripts'] = $this->document->getScripts(); $this->data['lang'] = $this->language->get('code'); $this->data['direction'] = $this->language->get('direction'); $this->data['google_analytics'] = html_entity_decode($this->config->get('config_google_analytics'), ENT_QUOTES, 'UTF-8'); $this->data['name'] = $this->config->get('config_name'); if ($this->config->get('config_icon') && file_exists(DIR_IMAGE . $this->config->get('config_icon'))) { $this->data['icon'] = $server . 'image/' . $this->config->get('config_icon'); } else { $this->data['icon'] = ''; } if ($this->config->get('config_logo') && file_exists(DIR_IMAGE . $this->config->get('config_logo'))) { $this->data['logo'] = $server . 'image/' . $this->config->get('config_logo'); } else { $this->data['logo'] = ''; } $this->language->load('common/header'); $this->data['text_home'] = $this->language->get('text_home'); $this->data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0)); $this->data['text_shopping_cart'] = $this->language->get('text_shopping_cart'); $this->data['text_search'] = $this->language->get('text_search'); $this->data['text_welcome'] = sprintf($this->language->get('text_welcome'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL')); $this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL')); $this->data['text_account'] = $this->language->get('text_account'); $this->data['text_checkout'] = $this->language->get('text_checkout'); $this->data['home'] = $this->url->link('common/home'); $this->data['wishlist'] = $this->url->link('account/wishlist', '', 'SSL'); $this->data['logged'] = $this->customer->isLogged(); $this->data['account'] = $this->url->link('account/account', '', 'SSL'); $this->data['shopping_cart'] = $this->url->link('checkout/cart'); $this->data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL'); // Daniel's robot detector $status = true; if (isset($this->request->server['HTTP_USER_AGENT'])) { $robots = explode("\n", trim($this->config->get('config_robots'))); foreach ($robots as $robot) { if ($robot && strpos($this->request->server['HTTP_USER_AGENT'], trim($robot)) !== false) { $status = false; break; } } } // A dirty hack to try to set a cookie for the multi-store feature $this->load->model('setting/store'); $this->data['stores'] = array(); if ($this->config->get('config_shared') && $status) { $this->data['stores'][] = $server . 'catalog/view/javascript/crossdomain.php?session_id=' . $this->session->getId(); $stores = $this->model_setting_store->getStores(); foreach ($stores as $store) { $this->data['stores'][] = $store['url'] . 'catalog/view/javascript/crossdomain.php?session_id=' . $this->session->getId(); } } // Search if (isset($this->request->get['search'])) { $this->data['search'] = $this->request->get['search']; } else { $this->data['search'] = ''; } // Menu $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->data['categories'] = array(); $categories_1 = $this->model_catalog_category->getCategories(0); foreach ($categories_1 as $category_1) { if ($category_1['top']) { $level_2_data = array(); $categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']); foreach ($categories_2 as $category_2) { $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $data = array( 'filter_category_id' => $category_3['category_id'], 'filter_sub_category' => true ); // $product_total = $this->model_catalog_product->getTotalProducts($data); $level_3_data[] = array( // 'name' => $child['name'] . ' (' . $product_total . ')', 'name' => $category_3['name'], 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id']) ); } $level_2_data[] = array( 'name' => $category_2['name'], 'children' => $level_3_data, 'column' => $category_2['column'] ? $category_2['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id']) ); } // Level 1 $this->data['categories'][] = array( 'name' => $category_1['name'], 'children' => $level_2_data, 'column' => $category_1['column'] ? $category_1['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id']), 'id' => $category_1['category_id'] ); } } $this->children = array( 'module/language', 'module/currency', 'module/cart' ); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) { $this->template = $this->config->get('config_template') . '/template/common/header.tpl'; } else { $this->template = 'default/template/common/header.tpl'; } $this->render(); } } ?> вот мой хедер( Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 и опять там все по нулям...((проверено 3 раза Забыл спросить, на всякий случай спрошу, а в подкатегориях второго уровня тоже по нулям стоит? Quote Share this post Link to post Share on other sites
SEO Thresh 293 Report post Posted January 29, 2016 Забыл спросить, на всякий случай спрошу, а в подкатегориях второго уровня тоже по нулям стоит? да) Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 да) Слушай, а зачем вообще убирать? Для SEO конечная страница желательно что бы была в 3-х кликах от главной страницы. Лучше вывести все категории в верхнем меню (главная категория - подкатегория - под подкатегория), чтобы можно было попасть в любую категорию с главного меню. Что бы не было дублирования меню левого и верхнего лучше поставить модуль подкатегорий. Quote Share this post Link to post Share on other sites
SEO Thresh 293 Report post Posted January 29, 2016 (edited) Слушай, а зачем вообще убирать? Для SEO конечная страница желательно что бы была в 3-х кликах от главной страницы. Лучше вывести все категории в верхнем меню (главная категория - подкатегория - под подкатегория), чтобы можно было попасть в любую категорию с главного меню. Что бы не было дублирования меню левого и верхнего лучше поставить модуль подкатегорий. подподкатегорий просто будет настолько много что лучше в главном меню их не отображать...я знаю свою нишу и никто 3 уровень в меню не практикует...скажу больше у меня будет еще и 4ый)) просто основное продвижение у меня будет по категориям товаров а не по карточкам...карточки и так на оптимизации под нч вылезут я больше чем уверен... Edited January 29, 2016 by SEO Thresh Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 подподкатегорий просто будет настолько много что лучше в главном меню их не отображать...я знаю свою нишу и никто 3 уровень в меню не практикует...скажу больше у меня будет еще и 4ый)) просто основное продвижение у меня будет по категориям товаров а не по карточкам...карточки и так на оптимизации под нч вылезут я больше чем уверен... Мне помог в свое время тот код, правда потом все вернул обратно. Делай методом тыка =) попробуй закомментируй след. код и посмотри что будет. $level_3_data[] = array( // 'name' => $child['name'] . ' (' . $product_total . ')', 'name' => $category_3['name'], 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id']) ); В общем просто надо убрать вывод третьего уровня. Честно сам всегда делаю методом тыка =) не программист я Quote Share this post Link to post Share on other sites
SEO Thresh 293 Report post Posted January 29, 2016 Мне помог в свое время тот код, правда потом все вернул обратно. Делай методом тыка =) попробуй закомментируй след. код и посмотри что будет. $level_3_data[] = array( // 'name' => $child['name'] . ' (' . $product_total . ')', 'name' => $category_3['name'], 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id']) ); В общем просто надо убрать вывод третьего уровня. Честно сам всегда делаю методом тыка =) не программист я спасибо за совет...попробую) Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 спасибо за совет...попробую) Смотрю на сайте не выводит, получилось или просто отключил? Quote Share this post Link to post Share on other sites
SEO Thresh 293 Report post Posted January 29, 2016 Смотрю на сайте не выводит, получилось или просто отключил? да отлично спасибо! только теперь левое меню улетело в категориях...аррр весело будет) Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 да отлично спасибо! только теперь левое меню улетело в категориях...аррр весело будет) Хорошо, верни обратно тот код и закомментируй этот $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $data = array( 'filter_category_id' => $category_3['category_id'], 'filter_sub_category' => true ); Quote Share this post Link to post Share on other sites
SEO Thresh 293 Report post Posted January 29, 2016 Хорошо, верни обратно тот код и закомментируй этот $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $data = array( 'filter_category_id' => $category_3['category_id'], 'filter_sub_category' => true ); ошибку вообще дает, я вернул все на место даже открыл 3 уровень в меню как было, все ровно...на 2 уровне нет левого меню, на 3ем есть...че за бред(( Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 ошибку вообще дает, я вернул все на место даже открыл 3 уровень в меню как было, все ровно...на 2 уровне нет левого меню, на 3ем есть...че за бред(( Ты код не менял? все по-старому? только закомментировал? все должно вернуться обратно Quote Share this post Link to post Share on other sites
SEO Thresh 293 Report post Posted January 29, 2016 Ты код не менял? все по-старому? только закомментировал? все должно вернуться обратно да я только все комментил... Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 да я только все комментил... попробуй кеш сбросить. Хотя это точно не в этом дело. Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 Слушай, ну у тебя все категории выводят левое меню. Зайди в саму категорию " Все для смартфонов" и вкладка дизайн, посмотри что там выбрано. Quote Share this post Link to post Share on other sites
SEO Thresh 293 Report post Posted January 29, 2016 (edited) Слушай, ну у тебя все категории выводят левое меню. Зайди в саму категорию "Все для смартфонов" и вкладка дизайн, посмотри что там выбрано. уже проверил...лажа лажная я ваще в непонятках...если ты на сайте сам глянь...я думал что дело в добавлении товара...но нет...настройки то для категорий общие...в категории для смартфонов нет левого меню а для планшетов есть...ВТФ! О_О вот товар вообще из категории убрал, все ровно нет меню выбрано "default" вот и ткнул видимо случайно...ваш метод тыка срабатывает пока на ура))) в других категориях вообще пусто, а сюда видимо случайно дефолт залил...спасибо) Edited January 29, 2016 by SEO Thresh Quote Share this post Link to post Share on other sites
Curant 1 Report post Posted January 29, 2016 уже проверил...лажа лажная я ваще в непонятках...если ты на сайте сам глянь...я думал что дело в добавлении товара...но нет...настройки то для категорий общие...в категории для смартфонов нет левого меню а для планшетов есть...ВТФ! О_О вот товар вообще из категории убрал, все ровно нет меню выбрано "default" вот и ткнул видимо случайно...ваш метод тыка срабатывает пока на ура))) в других категориях вообще пусто, а сюда видимо случайно дефолт залил...спасибо) Пожалуйста ) главное пробовать и смотреть на результат) ну и конечно постоянно бекап делать 1 SEO Thresh reacted to this Quote Share this post Link to post Share on other sites
SEO Thresh 293 Report post Posted January 29, 2016 Пожалуйста ) главное пробовать и смотреть на результат) ну и конечно постоянно бекап делать я ленивый я код просто коменчу))) Quote Share this post Link to post Share on other sites