ФорумПрограммированиеПыхнуть хотите?Готовые решения → CMS/CMF APLite

CMS/CMF APLite

  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 25 октября 2007 г. 12:10

    Как обещал, выкладываю на всеобщее обозрение и рассмотрение свою CMS систему.
    Посмотреть и поиграться можно здесь:
    http://aplite.pyha.ru/admin/
    Логин: admin
    Пароль: admin

    В систему встроен визуальный редактор с обсуждения которого все и началось (http://forum.pyha.ru/topic/294.0). Для того, чтоб его поюзать жмите слева на "Тестовый информационный элемент" и потом на иконку с шестереночкой (редактировать). Работает только под IE. :(

    Есть еще дополнительные модули системы: опросники, фотогалереи, инет-магазин, статистика. Если кого заинтересует - пишите выложу. Но там никаких ноу хау нет … достаточно все банально. Ядро интереснее. :)

    Есть руководство пользователя, правда старое. По свежим версиям нету, но для общего введения сойдет. Лежит здесь http://aplite.pyha.ru/UserGuide.pdf

    Если кто захочет подетальней покопаться, пишите - пришлю последнюю на текущий момент версию.

    На все вопросы готов отвечать.
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 25 октября 2007 г. 12:49, спустя 39 минут 34 секунды

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

    а редактор кайфовый! всё что нужно и грузится нормально, жаль что только в ие
    понравилось "автосохранение"

    свою гадость выложить чтоли
    все умрут, а я изумруд
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 25 октября 2007 г. 12:50, спустя 32 секунды

    Внимание! Если вы уберете у себя это право, то не сможете вернуть его себе самостоятельно!

    :)
    все умрут, а я изумруд
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 25 октября 2007 г. 13:00, спустя 10 минут


    конечному заказчику (пользователю) конечно ооочень трудно будет разбираться в этом.


    На самом деле не очень трудно, как показала практика. В системе два уровня:
    Верхнее меню на темно-зеленом фоне - это меню вебмастера, оно доступно только с максимальными правами. Там создаются основные сущности. Собственно и напоминание про права - оно так же для разаработчика.
    Если же создашь рядового ползователя, для него останется только все, что на светло-зеленом фоне. А там вполне понятные слова. Во всяком случае за час-два обучения осваивают даже самые тупые секретарши. :) Проверено.

    Хотя конечно эргономика и универсальность - две разные чаши весов. Была очередная попытка найти золотую середину. Насколько успешная - со стороны виднее.
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 26 октября 2007 г. 4:21, спустя 15 часов 20 минут 50 секунд

    Не слишком всё интуитивно понятно на первый взгляд.
    Нужно делать то, что все так не любят — вдумчиво читать доку )
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 26 октября 2007 г. 5:06, спустя 44 минуты 59 секунд


    Нужно делать то, что все так не любят — вдумчиво читать доку )


    А можно делать то, что обычно очень не любят на форумах: "Задавать вопросы на которые можно найти ответ самим путем экспериментов или в доке".
    Но в данном случае я готов отвечать на все вопросы, ибо мне интересен сторонний и незамыленный взгляд на систему.
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 26 октября 2007 г. 5:13, спустя 7 минут 20 секунд

    Ладно.
    1. Что есть "структура"?
    2. Что есть "информационный элемент"?
    3. Почему всё жолтое? :)
    4. Кеширование чего производится при установке memcachа?
    5. "Статические элементы" что такое?
    6. "Формы"?
    7. По какому признаку делятся модули?
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 26 октября 2007 г. 7:21, спустя 2 часа 8 минут 15 секунд

    2. Что есть "информационный элемент"?

    Это основная сущность системы. Любой тиражируемый объект - можно представить в виде ИЭ. Определяется набором полей и шаблонов.

    Например:
    "ИЭ Статья" может быть представлен следующими полями:
    - Заголовок (тип "текст")
    - Аннонс (тип "многосторочный текст")
    - Автор (тип "другой ИЭ")
    - Текст (тип "визуальный редактор")
    и шаблонами
    - Развернутый вид
    - Вид в списке
    - Вид в на главной странице и.т.д.

    В свою очередь "ИЭ автор" также характеризуется своими полями (фото - тип файл, год рождения - тип дата, имя - тип текст) и шаблонами и.т.д

    1. Что есть "структура"?

    Структура это вторая основная сущность. Проще говоря это просто дерево. Плюс со структурой всегда сопостовляется специальный ИЭ, таким образом узлы структуры получают также набор полей.

    Ко всему этому предусмотрены механизмы публикации ИЭ в узлы структуры.

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

    5. "Статические элементы" что такое?

    Это третья сущность. Ну не основная, а скорей вспомогательная.
    Просто некие блоки, которые присутствуют на сайте в единственном экземляре. Ну например "Копирайт" или "Код счетчика".

    3. Почему всё жолтое? :)

    Гмммм … Разве не зеленое? :)

    4. Кеширование чего производится при установке memcachа?
    7. По какому признаку делятся модули?


    При копировании в определенную папку, некоторого набора файлов система распознает его как модуль. Делает закладку.
    Т.е. можно просто встраивать какие-то дополнительные интерфейсы, которые в том числе могут оперировать сущностями ядра через API системы.
    Кеширование - это один из многочисленных модулей. Ничего он особого не делает, просто дает обзор ключей memcache их удаление, обновление …. в общем это частный случай … не стоит на нем сосредотачиваться.

    6. "Формы"?

    Достаточно сырой кусок, который создает на базе ИЭ форму и позволяет ее редактировать в визуальном редакторе. В общем тоже на них не стоит особо сосредотачиватся. Идеология мне не нравится, хочу все переделать, но не могу придумать как.
  • kart

    Сообщения: 52 Репутация: N Группа: Кто попало

    Spritz 28 октября 2007 г. 15:31, спустя 2 дня 8 часов 10 минут

    Соглашусь, что реально ну уж слииииишком сложно.
    Потыкал везде :) , почитал всякие непонятные, страшные слова… в результате так и не понял, что же всё-таки сотворил.

    Я копался во многих цмсках, и проклинал разработчиков за полное отстуствие юзвер френдли, до тех пор, пока не попробовал создать собственную "универсальную" и "интуитивно понятную" цмску…получилось примерно тоже самое, что и APLite т.е. продукт ясный только самому разработчику… поэтому ругать AlexB за непонятнось - язык просто не поворачивается… но хотелось бы )))

    Неплохо было бы помимо доков сделать подсказки/объяснения действий непосредственно в самой админке.
    + баги в оформлении в ФФ.
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 29 октября 2007 г. 3:17, спустя 11 часов 46 минут


    Соглашусь, что реально ну уж слииииишком сложно.


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

    Проще всего объяснить на примере.

    Допустим мы для pyha.ru решили сделать интерфейс для публикации на сайте статей. Нам для этого надо:
    1. Рубрикатор статей: HTML, PHP, FAQ и.т.д. (для пущей сложности пусть будет иерархический)
    2. Создание авторов статей. Для пущей сложности, сделаем возможность давать автарам аватары и проверять при вводе информации об авторе E-mail на валидность.
    3. Создавать собственно статьи.
    4. Привязывать статьи к нужным разделам рубрикатора.

    А теперь, представим, что мы разбогатев наняли фотомодельную блондинку, и возложили на нее некоторые обязанности. А теперь представили себя этой блондинкой. Нет, блин! Не в тот момент, когда она основные обязанности выполняет! :) А в тот момент, когда нам с перепоя уже самим лень кнопки нажимать и мы отправили ее опубликовать на сайте новую статью.

    Заходим под аккаунтом:
    blondinko
    blondinko

    И если уж теперь что-то непонятно …. то дело наверно в аккаунте. :)

    Специально засек время. На построение этого бэкофиса у меня ушло 3 мин. с учетом тормозов хостинга. И еще 5 мин на размещение трех аффторов и трех статей.

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

  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 31 октября 2007 г. 1:11, спустя 1 день 21 час 53 минуты

    AlexB, недавно были темы хранение параметров пользователей и система привилегий.
    Можешь рассказать в них, как у тебя всё это устроено? В руководстве это несколько разбросано и рассказывается с точки зрения админов.
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 3 ноября 2007 г. 15:05, спустя 3 дня 13 часов 54 минуты


    AlexB, недавно были темы хранение параметров пользователей и система привилегий.


    Я наверно попробую рассказать здесь, т.к. с одной стороны, то что у меня это достаточно частный случай (особенно это касается привелегий), а с другой стороны мне для ответа хочется несколько шире охватить тему. Т.е. давайте сначала вообще решим и обсудим, как может быть устроено управление пользователями и привелегиями в рамках CMS системы, и когда каждый ответит для себя на этот вопрос легче будет выбрать оптимальную модель хранения.

    Что касается пользователей в связке с CMS, тут вообще у нас с моим напарником был идеологический спор на тему: "Должны ли пользователи быть отдельной сущностью системы". Мой приятель хотел сделать такую сущность, я же был против т.к. хотел сделать систему максимально абстракной и как следствие универсальной. В общем, в итоге такую сущность мы так и не сделали и заводим для пользователя "Информационный элемент".

    Механизм же создания информационных элементов реализован в APLite через динамическое создание таблиц. Т.е. при создании ИЭ делается CREATE TABLE ieN, при заведение каждого поля ALTER TABLE. Плюс есть специальная таблица которая хранит все поля и их характеристики (тип, порядковый номер, название, имя в столбца таблице ieN и.т.п.).

    Что касается привелегий, там вообще все жестко …. есть разные типы привелегий - "публиковать в рубрике", "создавать экземпляр ИЭ" и.т.п. Для каждой отдельная табличка с полями id админа, id объекта, иногда еще какие-либо флаги.

    ЗЫ. Ну чего хоть кто-то что-то после моих долгих объяснений понял? Или все по прежнему считают, что все "слишком сложно". Если так, интересны были бы какие-то общие соображения на тему: "А как же должна выглядеть универсальная, но интуитивно понятная CMS? "
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 4 ноября 2007 г. 0:10, спустя 9 часов 4 минуты 27 секунд

    Должны ли пользователи быть отдельной сущностью системы

    А что вообще подразумевается под таким понятием, как "пользователь"?

    Механизм же создания информационных элементов реализован в APLite через динамическое создание таблиц.

    И как с производительностью?

    Что касается привелегий, там вообще все жестко …. есть разные типы привелегий - "публиковать в рубрике", "создавать экземпляр ИЭ"

    То есть в системе есть жесткий список возможных привилегий, который не дополнить, ни изменить?

    А как же должна выглядеть универсальная, но интуитивно понятная CMS?

    А здесь нужно в первую очередь решить, кому понятная. То есть для кого она делается.
    Для человека, не разбирающегося ни в чем, который хочет просто нажать пару кнопок и получить свой сайт?
    Или для более продвинутого пользователя?
    Или же она будет использоваться проффесиональными разработчиками?
    На всех сразу я думаю не угодишь.
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 4 ноября 2007 г. 1:16, спустя 2 часа 6 минут 44 секунды


    А что вообще подразумевается под таким понятием, как "пользователь"?

    В данном случае имеется ввиду, зарегистрированный посетитель сайта.

    Механизм же создания информационных элементов реализован в APLite через динамическое создание таблиц.

    И как с производительностью?

    Дык это самый быстрый способ с точки зрения производительности. Таким образом создаются именно "Информационные элементы", а не "Их экземпляры". Т.е. всякие Alter делаются только во время разработки. А вот при эксплуатации, мы экономим на JOINA-нах т.к. для каждаго ИЭ своя таблица, а не большая таблица со связками id_ИЭ,id_Поля,Значение

    То есть в системе есть жесткий список возможных привилегий, который не дополнить, ни изменить?

    Да. Т.е. если речь идет об администраторах системы, то их количество типов привелегий все равно ограничено функциями системы как таковой. А если речь идет о посетителях сайта, то можно добавить сколь угодно много полей типа "Опция", "Выбор из списка" для различных их прав.

    А здесь нужно в первую очередь решить, кому понятная. То есть для кого она делается.
    Для человека, не разбирающегося ни в чем, который хочет просто нажать пару кнопок и получить свой сайт?
    Или для более продвинутого пользователя?
    Или же она будет использоваться проффесиональными разработчиками?

    Я думаю имеет смысл рассматривать системы для профессионального разработчика, которые в последствии будут экплуатироваться непрофессионалами. Ибо системы только для профессионалов мало кому нужна, а системы только для чайников нам наверно здесь обсуждать неинтересно.
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 4 ноября 2007 г. 3:01, спустя 1 час 44 минуты 33 секунды

    количество типов привелегий все равно ограничено функциями системы как таковой.

    А новые модули не могут потребовать новых типов привилегий?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!