Генератор компонентов

+55
6.58K
Привет, друзья. Некоторое время назад я сделал утилиту, позволяющую автоматизировать рутину в части написания новых компонентов. Она позволяет автоматически создавать скелет компонента и генерировать код большинства типовых экшенов.

Утилита умеет создавать:
— папки контроллера и шаблонов компонента;
— языковой файл;
— модель + типовые методы;
— frontend и backend;
— типовые экшены CRUD;
— формы;
— хуки

Делал для себя и как первый пользователь могу сказать что эта вещь очень сильно экономит время избавляя от необходимости писать один и тот же код в сотый раз. Небольшой видео-обзор о том, как это работает:

+1
rookee rookee 8 лет назад #
Спасибо!
+5
Коваль Коваль 8 лет назад #
правда я нихрена не понимаю в этом smile но понимаю что тот кто что то понимает будет ОЧЕНЬ рад )
Спасибо Р2
0
KoRn KoRn 8 лет назад #
Давайте порадуемся вместе за тех кто понимает))) laugh zst
0
Hmelex Hmelex 8 лет назад #
Отличное решение.

Вроде все так просто, но в тоже время надо много знать.

Спасибо за подробное и поучительное видео.
+1
Def Def 8 лет назад #
здорово!

Осталось всем многострадальный инстантШоп дождаться и будет полное счастье:)
+1
Romanovcmc Romanovcmc 8 лет назад #
Мигратор на очереди, если верить гитхабу.
-2
SALIK SALIK 8 лет назад #
эх, а форум то хоть будет или на него в принципе забили? :(
+1
r2 r2 8 лет назад #
Хамить не нужно, пожалуйста. Когда будет вы об этом узнаете.
0
SALIK SALIK 8 лет назад #
Прошу меня простить, язык мой - враг мой, я не так сформулировал мысли :)
+1
Def Def 8 лет назад #
купите платный от креатора, норм форум, почти как на 1 ветке. стоит 850 р и проблем нет никаких, даже по функционалу пошире 1 ветки, т.к есть еще и баннерные позции.
0
SALIK SALIK 8 лет назад #
Да, форум тот действительно хорош, видимо его и куплю все-таки, просто хотелось бы из коробки, ну да ладно =)
0
Alexprofi Alexprofi 8 лет назад #
Спасибо R2!
Прекрасный подарок для тех, кто понимает (это я не про себя zst ).
-2
Андрей Андрей 8 лет назад #
Какой интересный компонент! v
0
Денис Васильевич Денис Васильевич 8 лет назад #
ждём от вас новых компонентов!! laugh
0
Александр Александр 8 лет назад #
Пора найти время на вторую ветку, да и знания подтянуть.
Спасибо r2 за компонент, подобные разработки не только облегчают разработку, но и сподвигают чему то научится.

з.ы. Воспользуюсь случаем и напомню про яндекс деньги для биллинга первой ветки... не терять надежду?
0
WebMan WebMan 8 лет назад #
Обалдеть! Вот это подарок! Спасибо!

А можете добавить фильтры для таблицы списка записей в Админке? Чтобы список был более удобен, как все остальные таблицы в Админке.
0
r2 r2 8 лет назад #
фильтры вы добавите сами в нужном гриде, автоматически определять соответствие "тип поля - тип фильтра" неоткуда
0
Remi Remi 8 лет назад #
ТО ЧТО ДОКТОР ПРОПИСАЛ)))! +
0
My-InstantCMS.Ru My-InstantCMS.Ru 8 лет назад #
Спасибо r2
Попробую что нибудь бесплатное сделать для сообщества)
0
Raiden Raiden 8 лет назад #
Может простейшие голосования?)
+1
My-InstantCMS.Ru My-InstantCMS.Ru 8 лет назад #
Есть же бесплатный виджет и платный компонент от Val
0
Raiden Raiden 8 лет назад #
Ни одного бесплатного опроса на 2 не нашёл. Плохо искал?
0
Raiden Raiden 8 лет назад #
Премного благодарен! То, что нужно)
0
PIN PIN 8 лет назад #
Теперь дополнения как грибы должны появляться )), продуманное вышло дополнение!
+2
Денис Васильевич Денис Васильевич 8 лет назад #
Теперь оправдание рутинной не помеха а значит придётся больше работать joke Теперь я буду делать сразу компонент а не виджет с экшенами и хуками joke Собственно так и порядку будет больше.
0
Денис Васильевич Денис Васильевич 8 лет назад #
Благодарю Вас за полезнейший инструмент!!
0
vikont vikont 8 лет назад #
Н-да! Видимо я все таки доживу до того времени, когда народ массово начнет переходить с WD на ICMS2.... smile
0
My-InstantCMS.Ru My-InstantCMS.Ru 8 лет назад #
При добавлении объекта, в модель создается 2 одинаковых функции
например:
Код PHP:
  1. public function getCommands($id){
  2. return $this->getItemById('table_commands', $id);
  3. }
  4. public function getCommands(){
  5. return $this->get('table_commands');
  6. }
