Перейти к содержанию
DeadMazay

[РЕШЕНО] Где взять ссылку для нового пункта меню?

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

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

Итак, появилось желание добавить в главное меню новые пункты, "Доставка и оплата" и "Контакты". Создал две статьи, залез в header.tpl, и сразу под

<div id="menu"> написал



<ul>
<li><a href="ссылка">Доставка и оплата</a></li>
<li><a href="ссылка">Контакты</a></li>
</ul>

где ссылка была взята при редактировании статьи и имела вид 

http://сайт.ру/admin/index.php?route=catalog/information/update&token=aa2eae7b526e874941c0aad4f153d57e&information_id=7

Ничего не добавилось. Пробовал удалить из ссылки "/admin/" и "update&token=aa2eae7b526e874941c0aad4f153d57e", вбить сео-ссылку, указанную при создании статьи, её же, но после "/information/", но пункты всё равно не появлялись. Установил стандартный модуль "Информация", в нём установил настройки Схема - Information, Расположение - Содержание шапки, Статус - Включено, во вкладке "Дизайн" настроек статьи тоже установил схему "Information", но пункты не появились ни сразу, ни после попыток угадать нужную схему и порядок сортировки.

Собственно, вопрос: где надо было взять ссылку на статью? И в правильное ли место и правильным ли образом я пытался её вставить?

Спасибо :-)

Поделиться сообщением


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

...Создал две статьи, залез в header.tpl, и сразу под <div id="menu"> написал...

 

Это НЕ правильно. Читайте FAQ по MVC и OpenCart.

 

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

<div class="telephone"> Телефон: 8-800-555-5550</ div>
Все данные, которые имеют специальное место хранения в системе, должны храниться и получаться методами этой системы:
<div class="telephone">
<? Php echo $ this-> language-> get ('text_telephone');?>
<? Php echo $ this-> config-> get ('config_telephone');?>
</ Div>

 

В Вашем случае, добавите в контроллер код:

$this->data['informations'] = array();

foreach ($this->model_catalog_information->getInformations() as $result) {
$this->data['informations'][] = array(
'title' => $result['title'],
'href' => $this->url->link('information/information', 'information_id=' . $result['information_id'])
);
}

и выводите в меню вот так:

<?php foreach ($informations as $information) { ?>
<a href="<?php echo $information['href']; ?>" style="color:#fff"><?php echo $information['title']; ?></a>
<?php } ?>
  • +1 2

Поделиться сообщением


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

Спасибо!

Тут правда всё осложняется тем, что из языков программирования я знаю только Паскаль, изученный в школе, и С++, изученный в универе. Соответственно, этот код я в принципе понимаю, но на наполовину интуитивном уровне. То есть ясно, что тут мы вместо указания на конкретные ссылки и названия создаём некий массив со всеми названиями и текстами, а потом выводим уже его, смотрится это как минимум красивее, но... где в header.tpl модель, где вид и где контроллер? И куда конкретно лучше вставить этот код? Содержимое файла - под спойлером, дабы нужды далеко лезть не было.

 

 

