InstantCMS 2: Пишем компонент

+92
7.3K

Привет, Друзья.

С вами второй выпуск видео-дневника разработки InstantCMS 2.0.
Сегодня мы заглянем под капот и посмотрим на изменения в коде.

Этот выпуск будет интересен в основном программистам, которым интересна реализация работы компонентов в InstantCMS 2.0. Однако, это не видео-урок и не туториал, просто обзор в таком формате.

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

В сегодняшнем выпуске я напишу простой компонент, "Гостевая книга".
Компонент будет обладать следующим функционалом:
— добавление сообщений;
— проверка корректности данных введенных пользователем;
— постраничный вывод сообщений;
— фильтрация сообщений;
— удаление сообщений администратором;

Для каждого сообщения "Гостевой книги" можно будет указать тему, текст, имя автора, а также особое поле — "Ваше мнение о сайте". Это выбор из трех вариантов ("положительно/нейтрально/отрицательно"). Выбранный вариант будет определять цвет фона сообщения (зеленый/серый/красный), аля отзывы на КиноПоиске.

Компонент написан с ноля за 30 минут, с учетом объяснений.
При некоторой сноровке создание подобного компонента в InstantCMS 2.0 будет занимать не более 15-20 минут.

Смотреть лучше в 720p.

0
lokanaft lokanaft 11 лет назад #
Первый! =D

Ждём, ждёмс
0
lokanaft lokanaft 11 лет назад #
Показаны 1-2 из 3, показаны 3-3 из 3.
0
r2 r2 11 лет назад #
проблемы?
0
lokanaft lokanaft 11 лет назад #
Вероятно "показан 3 из 3" будет более логично.
0
r2 r2 11 лет назад #
"показан 3 из 3" тоже не выход, звучит как-будто "показаны все"
подумаю еще над этим
0
kir kir 11 лет назад #
а если попробовать добавить слово "запись"? Показаны 1-2 запись из 3 // Показанa 3 запись из 3
0
r2 r2 11 лет назад #
тоже под вопросом, в списке пользователей например "запись" не будет смотреться =)
0
kir kir 11 лет назад #
показано с 3 по 3 из 3
показано с 1 по 2 из 3

как универсальны вариант)
0
lokanaft lokanaft 11 лет назад #
Показан 3, всего 3.
Ну а поскольку ситуация происходит лишь для крайнего:
Показан последний из 3.
+1
kir kir 11 лет назад #
шаг вперед, больше ООП:)

вопрос: будет ли возможность при создание формы, создавать динамические формы и проводить валидацию с помощью регулярных выражений?
0
r2 r2 11 лет назад #
шаблон формы всегда доступен, можно сделать какую угодно
валидаторы тоже можно добавлять свои
+1
Сергей Игоревич Сергей Игоревич 11 лет назад #
1. Где качать?
2. Стабилен ли API? Можно ли начинать уже писать?
3. Что с Ajax немного не понял.
0
r2 r2 11 лет назад #
1. Нигде
2. Нет
3. Не понял вопрос
0
r2 r2 11 лет назад #
когда появится возможность что-то скачать, об этом будет сообщено отдельно
+3
Сергей Игоревич Сергей Игоревич 11 лет назад #
Может перевести разработку на открытые рельсы? Чтобы и разработчики уже писали модули и к выходу 2.0 уже была инфраструктура из модулей
0
Максим Шорин Максим Шорин 11 лет назад #
действительно, зачем делать из этого тайну ?

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

За видео спасибо..
0
r2 r2 11 лет назад #
какая интересная теория
-2
Максим Шорин Максим Шорин 11 лет назад #
так а что еще думать остается ? никаких пояснений нет, вон и темным людям которые меня минусуют тоже интересно =)))
0
Максим Шорин Максим Шорин 11 лет назад #
не зря же они кликали, уж расскажите поподробнее по этой теме =))))
+3
r2 r2 11 лет назад #
а что рассказать то? все будет в свое время
+1
Максим Шорин Максим Шорин 11 лет назад #
рассказать ? Сергей Игоревич поднял ветку, тобишь давайте ореентироваться по ней...