из за этого возникает ошибка Cannot redeclare
+2
r2 r2 8 лет назад #
Судя по всему вы указали одинаковые "системное имя" и "системное имя во множественном числе"
+1
My-InstantCMS.Ru My-InstantCMS.Ru 8 лет назад #
Да, извиняюсь, проблема оказалось в этом
0
MAKS-IT MAKS-IT 8 лет назад #
Очень полезное решение, обязательно возьму на вооружение v
Может еще сборшик инсталяционных пакетов написать да бы упростить немного жизнь кодерам scratch
+1
Val Val 8 лет назад #
r2, большое спасибо за столь полезную разработку! Уже не раз о ней думал и мечтал приступая к очередному дополнению smile и периодически вспоминал Странник'а с похожей утилитой но под первую ветку InstantCMS.
Несомненно наличие подобных инструментов приведет к большему количеству все новых дополнений на любой вкус и цвет smile что только положительно скажется на популярности движка!
0
Loadырь Loadырь 8 лет назад #
Что-то он у меня быстро сломался. Буквально на второй вкладке "Объекты". У player-ов указал тип поля "users". А он мне сразу такое https://yadi.sk/d/OZtHh33vsEiEz
0
r2 r2 8 лет назад #
Компонент всё же рассчитан на разработчиков smile никаких "защит" там нет
Класс fieldUsers никогда не используется напрямую в реальных формах, это виртуальное поле
0
Loadырь Loadырь 8 лет назад #
r2:
Компонент всё же рассчитан на разработчиков
Видимо я не разработчик, раз у меня не работает rofl .
Шучу, нормально всё, ручками поправил. Занятная штука получилась.
Что ещё есть у вас интересного? popcorn
0
Нико Нико 8 лет назад #
Важно если поиск подделали, что бы поиск был как в соц сетях только вводишь имя а он уже выдает данные на первые буквы, было бы супер
0
Val Val 8 лет назад #
Не лучше как в гугле! Он тебе и подсказки выводит и релевантные результаты... сказка в общем. Установил iCMS - вот и поисковик готовый, можно с яндексом конкурировать laugh
0
Fuze Fuze 8 лет назад #
Конечно сделаем. Вы пока забронируйте себе выделенный сервер (лучше несколько, объединив в кластер), настройте на нем MYSQL, настройте грамотно остальные параметры, интегрируйте Sphinx в InstantCMS, наймите штат сотрудников и так далее.
Чтобы CMS работала "как в соцсетях".

А если без сарказма, то чтобы было "как в соцсетях" и при этом держало нагрузку при огромном количестве данных в базе, необходим индивидуальный подход к сайту, а не просто установить на хостинг Джино CMS и ждать миллионы посетителей. Конечно, если сайт имеет маленькую базу данных, небольшую посещаемость, то вполне можно сделать "живой" поиск, который будет работать даже на шаред хостингах.
0
Нико Нико 8 лет назад #
Ну там думаю можно сделать так, если администратор знает что хостинг слабый то он переключит функцию поиска, а если у него мощный хостинг то переключит как поиск в гугле. Но я думаю что поиск нужен такой хотя бы не как в гугле но чуть лучше.
+1
Петр Петр 8 лет назад #
Теперь цена на компоненты должна уменьшиться как минимум на треть? :)))
0
SE7EN SE7EN 8 лет назад #
Теперь цена на компоненты должна уменьшиться как минимум на треть? :)))

Тоже самое хотел сказать )))
+1
Loadырь Loadырь 8 лет назад #
Однозначно, стоимость разработки компонента снизится на треть. Но скорее всего, те кто их будет делать, включат в стоимость изучение, тестирование и дебаггинг, этого нового для них функционала. В итоге стоимость разработки увеличится на как минимум на одну десятую laugh
0
Zau4man Zau4man 8 лет назад #
Отличное дополнение. Пойду опробую.
0
Luk Luk 8 лет назад #
Прошу прощения многоуважаемый R2
А это правильно что при создании объектов на основе сгенерированного компонента появляются только собственные поля, а стандартных полей нет.
Вообще компонент просто супер! Большое спасибо!
0
r2 r2 8 лет назад #
Не уверен что понял вопрос
0
Виктор Виктор 8 лет назад #
Luk, имел ввиду следующее. На вкладке создания объекта есть стандартные поля (Дата публикации, Флаг активности и пр.). Если у этих полей оставить/поставить галочку, то потом при просмотре/редактировании записей в данном объекте ни одно из этих стандартных полей не выводится на форму. Выводятся только поля из раздела "Собственные поля объекта".

