Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


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; } }

 

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

Надіслати
Поділитися на інших сайтах


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

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"... меню на том же месте..

 

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.