Анонс компонента TreeCat

+42
2.81K
Доброго всем времени суток!
Предыстория:
Давным давно в далекой галактике я решил заняться веб-программированием, с чего начать — запрос в Яндекс, первая 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) будет. Пока не знаю, платно ли или бесплатно, думаю основные приложения будут бесплатны, а специфические, с применением "напильника" будут за денежку.

Ваш Крот.
0
Роман Роман 11 лет назад #
Ройте дальше :)) Интересное направление
+1
Крот Крот 11 лет назад #
забыл написать - также будет интегрирован компонент авторассылки новых элементов по подписке на почту, по смс, выгрузка в группу Вконтакте(уже работает), в ЖЖ, может быть в твиттер.
Скоро будет компонент рассылки по этому поводу(с поддержкой стандартных и премиум компонентов ICMS)
+3
Крот Крот 11 лет назад #
думаю, еще обязательно нужен будет импорт данных из стандартных компонентов, (а может и не из стандартных smile )
+2
Anonim Anonim 11 лет назад #
ХОть один человек публично решился "понимать" это положение. Ведь проще некуда - одно приложение - много контента.

В профиле человека - ссылка - НАПИСАТЬ - жмет, и выбирает, написать на форум, статью, в блог, объявление, видео! Все что угодно - 1 кликом! Не ужели это так сложно понять, товарищи разработчики?!
0
Крот Крот 11 лет назад #
это просто удобнее, и пользователю и разработчику
0
lokanaft lokanaft 11 лет назад #
Минона, неужели нельзя в шаблоне в одном месте все ссылки собрать?
+1
Крот Крот 11 лет назад #
дело не в ссылках - например легко можно сделать "Мою живую ленту" со всем моим контентом и с комментариями к элементам. Все же в одной таблице лежит.
+1
Сергей Петрович Сергей Петрович 11 лет назад #
Крот:
Все же в одной таблице лежит.
не спешил бы я утверждать, что это хорошо...
+2
Крот Крот 11 лет назад #
1) а я и не спешу, время покажет
2) не фейсбуки делаем) думаю 100 тыр. записей будет без проблем обрабатываться

P.S. в одной таблице - подразумевается только 3 разных айдишника лежит, все остальное отдельно smile
0
Anonim Anonim 11 лет назад #
Зачем? Делаете один компонент и модели - блог, статья, форум, видео - НЕТ?
0
IRATE IRATE 11 лет назад #
Как в Windows phone лучше - можно дать системе выбрать в какой системе клиент находится в онлайн, а можно самому выбрать.
+2
eoleg eoleg 11 лет назад #
Крот , не отвлекайтесь, порадуйте нас к новому году. )
+2
eoleg eoleg 11 лет назад #
Обязательно нужно мощную систему фильтров с возможностью их формирования как по количеству полей так и по условиям.
+2
Крот Крот 11 лет назад #
примеры нада)
сам себе задачи придумываю и потом решаю)
+1
eoleg eoleg 11 лет назад #
Имею в виду создание формы в которой например создается условие выборки данных
поле1 имеет значение - ххх
поле2 больше 555
поле3 >100 b < 200
сортировать по полю4
ну примерно так
0
Крот Крот 11 лет назад #
т.е. заранее создать несколько условий и назвать Набор1
потом еще несколько - Набор2 (как во второй версии)

или указываем поля, которые могут участвовать в фильтре - выводим сбоку модуль-фильтратор (или напрямую в компоненте)?
0
eoleg eoleg 11 лет назад #
ну вообще применение фильтров ведь будет практически везде но на каждом сайте по разному, поэтому может наборы будет правильнее так как схема будет:
сайт-одна, две, .. ну максимум 10 задач
тоесть определили задачу и сформировали под нее форму с фильтром
0
eoleg eoleg 11 лет назад #
http://nizhniy-novgorod.dns-shop.ru/catalog/45/
или вот например реализация фильтров
0
eoleg eoleg 11 лет назад #
там слева фильтр
0
Крот Крот 11 лет назад #
ок, посмотрю
+2
Крот Крот 11 лет назад #
чуток скринов, чтобы не быть голословным
Добавление новой записи в доску объявлений (тестовый вариант)
""


2 админки
приложения
""

