e.motion
Маленькие хитрости

Добавление cpt модуля в WebAsyst

25 августа 2011 by · Комментариев нет 

Люди, которые работали с WebAsyst Shop-Script, наверняка обратили внимание на то, что весь интернет-магазин на данном движке состоит из различных модулей со своими названиями.  Например, стандартная правая верхняя панель, состоящая из корзины, выбора языка и валют, в дизайн внедряется следующим кодом:

{cpt_shopping_cart_info}{cpt_currency_selection}{cpt_language_selection}

Как видно из примера, для каждого блока есть свое кодовое обозначение, и если мы поместим данные обозначения на другие страницы сайта, блоки появятся и на них.
Такие модули мы называем «cpt-модулями», и именно их мы научимся создавать.

В первую очередь необходимо добавить запись о новом модуле в базу данных:

INSERT INTO `SC_interface_interfaces`
(`xInterfaceCaller`, `xInterfaceCalled`, `xPriority`)
VALUES ('51_cpt_connector', '1_newmodule', '0');

xInterfaceCalled – имя нового модуля, обязательно добавляем префикс «1_».

Далее необходимо прописать тело модуля. Большинство мобильных функций cpt в WebAsyst не имеют своего личного php-файла и прописываются в общий для них модуль /published/SC/html/scripts/modules/test/class.test.php. Наша функция не исключение. Открываем указанный файл и ищем в нем строку:

$this->__registerComponent('category_tree', 'cpt_lbl_category_tree',
array(TPLID_GENERAL_LAYOUT, TPLID_HOMEPAGE));

Добавление php-тела нового модуля происходит в два этапа.
Первый этап: сразу после найденной строки мы создаем наш cpt как объект в системе, добавляя следующий код:

$this->__registerComponent('newmodule', 'новый модуль',
array(TPLID_GENERAL_LAYOUT, TPLID_HOMEPAGE));

‘newmodule’ – название модуля, должно соответствовать названию из SQL без «1_».
‘новый модуль’ – описание модуля.

Второй этап: добавляем функции для нашего вновь созданного объекта:

function cpt_newmodule(){
$Register = &Register::getInstance();
$smarty = &$Register->get(VAR_SMARTY);
/*@var $smarty Smarty*/
{тело функции}
print $smarty->fetch('newmodule.html');
}

Название функции должно соответствовать названию из базы данных плюс добавление префикса «cpt_». На место тела функции вы можете вставить любой php-код на ваше усмотрение. Файл html-шаблона функции ‘newmodule.html’ необходимо разместить в папке /published/SC/html/scripts/templates/frontend , имя для него вы можете задать абсолютно любое.

Вот и все, ctp-модуль для WebAsyst Shop-Script готов к использованию. Теперь достаточно добавить код модуля {ctp_newmodule} в любое место дизайна, и мы увидим наше новое творение.

 

  • WordPress

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

e.motion