Может перевести разработку на открытые рельсы?
+1
Soul Soul 11 лет назад #
Присоединяюсь к Сергею Игоревичу. Пусть не в свободное скачивание, а хотя бы людям, находящимся в каталоге специалистов, можно дать возможность изучить 2,0...
Хотя "хозяин - барин"... будем ждать бету...
+2
r2 r2 11 лет назад #
Я же говорю, все будет в свое время, когда API сформируется и зафиксируется, когда код не стыдно будет показать - будет создан репозитарий. Зачем все эти истерики мне не понятно.
0
letsgo letsgo 11 лет назад #
Честно не понимаю, зачем выкладывать недоделанный продукт то? Пишется Инстант 2, когда будет готова, её выложат, тем более писали, что идет процесс программинга, при котором если что то не устраивает, то снова переписывают весь компонент. Естественно выкладывать надо продукт готовый к тестированию, имеющий законченный вид.

Сергей Игоревич сам любитель по полгода бета версии выкладывать. так и не доделав, но Инстант то серьезная вещь.
0
Димитриус Димитриус 11 лет назад #
Хм а мне понятно. При разработке многие производители используются такую пиар технологию по поддержанию интереса к проекту, когда особенно проект длителен во времени.

Почему нет исходного когда в паблике тоже осмелюсь предположите: у разработчиков верси 1.х думаю это первая большая проба создания систем такого масштаба, возможно это было что то в роде проба пира, отработка методов программирования.
Сейчас ветка 2.х это новый уровень, и разработчик поставил перед собой цель создать гибкое ядро отвечающее современным методам проектирования.
Так сказать задать направление дальнейшего развития проекта
+1
Soul Soul 11 лет назад #
Зачем все эти истерики мне не понятно.
да это скорее не истерики, а желание получить желаемое побыстрей! - не обращайте внимание, работайте - мы ждем... :)
0
Ramin Ramin 11 лет назад #
А когда планируется(примерно) выход бета версии?
+4
r2 r2 11 лет назад #
я уже боюсь сроки называть =))
но по сути из больших задач сейчас готово:
- ядро (API)
- управление контентом
- управление пользователями
- профили, личные сообщения
сейчас допиливаются основные функции пользователей (друзья, уведомления и т.п.)
после них пойдет работа над инсталлятором движка и модулей
ну и потом видимо бета
0
Azura Azura 11 лет назад #
Почему скучно будет??:))) Потрясно!!! Я не программер, но очень познавательно и завороженно всё смотрела до конца!
Я хочу так же как вы уметь.... =)))) Кто б научил, блин.... =))))

Хорошо бы кто-то занялся Вики к инстанту... Там очень мало информации о стандартных функциях, которые можно подключить непосредственно из ядра. Иметь бы список всего стандарта этого... Очень не полная. Если бы я знала ПХП, я вы вам уже давно этим помогла, но увы... sad Всё никак не даётся этот язык мне... :(((
+3
r2 r2 11 лет назад #
по 2.0 будет подробная документация, это один из основных приоритетов
0
Azura Azura 11 лет назад #
Супер))))) Поможет мне подружиться с языком :)))) Спасибо что вы есть!
+1
Soul Soul 11 лет назад #
я уже боюсь сроки называть =))

