Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Как добавить пункты меню в нестандартный шаблон?


Recommended Posts

Приветствую,

 

подскажите как вывести свои пункты меню в коде ссылками в нестандартной теме opencart

 

вот сам кусок кода в header.tpl где нужно вставить ссылки (где <a href="#">123</a> добавленный мною пункт меню):

	<?php if ($categories) { ?>
	<div class="container">
		<div id="menu-gadget" class="menu-gadget">
			<div id="menu-icon" class="menu-icon"><?php echo $text_category; ?></div>
			<?php if ($categories_tm) {  echo $categories_tm; } ?>
		</div>
	</div>
	
	<script type="text/javascript">
		jQuery(window).load(function () {
		if ($('body').width() > 767) {
			$('#tm_menu').TMStickUp({})
		
		}});
	</script>

	<div id="tm_menu" class="nav__primary">
		<div class="container">
			<?php if ($categories_tm) {  echo $categories_tm; } ?><a href="#">123</a>
			<div class="clear"></div>
		</div>
	</div>
	<?php } ?>

 

Но если размещаю так, тогда получается одно под другим:

krD8GJdSEYVKkr.jpg

 

как сделать в ряд. а не в столбик?

 

вот сss файл меню:

/*========================================================
                      Menu styles
=========================================================*/
.nav__primary .menu {
  display: inline-block;
  width: 100%;
  position: relative; }
  .nav__primary .menu:before, .nav__primary .menu:after {
    display: table;
    content: "";
    line-height: 0; }
  .nav__primary .menu:after {
    clear: both; }

