Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


 Поделиться

Рекомендованные сообщения

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

 

подскажите как вывести свои пункты меню в коде ссылками в нестандартной теме 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; } }

 

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

Ссылка на комментарий
Поделиться на других сайтах


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

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

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

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

Ссылка на комментарий
Поделиться на других сайтах

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

 

<?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" : "";
	}
}

?>

 

Ссылка на комментарий
Поделиться на других сайтах


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

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

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

$link - ваш линк

$name - текст

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

Ссылка на комментарий
Поделиться на других сайтах

спасибо,

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

$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 просто дуб

Ссылка на комментарий
Поделиться на других сайтах


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

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

Ссылка на комментарий
Поделиться на других сайтах

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

 

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

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.