Все равно покоя не дадим smile Нам ж не втерпеж уже :)
Работайте, мы подождем, что нам еще остается... :(
+5
Reborn Reborn 11 лет назад #
Одним словом- молодцы. Я еще ни в одном движке не видел,что бы разработчики показывали вызуально.
Реально,ещё раз убеждаюсь, что выбрал правильный движок.
И , как всегда говорил и продолжаю, это единственная цмс, где можно на прямую общаться с разработчиками.
Пасиб))) +++
0
lokanaft lokanaft 11 лет назад #
Как вы произносите "Content management system" ? Цонтент? Имхо, если в сокращении произносить "Си-эм-эс", то будет будет выглядеть СМС, что не вполне приемлемо, в таком случае логичнее писать КМС, не так ли? ;)
+1
Олег с клещами Олег с клещами 11 лет назад #
Эт пральна! Надо бороться за чистоту русско-импортных транслитераций!
0
Денис Васильевич Денис Васильевич 11 лет назад #
а у нас в России, зазнаек и не изобретательных людей мало водится.
0
Максим Шорин Максим Шорин 11 лет назад #
не обнадеживайся, разработчики общаются с пользователями только если им это выгодно, ну кроме Игоря конечно.. на провакационные вопрос они забивают, даже в аське игнорят...
+4
Fuze Fuze 11 лет назад #
разработчики общаются с пользователями только если им это выгодно
доводы, аргументы, что имеется в виду?
+4
r2 r2 11 лет назад #
>разработчики общаются с пользователями только если им это выгодно
И что в этом такого? Пользователи делают тоже самое. Или нужно о погоде разговаривать?

>на провакационные вопрос они забивают
А вы задавайте нормальные вопросы, а не провокационные.
+1
Yurik Yurik 11 лет назад #
Большую работу проделали, чем то уже напоминает работу с фреймворками (сам пишу на Yii).
Теперь разработка дополнений будет намного проще и приятнее :)
Вам бы еще переехать на Git...
А так молодцы, двигаетесь в правильном направлении :)
+2
Сергей Игоревич Сергей Игоревич 11 лет назад #
Плюс за git
0
Alexneva Alexneva 11 лет назад #
Впечатляет !!!
0
Trang Trang 11 лет назад #
молодцы!
0
Марат Марат 11 лет назад #
Прекрасно!
Радует отказ от Smarty. Разработчикам будет намного проще. Дизайнерам придется немного попыхтеть, но думаю не составит труда. php-html изящнее.
Понравилась реализация добавления форм. Нужно только привыкнуть.
Оффтоп. Можно узнать каким IDE пользуетесь?
-1
letsgo letsgo 11 лет назад #
Не Net Beans?
+1
r2 r2 11 лет назад #
он самый
+2
deltas deltas 11 лет назад #
Немного грустно что о совместимости старых компонентов и всего прочего можно забыть. Но с другой стороны - огромный фронт для новых творчеств. Все придется делать совершенно по другому, но судя по примеру - намного интереснее! Огромный респект авторам такого продуманного проекта!
0
Димитриус Димитриус 11 лет назад #
Очень порадывало шибкость и прастота написание компонентов.
Я впечатлён )
Спасибо))
0
Сергей Петрович Сергей Петрович 11 лет назад #
ПОЧЕМУ
после создания формы в поле "мнение о сайте" по дефолту оказалось "Нейтральное"??
(вопрос с точки зрения кода)
0
RooKee RooKee 11 лет назад #
мне кажется это из-за цвета шапки. Так лаконичнее что ли.
0
r2 r2 11 лет назад #
если дефолтное значение не указано явно, то используется 0
при желании в опциях поля можно указать другое
Код PHP:
  1. 'default' => 1
+1
picaboo picaboo 11 лет назад #
На самом деле очень провокационное видео...

С моей точки зрения не_кодера, выглядит так, что весь движок можно было вот так вот написать за неделю.
0
picaboo picaboo 11 лет назад #
смайлег забыл поставить :)
0
Mr.Andreius Mr.Andreius 11 лет назад #
перед тем ка вот так
picaboo:
весь движок можно было вот так вот написать за неделю
ты как не кодер, просто не представляешь сколько кода надо написать, хотя бы только для того что бы выводить форму, вот так, просто заданием полей...