<!DOCTYPE html>
<html dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>">
<head>
<meta charset="UTF-8" />
<title><?php echo $title; ?></title>
<base href="<?php echo $base; ?>" />
<?php if ($description) { ?>
<meta name="description" content="<?php echo $description; ?>" />
<?php } ?>
<?php if ($keywords) { ?>
<meta name="keywords" content="<?php echo $keywords; ?>" />
<?php } ?>
<?php foreach ($links as $link) { ?>
<link href="<?php echo $link['href']; ?>" rel="<?php echo $link['rel']; ?>" />
<?php } ?>
<link rel="stylesheet" type="text/css" href="view/stylesheet/stylesheet.css" />
<?php foreach ($styles as $style) { ?>
<link rel="<?php echo $style['rel']; ?>" type="text/css" href="<?php echo $style['href']; ?>" media="<?php echo $style['media']; ?>" />
<?php } ?>
<script type="text/javascript" src="view/javascript/jquery/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="view/javascript/jquery/ui/jquery-ui-1.8.16.custom.min.js"></script>
<link type="text/css" href="view/javascript/jquery/ui/themes/ui-lightness/jquery-ui-1.8.16.custom.css" rel="stylesheet" />
<script type="text/javascript" src="view/javascript/jquery/tabs.js"></script>
<script type="text/javascript" src="view/javascript/jquery/superfish/js/superfish.js"></script>
<?php foreach ($scripts as $script) { ?>
<script type="text/javascript" src="<?php echo $script; ?>"></script>
<?php } ?>
<script type="text/javascript">
//-----------------------------------------
// Confirm Actions (delete, uninstall)
//-----------------------------------------
$(document).ready(function(){
// Confirm Delete
$('#form').submit(function(){
if ($(this).attr('action').indexOf('delete',1) != -1) {
if (!confirm('<?php echo $text_confirm; ?>')) {
return false;
}
}
});

// Confirm Uninstall
$('a').click(function(){
if ($(this).attr('href') != null && $(this).attr('href').indexOf('uninstall', 1) != -1) {
if (!confirm('<?php echo $text_confirm; ?>')) {
return false;
}
}
});
});
</script>
</head>
<body>
<div id="container">
<div id="header">
<div class="div1">
<div class="div2"><img src="view/image/logo.png" title="<?php echo $heading_title; ?>" onclick="location = '<?php echo $home; ?>'" /></div>
<?php if ($logged) { ?>
<div class="div3"><img src="view/image/lock.png" alt="" style="position: relative; top: 3px;" /> <?php echo $logged; ?></div>
<?php } ?>
</div>
<?php if ($logged) { ?>
<div id="menu">
<ul class="left" style="display: none;">
<li id="dashboard"><a href="<?php echo $home; ?>" class="top"><?php echo $text_dashboard; ?></a></li>
<li id="catalog"><a class="top"><?php echo $text_catalog; ?></a>
<ul>
<li><a href="<?php echo $category; ?>"><?php echo $text_category; ?></a></li>
<li><a href="<?php echo $product; ?>"><?php echo $text_product; ?></a></li>
<li><a class="parent"><?php echo $text_attribute; ?></a>
<ul>
<li><a href="<?php echo $attribute; ?>"><?php echo $text_attribute; ?></a></li>
<li><a href="<?php echo $attribute_group; ?>"><?php echo $text_attribute_group; ?></a></li>
</ul>
</li>
<li><a href="<?php echo $option; ?>"><?php echo $text_option; ?></a></li>
<li><a href="<?php echo $manufacturer; ?>"><?php echo $text_manufacturer; ?></a></li>
<li><a href="<?php echo $download; ?>"><?php echo $text_download; ?></a></li>
<li><a href="<?php echo $review; ?>"><?php echo $text_review; ?></a></li>
<li><a href="<?php echo $information; ?>"><?php echo $text_information; ?></a></li>
</ul>
</li>
<li id="extension"><a class="top"><?php echo $text_extension; ?></a>
<ul>
<li><a href="<?php echo $module; ?>"><?php echo $text_module; ?></a></li>
<li><a href="<?php echo $shipping; ?>"><?php echo $text_shipping; ?></a></li>
<li><a href="<?php echo $payment; ?>"><?php echo $text_payment; ?></a></li>
<li><a href="<?php echo $total; ?>"><?php echo $text_total; ?></a></li>
<li><a href="<?php echo $feed; ?>"><?php echo $text_feed; ?></a></li>
</ul>
</li>
<li id="sale"><a class="top"><?php echo $text_sale; ?></a>
<ul>
<li><a href="<?php echo $order; ?>"><?php echo $text_order; ?></a></li>
<li><a href="<?php echo $return; ?>"><?php echo $text_return; ?></a></li>
<li><a class="parent"><?php echo $text_customer; ?></a>
<ul>
<li><a href="<?php echo $customer; ?>"><?php echo $text_customer; ?></a></li>
<li><a href="<?php echo $customer_group; ?>"><?php echo $text_customer_group; ?></a></li>
<li><a href="<?php echo $customer_blacklist; ?>"><?php echo $text_customer_blacklist; ?></a></li>
</ul>
</li>
<li><a href="<?php echo $affiliate; ?>"><?php echo $text_affiliate; ?></a></li>
<li><a href="<?php echo $coupon; ?>"><?php echo $text_coupon; ?></a></li>
<li><a class="parent"><?php echo $text_voucher; ?></a>
<ul>
<li><a href="<?php echo $voucher; ?>"><?php echo $text_voucher; ?></a></li>
<li><a href="<?php echo $voucher_theme; ?>"><?php echo $text_voucher_theme; ?></a></li>
</ul>
</li>
<li><a href="<?php echo $contact; ?>"><?php echo $text_contact; ?></a></li>
</ul>
</li>
<li id="system"><a class="top"><?php echo $text_system; ?></a>
<ul>
<li><a href="<?php echo $setting; ?>"><?php echo $text_setting; ?></a></li>
<li><a class="parent"><?php echo $text_design; ?></a>
<ul>
<li><a href="<?php echo $layout; ?>"><?php echo $text_layout; ?></a></li>
<li><a href="<?php echo $banner; ?>"><?php echo $text_banner; ?></a></li>
</ul>
</li>
<li><a class="parent"><?php echo $text_users; ?></a>
<ul>
<li><a href="<?php echo $user; ?>"><?php echo $text_user; ?></a></li>
<li><a href="<?php echo $user_group; ?>"><?php echo $text_user_group; ?></a></li>
</ul>
</li>
<li><a class="parent"><?php echo $text_localisation; ?></a>
<ul>
<li><a href="<?php echo $language; ?>"><?php echo $text_language; ?></a></li>
<li><a href="<?php echo $currency; ?>"><?php echo $text_currency; ?></a></li>
<li><a href="<?php echo $stock_status; ?>"><?php echo $text_stock_status; ?></a></li>
<li><a href="<?php echo $order_status; ?>"><?php echo $text_order_status; ?></a></li>
<li><a class="parent"><?php echo $text_return; ?></a>
<ul>
<li><a href="<?php echo $return_status; ?>"><?php echo $text_return_status; ?></a></li>
<li><a href="<?php echo $return_action; ?>"><?php echo $text_return_action; ?></a></li>
<li><a href="<?php echo $return_reason; ?>"><?php echo $text_return_reason; ?></a></li>
</ul>
</li>
<li><a href="<?php echo $country; ?>"><?php echo $text_country; ?></a></li>
<li><a href="<?php echo $zone; ?>"><?php echo $text_zone; ?></a></li>
<li><a href="<?php echo $geo_zone; ?>"><?php echo $text_geo_zone; ?></a></li>
<li><a class="parent"><?php echo $text_tax; ?></a>
<ul>
<li><a href="<?php echo $tax_class; ?>"><?php echo $text_tax_class; ?></a></li>
<li><a href="<?php echo $tax_rate; ?>"><?php echo $text_tax_rate; ?></a></li>
</ul>
</li>
<li><a href="<?php echo $length_class; ?>"><?php echo $text_length_class; ?></a></li>
<li><a href="<?php echo $weight_class; ?>"><?php echo $text_weight_class; ?></a></li>
</ul>
</li>
<li><a href="<?php echo $error_log; ?>"><?php echo $text_error_log; ?></a></li>
<li><a href="<?php echo $backup; ?>"><?php echo $text_backup; ?></a></li>
</ul>
</li>
<li id="reports"><a class="top"><?php echo $text_reports; ?></a>
<ul>
<li><a class="parent"><?php echo $text_sale; ?></a>
<ul>
<li><a href="<?php echo $report_sale_order; ?>"><?php echo $text_report_sale_order; ?></a></li>
<li><a href="<?php echo $report_sale_tax; ?>"><?php echo $text_report_sale_tax; ?></a></li>
<li><a href="<?php echo $report_sale_shipping; ?>"><?php echo $text_report_sale_shipping; ?></a></li>
<li><a href="<?php echo $report_sale_return; ?>"><?php echo $text_report_sale_return; ?></a></li>
<li><a href="<?php echo $report_sale_coupon; ?>"><?php echo $text_report_sale_coupon; ?></a></li>
</ul>
</li>
<li><a class="parent"><?php echo $text_product; ?></a>
<ul>
<li><a href="<?php echo $report_product_viewed; ?>"><?php echo $text_report_product_viewed; ?></a></li>
<li><a href="<?php echo $report_product_purchased; ?>"><?php echo $text_report_product_purchased; ?></a></li>
</ul>
</li>
<li><a class="parent"><?php echo $text_customer; ?></a>
<ul>
<li><a href="<?php echo $report_customer_online; ?>"><?php echo $text_report_customer_online; ?></a></li>
<li><a href="<?php echo $report_customer_order; ?>"><?php echo $text_report_customer_order; ?></a></li>
<li><a href="<?php echo $report_customer_reward; ?>"><?php echo $text_report_customer_reward; ?></a></li>
<li><a href="<?php echo $report_customer_credit; ?>"><?php echo $text_report_customer_credit; ?></a></li>
</ul>
</li>
<li><a class="parent"><?php echo $text_affiliate; ?></a>
<ul>
<li><a href="<?php echo $report_affiliate_commission; ?>"><?php echo $text_report_affiliate_commission; ?></a></li>
</ul>
</li>
</ul>
</li>
<li id="help"><a class="top"><?php echo $text_help; ?></a>
<ul>
<li><a onClick="window.open('http://www.opencart.com');"><?php echo $text_opencart; ?></a></li>
<li><a onClick="window.open('http://www.opencart.com/index.php?route=documentation/introduction');"><?php echo $text_documentation; ?></a></li>
<li><a onClick="window.open('http://forum.opencart.com');"><?php echo $text_support; ?></a></li>
</ul>
</li>
</ul>
<ul class="right">
<li id="store"><a onClick="window.open('<?php echo $store; ?>');" class="top"><?php echo $text_front; ?></a>
<ul>
<?php foreach ($stores as $stores) { ?>
<li><a onClick="window.open('<?php echo $stores['href']; ?>');"><?php echo $stores['name']; ?></a></li>
<?php } ?>
</ul>
</li>
<li id="store"><a class="top" href="<?php echo $logout; ?>"><?php echo $text_logout; ?></a></li>
</ul>
<script type="text/javascript"><!--
$(document).ready(function() {
$('#menu > ul').superfish({
hoverClass : 'sfHover',
pathClass : 'overideThisToUse',
delay : 0,
animation : {height: 'show'},
speed : 'normal',
autoArrows : false,
dropShadows : false,
disableHI : false, /* set to true to disable hoverIntent detection */
onInit : function(){},
onBeforeShow : function(){},
onShow : function(){},
onHide : function(){}
});

$('#menu > ul').css('display', 'block');
});

function getURLVar(urlVarName) {
var urlHalves = String(document.location).toLowerCase().split('?');
var urlVarValue = '';

if (urlHalves[1]) {
var urlVars = urlHalves[1].split('&');

for (var i = 0; i <= (urlVars.length); i++) {
if (urlVars) {
var urlVarPair = urlVars.split('=');

if (urlVarPair[0] && urlVarPair[0] == urlVarName.toLowerCase()) {
urlVarValue = urlVarPair[1];
}
}
}
}

return urlVarValue;
}

$(document).ready(function() {
route = getURLVar('route');

if (!route) {
$('#dashboard').addClass('selected');
} else {
part = route.split('/');

url = part[0];

if (part[1]) {
url += '/' + part[1];
}

$('a[href*=\'' + url + '\']').parents('li[id]').addClass('selected');
}
});
//--></script>
</div>
<?php } ?>
</div>

