Главное меню
все форумы все темы форума добавить тему
Как подключать свои скрипты?
Пример:
Есть мой скрипт price.php, который выводит содержание файла price.txt.
 
Добавляю страницу "прайс" в "управлении сайтом". В главном меню сайта появляется пункт "прайс".
 
Как сделать так, чтобы при нажатии на пункт "прайс" запускался мой скрипт price.php?
 
Нужно как-то в виде модуля подключать?
Создать для скрипта отдельный подкаталог по адресу kernel/modules/.
Переименовать скрипт в index.php
Рядом с файлом положить файл config.xml следующего вида:
XML

<module>
        <name>название</name>
        <describe>описание</describe>
        <component>1</component>
</module>
 

Теперь можно устанавливать Ваш файл как модуль через стандартный интерфейс.
Создал xml, создал файл index.php, прописал в нем
<?php
echo "1234";
?>
Выводится все мимо шаблона.
Что дальше делать? Писать tpl? Может как-то с уже готового модуля все выкинуть и свое повставлять?
Да. Дальше писать шаблон. То есть модуль будет выглядеть так:
PHP

<?
LabCMS::instance()->setModuleTemplate('mytemplate.tpl');
Tpl::instance()->assign('myvar', '1234');
 

 
После чего создаем шаблон /skins/мой_дизайн/мой_модуль/mytemplate.tpl вида
Smarty

{$myvar}
 

После этого данные будут выводиться там, где нужно.
о как...
как-то все сложнее чем я думал.
у меня скрипт парсит большой текстовый прайс и выводит его структурированно генерируя ссылки на разные позиции этого же прайса. я не опытный программист, как смог написал. мне показалось что как-то легко смогу его прикрутить к этой cms, а выходит что не все так просто... ладно, попробую покрутить. спасибо.
В общем-то ничего сложного - просто надо разобраться с работой шаблонизаторов. Там данные выводятся на экран не сразу, а сначала сохраняются в переменные. В остальном же ничего сложного. Про используемый шаблонизатор Вы можете почитать тут. Если смущает английский мануал, то можно почитать русский от предыдущей версии - принципиально там ничего не поменялось.
Loki:
...данные выводятся на экран не сразу, а сначала сохраняются в переменные

вот тут проблема.
мой скрипт построчно анализирует текстовый файл состоящий из тысячи строк и если строка удовлетворяет определенному условию, то он ее выводит, если нет, то берет следующую. сохранять все в массив переменных и потом его выводить слишком трудно будет.
чтоб не объяснять на пальцах можете сами глянуть - myinternet20.ru
только не спрашивайте что это такое
Как я уже сказал выше, все довольно просто.
Если не хочется разбираться с шаблонизатором, то можно поступить так:
Было:
PHP

<?
foreach ($array as $item)
{
   echo $item;
}
 

 
Стало:
PHP

<?
$data='';
foreach ($array as $item)
{
   $data.=$item;
}
Tpl::instance()->assign('myvar', $data);
 

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