Cоздаем бокс в vam shop » Блог DINa

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

19.01.2009
ReTweet

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

На созданном магазине на скрипте 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), иначе проблем не избежать.

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

1 Отзыв на “Cоздаем бокс в vam shop”
  1. 1От voron 27 Янв 2009 | Ответить

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

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

Коротко о сайте.

Блог meganfoxstar.ru поможет вам в Установке и настройке cms Vamshop, PHPProBid, Esyndicat, закрепит и расширит имеющиеся знания. Создание сайтов, продвижение сайтов, оптимизация информации. Теория и практика seo. CSS-верстка, веб-мастеринг, интернет-технологии, манимейкинги – все это и намного больше вы сможете найти на страницах нашего проекта!.

Основной        Дополнит         Twitter
RSS фид основной    RSS фид дополнительный    Всего Фолловеров блога
1006
RSSПодписка на обновления по RSS

Обновления блога по почтеОбновления блога на почтовый ящик