Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Добавление разделов в горизонтальное меню-закладки сверху

Подскажите плиз, как можно добавить в это меню ещё разделы, например, наряду со стандартными "Главная" "Корзина" Оформить" "Вход" сделать ещё "О нас" "Оптовикам" "Доставка" и т.д.??? Или, например, как можно перенести содержимое бокса "контент" или "информация" в это меню?

И еще одно, при использовании некоторых шаблонов содержимое сайта отображается, но частично... На местах многих боксов и сверху появляется следующее:
Warning: Smarty error: unable to read resource: "ru/lang_ru.conf" in c:\program files\phpshop software\www\includes\lib\smarty\smarty.class.php on line 1108  ...Посоветуйте, как быть?


И еще одно, при использовании некоторых шаблонов содержимое сайта отображается, но частично... На местах многих боксов и сверху появляется следующее:
Warning: Smarty error: unable to read resource: "ru/lang_ru.conf" in c:\program files\phpshop software\www\includes\lib\smarty\smarty.class.php on line 1108  ..


заменить файл

includes\lib\smarty\plugins\function.config_load.php

на прикрепленный.


Подскажите плиз, как можно добавить в это меню ещё разделы, например, наряду со стандартными "Главная" "Корзина" Оформить" "Вход" сделать ещё "О нас" "Оптовикам" "Доставка" и т.д. Или, например, как можно перенести содержимое бокса "контент" или "информация" в это меню?


themes\ваш_шаблон\index.html