ты просто видишь вершину айсберга :)
+3
Mr.Andreius Mr.Andreius 11 лет назад #
смайлег поставил ;)
+1
lokanaft lokanaft 11 лет назад #
Молодец =D
+2
Сергей Петрович Сергей Петрович 11 лет назад #
Чтобы стать умным достаточно прочитать 10 книг, но чтобы найти их нужно прочитать тысячи.
0
lokanaft lokanaft 11 лет назад #
К чему это?
+2
Mr.Andreius Mr.Andreius 11 лет назад #
а начать надо с php manual
0
lokanaft lokanaft 11 лет назад #
Рукалицо, кто нибудь может сказать к чему была фраза от Ленивый и за что меня ещё и минусуют cry ?
0
Azura Azura 11 лет назад #
Отплюсовала обратно. :3 Ленивый, сказал фразу очень старую, что читающий человек всегда умнее и образованнее, чем тот, кто, например, таращиться в ящик =)
+2
lokanaft lokanaft 11 лет назад #
Но почему это адресовано именно мне? Или я так похож на торчащего в ящике?
0
Александр Александр 11 лет назад #
Молодцы!!!,видео классное
0
Денис Васильевич Денис Васильевич 11 лет назад #
как же вы эти все функции в памяти держите :)
молодцы :)
п.с. у моего знакомого голос сильно схож с автором ролика :)
0
VopisUVD VopisUVD 11 лет назад #
Мега доходчиво, если и документация будет такая же то даже не програмеры смогут писать свои простые компоненты или даже править чужие...
Спасибо.
+1
Марат Марат 11 лет назад #
А как будет реализован ЧПУ? Будет ли роутер компонента?
0
Ai Ai 11 лет назад #
MVC модель видимо предполагает роутер. Но мне вот тоже этот вопрос интересен больше с позиции SEO. Очень бы хотелось простое ЧПУ и было бы совсем хорошо, если на кириллице.
+1
lokanaft lokanaft 11 лет назад #
Кириллицы нам ещё не хватало
+1
r2 r2 11 лет назад #
в видео показан базовый роутинг, который работает автоматически
кроме него можно будет определять маршруты для компонента примерно так же, как сейчас
+2
Джехутимери Джехутимери 11 лет назад #
Я хоть и человек далекий от написания чего-либо, но логику вловил :)) Теперь есть мега-желание изучать php :))) Спасибо создателям! )
+1
never never 11 лет назад #
Это только на первый взгляд - всё так просто. На такое нужно иметь - практику.
+2
PET PET 11 лет назад #
Сразу хочется обратиться ко всем программистам будущих компонентов: не забывайте и не игнорируйте вынос системного текста в языковые файлы!
Я так думаю, в том числе и это имел в виду автор ролика, когда упомянул в конце о мультиязычности.
Поправьте, если не прав.
-1
letsgo letsgo 11 лет назад #
Какие варианты урла будут, 2 или 3 уровень с такой моделью компонентов?
+1
r2 r2 11 лет назад #
как сделаете компонент, так и будет
+1
Reborn Reborn 11 лет назад #
Это конечно хорошо,но очень важный с точки зрения СЕО момент:

Возможно ли заменить в URL после названия компонента, символ " / " на " - " или на " _ " , и таким образом, получить URL первой вложенности ?
На пример, сейчас мы имеем адрес, вида
http://site.ru/component/category/subcategory/seolink.html
А нужно
http://site.ru/component-category-subcategory-seolink.html
Или,ещё лучше
http://site.ru/id-seolink.html
Возможно ли заложить возможность в урле менять " / " на " _ " или в админке выбор сеоурла, каким уровнем делать ?
0
Fuze Fuze 11 лет назад #
R2:
как сделаете компонент, так и будет
+1
googlebot googlebot 11 лет назад #
Не путайте теплое с мягким, разделение по слешам в урл не имеет ничего общего с уровнем вложенности. В SEO уровень вложенности - кол-во кликов с главной страницы, от урл никак не зависит и от физического расположения файла (по папкам) тоже.
-1
letsgo letsgo 11 лет назад #
Не место конечно дискутировать, но разговор идет об урле, а не о вложенности. Подача в карте сайта урлов site.ru/id_seolink.html имеет лучший вид даже находясь в категории, которая не показывается урлом.
+1
Positive Positive 11 лет назад #
Да, это так. А мне вообще нужно site.ru/seolink.html, всё остальное отображается в глубиномере, для пользователя этого достаточно, а для искалок лучше будет.
0
picaboo picaboo 11 лет назад #
Парни, кончайте с сео, вы так себе мозг заоптимизируете. Отключите вообще ЧПУ, index.php?do=category&page1&view - ваш случай. Первый уровень вложенности и урлы как у яндекса!
+4
Fuze Fuze 11 лет назад #
Парни, кончайте с сео, вы так себе мозг заоптимизируете.
Был бы рядом, просто двумя руками руку пожал)
0
googlebot googlebot 11 лет назад #
пардон, не хотел, честное оптимизаторское ;)
+3
letsgo letsgo 11 лет назад #
Ну ну. Еще с чем завязать? Забыл как писал, что есть твои хотелки и есть то что дает система и судя по твоим же словам, они пока не сходятся?

Или будем молчать пока пишут и ругать когда выйдет? По мне так все моменты надо сразу продумывать и особенно с SEO, потому что завтра система будет готовой и менять что то будет опять вопрос года как минимум. Восторг от таких фраз вызывает лишь недоумение.
+1
Fuze Fuze 11 лет назад #
letsgo, имелось в виду, что всему должна быть мера.

Система формирования url как /раздел/страница.html - классический. В 2.0 с url будете вертеть как хотите - один уровень, много уровней - как угодно. Собственно и сейчас можете это делать на текущей версии.
+1
picaboo picaboo 11 лет назад #
Ты иногда выдаешь такие глубокие мысли, что хочется спросить что ты куришь и нельзя ли отсыпать?

посмотри урл http://yandex.ru/yandsearch?text=instantcms&lr=2 - ты тут увидел сеоурул? это первый уровень в твоем понимании? ключевик в урле присутствует?

а в гугле сеоурл покажешь?
+1
picaboo picaboo 11 лет назад #
комментарий к letsgo относился
-2
letsgo letsgo 11 лет назад #
Ты все в кучу собрал?) Честно немного не понял вопрос, но поясню, что меня интересует.

Например интересен вот такой чистый урл site.ru/id_seolink.html Ид это номер записи. Вот собственно и все. Разговор идет не о ключе счас, и не об уровне вложенности, а только о виде урла.
-1
picaboo picaboo 11 лет назад #
я тебе о том, что лет 10 назад урлы были динамическими, одноуровневыми и состояли из переменной и набора передаваемых параметров. потом народ изобрёл ЧПУ и стал через htaccess коверкать чистейший index.php?cat=3&page=11 превращая набором правил в суррогат из ключевиков /category/some_keyword.html

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

в качестве примера, два урла от сеобожеств которым поклоняются сеошникки :)
-1
letsgo letsgo 11 лет назад #
Это все очень хорошо и совпадает с тем, что я написал и спросил. Но ты как то не читаешь что я пишу чтоли)

Схема site.ru/15-klush.html про которую я пытаюсь уточнить. Ты знаешь варианты еще короче?) Мне не нужны слеши и прочее, нужна лишь возможность делать короткий урл, если вникать глубже то название сайта - номер записи - ключевое слово. По моему, ты счас в посте выше написал тоже самое в качестве предпочтения?

Конечно мне не нужна конструкция site.ru/component_categoria_nazvanie.html Спросил я о возможности выводить именно прямой чистый урл сайт - страница + ид для избежания дублей названий.
+3
Lari Ken Lari Ken 11 лет назад #
А меня вот интересует вопрос производительности системы. Насколько все это будет шустро работать, и насколько крупные поратлы можно будет на ней делать. Ведь если сравнивать Инстант 1.9 и ДЛЕ - то последний намного меньше грузит сервер.

