Доброго всем времени суток!
Предыстория:
Давным давнов далекой галактике я решил заняться веб-программированием, с чего начать — запрос в Яндекс, первая CMS — Joomla, компонентов, шаблонов — море, php код не понимаю совершенно. Нашел как-то раз компонент, позволяющий создать любую структуру данных — под статьи, блоги, доску объявлений, каталог фирм и т.д. Поставил — до сих пор крутится на одном из сайтов.
Итак, прошло время, появился небольшой опыт в php, и в начале лета я принял решение сделать такой же компонент под InstantCMS. На самом деле, и каталог статей и доска объявлений, блоги, каталог фирм или просто каталог, имеют одну и ту же внутреннюю структуру. Это категории и вложенные в них элементы, отличающиеся только полями. Назовем вышеупомянутые компоненты — приложениями, в них будут категории и соответственно элементы.
Также очень хотелось сделать интерфейс управления структурой приложений — то есть не руками в базе добавлять(удалять) поля, а в админке. А также прозрачную и удобную систему управления доступом, которая при этом работает правильно — если стоит на категории доступ чтения только пользователи сайта — то гости ниоткуда не смогут попасть в эту категорию, тем более прочитать элементы этой категории.
За небольшое время был продуман движок и структура БД, написаны пара тестовых приложений. И через какое-то время выходит первый пост про InstantCMS 2. Вы знаете — идеи очень схожи, только вот вторая версия больше на фреймворк походит. У меня же просто суперУниверсал для 1.9 😊.
Итак анонс:
Компонент TreeCat. Целевые версии InstantCMS 1.9-1.10 (может быть 1.8). В 2.0 думаю все это будет в ядре системы, так что 2.0 в планах пока не обозначено. Честно сказать, я пока еще не смотрел код второй версии, чтобы ненароком ничего не скопировать.
0) Система url-ов. Компонент один — url`ы разные. Понятнее всего будет на примере:
сайт.рф/iboard Доска объявлений
сайт.рф/iboard/jilie Категория Жилье
сайт.рф/iboard/kvartiry подкатегория Квартиры в категории Жилье
сайт.рф/iboard/avto Категория Авто
сайт.рф/iboard/raznoe Категория Разное
сайт.рф/iboard/prodam-kvartiru-4.html — объявление "Продам квартиру" в подкатегории Квартиры
сайт.рф/iblog Блоги
сайт.рф/ifirmy Каталог фирм
сайт.рф/iphotos Фотокаталог(или фотоблог) 😊
Все эти ссылки обрабатывает один компонент. Вам нужно только нарисовать шаблоны.
Также есть встроенный уникализатор ссылок на элементы(посты), категории и загружаемые картинки.
При желании можно вынести все картинки на другой сервер, также есть автогенератор миниатюр картинок(с кэшем и с определенным набором размеров 50x50, 100x200, 500x500, и т.п.)
1) БД — описание структуры таблиц приложений хранится в таблице. Соответственно менять поля очень легко. Структура дерева категорий сделана (почти доделана 😊 ) на Materialized Path(mpath), подумал, что так будет меньше ошибок и нагляднее. Тем более потому, что есть опыт построения каталога на NOSQL с помощью mpath. Также есть централизованное хранилище основных данных в одном месте — посмотрим как это будет работать на больших объемах 😊.
2) Иерархия и поля компонента:
Приложения — Категории — Вложенные категории — элементы категорий.
Поля элементов — число, вещ.число, строка, текст, картинка, галерея картинок, чекбокс, радио, список значений(+выпадающий), зависимый список значений, город (geoip) и т.д.
3) Система управления доступом: права выставляются на просмотр, добавление, редактирование, удаление) приложений, категорий, подкатегорий и при желании элементов). Права можно выставить либо на группу, либо на конкретного пользователя.
4) Шаблоны. Шаблонизатор Smarty либо (в планах) чистый php-include. Как вариант может быть реализована система плейсхолдеров.
На данный момент реализована система — создаются шаблоны на просмотр категории, элемента, указывается для каких приложений(категорий) какой шаблон и все работает. В шаблонах нужно указать только значения полей приложения.
5) Автоматическое создание форм добавления-редактирования с возможностью указания зависимых полей (как на AVITO.RU). Т.е. в зависимости от значения поля, будут показаны или скрыты какие-то дополнительные поля. Например в доске объявлений — Продам автомобиль. Поле <Пробег>, значения "Новый", "С пробегом". При выборе второго значения в форме появятся два дополнительных поля "Пробег в км." и год выпуска. Все это при сохранении само запишется куда нужно, при редактировании появится все на своих местах. Еще раз повторю — поля любые.
6) Автополя для сортировки. Нужно только указать поля в описании (Сортировка по этому полю), чтобы появилась форма сортировки на фронтенде сайта, соответственно в категории можно указать(а можно и унаследовать), показывать ли форму сортировки.
7) Фильтры. В планах. Идею честно признаться спёр из второй версии. Хотя кто знает как она у меня получится. 😊
8) Мощная система плагинов на всё и вся. Вот с помощью них можно будет вносить дополнительный функционал
Итак, пока у меня на этом все, я показал вам перспективу, по поводу первой альфы говорить рано и работы над компонентом еще много. Пока с помощью него уже 4 месяца пишу сайт для любимой жены, вот он и дорабатывается. А еще что-то кушать надо и на основной работе работу работать.
В любом случае, версия для 1.9 (а потом и для 1.10) будет. Пока не знаю, платно ли или бесплатно, думаю основные приложения будут бесплатны, а специфические, с применением "напильника" будут за денежку.
Ваш Крот.
Предыстория:
Давным давно
Итак, прошло время, появился небольшой опыт в php, и в начале лета я принял решение сделать такой же компонент под InstantCMS. На самом деле, и каталог статей и доска объявлений, блоги, каталог фирм или просто каталог, имеют одну и ту же внутреннюю структуру. Это категории и вложенные в них элементы, отличающиеся только полями. Назовем вышеупомянутые компоненты — приложениями, в них будут категории и соответственно элементы.
Также очень хотелось сделать интерфейс управления структурой приложений — то есть не руками в базе добавлять(удалять) поля, а в админке. А также прозрачную и удобную систему управления доступом, которая при этом работает правильно — если стоит на категории доступ чтения только пользователи сайта — то гости ниоткуда не смогут попасть в эту категорию, тем более прочитать элементы этой категории.
За небольшое время был продуман движок и структура БД, написаны пара тестовых приложений. И через какое-то время выходит первый пост про InstantCMS 2. Вы знаете — идеи очень схожи, только вот вторая версия больше на фреймворк походит. У меня же просто суперУниверсал для 1.9 😊.
Итак анонс:
Компонент TreeCat. Целевые версии InstantCMS 1.9-1.10 (может быть 1.8). В 2.0 думаю все это будет в ядре системы, так что 2.0 в планах пока не обозначено. Честно сказать, я пока еще не смотрел код второй версии, чтобы ненароком ничего не скопировать.
0) Система url-ов. Компонент один — url`ы разные. Понятнее всего будет на примере:
сайт.рф/iboard Доска объявлений
сайт.рф/iboard/jilie Категория Жилье
сайт.рф/iboard/kvartiry подкатегория Квартиры в категории Жилье
сайт.рф/iboard/avto Категория Авто
сайт.рф/iboard/raznoe Категория Разное
сайт.рф/iboard/prodam-kvartiru-4.html — объявление "Продам квартиру" в подкатегории Квартиры
сайт.рф/iblog Блоги
сайт.рф/ifirmy Каталог фирм
сайт.рф/iphotos Фотокаталог(или фотоблог) 😊
Все эти ссылки обрабатывает один компонент. Вам нужно только нарисовать шаблоны.
Также есть встроенный уникализатор ссылок на элементы(посты), категории и загружаемые картинки.
При желании можно вынести все картинки на другой сервер, также есть автогенератор миниатюр картинок(с кэшем и с определенным набором размеров 50x50, 100x200, 500x500, и т.п.)
1) БД — описание структуры таблиц приложений хранится в таблице. Соответственно менять поля очень легко. Структура дерева категорий сделана (почти доделана 😊 ) на Materialized Path(mpath), подумал, что так будет меньше ошибок и нагляднее. Тем более потому, что есть опыт построения каталога на NOSQL с помощью mpath. Также есть централизованное хранилище основных данных в одном месте — посмотрим как это будет работать на больших объемах 😊.
2) Иерархия и поля компонента:
Приложения — Категории — Вложенные категории — элементы категорий.
Поля элементов — число, вещ.число, строка, текст, картинка, галерея картинок, чекбокс, радио, список значений(+выпадающий), зависимый список значений, город (geoip) и т.д.
3) Система управления доступом: права выставляются на просмотр, добавление, редактирование, удаление) приложений, категорий, подкатегорий и при желании элементов). Права можно выставить либо на группу, либо на конкретного пользователя.
4) Шаблоны. Шаблонизатор Smarty либо (в планах) чистый php-include. Как вариант может быть реализована система плейсхолдеров.
На данный момент реализована система — создаются шаблоны на просмотр категории, элемента, указывается для каких приложений(категорий) какой шаблон и все работает. В шаблонах нужно указать только значения полей приложения.
5) Автоматическое создание форм добавления-редактирования с возможностью указания зависимых полей (как на AVITO.RU). Т.е. в зависимости от значения поля, будут показаны или скрыты какие-то дополнительные поля. Например в доске объявлений — Продам автомобиль. Поле <Пробег>, значения "Новый", "С пробегом". При выборе второго значения в форме появятся два дополнительных поля "Пробег в км." и год выпуска. Все это при сохранении само запишется куда нужно, при редактировании появится все на своих местах. Еще раз повторю — поля любые.
6) Автополя для сортировки. Нужно только указать поля в описании (Сортировка по этому полю), чтобы появилась форма сортировки на фронтенде сайта, соответственно в категории можно указать(а можно и унаследовать), показывать ли форму сортировки.
7) Фильтры. В планах. Идею честно признаться спёр из второй версии. Хотя кто знает как она у меня получится. 😊
8) Мощная система плагинов на всё и вся. Вот с помощью них можно будет вносить дополнительный функционал
Итак, пока у меня на этом все, я показал вам перспективу, по поводу первой альфы говорить рано и работы над компонентом еще много. Пока с помощью него уже 4 месяца пишу сайт для любимой жены, вот он и дорабатывается. А еще что-то кушать надо и на основной работе работу работать.
В любом случае, версия для 1.9 (а потом и для 1.10) будет. Пока не знаю, платно ли или бесплатно, думаю основные приложения будут бесплатны, а специфические, с применением "напильника" будут за денежку.
Ваш Крот.
Реклама #
Роман 11 лет назад #
Крот 11 лет назад #
Скоро будет компонент рассылки по этому поводу(с поддержкой стандартных и премиум компонентов ICMS)
Крот 11 лет назад #
Anonim 11 лет назад #
В профиле человека - ссылка - НАПИСАТЬ - жмет, и выбирает, написать на форум, статью, в блог, объявление, видео! Все что угодно - 1 кликом! Не ужели это так сложно понять, товарищи разработчики?!
Крот 11 лет назад #
lokanaft 11 лет назад #
Крот 11 лет назад #
Сергей Петрович 11 лет назад #
Крот 11 лет назад #
2) не фейсбуки делаем) думаю 100 тыр. записей будет без проблем обрабатываться
P.S. в одной таблице - подразумевается только 3 разных айдишника лежит, все остальное отдельно
Anonim 11 лет назад #
IRATE 11 лет назад #
eoleg 11 лет назад #
eoleg 11 лет назад #
Крот 11 лет назад #
сам себе задачи придумываю и потом решаю)
eoleg 11 лет назад #
поле1 имеет значение - ххх
поле2 больше 555
поле3 >100 b < 200
сортировать по полю4
ну примерно так
Крот 11 лет назад #
потом еще несколько - Набор2 (как во второй версии)
или указываем поля, которые могут участвовать в фильтре - выводим сбоку модуль-фильтратор (или напрямую в компоненте)?
eoleg 11 лет назад #
сайт-одна, две, .. ну максимум 10 задач
тоесть определили задачу и сформировали под нее форму с фильтром
eoleg 11 лет назад #
или вот например реализация фильтров
eoleg 11 лет назад #
Крот 11 лет назад #
Крот 11 лет назад #
Добавление новой записи в доску объявлений (тестовый вариант)
2 админки
приложения
настройка прав
lezginka.ru 11 лет назад #
хотя смутно понял, что предлагает товарищ крот, но видно, что-то очень умное :))
Dost 11 лет назад #
universe 11 лет назад #
Dost 11 лет назад #
Harconen 11 лет назад #
Марат 11 лет назад #
Для тех, кто не понимает. Подобное уже реализовано в версии 2.0(пока ещё в демо версии). Разработка Крота помогает внести данную концепцию(один компонент - разный контент) в более ранние версии(1.9 и 1.10). Пока ещё не вникал ни в 2.0, ни в данный компонент. Просто разжевываю то, что сам понял. Ну, если правильно понял, конечно )))
Zau4man 11 лет назад #
AndroS 11 лет назад #
Крот 11 лет назад #
Первым будет демо - статьи, доска объявлений, блоги. Далее посмотрим.
Azura 11 лет назад #
Крот 11 лет назад #
да, после написания еще оптимизация будет обязательно)
еще сегодня получилось настроить php-отладчик, быстрее дело пойдет
Александр I 11 лет назад #
eoleg 11 лет назад #
Крот 11 лет назад #
Harconen 11 лет назад #
Константин Г. 11 лет назад #
Крот 11 лет назад #
AndroS 11 лет назад #
Константин Г. 11 лет назад #
Константин Г. 11 лет назад #
Крот 11 лет назад #
это фильтр сработал просто
Константин Г. 11 лет назад #
Константин Г. 11 лет назад #
Крот 11 лет назад #
Константин Г. 11 лет назад #
Александр I 11 лет назад #
universe 11 лет назад #
Александр I 11 лет назад #
AndroS 11 лет назад #
Александр I 11 лет назад #
Будьте добры, напишите, вы занимаетесь этим компонентом или уже нет?
Крот 11 лет назад #
ждите, все будет круто
Крот 11 лет назад #
он и в браузере может шаблонизировать...
кто нибудь сталкивался с ним?
Константин Г. 11 лет назад #
AndroS 11 лет назад #
Крот 11 лет назад #