например в default
заменить
<table class="adn"><tr><td>
<table class="adn print" width="100%">
<tr>
<td class="headlink vleft bf">
<a href="{$mainpage}">{#text_mainpage#}</a><span class="delm">|</span>
{if $account}{if $smarty.session.customer_id}
<a href="{$account}">{#link_account#}</a><span class="delm">|</span>
{/if}{/if}
<a href="{$cart}">{#link_cart#}</a><span class="delm">|</span>
<a href="{$checkout}">{#link_checkout#}</a><span class="delm">|</span>
</td>
<td align="right" class="headlink vleft bf" width="70px">
{if $account}{if $smarty.session.customer_id}
<span class="delm">|</span><a href="{$logoff}">{#link_logoff#}</a>
{else}
<span class="delm">|</span><a href="{$login}">{#link_login#}</a>
{/if}
{/if} 
</td>
</tr>
</table>


на

<table class="adn"><tr><td>
<table class="adn print" width="100%">
<tr>
<td class="headlink vleft bf">
<a href="{$mainpage}">{#text_mainpage#}</a><span class="delm">|</span>
<a href="Ваша_ссылка">Ваш_текст</a><span class="delm">|</span>
{if $account}{if $smarty.session.customer_id}
<a href="{$account}">{#link_account#}</a><span class="delm">|</span>
{/if}{/if}
<a href="{$cart}">{#link_cart#}</a><span class="delm">|</span>
<a href="{$checkout}">{#link_checkout#}</a><span class="delm">|</span>
</td>
<td align="right" class="headlink vleft bf" width="70px">
{if $account}{if $smarty.session.customer_id}
<span class="delm">|</span><a href="{$logoff}">{#link_logoff#}</a>
{else}
<span class="delm">|</span><a href="{$login}">{#link_login#}</a>
{/if}
{/if} 
</td>
</tr>
</table>


Разобрался как вроде. Thank!  :)
...А как можно сделать чтобы при наведении курсора ссылки в этом меню подсвечивались или выделялись каким-либо образом?


Здравствуйте, Евгений!
Заменил файл, проблема с шаблоном решилась, но при истечении сессии, не удаётся повторно залогиниться в админку. Просто пустая страница при загрузке /admin/index2.php
Пробовал перезалить БД - проблема не в базе, замена файлов из папки admin тоже не решает проблему. Версия движка 2.5.2.


Подскажите плиз, как можно добавить в это меню ещё разделы, например, наряду со стандартными "Главная" "Корзина" Оформить" "Вход" сделать ещё "О нас" "Оптовикам" "Доставка" и т.д.??? Или, например, как можно перенести содержимое бокса "контент" или "информация" в это меню?

Доброго времени суток! Не стал создавать новую тему,решил поднять старую. Вот мой способ,как можно добавить в горизонтальное меню ещё разделы,с возможностью включения/отключения и редактирования через админку. Если кто то посчитает мой способ варварским,сильно не пинайте.
Итак начнём:
1. Создаём новый бокс в админке.
Выполняем запрос к базе

INSERT INTO os_configuration (configuration_key, configuration_value, configuration_group_id, sort_order, last_modified, date_added, use_function, set_function) VALUES ('VIS_BOX_TOP_MENU', 'true',  30, 0, NULL, '', NULL, 'os_cfg_select_option(array(\'true\', \'false\'),');

и в файле themes\ваш_шаблон\source\boxes.php

добавить до ?>

if (VIS_BOX_TOP_MENU == 'true')
{
  require(DIR_WS_BOXES . 'top_menu.php');
}   

и в файле
admin\langs\ru\configuration.php
Добавить

define('VIS_BOX_TOP_MENU_TITLE','Меню');
define('VIS_BOX_TOP_MENU_DESC','Показывать блок Меню (BOX_TOP_MENU).');


Если всё правильно сделали,то в админке Настройка -> Шаблоны -> Настройка блоков должно появиться

Добавление разделов в горизонтальное меню-закладки сверху

2. Создаём копию блока content, с возможностью изменять страницы из админки.

Выполняем запрос к базе

INSERT INTO os_cm_file_flags (file_flag, file_flag_name) VALUES ('3', 'top_menu');

после добавление этого кода в базу, в админке видим следующее:

Добавление разделов в горизонтальное меню-закладки сверху

Так же нужно сделать копии файлов:
themes\ваш_шаблон\source\boxes\content.php с именем top_menu.php
themes\ваш_шаблон\boxes\box_content.html c именем  box_top_menu.html

Правим файл themes\ваш_шаблон\source\boxes\top_menu.php.
нужно править только те места, которые отмечены красным цветом.

<?php
$box = new osTemplate;
$content_string = '';

$box->assign('language', $_SESSION['language']);
// set cache ID
if (!CacheCheck()) {
$cache=false;
$box->caching = 0;
} else {
$cache=true;
$box->caching = 1;
$box->cache_lifetime = CACHE_LIFETIME;
$box->cache_modified_check = CACHE_CHECK;
$cache_id = $_SESSION['language'].$_SESSION['customers_status']['customers_status_id'];
}

if (!$box->is_cached(CURRENT_TEMPLATE.'/boxes/box_top_menu.html', $cache_id) || !$cache) {

$box->assign('tpl_path', _HTTP_THEMES_C);

if (GROUP_CHECK == 'true') {
$group_check = "and group_ids LIKE '%c_".$_SESSION['customers_status']['customers_status_id']."_group%'";
}

$content_query = "SELECT
content_id,
categories_id,
parent_id,
content_title,
content_url,
content_group
FROM ".TABLE_CONTENT_MANAGER."
WHERE languages_id='".(int) $_SESSION['languages_id']."'
and file_flag=3 ".$group_check." and content_status=1 order by sort_order";

$content_query = osDBquery($content_query);

while ($content_data = os_db_fetch_array($content_query, true)) {
$SEF_parameter = '';
if (SEARCH_ENGINE_FRIENDLY_URLS == 'true')
$SEF_parameter = '&content='.os_cleanName($content_data['content_title']);

if ($content_data['content_url'] != '') {
$link = '<a href="'.$content_data['content_url'].'" target="_blank">';
} else {
$link = '<a href="'.os_href_link(FILENAME_CONTENT, 'coID='.$content_data['content_group'].$SEF_parameter).'">';
}

$content_string .= $link.$content_data['content_title'].'</a>' . "\n";
}
if ($content_string != '')
$box->assign('BOX_CONTENT', $content_string);

}

if (!$cache) {
$box_content = $box->fetch(CURRENT_TEMPLATE.'/boxes/box_top_menu.html');
} else {
$box_content = $box->fetch(CURRENT_TEMPLATE.'/boxes/box_top_menu.html', $cache_id);
}

$osTemplate->assign('box_TOP_MENU', $box_content);
?>

Правим файл themes\ваш_шаблон\boxes\box_top_menu.html
удаляем всё кроме этих строк,должно выглядеть вот так:
{config_load file="$language/lang.conf" section="boxes"}
{config_load file="$language/lang.conf" section="index"}

{$BOX_CONTENT}


в themes\ваш_шаблон\index.html добавить в нужное место блок top_menu.php

{$box_TOP_MENU}


например так, как показано на скриншоте:

Добавление разделов в горизонтальное меню-закладки сверху

Работа с кодом закончена. Надо будет доработать только CSS.
Спасибо за идею Евгению.


Статейка уже есть http://www.shopos.ru/forum/index.php?topic=374.msg887#msg887
Но за старания спасибо!

А вообще..
1 - Проще создать плагин в который вставлять html код ссылки на информационную страницу
а саму страницу при создании убирать из видимости в блоках.

2 - Еще как вариант создать плагин клона модуля content, за исключением создания страниц и других плюшек, а добавлять только новые блоки и их вывод. (проще всего)

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


Я в курсе, что статья есть. Просто из двух статей сделал одну. :)


слушайте...можно матом?...  бл@ ох'енно СПАСИБО!))))))))) только хотел поднять вопрос, и тут поиск по последнему, 5-му запросу, выдает эту тему)))


Источник



Copyright ShopOS