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

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


Recommended Posts

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

Итак, появилось желание добавить в главное меню новые пункты, "Доставка и оплата" и "Контакты". Создал две статьи, залез в 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", но пункты не появились ни сразу, ни после попыток угадать нужную схему и порядок сортировки.

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

Спасибо :-)

Link to post
Share on other sites

...Создал две статьи, залез в 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
Link to post
Share on other sites

Спасибо!

Тут правда всё осложняется тем, что из языков программирования я знаю только Паскаль, изученный в школе, и С++, изученный в универе. Соответственно, этот код я в принципе понимаю, но на наполовину интуитивном уровне. То есть ясно, что тут мы вместо указания на конкретные ссылки и названия создаём некий массив со всеми названиями и текстами, а потом выводим уже его, смотрится это как минимум красивее, но... где в 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>

Link to post
Share on other sites

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

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
Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

 

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

  • 4 months later...
  • 1 year later...

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

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

Link to post
Share on other sites

  • 3 months later...
  • 1 month later...

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

Link to post
Share on other sites

  • 1 month later...

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
  • 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.