Moдуль для Webasyst Shop-Script
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2102
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2435
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2451
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2456
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2461
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2467
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2479
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2496
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2497
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2498
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2499
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2517
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2518
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2519
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2520
Deprecated: Non-static method MagicWord::get() should not be called statically, assuming $this from incompatible context in /home/clients/newman_ftp0/domains/wiki.pws.ru/html/includes/Parser.php on line 2550
Материал из Newman's WiKi.
Версия 22:12, 11 октября 2009 WikiSysop (Обсуждение | вклад) ← К предыдущему изменению |
Текущая версия WikiSysop (Обсуждение | вклад) (→Установка) |
||
Строка 38: | Строка 38: | ||
=Установка= | =Установка= | ||
+ | Стандартной возможности для установки модуля в систему я не нашел. Поэтому пришлось лезть напрямую в базу. Итак приступим. Будем считать что у всех таблиц префикс '''SC'''. Именно такой префикс я буду использовать при нзавании таблиц и при написании запросов. | ||
+ | |||
+ | 1. Добавим описание модуля в таблицу '''SC_modules''' | ||
+ | <pre> | ||
+ | INSERT INTO `SC_modules` SET `ModuleVersion`=1, `ModuleClassName`='Modulename', `ModuleClassFile`='/modulefolder/class.modulename.php' | ||
+ | </pre> | ||
+ | Теперь нам надо узнать идентификатор записи. Можем посмотреть его через [[phpMyAdmin]] или же узнать с помощью запроса | ||
+ | <pre> | ||
+ | SELECT `ModuleID` FROM `SC_modules` WHERE `ModuleClassName`='Modulename'; | ||
+ | </pre> | ||
+ | Это значение '''MID''' пригодится нам на следующем этапе. | ||
+ | |||
+ | 2. Добавим строку в таблицу '''SC_module_configs''' | ||
+ | <pre> | ||
+ | INSERT INTO `SC_module_configs` SET `ModuleID`=MID, `ConfigKey`='modulename', `ConfigInit`=1002, `ConfigEnabled`=1; | ||
+ | </pre> | ||
+ | Узнаем идентификатор ролученной записи. | ||
+ | <pre> | ||
+ | SELECT `ModuleConfigID` FROM `SC_module_configs` WHERE `ModuleID`=MID; | ||
+ | </pre> | ||
+ | Полученное значение '''MCID''' будем использовать на следующем этапе. | ||
+ | |||
+ | 3. Добавим строку в таблицу '''SC_interface_interfaces''' | ||
+ | <pre> | ||
+ | INSERT INTO `SC_interface_interfaces` SET `xInterfaceCaller`='51_cpt_connector', `xInterfaceCalled`='MCID_modulename'; | ||
+ | </pre> | ||
+ | Возможно на других установках магазина значение числа в строке "51_cpt_connector" будет другим. Но это надо смотреть на конкретной версии. | ||
+ | |||
+ | В результате должна появится возможность добавлять наш шаблон в редакторе дизайна. | ||
+ | |||
+ | =Добавление на сайт= | ||
+ | Добавить модуль на страницу можно либо через визуальный редактор дизайна страницы, либо вставив в шаблон следующий код | ||
+ | <pre> | ||
+ | {cpt_modulename} | ||
+ | </pre> | ||
+ | |||
+ | В результате этих действий у меня все заработало ;) | ||
[[Категория:Опыт]] | [[Категория:Опыт]] | ||
+ | [[Категория:Интернет магазин]] |
Текущая версия
В данной статье будем рассматривать о том как создать модуль для Webasyst Shop-Script. Так как толковой информации для разработчика найти не получилось, то в основном пришлось идти метод проб и ошибок, а так же путем анализа исходных кодов магазина.
Примечание: Все пути указаны относительно корневой директории магазина
Создание модуля
Модули находятся в поддиректориях внутри папки /modules/. Один модуль - одна папка. Создадим для нашего модуля папку с именем modulefolder. Внутри этой папки должно находится минимум два файла. Первый файл это описание модуля в формате XML. Называться этот файл может следующим образом connector.modulename.xml Ниже приведен пример такого файла.
<Connector> <Class> <Name>Modulename</Name> <File>class.modulename.php</File> <Title>My module</Title> <Description></Description> <SingleInstallation>true</SingleInstallation> </Class> </Connector>
В файле class.modulename.php, который упоминается в файле описания находится класс модуля.
В минимальной версии этот файл может быть следующим.
class Modulename extends ComponentModule { function initInterfaces(){ $this->__registerComponent('modulename', 'My module', array('general_layout', 'home_page'), 'methodFShowModule'); } function methodFShowModule(){ $Register = &Register::getInstance(); $smarty = &$Register->get(VAR_SMARTY); $smarty->assign("mymodule_var", 100); $smarty->display('customer_mymodule.tpl.html'); } }
Файл customer_mymodule.tpl.html это файл шаблона Smarty который находится в папке /templates/frontend/
Установка
Стандартной возможности для установки модуля в систему я не нашел. Поэтому пришлось лезть напрямую в базу. Итак приступим. Будем считать что у всех таблиц префикс SC. Именно такой префикс я буду использовать при нзавании таблиц и при написании запросов.
1. Добавим описание модуля в таблицу SC_modules
INSERT INTO `SC_modules` SET `ModuleVersion`=1, `ModuleClassName`='Modulename', `ModuleClassFile`='/modulefolder/class.modulename.php'
Теперь нам надо узнать идентификатор записи. Можем посмотреть его через phpMyAdmin или же узнать с помощью запроса
SELECT `ModuleID` FROM `SC_modules` WHERE `ModuleClassName`='Modulename';
Это значение MID пригодится нам на следующем этапе.
2. Добавим строку в таблицу SC_module_configs
INSERT INTO `SC_module_configs` SET `ModuleID`=MID, `ConfigKey`='modulename', `ConfigInit`=1002, `ConfigEnabled`=1;
Узнаем идентификатор ролученной записи.
SELECT `ModuleConfigID` FROM `SC_module_configs` WHERE `ModuleID`=MID;
Полученное значение MCID будем использовать на следующем этапе.
3. Добавим строку в таблицу SC_interface_interfaces
INSERT INTO `SC_interface_interfaces` SET `xInterfaceCaller`='51_cpt_connector', `xInterfaceCalled`='MCID_modulename';
Возможно на других установках магазина значение числа в строке "51_cpt_connector" будет другим. Но это надо смотреть на конкретной версии.
В результате должна появится возможность добавлять наш шаблон в редакторе дизайна.
Добавление на сайт
Добавить модуль на страницу можно либо через визуальный редактор дизайна страницы, либо вставив в шаблон следующий код
{cpt_modulename}
В результате этих действий у меня все заработало ;)