.nav__primary {
  margin: 35px 0 18px;
  font: 300 14px/16px "Ubuntu", sans-serif;
  background: url(../image/menu-shadow.png) repeat-x center bottom; }
  .nav__primary ul {
    list-style: none;
    margin: 0;
    padding: 0; }
  .nav__primary .menu > li {
    float: left;
    padding: 11px 11px 11px; }
    .nav__primary .menu > li:first-child {
      padding-left: 0; }
    .nav__primary .menu > li > a {
      display: block;
      text-transform: uppercase;
      color: #2d2e42;
      font: 300 14px/16px "Ubuntu", sans-serif; }
    .nav__primary .menu > li.sfHover > a, .nav__primary .menu > li > a:hover, .nav__primary .menu > li > a.active {
      color: #428bca; }
  .nav__primary .menu > li > ul {
    display: none;
    position: absolute;
    background: #fff;
    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.11);
    -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.11);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.11);
    z-index: 99;
    left: 0;
    top: 100%;
    width: 100%;
    margin-top: 0;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box; }
    .nav__primary .menu > li > ul li {
      position: relative;
      display: table-cell;
      padding: 25px 25px 22px; }
      .nav__primary .menu > li > ul li a {
        text-transform: uppercase;
        font: 300 18px/22px "Ubuntu", sans-serif;
        color: #2d2e42; }
      .nav__primary .menu > li > ul li ul {
        padding-top: 18px;
        border-top: 1px solid #dcdcdc;
        margin-top: 18px; }
        .nav__primary .menu > li > ul li ul li {
          display: block;
          padding: 7px 0;
          opacity: 1 !important; }
          .nav__primary .menu > li > ul li ul li a {
            font: 300 12px/14px "Ubuntu", sans-serif;
            color: #2d2e42; }
    .nav__primary .menu > li > ul a {
      display: inline-block; }
    .nav__primary .menu > li > ul li.active > a, .nav__primary .menu > li > ul a:hover, .nav__primary .menu > li > ul li.sfHover > a {
      color: #428bca; }
    .nav__primary .menu > li > ul ul {
      position: relative;
      display: block !important;
      opacity: 1 !important;
      visibility: visible !important;
      width: 100%;
      table-layout: fixed; }
      .nav__primary .menu > li > ul ul:before {
        display: none; }
  .nav__primary .menu > li.sfHover > ul {
    display: table !important; }

.nav__primary .menu > li > .sf-with-ul:before,
.nav__primary .menu ul > li > .sf-with-ul:before {
  display: none; }

@media (min-width: 992px) and (max-width: 1199px) {
  .nav__primary .menu > li {
    padding-left: 5px;
    padding-right: 5px; }
    .nav__primary .menu > li > a {
      font-size: 13px; } }
@media (min-width: 768px) and (max-width: 991px) {
  .nav__primary .menu > li {
    padding-left: 4px;
    padding-right: 4px; }
    .nav__primary .menu > li > a {
      font-size: 11px; }
    .nav__primary .menu > li > ul li a {
      font-size: 14px;
      line-height: 16px; }
    .nav__primary .menu > li > ul li ul {
      margin-top: 10px;
      padding-top: 10px; }
      .nav__primary .menu > li > ul li ul li {
        padding: 4px 0; }
        .nav__primary .menu > li > ul li ul li a {
          font-size: 10px;
          line-height: 12px; } }
@media (max-width: 767px) {
  .nav__primary {
    display: none; } }
/*==================  Stuck menu  ======================*/
.isStuck {
  z-index: 1001; }

@media only screen and (max-width: 991px) {
  .isStuck {
    display: none !important; } }

 

заранее благодарен за помощь

Link to post
Share on other sites

отзовитесь добрые люди - все еще нужна помощь)

Link to post
Share on other sites

Ви не там добавляете код.

Eсли не ошибаюсь eти г...окодери формируют html в модели.

Ищите ваше меню в catalog/model/design

А лучше меняйте шаблон.

Link to post
Share on other sites

и правда г..кодеры) нашел там где вы описали, шаблон менять уже не будем, подскажите пожалуйста где тут что менять?

 

<?php
class ModelDesignTopmenu extends Model {
	public function getMenu() {

		if (isset($this->request->get['path'])) {
			$parts = explode('_', (string)$this->request->get['path']);
		} else {
			$parts = array();
		}

		$this->load->model('catalog/category');
		$this->load->model('catalog/product');
		
		$top_cats = $this->model_catalog_category->getCategories(0);
		$category = "<ul class=\"menu\">\n";
		foreach ($top_cats as $top_cat)	{
			if ($top_cat['top']) {
				$name	= $top_cat['name'];
				$href	= $this->url->link('product/category', 'path=' . $top_cat['category_id']);
				$class	= in_array($top_cat['category_id'], $parts) ?  " class=\"active\"" : "";
				$category .= "<li>\n<a href=\"".$href."\"".$class.">".$name."</a>\n";
				$category .= $this->getCatTree($top_cat['category_id'])."\n</li>\n";
			}
		}

		return $category."\n</ul>\n";
	} 	

	function getCatTree ($category_id = 0)	{
		if (isset($this->request->get['path'])) {
			$parts = explode('_', (string)$this->request->get['path']);
		} else {
			$parts = array();
		}

		$this->load->model('catalog/category');
		$this->load->model('catalog/product');
		$category_data = "";

		$categories = $this->model_catalog_category->getCategories((int)$category_id);

		foreach ($categories as $category) {
				$data = array(
					'filter_category_id'  => $category['category_id'],
					'filter_sub_category' => true	
				);		
				$product_total = $this->model_catalog_product->getTotalProducts($data);
			$name = $category['name'] ;
			$href = $this->url->link('product/category', 'path=' . $category['category_id']);
			$class = in_array($category['category_id'], $parts) ?  " class=\"active\"" : "";
			$parent = $this->getCatTree($category['category_id']);
			if ($parent) {
				$class = $class	? " class=\"active\"" : " class=\"parent\"";
			}
			
				$category_data .= "<li>\n<a href=\"".$href."\"".$class.">".$name."</a>".$parent."\n</li>\n";
			

		}

		return strlen($category_data) ? "<ul>\n".$category_data."\n</ul>\n" : "";
	}
}

?>

 

Link to post
Share on other sites

Добавить можно перед

return $category."\n</ul>\n";

$category .= "<li>\n<a href=\"".$link."\"".$class.">".$name."</a>\n</li>\n";

$link - ваш линк

$name - текст

но дело в том что они еще добавляют $class(ид категории) и по класс определяют active. У вас класса не будеть и в меню активная ссилка не будет отображатся правильно.

Link to post
Share on other sites

спасибо,

сделал получилось вот так:

$category .= "<li>\n<a href=\"".dostavka."\"".$class.">".Доставка."</a>\n</li>\n";

 

появилось,но вместе с такой ошибкой:

Quote

Notice: Use of undefined constant dostavka - assumed 'dostavka' in /home/site/public_html/catalog/model/design/topmenu.php on line 25Notice: Use of undefined constant Доставка - assumed 'Доставка' in /home/site/public_html/catalog/model/design/topmenu.php on line 25

 

при том что не меняй, ошибка то в написании сайта, то в названии, блин что за меню уродское такое..  может у меня в синтаксисе какие то ошибки, в php просто дуб

Link to post
Share on other sites

$category .= "<li>\n<a href=/dostavka".$class.">Доставка</a>\n</li>\n";

но клас будет неправильний, так как он определяется по ид категории, а у вас ето страница.

Link to post
Share on other sites

если вас не затруднит, напишите как центрировать меню, куда бы я в стили не вписывал text-align: center; или в html <div align="center"... меню на том же месте..

 

выше есть файл стилей меню, подскажите если знаете, вроде бы и просто, а не могу сделать..

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By Sa1det
      Данный модуль позволяет переносить информацию о товарах из сервиса Мой Склад в Opencart.
       
      Модуль включает в себя следующие функции и настройки:
      Добавление товаров и категорий Обновление информации о товарах и категориях Обновление изображений и атрибутов товаров Возможность выбора полей, по которым будет выполнятся связывание товаров (Мой Склад -> Opencart) - "Код" -> "Модель"
      - "Внешний код" -> "Модель"
      - "Артикул" -> "Модель"
      Возможность выбора цены продажи, если их несколько Возможность выбора действия, которое будет осуществляться с товарами, которые есть в Opencart, но отсутствуют в Моем Складе - Ничего не делать
      - Обнулять остатки
      - Обнулять остатки и ставить статус "нет в наличии"
       
      Информация о  работе модуля:
      - Обмен данными происходит через API
      - Модуль может работать с Cron (планировщик)
      - Модуль имеет открытый код
      - Модуль легко настраивается
      - Идентификаторы, по которым происходит связывание товаров должны быть уникальными для каждого товара
       
      Установка
      Установка данного модуля происходит через функцию "Установка расширений" в Opencart. Все что требуется - нажать на "Загрузить файл" и выбрать архив с модулем.
       
      Поддержка
      По всем возникающим вопросам можно обращаться через личные сообщения или в раздел FAQ
    • By Sa1det
      2000
      Скачать/Купить дополнение


      Синхронизация Opencart и Мой Склад
      Данный модуль позволяет переносить информацию о товарах из сервиса Мой Склад в Opencart.
       
      Модуль включает в себя следующие функции и настройки:
      добавление товаров и категорий обновление информации о товарах и категориях обновление изображений и атрибутов товаров возможность выбора полей, по которым будет выполнятся связывание товаров (Мой Склад -> Opencart) - "Код" -> "Модель"
      - "Внешний код" -> "Модель"
      - "Артикул" -> "Модель"
      возможность выбора цены продажи, если их несколько возможность выбора действия, которое будет осуществляться с товарами, которые есть в Opencart, но отсутствуют в Моем Складе - Ничего не делать
      - Обнулять остатки
      - Обнулять остатки и ставить статус "нет в наличии"
       
      Информация о  работе модуля:
      - обмен данными происходит через API;
      - модуль может работать с Cron (планировщик);
      - модуль имеет открытый код;
      - модуль легко настраивается.
      - идентификаторы, по которым происходит связывание товаров должны быть уникальными для каждого товара
       
      Установка
      Установка данного модуля происходит через функцию "Установка расширений" в Opencart. Все что требуется - нажать на "Загрузить файл" и выбрать архив с модулем.
       
      Поддержка
      По всем возникающим вопросам можно обращаться через личные сообщения или в раздел FAQ
      Добавил Sa1det Добавлено 12.01.2022 Категория Обмен данными Системные требования Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
    • By Slavik7
      Добрый день, Уважаемые специалисты! Впервые столкнулся с такой проблемой. Долго загружаются все страницы категорий (там где есть товары), если переходить на них в первый раз. И чем больше товаров в категории, тем дольше загрузка. Хотя товаров не так уж и много, примерно 5000 (это на всем сайте), а в самой большой категории около 1000.
       
      "DOMContentLoaded" и "Load" может достигать 30 секунд.

      Так же заметил, что после того как очищаю кэш в админке и перезагружаю главную страницу (с помощью горячих клавиш: Ctrl + Shift + R) то главная страница тоже долго загружается. "DOMContentLoaded" и "Load" около 20 секунд.

      Понимаю, что может быть очень много разных причин этой проблемы, но возможно вы сталкивались с этим и смогли решить данную проблему. Буду рад даже ссылкам на какие-то статьи по этой теме, или обсуждения. 

      Я пробовал отключать стандартные модули "Новинки" "Рекомендуемые товары" и т.д. и проблема с загрузкой главной страницы после очистки кэша, исчезла. Но это так себе решение. С таким же успехом можно просто убрать товары из категорий и они будут быстро загружаться.

      Мой сайт: https://bagcity.com.ua
      Версия OpenCart: 3.0.3.2
    • By 1DeX6
      Нужно сделать синхронизацию учета товаров между opencart 3 и YCLIENTS, а так же по возможности передачу информации по истории покупок клиента (бонусы, баллы и тп.). Документация API YCLIENTS 

      Пишите сразу за какой срок сделаете и цену. 
      Можно сюда или в личку
    • By fonclub
      750 10
      Скачать/Купить дополнение


      «Говорящие товары»
      Модуль «Говорящие товары» позволяет эмулировать общение товаров Вашего магазина между собой для привлечения внимания покупателя. Первый «пузырь» появляется после прокрутки страницы через заданное количество секунд, остальные через указанный промежуток. Каждый «пузырь» отображается заданное количество секунд. Возможности: - Для каждого товара можно задать несколько блоков с текстами. - В каждом блоке можно добавить неограниченное количество текстов. - Возможность задания своих стилей для «пузырей» в css файле catalog/view/theme/default/stylesheet/bubbles.css Демо http://oc2.7cub.ru/index.php?route=product/category&amp;path=24 
       
      Демо админки: http://oc2.7cub.ru/admin/index.php?route=extension/module/bubbles demo/demo
      Добавил fonclub Добавлено 06.09.2018 Категория Модули Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.