Добрый день. Версия oc 2.0. Подскажите как в header.tpl получить id категории? При обращении к $category_id получаем Undefined variable: category_id in /var/www/**/catalog/view/theme/my_theme/template/common/header.tpl on line 31 Спасибо.
вы не правильно обращаетесь, берется из массива categories, правильно будет так $category['category_id'] но и этого недостаточно нужно в контроллере сначала задать controller\common\header.php
не подскажите, что в контроллере прописать, для видимости массива? этого будет достаточно? Код: if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts);
откуда вы это взяли? по идее в этой части кода нужно изменить Спойлер: header.php Код: foreach ($categories as $category) { if ($category['top']) { // Level 2 $children_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $filter_data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $children_data[] = array( 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } // Level 1 $data['categories'][] = array( 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } } вот так Код: $children_data[] = array( 'category_id' => $child['category_id']; 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); и так Код: $data['categories'][] = array( 'category_id' => $category['category_id']; 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); ну и потом в header.tpl, вытягиваем Код: <?php foreach ($categories as $category) { echo $category['category_id']; } ?>
это кусок я взял из контроллера category.php уважаемый tsap из вашего сообщения не совсем понятно, что и куда прописать.
добавить в header.php вставьте например перед // Menu PHP: if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); $data['category_id'] = (int)array_pop($parts); } else { $data['category_id'] = ''; } P.S Пользуйтесь тегами code в сообщениях для кода.
это Код: $children_data[] = array( 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); на это Код: $children_data[] = array( 'category_id' => $child['category_id']; 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); это Код: $data['categories'][] = array( 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); на это Код: $data['categories'][] = array( 'category_id' => $category['category_id']; 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); так понятнее
хорошо. только я его не нашёл. В вашем случае результат, тот же Notice: Undefined variable: category_id in /var/www.......... да, спасибо.
в смысле не нашли? что? Куда вставить? Вставьте например перед // Menu быть такого не может. Может у вас в папке system/modification есть одноименный модифицированный файл? Удалите его пока, а после внесение изменений обновите кеш модификатора.
неправильно вызвали Код: <?php foreach ($categories as $category) { echo $category['category_id']; } ?> Romans, а что хранится в request->get['path']?