Как правильно добавить ссылку в главное меню VAM shop
Казалось бы особых проблем при добавлении ссылки в главное меню магазина возникнуть не должно, но есть один нюанс. давайте посмотрим на код:
<div id="menu"> <ul> <li{$1}><a href="{$mainpage}"><span>{#text_mainpage#}</span></a></li> {if $account}{if $smarty.session.customer_id} <li{$2}><a href="{$account}"><span>{#link_account#}</span></a></li> {/if}{/if} <li{$3}><a href="{$cart}"><span>{#link_cart#}</span></a></li> <li{$4}><a href="{$checkout}"><span>{#link_checkout#}</span></a></li> {if $smarty.session.customer_id} <li{$5}><a href="{$logoff}"><span>{#link_logoff#}</span></a></li> {else} <li{$6}><a href="{$login}"><span>{#link_login#}</span></a></li> {/if} </ul> </div> |
Каждая строка списка имеет свою переменную – li{$1}, li{$2} и так далее. Эти переменные служат для того, чтобы определять текущую страницу и применять к ней стиль current. Другими словами, выделять кнопку со ссылкой на страницу, если мы на ней же и находимся.
Эти переменные записаны в файле includes/header.php в самом конце файла, начиная с:
// Метки для закладок if (strstr($PHP_SELF, FILENAME_DEFAULT)) { $vamTemplate->assign('1',' class="current"'); } .................... |
Для того, чтобы выделение работало и для добавленных ссылок, создадим переменные также и для этих страниц. Делается это по аналогии с теми, которые уже имеются. Например, для страницы с отзывами нужно добавить:
if (strstr($PHP_SELF, FILENAME_REVIEWS)) { $vamTemplate->assign('9',' class="current"'); } |
FILENAME_REVIEWS – в данном случае, метка нужной нам страницы, посмотреть которые можно в файле includes/filenames.php. Цифра 9 в конструкции assign(‘9′,’ class=”current”‘) – новая переменная {$9} в шаблоне.
И еще один пример, для более сложной страницы, например, для страницы “Контакт”.
if (strstr($PHP_SELF, FILENAME_CONTENT) && $_GET['coID'] == 7) { $vamTemplate->assign('10',' class="current"'); } |
Как видите, мы добавили && $_GET[‘coID’] == 7, где 7 – соответствующий айди информационной страницы.
Ну, а в меню шаблона, добавляем:
<li{$9}><a href="reviews.php"><span>{#link_reviews#}</span></a></li> <li{$10}><a href="shop_content.php?coID=7" class="last"> <span>{#link_contact_us#}</span></a></li> |
И не забудьте добавить link_reviews и link_contact_us в языковые файлы. Хотя если, язык у Вас только один, то можно просто написать текстом, не используя языковые метки.
-
Александр пишет:
Прочитал Вашу статью,очень интересный материал,подскажите я не совсем понял,если я хочу в главном меню ссылаться на произвольную статью которая лежит в отдельном файле у меня должна быть заглушка ({$mainpage},
{$account}и т д)заглушки жестко определенные для index,как создать заглушку?Переход по ссылке как в html не работает.Cпасибо. -
пишет:Вячеслав
вот уже четный день мучаюсь, но не могу добавить в это поле меню форму для поиска, но не просто ссылку на поиск а именно поле куда можно вводить фразу поиска.
как это можно сделать?
-
пишет:керакам
Добрый день, а подскажите где еще прописывается меню кроме index.html
просто пропадают добавленные кнопки в карточке товара. -
пишет:керакам
спасибо, начал перелопачивать зачем-то паку modules , потом что-то стукнуло в голову и заглянул в корень шаблона. еще раз спасибо.
-
пишет:Александр
Евгений, подскажите
Сделал закладку такого вида
В другой Магазин >>>
А в header.php как правильно написать, если не метка,а ссылка? -
пишет:Александр
if (strstr($PHP_SELF, В другой Магазин) {
$vamTemplate->assign('7',' class="current"');
}
Такой синтаксис правильный? Помогите плизз написать правильно.
-
Александр пишет:
Но у меня после перехода по внешней ссылке (открытие происходит в новой вкладке) в магазине выделенной становиться “Главная”, а “По внешней” обведена некоей пунктирной рамочкой (шаблон vamshop). В сущности не страшно, но неаккуратно как то.
Если же открывать в том же окне, тогда да, смысла навешивать “current” нет. -
пишет:Леонид
Евгений, здравствуйте, вот Вы пишите: “И не забудьте добавить link_reviews и link_contact_us в языковые файлы. Хотя если, язык у Вас только один, то можно просто написать текстом, не используя языковые метки.”
А куда именно и как их туда добавлять? Есть папка Lang в корневом директории, есть файл Languages.php в папке admin, есть файл box_languages.html в папке /www.сайт.com/templates/vamshop/boxesб есть папки Russian… но ни в одном и этих мест я не нашёл куда вставить link_reviews и link_contact_us (вернее ссылку на них или правильнее название кнопок на русском языке). И как это должно вставляться – путём создания нового файла или просто дописать куда-то в какой-то файл? Без этих добавлений в языковых файлах у меня получились кнопки, но без соответствующих надписей. Оно и понятно, но непонятно, куда эти надписи вписать. Заранее благодарен.
-
пишет:Леонид
Спасибо, Евгений, всё получилось.
Для тех кому надо: я добавил в файл lang_russian.conf (который находится здесь: http://www.Ваш сайт/lang/russian) следующие строчки в конце параграфа [index]:
link_reviews = ‘Отзывы’
link_contact_us = ‘Контакты’
После этого на кнопках появились надписи соответственно “Отзывы” и “Контакты” -
пишет:Виталий
Добрый день! Подскажите, как можно вытащить вкладки-табы из метки {$main_content} которая находится в product_info.php.html? Дело в том, что {$main_content} находится в блоке, у которого задана фиксированная ширина, а нужно чтобы вкладки-табы располагались по всей ширине страницы.