Введение в мультиадминку
12.04.2009Что то мне никак не удается начать писать мултиадминку. Далее идет текст предназначенный для меня лично - мне проще рассуждать вслух, чем думать в голову. Зафиксирую в тексте некоторые мысли и идеи - скорее всего из за отсутствия однозначного понимания дело не движется. Во первых мултиадминка делается на платформе блоголёт. Это означает, что мултиадминка будет использовать уже существующие классы блоголёта.
Меню в мултиадминки будет не таким как админке - в админке просто параграф со ссылками, в мульти админке это будут меню в обычном понимании, например как сейчас в блоголёте по умолчанию меню "Контакты". Таким же образом будет организовано меню. Для мултиадминки нужен другой инсталлятор, так как мултиадминка не является блогом. Поскольку мултиадминка не блог, то не нужны виджеты для блога, не нужен RSS, да и вообще посты тоже не нужны. Нужна другая главная страница, так как в ней не используются посты. Сразу отваливаются следующие классы за ненадобностью: TArchives, THomepage, TMetawidget, TRSS, TPosts и та далее по списку классов. Потребуется наследник от класса TCommonTags, так как сайты можно будет разбивать по категориям. Можно применить аналогию, где сайт в мултиадминке - это пост в блоге. Для мултиадминки не нужна публичность - пользователь у нее один, который входит по логину с паролем. С одной стороны все упрощается - не нужно всего того, что есть в блоге. С другой стороны необходимо построить меню, где каждая страница обрабатывает форму. Вообще же хорошо, что провел здесь аналогию между постами и сайтами: изначально планировалось, что сайты - это элементы массива в TSites, но теперь возможно сделать для сайта свой объект. Тогда упрощается (или усложняется) работа с категориями сайтов - код надо будет перлюстрировать для применения его к мултиадминке. Тогда будет еще более универсальный класс по управлению категориями, метками и сайтами.
Сейчас по подписанному событию создается экземпляр класса TPosts в обработчиках событий. Скорее всего придется абстрагировать имя класса для постов - для блогов это будет TPosts, а для сайтов TSite. Это вероятный источник нестабильности, так как имя класса источника событий не будет фиксированным., но вряд ли, так как уже сейчас например нефиксировано имя свойства для которого хранится инфа. То есть TCommonTags в TPost обслуживает два свойства - categories и tags.
Случайно получившаяся аналогия постов и сайтов кажется преподносит приятные сюрпризы: вероятно даже не придется переделывать класс THomepage (но это надо еще посмотреть), ведь за отображение TPost отвечает его метод GetTemplateContent, который мог бы быть переделан для вывода инфы о сайте. Идеология блоголёта построена на идеях ООП, и естественным образом за отображение поста отвечает сам пост, то есть его класс TPost, а остальным классам дела нет до того, каким образом класс генерирует html. Сайты могут тоже генерить свой html. Но не знаю насколько это будет актуально: я планировал вывод списка сайтов не виде похожем на список постов, а в виде таблицы с чекбоксами.
Кажется фиксация идей осуществилась - не судите строго за мой поток сознания, я же писал для самого себя, а не для вас, дорогой читатель.
Комментарии (17) на запись “Введение в мультиадминку”
Оставить комментарий
Осталось ощущение, что присутствовал в мастерской мастера, где из куска глины незаметно вырисовываются нечеткие, но уже узнаваемые формы...
А я люблю читать чужие потоки сознания. Такое ощущение, как будто проникаешь в чужую голову. Хотя если разобраться, сейчас так много блогов ни о чём, что там каждый пост – это сплошной поток сознания. Возможно, это связано с тем, что когда материализуешь свои мысли в тексте, многое становится понятным и очевидным.
Знаете, как в том старом анекдоте про молодую учительницу:
- Я им столько раз объяснила теорему Пифагора, что к пятому разу сама её поняла.
Материализация потока сознания в буквы, конечно вещь крайне полезная, особенно если этот поток направлен в светлое будущее :) Тем не менее, не плохо было бы разобраться с делами насущными.
На мой взгляд, вывод даты публикации в списке свежих записей совершенно не нужен, a при вёрстке нового дизайна так вообще напрягает. Самому убирать бесполезно - после апгрейда всё возвращается (пробовал).
В коде нумерации страниц отсутствует закрывающий тег </p>
Я слабо разбираюсь в РНР, но хотелось бы иметь возможность вставлять свои скрипты. Или такая возможность есть, только я её не вижу?
Блоголётчик, там меню (Главная, Контакты) идёт вверху и не сдвигается. То есть рабочая область сдвигается, можно листать экран до конца, а меню прочно висит в самом вверх и никуда не сдвигается.
Цвет шаблона серебристо-серый. Заголовок «Блог» фиолетовый, отчего немного выбивается из общей гаммы.
В боковой колонке (сайдбаре) в разделе "Свежие записи" под ссылкой с названием статьи стоит дата публикации которая только портит вид и не имеет никакой смысловой и функциональной нагрузки (посмотри хотя бы на своём блоге)
На счёт меню: Верхнее меню далеко не самая главная часть блога для ботов. Главное для них всё же контент и заголовок. Вот я выдвинул самое главное в начало HTML-кода, а всё остальное - в конец. В общем простая оптимизация кода под поисковые боты. К стати ты заметил, что при прокрутке верхнее меню всегда остаётся на месте?
Наверное из-за кэша комменты не сразу появляются, не видел пока свой писал.
Тему я ещё буду дорабатывать, надо разрулить виджеты по левому и правому сайдбарам и остальное по мелочи. Как закончу дам здесь ссылку на архив если надо.
А всё же, как свои РНР скрипты вставить?