Поделиться сообщением


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

Давайте по очереди...

1. Откройте catalog/controller/common/header.php и найдите:

$this->data['text_home'] = $this->language->get('text_home');
После него добавьте:
$this->data['text_information'] = $this->language->get('text_information');
Ниже, после всех этих блоков ($this->data...) сразу добавляем код из примера выше:
$this->data['informations'] = array();
foreach ($this->model_catalog_information->getInformations() as $result) {
$this->data['informations'][] = array(
'title' => $result['title'],
'href' => $this->url->link('information/information', 'information_id=' . $result['information_id'])
);
}
2. Затем, открываем catalog/view/theme/ВАША_ТЕМА/template/common/header.tpl и в блоке отвечающим за меню (<div id="menu">) перед последним тегом </ul> добавляем:
<li><a><?php echo $text_information; ?></a>
<div>
<ul>
<?php foreach ($informations as $information) { ?>
<li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li>
<?php } ?>
</ul>
</div>
проделываем всё это и отписываемся...

3348945.png

Другие темы с форума:

Перенести инфу из футера

Как добавить ссылки вверх сайта

Как вывести отдельные страницы информации

 

Модуль (бесплатный):

(VQMod) Information Pages on Navigation Menu

  • +1 3

Поделиться сообщением


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

Помогло, появилась вкладка "Information", как на картинке. 

