Главное меню
все форумы все темы форума добавить тему
Как создать собственный модуль?
Вопрос, собственно, в сабже, но поясню проблему:
Требуется создать раздел сайта, например, с прайс-листом компании. Написать такую страничку не привязываясь к вашей системе - не вопрос, но требуется обвязка: авторизация, регистрация и т.п. Очевидно, что CMS как раз для того и существует, чтоб не писать эту обвязку для каждого проекта. Может я не врубаюсь и ответ очевиден, но поскольку с CMS раньше дела не имел, для меня он не очевиден. На мой взгляд решение состоит в создании модулей с произвольным функционалом (в данном случае: вывод прайс-листа, заполнение баз данных на основе которых он формируется), при этом новый модуль должен уметь определять авторизованность и уровень доступа пользователя. Как это сделать?
Вы совершенно правы: всю рутинную работу не относящуюся к логике модуля на себя берет движок. Задача модуля только получить некие входные данные, сформировать ответ и передать его шаблонизатору, опрашивая при этом методы ядра, на предмет интересующей информации. То есть на предмет авторизованности и прав доступа достаточно спросить ядро.
К сожалению, у меня пока не готово описание API для написания модулей. Так что можно просто посмотреть как сделаны те модули, которые идут в комплекте. Если решите писать свой модуль, но я готов ответить на Ваши вопросы.
Loki:
Вы совершенно правы: всю рутинную работу не относящуюся к логике модуля на себя берет движок. Задача модуля только получить некие входные данные, сформировать ответ и передать его шаблонизатору, опрашивая при этом методы ядра, на предмет интересующей информации. То есть на предмет авторизованности и прав доступа достаточно спросить ядро.
К сожалению, у меня пока не готово описание API для написания модулей. Так что можно просто посмотреть как сделаны те модули, которые идут в комплекте. Если решите писать свой модуль, но я готов ответить на Ваши вопросы.

 
скажите, а как скоро можно ждать описания API?
дело в том, что я решил сделать достаточно серьезный сайт для нашей компании. там многие вещи придется писать самому (smscontrol, например).
random2:
скажите, а как скоро можно ждать описания API?
дело в том, что я решил сделать достаточно серьезный сайт для нашей компании. там многие вещи придется писать самому (smscontrol, например).

Уже написаны несколько фрагментов разной степени готовности, но их еще надо заканчивать и причесывать, так что лучше задавать вопросы прямо в форуме - в диалоговом режиме, скорее всего, получится быстрее и доходчивее.
Вводную статью по API  я постараюсь закончить и опубликовать сегодня же..
Пишу простенький модуль, и хотел спросить совета. Есть в kernel/modules папка модуля my-module и папка с шаблоном skins/my-skin/my-module. Хотелось бы узнать, как сделать, дабы этот модуль мог подгружать изображения из папки skins/my-skin/my-module/img и в шаблоне я мог редактировать шаблон my-module.tpl приблизительно как это делается с меню или css/js? (типа foreach($img as $item)).
И о фотоальбоме, Вы говорили, можете обьяснить прямо тут, как сделать подобную реализацию. Было бы хорошо, если бы Вы расписали, и про обновлённые и про первые добавленные. Задавая вопрос, я преследовал цель узнать, как вообще их вывести в определённом месте шаблона, фотографии.
Похоже что вопрос я не понял. Вы же знаете какие картинки хотите показать и где они лежат. Ну и укажите к ним путь:
Smarty
<img src="/skins/my-skin/my-module/img/image.png" />

 
Задавая вопрос, я преследовал цель узнать, как вообще их вывести в определённом месте шаблона, фотографии.

Вывести просто:
Smarty
{foreach $my_images as $image_name}
<img src="/path/to/images/{$image_name}" />
{/foreach}

где $my_images - массив изображений подготовленный в php. Вообще вопрос сильно некорректно поставлен, так что я даже не знаю что на него ответить.
Вообще вопрос сильно некорректно поставлен, так что я даже не знаю что на него ответить.

Это всё моя компьютерная неграмотность
Вы же знаете какие картинки хотите показать и где они лежат. Ну и укажите к ним путь

Я как раз от этого хочу уйти, что бы не самому прописывать путь (Это наипростейший вариант, но создаю из расчёта, что конечный пользователь не должен править tpl). Чтобы модуль сам определял, сколько картинок лежит в папке (как подключаемые css или js), и уже в шаблоне модуля я написал что-то типа foreach($img as $item), и что бы модуль уже достраивал это в шаблон в зависимости от кол-ва изображений.
Как-то так можно:
PHP

$relative_path='/skins/my-skin/my-module/img';
$absolute_path=LAB_PATH_ROOT.$relative_path;
$images=glob($absolute_path.'/*');
if ($images) foreach($images as $key=>$value)
{
   $images[$key]=str_replace(LAB_PATH_ROOT, '', $value);
}
LabCMS->assign('images', $images);
 

 
Вообще обычно задачу ставят исходя из конечных требований. "Вывести картинки в шаблоне" - это слишком частная задача. Какие картинки? Откуда берутся? Непонятно.