настройка прав
""
+10
lezginka.ru lezginka.ru 11 лет назад #
+
хотя смутно понял, что предлагает товарищ крот, но видно, что-то очень умное :))
+2
Dost Dost 11 лет назад #
Порадовал, не один я такой))
+1
universe universe 11 лет назад #
с этого и надо было начинать писать Инстант=) Как я понял в 2 будет это реализовано. Если будет все по умному и без багов то продавайте....
0
Dost Dost 11 лет назад #
Плюс однозначно!
+1
Harconen Harconen 11 лет назад #
все на пальцах показал вы дайте пошупать посмотреть что почем ваш Компонент TreeCat.
+3
Марат Марат 11 лет назад #
+ просто молодец
Для тех, кто не понимает. Подобное уже реализовано в версии 2.0(пока ещё в демо версии). Разработка Крота помогает внести данную концепцию(один компонент - разный контент) в более ранние версии(1.9 и 1.10). Пока ещё не вникал ни в 2.0, ни в данный компонент. Просто разжевываю то, что сам понял. Ну, если правильно понял, конечно )))
0
Zau4man Zau4man 11 лет назад #
Отлично. Типа мои любимых iblock в битрикс smile ждем ждем smile часть сайтов все равно останется на 1.10
0
AndroS AndroS 11 лет назад #
Мегаплюсую! ориентировочно в свет когда выйдет сие чудо?
+1
Крот Крот 11 лет назад #
ну вы понимаете же, что работы там достаточно)
Первым будет демо - статьи, доска объявлений, блоги. Далее посмотрим.
0
Azura Azura 11 лет назад #
Супер!!!! Будем ждать!!! Вот я понимаю оптимизация будет....=)))
+2
Крот Крот 11 лет назад #
спасибо за поддержку
да, после написания еще оптимизация будет обязательно)
еще сегодня получилось настроить php-отладчик, быстрее дело пойдет smile
0
Александр I Александр I 11 лет назад #
В мемориз. Однозначно!
0
eoleg eoleg 11 лет назад #
Чё там, как успехи? :=)
0
Крот Крот 11 лет назад #
в процессе, закончу с подписками, продолжу
0
Harconen Harconen 11 лет назад #
да посмотреть что тут получилось )
-1
Константин Г. Константин Г. 11 лет назад #
вкратце можно чо за компонент?
0
Крот Крот 11 лет назад #
выше в комментах тов. Лезгинка объяснил)
0
AndroS AndroS 11 лет назад #
Что-то очень умное? :)
0
Константин Г. Константин Г. 11 лет назад #
Та я ж непонял. Чем-то похожее на друпал? те по блокам сайт делать?
0
Константин Г. Константин Г. 11 лет назад #
кстати ссылки неработают
+1
Крот Крот 11 лет назад #
они и не должны)
это фильтр сработал просто
-1
Константин Г. Константин Г. 11 лет назад #
кстати ссылки неработают
-1
Константин Г. Константин Г. 11 лет назад #
Дак чо за плагин-компонент?
+1
Крот Крот 11 лет назад #
еще раз - компонент, позволяющий создать любую структуру данных - под статьи, блоги, доску объявлений, каталог фирм и так далее...
-1
Константин Г. Константин Г. 11 лет назад #
я не понял что за структуру. структуру чего? что это такое?
0
Александр I Александр I 11 лет назад #
Крот, как дела продвигаются с компонентом?
0
universe universe 11 лет назад #
Походу совсем забросил
0
Александр I Александр I 11 лет назад #
Очень жаль, если так и есть.
0
AndroS AndroS 11 лет назад #
Обещал продолжить работы после окончания работа на рассылками. Рассылки почти закончены, значит скоро ждем трикат - это явно быстрее двушки будет )))
0
Александр I Александр I 11 лет назад #
Крот, как дела с TreeCat?
Будьте добры, напишите, вы занимаетесь этим компонентом или уже нет?
0
Крот Крот 11 лет назад #
да, он у меня в ближайших планах (планирую приступить через 2-3 недели)
ждите, все будет круто smile
0
Крот Крот 11 лет назад #
я тут подумал, почему бы не "заюзать" шаблонизатор twig...
он и в браузере может шаблонизировать...

кто нибудь сталкивался с ним?
0
Константин Г. Константин Г. 11 лет назад #
нет.
0
AndroS AndroS 11 лет назад #
Не знаю такого... по теме: что с трикатом, процесс идет?
0
Крот Крот 11 лет назад #
да, идет

Еще от автора

Инвайтер 1.9 для 1.10.6
Доброго всем времени суток! Решил нарушить сложившуюся здесь традицию и решил вернуться сюда с обновлениями.
Инстант "по взрослому". Часть 2. Авторизация. Аякс. v1.10
Доброго всем времени суток! Продолжая серию Инстант "по взрослому", сегодня хотел бы показать более мощный плагин авторизации.
Инстант "по взрослому". Часть 1. Авторизация. Счетчик неверных входов. v1.10
Доброго всем дня! Продолжим наши уроки по усовершенствованию Инстанта. Сегодня мы будем изучать и усовершенствовать первую ветку Инстанта.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.