От себя добавлю они не только не выводятся, но и не обрабатываются. Например, добавил запись, а поле user_id осталось незаполненным.
То есть, нужно, я так понимаю, корректировать код соответствующих модулей.
0
Luk Luk 8 лет назад #
Уважаемый автор и опытные пользователи кто знает как избавиться от ошибки 503 как на хостинге beget так и на локальном Denwer. Заранее спасибо.
0
Странник Странник 8 лет назад #
Во-первых, этот вопрос надо было задавать на форуме, а во-вторых, 503 ошибка на Денвере - это из разряда курьезов. 503 - это Service Temporarily Unavailable - Сервис временно недоступен. Я понимаю, дешевый хостинг с ограничениями может выдать такую ошибку, но на Денвере то Вы хозяин. Зайдите в php.ini и увеличьте время выполнения скриптов. Иногда 503 возникает при перегрузке, когда долго выполняется скрипт.
0
Luk Luk 8 лет назад #
с 503 не прав просто подумал что это особенность компонента поэтому сюда и написал.

Найдена небольшая ошибка. при генерации action в строке
return $template->render(....) в конце строки отсутствует точка с запятой.
0
Виктор Виктор 8 лет назад #
Самое главное - огромное спасибо за компонент!!!

Теперь о проблеме. Не так, чтобы большая проблема, но если знать как её побороть руками, то пусть остаётся :).
Суть в том, что при создании поля в объектах не срабатывает снятие галочки на обязательности заполнения поля. Это в разделе "Собственные поля объекта". При попытке потом не заполнять это поле при создании нового объекта выдаёт ошибочку :(.
Где в инстанте можно руками исправить, чтоб перестало быть обязательным?
0
shaman888 shaman888 8 лет назад #
ошибку выдаёт при попытке редактирования записи "Ответ нулевой длины"
запись не удаляет даже при удалении компанента и создании его клона. Показывает что удалён, но при обновлении страницы снова проявляется в админке. На сайте запись изначально отсутствует, но есть корневой католог компанента. Кнопок добавить нет. ICMS 2.5.1, Генератор компонентов 1.0
0
Виктор Виктор 8 лет назад #
Про какую запись идёт речь?
Кнопок добавить ЧТО нет?
Вы добавили компонент и в списке компонентов пытаетесь редактировать запись компонента?
0
AndroS AndroS 8 лет назад #
Крутая штука! Осталось еще визуальный генератор/редактор шаблонов сделать )))
Чтоб можно было сделать им легкую адаптивную сетку с блоками, которую в инстайлере уже тюнишь, как хочешь...
0
kaktus kaktus 7 лет назад #
прикольная штука)) стандартизирует разработку модулей, что бы в своем большинстве было везде одинаковое название методов, свойств..
код чужих компонентов делает более читаемым и заодно новых разработчиков (как я) учит делать код в соответствии с стандартизацией instantcms..
0
Рачей Рачей 6 лет назад #
Сегодня на свеже-поставленом инстанте и вот.


Компонент «comgen» не имеет настроек
Последние вызовы:

call_user_func_array() @ /system/core/action.php : 29
cmsAction->__call() @ /system/controllers/admin/actions/controllers_edit.php : 34
actionAdminControllersEdit->loadControllerBackend() @ /system/controllers/admin/actions/controllers_edit.php : 34
actionAdminControllersEdit->run()
call_user_func_array() @ /system/core/controller.php : 507
cmsController->runExternalAction() @ /system/core/controller.php : 425
cmsController->runAction()
call_user_func_array() @ /system/core/action.php : 29
cmsAction->__call() @ /system/controllers/admin/actions/controllers.php : 9
actionAdminControllers->runAction() @ /system/controllers/admin/actions/controllers.php : 9
actionAdminControllers->run()

Еще от автора

InstantMaps, Биллинг, Инстайлер - поддержка modern + скидки!
Привет, друзья. Рад представить вам долгожданные обновления компонентов InstantMaps и Биллинг.
Обновление Конструктор тем 2.0.3
Привет, друзья. Рад представить вам обновление компонентов Конструктор тем и InPlayer.
Юбилейная распродажа!
Привет, друзья! Совсем недавно нам исполнилось 10 лет! В честь этого события мы решили устроить юбилейную распродажу.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.