Утилита "Генератор модуля"

1513
Утилита "Генератор модуля" для iCMS v1.10.3 ( также для 1.10.4). Назначение утилиты - избавить кодера от рутины и дать ему простой инструмент для создания заготовки модуля.

Постановка задачи

Пользователи Инстанта уже знают мои утилиты для генерации компонента и модуля. Данная версия генератора творит заготовку модуля, пустую, но полностью работоспособную, для релиза Инстанта 1.10.3.

Вопросы безопасности

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

Работа с утилитой

Распакуйте утилиту в корень локального сайта. В адресной строке браузера наберите имя локального сайта, слэш, имя утилиты (sitename.my/generator_mod.php). Внимательно читайте инструкции, все необходимые указания там есть. Заполните поля формы:
1. Имя папки модуля, латиницей. Все модули Инстанта начинаются с префикса "mod_", поэтому в поле этот префикс уже подставлен. Допишите имя папки. Это имя является уникальным и не может совпадать с именами других папок модулей Инстанта.
2. Название модуля по русски. Будет показываться в админке.
3. Название модуля по русски. Будет выводится в качестве заголовка модуля на сайте (если вывод заголовков включен).
4. Автор модуля. Полагаю, это Вы. Я для вас только утилиту написал!
5. Галка публикации модуля. По умолчанию установлена. Можете снять ее, если не хотите публиковать модуль немедленно. Включить/выключить публикацию модуля всегда можно потом, из админки.
6. Админка модуля. Тут две опции: нужна/не нужна. Если вы задумали сотворить модуль без админки, поставьте радиокнопку "Нет". Если Вы укажете "Да", будет создана админка с расширением xml.
7. Позиция, в которую выводится модуль. Здесь есть один подводный камень. Утилита зачитывает файл позиций текущего шаблона, и предлагает соответствующий список. Поэтому советую перед сотворением модуля установить шаблон и включить его. Если Вы не переключили сайт на свой шаблон, Вам придется изменять позицию вывода позже, из админки, руками.
8. Включение заголовка модуля из пункта 3.
9. Укажите, какой шаблон модуля. Выбрать можно два: "module.tpl" и "module_simple.tpl". Если Вы планируете написать свой шаблон (или он у Вас есть и уже лежит в дефолтном шаблоне), Вам придется это сделать позже, из админки, нажав на шестеренку модуля и прописав имя шаблона руками.
10. Префикс таблиц. По умолчанию, естественно, "cms_". Если при установке Инстанта на сервер Вы прописали другой префикс, укажите его здесь.

Пока Вы не нажали на кнопку "Создать модуль", никакого изменения в файлах и базе сайта не произойдет. Если Вы оставили галку публикации модуля, сразу после сотворения модуль покажется у Вас на сайте в той позиции, которую Вы ему указали.

После сотворения модуль умеет делать два действия: выводит мем "Здравствуй, мир" и распечатывает содержание конфигурационного массива. Остальное зависит от вашего мастерства программиста. Открывайте файлы модуля редактором и предавайтесь творческой работе. Утилита сделала за Вас всю рутину. Модуль уже подключен к сайту, то есть никаких sql-запросов выполнять не надо.

Дизайн

Дизайн специально сделан кошмарным. Это я прикололся так. Это чтоб вы скорее, закончив работу, удалили утилиту.

Завершение работы

Если необходимо создать два модуля подряд, Вам придется после первого раза закрыть в браузере вкладку с утилитой (скрипт прекратит действие). После этого можно вновь открыть утилиту и повторить с другим модулем.

После создания модуля ОБЯЗАТЕЛЬНО УДАЛИТЕ утилиту из корня сайта. Иначе вы можете позабыть это сделать, и она окажется на удаленном сервере. Поскольку механизмов защиты в ней нет, злоумышленник получит прямой доступ к вашей БД через sql-инъекции.

Теперь пройдите в админку и убедитесь, что модуль появился в списке модулей. Нажмите шестеренку, чтобы настроить количество выводимых модулем фиговин. Кроме того, вам придется зайти в настройки модуля (карандашик) и выбрать страницу, на которой он будет выводится. Ну, или, поставьте галку "Показывать на всех страницах". Не забудьте нажать кнопку "Сохранить". После этого можете полюбоваться свежесотворенным модулем на страницах своего сайта.

Как скачать

Скачать можно по прежнему, из тут, из моего профиля. В архиве сама утилита и одноименный текстовый файл с подробной инструкцией.

