На текущий момент разработки тем блоголёта тема представляет собой древовидную иерархию шаблонов. На верхнем уровне это контент и сайтбары. Внутри контента это шаблоны поста, анонса, меню, постраничная навигация, и еще пара мелких. Хотелось бы сделать простой и понятный доступ ко всем этим шаблонам. В предыдущем посте я писал про следующий стиль: $theme->content->post->categories->category. Мне кажется лишним звено content и не очевидным category. Думаю следует category поменять на абстрактный item. Со звеном content неясно - с одной стороны получается полная аналогия с исходником .tml, а с другой стороны узлов верхнего уровня всего немного, и каждый раз писать content мне пока что кажется громоздким.

В шаблоне поста и анонса есть шаблон ссылок на рубрики/метки. Сегодня эти шаблоны одинаковые и практически 4 раза дублируются - в а2 (рубрика + метка) * 2 (пост и анонс). Такое дублирование плохо - затрудняет чтение шаблона,, с другой стороны позволяет индивидуально подойди к каждому шаблону. Очевидное противоречие между универсальным и частным. Хотелось бы задать в одном месте один шаблон. Тогда вопрос в каком? Внутри поста или анонса? Либо добавит новую сущность - общие шаблоны? Плодить сущности всегда плохо, но если хочется - то можно. Добавлю новый шаблон commontags - собственно в блоголёте есть класс tcommontags который реализует управление метками/категориями. Помещу его вне поста и анонса - вроде как и нарушение строгой иерархии шаблонов. Нет, помещу его во внутрь поста - шаблон анонса все равно получается путем обрезания основного шаблона поста, значит там и быть общему шаблону тегов. А если хочется индивидуальных шаблонов - то без проблем.

Далее сайтбары и виджеты в них. Как к ним организовать доступ? Конструкция $theme->sitebars->0->widget кажется не совсем верной из за цифры. Либо вместо sitebars использовать sitebar0? Но тогда это будет еще хуже. Либо не нужно свойство sitebars а сразу ввести widgets, где массив по индексам $widgets[0] - шаблон для виджета в первом сайтбаре. Но следует не забывать, что для стандартных виджетов могут быть разные шаблоны в сайтбарах. То есть получается типа двухмерного массива. Далее - следует ли предусмотреть шаблон для сайтбара - в если нет виджетов, то шаблон не применяется. Это похоже как бы на обертку для списка. Думаю, что нужно. в Общем пока не решил как организовать дерево сайтбаров/виджетов.

Стиль же доступа через индексы массива кажется некрасивым, например выше пример выглядел бы так: $theme->data['content']['post']['categories']['item'] - среди этих квадратных скобок с апострофами запутаться можно, ну в том смысле что становится затруднительно читать при беглом просмотре. К тому же нет особых сложностей транслировать эту бодягу в объектный стиль.