Cоздаем бокс в vam shop

От wolf | 19.01.2009 | раздел - Статьи |

Наша звездочка. Авторский сайт Насти Манно о веб-дизайне и сайтостроении, просто и со вкусом.

На созданном магазине на скрипте vam shop часто возникает потребность размещения счетчиков, ссылок, контактной информации и прочего.
Есть в общем-то несколько возможных путей решения – размещение доп кода в index.php скрипта, в коде index.html шаблона, но более функционально – создание дополнительного блока в стиле основных блоков магазина. Сказано – делаем. Создадим новый бокс поэтапно.

Создаём код бокса

В скрипте магазина vam shop исходные коды боксов находятся в папке /templates/vamshop/source/boxes Создаём файл /templates/vamshop/source/boxes/mybox.php со следующим содержимым:

<?php
$box_smarty = new smarty;
$box_content='';
$flag='';
$box_smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/');
$box_content = MY_BOX_CONTENT;
if ($flag==true) define('SEARCH_ENGINE_FRIENDLY_URLS',true);
$box_smarty->assign('BOX_CONTENT', $box_content);
$box_smarty->caching = 0;
$box_smarty->assign('language', $_SESSION['language']);
$box_admin= $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_mybox.html');
$smarty->assign('box_MYBOX',$box_admin);
?>

В общем случае – простейший бокс. Обратите внимание на важные моменты назначений -

$smarty->assign('box_MYBOX',$box_admin);

– назначена вашему боксу метка box_MYBOX для подключения в шаблоне

$box_admin= $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_mybox.html');

– назначен html-шаблон создаваемого бокса,

$box_content= MY_BOX_CONTENT;

- назначена константа содержимого бокса.

Все константы и назначения появятся на следующих этапах.

Содержимое бокса.

Все тексты в vam shop выделены в языковые папки /lang В нашем случае это папка – /lang/russian

Чтобы скрипт корректно обрабатывал константу MY_BOX_CONTENT в файл /lang/russian/russian.php добавим следующее, к примеру -

define('MY_BOX_CONTENT', 'текст моего бокса');

Учитывайте, что, если вы используете мультиязычный vam shop то изменения надо внести во все языковые файлы в соответствующем языке. К примеру, в английской это будет -

define('MY_BOX_CONTENT', 'the text of my boxing');

В принципе, этот этап можно и пропустить. Текст содержимого можно ввести и в шаблон бокса. О чем ниже.

Шаблон бокса.

Мы указали, что шаблон бокса будет находиться в файле /templates/vamshop/boxes/box_mybox.html
Вот и создадим данный файл с содержимым (возьмите из файла box) дописав первую строку:

{config_load file="$language/lang_$language.conf" section="boxes"}
<table width="180" border="0" cellpadding="2" cellspacing="0">
<tr><td height="2" bgcolor="#000099"></td></tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">{#heading_mybox#}</font></td></tr>
<tr><td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">{$BOX_CONTENT}</font>
текст бокса
</td></tr>
<tr><td height="2" bgcolor="#000099"></td></tr>
</table>

Можете изменять данный бокс в соответствии с дизайном ваших боксов.

{config_load file="$language/lang_$language.conf" section="boxes"}

- сообщает системе, что текстовые данные для шаблона надо брать из файла /lang/russian/lang_russian.conf, секции boxes.

В шаблоне определены 2 метки:

{#heading_mybox#} – это название бокса, заголовок – из файла: /lang/russian/lang_russian.conf Чтобы она отображалась допишем в /lang/russian/lang_russian.conf , к примеру, следующее

heading_mybox = 'Мой первый бокс'

сразу после: [boxes]

Метка {$BOX_CONTENT} – а это уже именно само содержимое бокса или значение константы MY_BOX_CONTENT из файла /lang/russian/russian.php Если константа не определена, можно и нужно сразу после {$BOX_CONTENT} или в нашем случае {$BOX_CONTENT} дописать нужный текст или код в файле. Учитываем что smarty некорректно обрабатыет коды в шаблоне. Рекомендуем использование обертки кода в виде {php}коды{/php}

Подключаем бокс.

Необходимо, чтобы магазин vam shop знал о наличии нового бокса. Подключаем его в /templates/vamshop/source/boxes.php Все, вновь созданные боксы, подключаются в этом файле.

Ищем следующий код:

<?php
  define('DIR_WS_BOXES',DIR_FS_CATALOG .'templates/'.CURRENT_TEMPLATE. '/source/boxes/');

Добавляем сразу после этого:

include(DIR_WS_BOXES . 'mybox.php');

Мы же создавали mybox.php Соответственно, если создавался файл с другим именем, то и вписываем имя именно созданного вами файла.

Выводим бокс.

Осталось только включить вывод бокса в вашем шаблоне vam shop Открываем файл шаблона /templates/ваш шаблон/index.html

И, к примеру, подключаем блок за новинками, т.е. дописываем после {$box_WHATSNEW} нашу метку бокса {$box_MYBOX}, получая …{$box_WHATSNEW}{$box_MYBOX}…

Всё, бокс подключён. Проверяйте.
Да и не забывайте, что все изменения нужно проводить в редакторе, корректно работающем с русскими кодировками и сигнатурами (notepad2), иначе проблем не избежать.

[про] Коми – Новости Коми События, происшествия и просто жизнь.

Подписка без комментария.
Уведомить меня о отзывах на e-mail

1 Отзыв на “Cоздаем бокс в vam shop”

  1. 1От voron 27 Янв 2009 | Ответить

    Как вариант, можно изменить какой либо из имеющихся более простых боксов.

Извините, но коментирование запрещено.