Куда говорить спасибо

яд 410011913797936
wmr 342960323367

Удачи в программировании!
Утилита "Генератор компонента" | Создание механизма "спасения" статьей из удаляемого раздела
Комментарии (31)
nedoriko 8 июня 2013 в 11:31 0
small user social cms
Я конечно неособо умен во всем этом. Но разве не проще модуль создать через админку?
Странник 8 июня 2013 в 11:37 +2
small user social cms
Это инструмент кодера, а не инструмент создавателя модулей через админки. Извините за прямоту).
Странник 8 июня 2013 в 11:54 +3
small user social cms
Если серьезно, то в админке не модуль не создается. Создается лишь запись в базе данных.
Утилита же создает структуру файлов нового модуля, плюс делает запись об этом в базу.
reload 8 июня 2013 в 11:52 0
small user social cms
Странник, а как на счет утилит клонирования компонентов и модулей?)
не планируется?)

хочу себе два форума, хоть тресни)
один .ru/forum
другой .ru/forumok
Странник 8 июня 2013 в 12:00 0
small user social cms
хм. так вот вам готовый инструмент. берите мою утилиту, создавайте компонет forumok и таскайте туда коды из forum. Правда, при этом база у двух форумов будет одна. Чтобы форумы были независимы, придется создать второй комплект таблиц форума и в компоненте forumok, там, где идет обращение к базе (в основном из файла модели, хотя иногда и из фронэнда) переписать имена таблиц на второй комплект.
reload 8 июня 2013 в 12:20 0
small user social cms
Чтобы форумы были независимы, придется создать второй комплект таблиц форума и в компоненте forumok
ну так и утилита не к чему) скопировать файлы это быстро)

Компоненты платные не думаете писать?)
если что, хочу нормальную простую фотогалерею))
Странник 8 июня 2013 в 12:26 0
small user social cms
Там не просто файлы копировать, а создавать структуру. впрочем, кто кодит, тому и так и так одинаково))))
А что вы подразумеваете под нормальной простой фотогалереей? Например, большое фото с сопроводительной статьей, а главная страница компонента напоминает рубрику Универсального Каталога?
reload 8 июня 2013 в 13:08 +1
small user social cms
Странник:
А что вы подразумеваете под нормальной простой фотогалереей?
В первую очередь это правильная структура, позволяющая делать логически понятное дерево - чтоб пользователи не напрягали мозги, где они сейчас находятся или куда они залили фото)

То есть одна галерея на сайте для всего)
В админке задаем виртуальное разделение по категориям
И в этих категориях пользователи могут создавать свои альбомы, вернее при создании альбома должны обязательно выбрать к какой категории будет принадлежат альбом
на альбомы выставляются права на просмотр и на фото

При просмотре категории выводим только фото, а при просмотре фото выводим кто залил и в какой альбом)
в клубах так же при создании альбома, привязываем его к категории...

для всех фото урл не зависимый от категории и альбома, просто фото/md5 или другое на вкус)
это для того чтоб как пользователи так и админы могли свободно переносить фото в другие альбомы либо рубрики....

В общем нужна структура логически понятная и простая, есть категории которые поинадлежат разделу фото в них есть альбомы которые создают юзеры - все) альбом принадлежит либо юзеру, либо клубу, либо еще там не понятно чему, все фото принадлежат юзерам...

Сейчас если юзер заходит с поиска, он просто не понимает куда ему перейти, да и я сам не понимаю как ему вывести все фото по теме допустим автомобилей)
reload 8 июня 2013 в 13:11 0
small user social cms
да и я сам не понимаю как ему вывести все фото по теме допустим автомобилей)
это из за того что половина их по альбомам в профилях раскиданы) а там свое государство)
reload 8 июня 2013 в 13:13 0
small user social cms
Но правильней наверное такие вопросы на форуме обсуждать, это если интересно кому будет)
...а то тут немного не по теме получается)
Странник 8 июня 2013 в 13:21 +1
small user social cms
В принципе, такую структуру создать вполне возможно. Я сейчас немного другим компонентом занят (надеюсь, тоже интересным) как закончу и выложу, спишемся, поговорим.
Крот 8 июня 2013 в 15:55 +4
small user social cms
плюсанул, нужная штука
сам вручную копирую из одного шаблонного модуля(компонента), а так быстрее дело пойдет
Странник 8 июня 2013 в 16:04 +4
small user social cms
Рад, что пригодилось.
LxDx 8 июня 2013 в 16:23 +1
small user social cms
Судя по логике, для плагинов тоже появится?
Странник 8 июня 2013 в 16:30 +2
small user social cms
я хотел сделать аналогичный для апплетов админки, но там меню в файле admin/includes/cp.php, а курочить этот файл утилитой не хочется.
так что админку ручками, ручками.

