Соклассы, тикет система и система документации
26.03.2010Разрабатывая систему документации хотелось бы, чтобы была возможность редактирования документации через блогклиент, так как в нем удобно редактировать и проверять ошибки в тексте (собственно поэтому мои посты легче читать, чем мои комментарии). Но как всегда но: посты, тикеты и документы имеют разный тип (класс), а по умолчанию создаются экземпляры класса tpost, когда как для тикетов и доки требуется tticket и tcodedoc. Как быть? В таблице постов не хранятся имена классов, а имена классов хранятся в таблице урлов, где сопоставляется урл имени класса. При обращении через xmlrpc будут дергаться только посты. Как быть? Одно из решений - соклассы. Проблема сокалсса в том, что сокласс встраивается абсолютно во все посты, когда как в одном пространстве мы имеем посты, тикеты и доку. Блогклиенты понимают и имеют дело только со свойствами поста и соответственно не имеют никаких средств управления другими свойствами. Как же разрулить эту ситуацию? Правильный путь говорит о том, что необходимо перед созданием поста сопоставить его id - имени класса. Как это сделать? Для бд это означает + 1 запрос к бд, а для файлов необходимо тоже где то хранить эту инфу. Для подавляющего числа сайтов, не использующих ни тикет систему, ни доку это будет и только тратой ресурсов. Как же этого избежать? Логично добавить куда нибудь событие создания поста и потом вешать на это событие свои обработчики. Тоже вариант.
Как же быть с текстом поста и его редактирование в блогклиенте? Я пока что придумал следующее: отдавать сырой контент в виде псевдо ini файла, ну то есть простынка имя = "значение". Ну и потом обратно парсить отредактированный текст в свойства поста. Для обыкновенных постов такого не делать. Этим должен будет заниматься отдельный спецплагин -- проходить по списку существующих свойств поста и при его наличии устанавливать значение. В блоголёте есть прототип этого класса - tposttransform, который преобразует данные между бд и свойствами поста.
Поскольку тикет система и дока я ограничил бд версией, то не будет никаких проблем для подобного плагина сделать alter table таблицы постов, чтобы добавить туда имя класса поста, либо завести отдельную спецтаблицу. Оптимальным вариантом было бы alter table, но тогда придется придумывать некий алгоритм, когда данные из бд запрошены, а пост еще не создан. Сейчас движок работает следующим образом (одинаково для бд и файлов): создается пост (тикет, дока) и потом объект запрашивает данные из бд (восстанавливает из файла). Ну и нет веских причин менять такой удобный алгоритм. Следовательно придется делать спецтаблицу имен классов, точнее даже так - таблица пар id поста, id имени класса. Имен классов раз два и обчелся, а постов сотни. Для таких пар уже существует класс titemsposts, который уже используется в метках/рубриках, файлах, подписчики, голосовалка, и так далее. Для имен классов постов таблица будет даже вредной - достаточно их хранит в опциях, например в опциях базового класс tposts. На самом деле имена классов обязан и будет хранить класс прокладка между id постов и именами классов. Поскольку такой класс сложно оформить в плагин в виду отсутствия в нем очевидной функциональности, то его надо будет добавить в ядро, а потом уже тикеты и доки будут сами цепляться к этому классу.
Таким образом совместное существование тикетов и документации сводится к добавлению класса прокладки и плагина конвертатора свойств в ini формат.
← Ранее Внедрение php кода и безопасность
Позже Разработка системы документации →
Комментарии (10) на запись “Соклассы, тикет система и система документации”
Оставить комментарий
> Поскольку такой класс сложно оформить в плагин в виду отсутствия в нем очевидной функциональности, то его надо будет добавить в ядро, а потом уже тикеты и доки будут сами цепляться к этому классу.
Таким образом совместное существование тикетов и документации сводится к добавлению класса прокладки и плагина конвертатора свойств в ini формат.
Самый в общем для меня основной вопрос при выборе Cms это ее быстродействие и конечно функциональность, и если такие дейстыия не нагрузят движок дополнительно то я за их реализацию однозначно, потому что появляется дополнительный инструмент который повышает эффективность CMS как таковой, я за прогресс!
И самое основное
>Одно из главных свойств блоголёта в том, что движок может быть сколь угодно навороченным, но при этом это никак не влияет на производительность - она остается по прежнему низкой.
однозначно я за все навороты разрабатываемые для Блоголета, но только морально сори знаний нибумбум в остальном только вперед!
И поэтому он такой быстрый получился! ) понял
да наследственность о многом говорит и это не только движков касается
вот например папа у меня никогда не работал нормально доходов соответственно не было никогда, так и со мной та же история, я называю это родовое проклятие, вот такая вот история но ничего не поделаешь я есть покуда есть
Подскажите, пожалуйста,как мне войти в личный кабинет?
Месяц назад я зарегистрировалась, но, по болезни, до сих
пор не имела доступа к компьютеру.
Сейчас, когда пытаюсь войти, по сгенерированным для меня данным:
Поздравляем!!
Lite Publisher был успешно установлен. Теперь вы можете войти в админку по адресу: http://blogolet.ru/admin/ Для авторизации используйте следующие Логин: admin Пароль: 98bbae9e577a036b0c8b0cfc69e2b609
Замечание. Будьте аккуратны с паролем. Он был случайно сгенерирован длявас.
Логин
admin
Пароль
98bbae9e577a036b0c8b0cfc69e2b609
В случае потери пароля, вы можете получить новый пароль, перейдя по служебной ссылке: http://blogolet.ru/admin/password/
Вы ожидали продолжение установки? Это все! Установка завершена.
получаю надпись, что логин-пароль неверны, пытаюсь
восстановить пароль, но получаю - и-мейл неверный!
Скажите, что нужно делать?
Я новичёк, это моя первая попытка иметь свой блог!
Блоголётчик пишет:
lol. Из вашего комментария можно однозначно сделать вывод, что скорость работы системы (производительность) __всегда__ низкая.