Но появилась только для английского языка

Поделиться сообщением


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

Для корректного отображения (на нужном языке), необходимо обязательное наличие кода:

$_['text_information']  = 'Информация';
В файле (папке): catalog/language/russian/common/footer.php 

 

А о какой "серой полоске" идёт речь и о каких "примерах" - вообще не понял.   :ugeek:

Покажите скрин. 

(и укажите версию)

Поделиться сообщением


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

Снёс OpenCart, поставил ocStore из архива. Теперь всё работает и отображается. :eek:

Поделиться сообщением


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

Давайте по очереди...

1. Откройте catalog/controller/common/header.php и найдите:

$this->data['text_home'] = $this->language->get('text_home');
После него добавьте:
$this->data['text_information'] = $this->language->get('text_information');
Ниже, после всех этих блоков ($this->data...) сразу добавляем код из примера выше:
$this->data['informations'] = array();
foreach ($this->model_catalog_information->getInformations() as $result) {
$this->data['informations'][] = array(
'title' => $result['title'],
'href' => $this->url->link('information/information', 'information_id=' . $result['information_id'])
);
}
2. Затем, открываем catalog/view/theme/ВАША_ТЕМА/template/common/header.tpl и в блоке отвечающим за меню (<div id="menu">) перед последним тегом </ul> добавляем:
<li><a><?php echo $text_information; ?></a>
<div>
<ul>
<?php foreach ($informations as $information) { ?>
<li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li>
<?php } ?>
</ul>
</div>
проделываем всё это и отписываемся...