В вообще круто, только хотелось такую фишку, типа "Спасибо, ваша запись добавлена..." и "Запись из гостевухи удалена".
-7
Алексей Гаврилов Алексей Гаврилов 11 лет назад #
Видео супер, а не могли бы сказать сроки выпуска v2 ? ++++
+1
Soul Soul 11 лет назад #
а не могли бы сказать сроки выпуска v2 ?
Интересный вопрос... Ответы выше.
0
Azura Azura 11 лет назад #
А где можно будет ввести предложения? :)
Меня вот интересуют альбомы пользователей и их полная интеграция с галереей. Думаю понятно что это значит, но где можно внеси более подробное предложение?
0
Symedia Symedia 11 лет назад #
Посмотрел видео. Жму руку разработчикам. Весьма правильное направление. И очень повеяло от Zend Framework. Отказ от Smarty это тема конечно больше филосовская и для холиваров на хабре, но дабы не вступать в жесточайшую конфронтацию с верстаком, хотелось бы иметь возможность этот движок подключать. Конечно будет дико смотреть на сей костыль в стройной фигуре ООП и хелперов, но для некоторых эта жертва может быть оправданой.

PS:
Вид зависшего верстака перед экраном, смотрящим на святое писание на PHP, как баран на новые ворота, весьма и даже зело вводит в уныние. Ибо верстак, кое как изучивший Smarty модификаторы, в плане их применения, при виде голого и бессовесного PHP, может заглючить на неопределенный срок.
0
MAKS-IT MAKS-IT 11 лет назад #
Может глупый вопрос, какой php редактор использовался при создании ролика?
+1
googlebot googlebot 11 лет назад #
R2, может немного не в тему вопрос, но раз Вы программировали под Битрикс, чем не приглянулась концепция инфоблоков - единого "кирпичика" в системе из которого по сути можно построить почти любой компонент вообще без программирования?
+2
r2 r2 11 лет назад #
почему не приглянулась?
нечто похожее будет, в упрощенном виде, называется это "типы контента" и было показано в предыдущем видео
0
googlebot googlebot 11 лет назад #
Спасибо, надо пересмотреть оба, немного не понял зачем создавать компонент гостевой, если его можно собрать из созданного типа контента и формы для заполнения.
0
r2 r2 11 лет назад #
чтобы увидеть как пишутся компоненты
0
CozaNostra CozaNostra 11 лет назад #
Чем то на Kohana смахивает
0
Иван Шкута Иван Шкута 11 лет назад #
Супер!!! И обращения к базам и формы! А отсутствие смарти, с нынешним количеством и доступностью мануалов на русском, даже для самых узких верстаков, с таким подходом, не проблема.
0
sasha sasha 11 лет назад #
А что за программа испольвовалась в видео? а то я в нотпаде все сижу
0
googlebot googlebot 11 лет назад #
NetBeans IDE вроде
0
Крот Крот 11 лет назад #
а почему бы не сделать графическое описание структуры полей компонента(той же формы), автосоздать таблицу(ы) под компонент и потом автоматически обработать добавление(изменение) записи на уровне базового класса
а при сильной нужде шаблон формы свой подставить?

P.S. это чтоб меньше писать)
0
Сергей Егоров Сергей Егоров 11 лет назад #
Оффтоп
0
Fuze Fuze 11 лет назад #
Сергей Егоров, у меня нет программ для записи видео.
0
Рачей Рачей 11 лет назад #
попробовал написать... Fatal error: Call to undefined method guestbook::loadForm() in
пересмотрел все несколько раз, ошибки не вижу в ни в файле формы ни модели..
0
Рачей Рачей 11 лет назад #
Ну в общем разобрался... форму грузим так: $form = $this->getForm('message');
а класс в форме называется так: class formGuestbookMessage extends cmsForm {
Исходя из этого вопрос, писать начинать можно, или еще пока рано?

Еще от автора

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