может, чуть попозже напишу статью, где расскажу, что куда вставлять, чтобы работало. у нас админка довольно архаична.
LxDx 8 июня 2013 в 17:44 +1
small user social cms
было бы неплохо мануал написать по этим вопросам, что и как создается, а то все методом тыка делать приходится
Странник 8 июня 2013 в 17:55 0
small user social cms
в админке, увы, да.
я сам попотел, пока разобрался.
Странник 14 января 2015 в 06:14 +1
small user social cms
SE7EN 8 июня 2013 в 20:21 0
small user social cms
а у меня вот что получилось, почему так, не подскажите?
""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.
Странник 9 июня 2013 в 09:25 +1
small user social cms
Подскажу. У вас произошла ошибка при обращении к базе данных cms_modules. В этой строчке запрашивается максимальное значение положения модулей в позиции (поле ordering), чтобы поместить модуль на позицию+1. Видимо, вернуло false. Скажите, вы префикс таблиц не меняли?
Странник 9 июня 2013 в 10:09 +1
small user social cms
Рекомендую всем, кто скачал у меня утилиту "Генератор модуля", заменить ее на более свежую версию.
kirkr 11 июня 2013 в 08:12 +1
small user social cms
спасибо, из-за этой рутины лень было модуль залепить, щас сделаю быстро)))
Су-27 13 июня 2013 в 21:43 +1
no profile
Спасибо за утилиту - отличное решение. Разрабам - то что надо
Андрей 25 июня 2013 в 10:32 +1
small user social cms
на предмет безопасности: на момент разработки, если файлик будет работать не из корня, а из папки, можно воспользоваться стандартной безопасностью сервера, добавив файлики
.htaccess

Код PHP:
  1. AuthName "Ограниченный доступ"
  2. AuthType Basic
  3. AuthUserFile полный путь на сервере/папка/.htpasswd
  4. require valid-user
и .htpasswd

Код PHP:
  1. administrator: логин/пароль
ессно, зашифрованный в MD5
Странник 25 июня 2013 в 13:30 +1
small user social cms
Можно и так))) Когда писал этот инструмент кодера, представить себе не мог, что кодер, у которого доступ по ftp, вдруг начнет ломать свою собственную писанину моей утилитой. И до сих пор не представляю.....

Полагаю, если кодер захочет, он и так в модуль или компонент насует кода, позволяющего ему похулиганить....А для "чайнига" моя утилита совершенно бесполезна, разве что ему хватит ума положить ее в корень сайта на хостинге....
Евгений Фоменко 15 февраля 2014 в 21:55 0
small user social cms
На 1.10.3 вроде как должна работать, правда?
Странник 16 февраля 2014 в 10:21 0
small user social cms
Да, эта утилита на 1.10.3, конечно, отработает, но сгенерирует файлы под 1.10.1. Там тоже кодировка utf-8, но небольшое отличие при обращении к шаблону. Если не боитесь руками переделывать, можете юзать.
Я признАюсь, что сразу после написания утилиты Генератора компонента к 1.10.3 сел писать утилиту Генератор модуля к 1.10.3. Она так и висит у меня в Денвере, недоделанная, поскольку времени нет совершенно - отвлекает текучка...В ближайшее время допишу! Прошу прощения у разачарованых любителей утилит)))
Странник 16 февраля 2014 в 18:19 +3
small user social cms
Забирайте утилиту для версии 1.10.3!
Raiden 5 июля 2014 в 10:31 0
small user social cms
Для 1,10,4 будет?
Странник 5 июля 2014 в 11:28 +2
small user social cms
Полагаю, можете юзать эту утилиту и для 1.10.4.
Я сравнил код двух-трех модулей, их шаблонов и админок в обоих релизах - структурных отличий нет.
С учетом того, что утилита генерирует "болванку" (при этом сразу работоспособную!), а затем вы открываете сгенерированные файлы, и функционал модуля творите сами, вы вообще отличий не увидите.
Баха 21 августа 2014 в 13:10 0
small user social cms
++