3348945.png

Другие темы с форума:

Перенести инфу из футера

Как добавить ссылки вверх сайта

Как вывести отдельные страницы информации

 

Модуль (бесплатный):

(VQMod) Information Pages on Navigation Menu

 

Добрый день !! Помогите мне пожалуйста, а то я уже замучился различные коды прописывать, вывел горизонтальное меню, но когда удаляю стандартные категории то пропадает и все меню. Версия у меня 2.0.1.1. Код прописан у меня так.

 
?php if ($categories) { ?>
<div class="container">
  <nav id="menu" class="navbar">
    <div class="navbar-header"><span id="category" class="visible-xs"><?php echo $text_category; ?></span>
      <button type="button" class="btn btn-navbar navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"><i class="fa fa-bars"></i></button>
    </div>
    <div class="collapse navbar-collapse navbar-ex1-collapse">
      <ul class="nav navbar-nav">
       <li><a href="/mag/delivery">Доставка</a></li>
       <li><a href="/mag/about_us">Про нас</a></li>

post-698646-0-37737400-1437466961_thumb.png

Поделиться сообщением


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

какую модель?

Поделиться сообщением


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

Спасибо. Очень полезная тема.

Поделиться сообщением


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

какую модель?

Наверное, модУль, вот этот не доступен, а тоже пригодился бы:

 

Модуль (бесплатный):

(VQMod) Information Pages on Navigation Menu

 

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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