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

+55
3.3K
Утилита "Генератор модуля" для 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

Удачи в программировании!
0
nedoriko nedoriko 11 лет назад #
Я конечно неособо умен во всем этом. Но разве не проще модуль создать через админку?
+2
Странник Странник 11 лет назад #
Это инструмент кодера, а не инструмент создавателя модулей через админки. Извините за прямоту).
+3
Странник Странник 11 лет назад #
Если серьезно, то в админке не модуль не создается. Создается лишь запись в базе данных.
Утилита же создает структуру файлов нового модуля, плюс делает запись об этом в базу.
0
reload reload 11 лет назад #
Странник, а как на счет утилит клонирования компонентов и модулей?)
не планируется?)

хочу себе два форума, хоть тресни)
один .ru/forum
другой .ru/forumok
0
Странник Странник 11 лет назад #
хм. так вот вам готовый инструмент. берите мою утилиту, создавайте компонет forumok и таскайте туда коды из forum. Правда, при этом база у двух форумов будет одна. Чтобы форумы были независимы, придется создать второй комплект таблиц форума и в компоненте forumok, там, где идет обращение к базе (в основном из файла модели, хотя иногда и из фронэнда) переписать имена таблиц на второй комплект.
0
reload reload 11 лет назад #
Чтобы форумы были независимы, придется создать второй комплект таблиц форума и в компоненте forumok
ну так и утилита не к чему) скопировать файлы это быстро)

Компоненты платные не думаете писать?)
если что, хочу нормальную простую фотогалерею))
0
Странник Странник 11 лет назад #
Там не просто файлы копировать, а создавать структуру. впрочем, кто кодит, тому и так и так одинаково))))
А что вы подразумеваете под нормальной простой фотогалереей? Например, большое фото с сопроводительной статьей, а главная страница компонента напоминает рубрику Универсального Каталога?
+1
reload reload 11 лет назад #
Странник:
А что вы подразумеваете под нормальной простой фотогалереей?
В первую очередь это правильная структура, позволяющая делать логически понятное дерево - чтоб пользователи не напрягали мозги, где они сейчас находятся или куда они залили фото)

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

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

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

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

Сейчас если юзер заходит с поиска, он просто не понимает куда ему перейти, да и я сам не понимаю как ему вывести все фото по теме допустим автомобилей)
0
reload reload 11 лет назад #
да и я сам не понимаю как ему вывести все фото по теме допустим автомобилей)
это из за того что половина их по альбомам в профилях раскиданы) а там свое государство)
0
reload reload 11 лет назад #
Но правильней наверное такие вопросы на форуме обсуждать, это если интересно кому будет)
...а то тут немного не по теме получается)
+1
Странник Странник 11 лет назад #
В принципе, такую структуру создать вполне возможно. Я сейчас немного другим компонентом занят (надеюсь, тоже интересным) как закончу и выложу, спишемся, поговорим.
+4
Крот Крот 11 лет назад #
плюсанул, нужная штука
сам вручную копирую из одного шаблонного модуля(компонента), а так быстрее дело пойдет
+4
Странник Странник 11 лет назад #
Рад, что пригодилось.
+1
Telema93 Telema93 11 лет назад #
Судя по логике, для плагинов тоже появится?
+2
Странник Странник 11 лет назад #
я хотел сделать аналогичный для апплетов админки, но там меню в файле admin/includes/cp.php, а курочить этот файл утилитой не хочется.
так что админку ручками, ручками.

может, чуть попозже напишу статью, где расскажу, что куда вставлять, чтобы работало. у нас админка довольно архаична.
+1
Telema93 Telema93 11 лет назад #
было бы неплохо мануал написать по этим вопросам, что и как создается, а то все методом тыка делать приходится
0
Странник Странник 11 лет назад #
в админке, увы, да.
я сам попотел, пока разобрался.
0
SE7EN SE7EN 11 лет назад #
а у меня вот что получилось, почему так, не подскажите?
""
+1
Странник Странник 11 лет назад #
Подскажу. У вас произошла ошибка при обращении к базе данных cms_modules. В этой строчке запрашивается максимальное значение положения модулей в позиции (поле ordering), чтобы поместить модуль на позицию+1. Видимо, вернуло false. Скажите, вы префикс таблиц не меняли?
+1
Странник Странник 11 лет назад #
Рекомендую всем, кто скачал у меня утилиту "Генератор модуля", заменить ее на более свежую версию.
+1
kirkr kirkr 11 лет назад #
спасибо, из-за этой рутины лень было модуль залепить, щас сделаю быстро)))
+1
Су-27 Су-27 11 лет назад #
Спасибо за утилиту - отличное решение. Разрабам - то что надо
+1
Андрей Андрей 11 лет назад #
на предмет безопасности: на момент разработки, если файлик будет работать не из корня, а из папки, можно воспользоваться стандартной безопасностью сервера, добавив файлики
.htaccess

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

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

Полагаю, если кодер захочет, он и так в модуль или компонент насует кода, позволяющего ему похулиганить....А для "чайнига" моя утилита совершенно бесполезна, разве что ему хватит ума положить ее в корень сайта на хостинге....
0
Евгений Фоменко Евгений Фоменко 10 лет назад #
На 1.10.3 вроде как должна работать, правда?
0
Странник Странник 10 лет назад #
Да, эта утилита на 1.10.3, конечно, отработает, но сгенерирует файлы под 1.10.1. Там тоже кодировка utf-8, но небольшое отличие при обращении к шаблону. Если не боитесь руками переделывать, можете юзать.
Я признАюсь, что сразу после написания утилиты Генератора компонента к 1.10.3 сел писать утилиту Генератор модуля к 1.10.3. Она так и висит у меня в Денвере, недоделанная, поскольку времени нет совершенно - отвлекает текучка...В ближайшее время допишу! Прошу прощения у разачарованых любителей утилит)))
+3
Странник Странник 10 лет назад #
Забирайте утилиту для версии 1.10.3!
0
Raiden Raiden 10 лет назад #
Для 1,10,4 будет?
+2
Странник Странник 10 лет назад #
Полагаю, можете юзать эту утилиту и для 1.10.4.
Я сравнил код двух-трех модулей, их шаблонов и админок в обоих релизах - структурных отличий нет.
С учетом того, что утилита генерирует "болванку" (при этом сразу работоспособную!), а затем вы открываете сгенерированные файлы, и функционал модуля творите сами, вы вообще отличий не увидите.
0
Баха Баха 10 лет назад #
++

Еще от автора

Адаптация компонента "Закладки" от 19 января 2011 к коробочной версии 1.10.7
На форуме появилась тема с пожеланиями адаптировать довольно старый компонент "Instant Bookmarks" Fuze к современным реалиям.
Утилита "Садовод" для версии InstantCMS 1.10.7.008
В этой краткой заметке описывается утилита "Садовод" для ремонта деревьев версии InstantCMS 1.10.7.008.
Изменение компонента "Баннеры" для будущей  версии 1.10.7.008
Данная статья рассказывает всем ждущим новую версию 008, что нового ожидается в будущем релизе версии 1.10.7.008.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.