Впечатления про первые тесты новой версии блоголёта
24.11.2009Начал тестировать новую версию - ошибки одна за другой, поэтому выкладывать пока нечего, но все же поделюсь. Во первых нормально работает аякс - мне казалось, что это будет узкое место, но нет - все работает как задумывалось.
Что мне пока не нравится - это главная страница. В новой версии я сделал так, что если в сайтбаре есть стандартный виджет, то он показывается полностью, а на остальных страницах сайтах соответствует своим настройкам. То есть аяксовые стандартные виджеты на главной будут полностью, без аякса. А если стандартного нет, то все равно показывается на главной. Вот именно такая сложность мне и не нравиться - там где сложно, там неправильно. Правильные вещи всегда просты, а сложность свидетельствует о некой ошибке.
Вот я и призадумался - а может быть сайтбар главной вовсе не обязан подчинятся сайтбарам всего остального сайта. То есть виджеты для главной надо настраивать отдельно и независимо. То есть придется делать чуть ли ни копию админки с виджетами. Безусловно, это рутина, и я хотел бы избежать этого. Каким же образом разрулить, без дублирования админки, мне пока не ясно.
Комментарии (8) на запись “Впечатления про первые тесты новой версии блоголёта”
Оставить комментарий
Все же я скклоняюсь к специальной админки для главной - идеологически это будет правильней. Настройки виджетов должны действовать везде. Спецглавная страница переакрывает стандартные настройки. Например главная в старой версии (как сейчас на blogolet.ru) ничем не отличается - надо будет сделать демокласс tsimplehomepage как вариант в новой версии. В новой главная будет иметь свои собственные виджеты. Из предпологаемых проблем такого подхода - если будет добавлен виджет, который обязан появлятся везде (например блок адсенса), то он должен будет быть и на главной. Также остается вопрос о порядке - как на всех или свой особый порядок.
Вроде бы и относительно простая задача - сделать собственные сайтбары на одной странице превращается в какое то нагромаждение. Еще подумаю, как решить этот вопрос наиболее простым путем.
В новой версии любая страница может быть в любой теме, но это ведь никак не влияет на виджеты. В новой версии я добавил новый класс - стандартные виджеты, который для каждого виджета имеет галочку "аякс", этот класс - надстройка над другими классами со своимивиджетами (вполне логично это было сделать). Вот и получается, что один виджет может быть в сайтбаре либо обычным (старым как сейчас), либо аяксовым. Сайтбар целиком кешируется.
Можно пойти еще другим путем (только что придумал) - в сайтбар отдавать виджет вместе с html комментарием, чтобы можно потом выделить этот виджет от всех остальных. То есть сайтбар везде нормальный, а главная должна будет обрабатывать через парсинг, сайтбар. Мне кажется этот путь неправильным - тогда уже следует оставить как сейчас - сайтбар берется не из кеша, а генерируется для главной, которая каждый виджет проверяет.
Это плохо - все варианты получаются какие то некрасивые.
Проблема не вкеше. Рассмотрю случай - виджет рубрик:
1 есть в виджетах, галочка аякс
тогда на главной надо заменить аяксовй виджет на безаяксовй
на главной ничего не менять
на главной добавить
Что ксается индивидуальных виджетов на странице - то это не проблема, например для постов предпологаается виджеты старых записей, похожих и так далее - на других страницах эти виджеты не имеют смысла.
Почему я не хочу вводить дополнительные настройки для виджетов? Потому что это не правильно - сам по себе виджет не должен каким либо образом зависить, или порождать зависимости, подобные настройки должны быть, так сказать, инкапсулированы там, где исползуются. То есть нужно главной странице особые сайтбары - то пусть она их и делает и не парит мозг остальным классам своими настройками. Почему так? Мне кажется более чем очевидно - в таком состоянии проект/движок более гибок и если что то где то поменять система не рухнет. чем больше зависимостей, тем сложнее модифицировать (усовершенствовать, делать новые версии, фичи).
Сейчас подумал - может сделать вспомогательный класс - виджеты для главной, взяв за основу класс по управлению стандартных, убрав оттуда управление аяксом.
Кстати думал уже написать следующий пост - относить ли главную страницу к меню или нет? Вроде как первым пунктом идет главная, и страницей меню может быть любой класс