Интерфейс ITemplate и другие изменения
09.10.2009Блоголёт продолжает трансформироваться, в текущей выложенной версии были сделаны многочисленные изменения, и чтобы зафиксировать эти изменения выложил версию. И так то, что я еще помню:
Отказ от свойств в $Options от pingurl, rss, rsscomments, foaf - теперь эти адреса формируются от url прибавкой соответствующего окончания. Необходимым образом были отредактированы index.tml всех тем - старые темы будут продолжать работать на старых блогах по прежнему.
Добавлены новые свойства в TPost: prev и next - отдают ссылки на предыдущий и следующий пост, если поста нет - то null. Отредактирован плагин пред/след ссылок в рсс и темплейт для этих ссылок в html.
Придуман и добавлен интерфейс ITEmplate - особой нужды в этом не было, но чтобы было более строго с реализацией методов я его сделал. В настоящее время поддержку ITEmplate я включил в TPost и TCommonTags (рубрики и метки). Благодаря этому интерфейсу теперь в секции head на страницах постов появились ссылки на предыдущую/следующую запись, и что более важно - подписка на комменты по RSS. Теперь IE меню сервис/Обнаружение Web-канала показывает два меню на подписку - на посты и комменты к посту. Думаю, может быть в index.tml для всех страниц добавить рсс для всех комментов - то есть общий рсс комментов.
Также добавлено свойство files в $Options - для формирования урлов в варианте установки без апача.
Заменена переменная DataObject в TTemplate на context - кажется более логичным, что объект контекстный, а не объект данных. Есть еще изменения в других классах, и чтобы не потонуть в изменениях была выпущена эта версия.
И мне совсем не нравиться реализация версии для мобильников: хотелось бы сделать эту фичу отключаемой/включаемой, но сделать это не просто, так как для этого пришлось править ядро, и собственно непонятно как можно было сделать эту реализацию по другому. Остается пока как есть.
Комментарии (20) на запись “Интерфейс ITemplate и другие изменения”
Оставить комментарий
Владимир, уже два дня не получаю обновлений по RSS. Ни записи, ни комментарии. Решил зайти на Ваш сайт и заново подписаться. При открытии http://blogolet.ru/rss/ появляется следующее: Fatal error: Call to undefined method TTemplatePost::instnace() in /home/jusoft/blogolet.ru/plugins/rss-prev-next/rssprevnext.php on line 10
В результате RSS не приходит.
не знаю можно ли это отнести к ошибками или это мой конкретный случай но у меня пропали записи из архива, т.е. записи видны, по рубрикам они находятся, а по архиву - нет. единственное с чем я мог это связать это то что в панели администратора>настройки>описание блога сменил адрес блога добавив в начале www - но связано ли с этим или нет точно сказать не могу - так как перед изменением в историю не заглядывал
впринципе для меня это не критично, так как вылетело всего две первые записи, просто интересно - где накосячил
a-sfera.com/blog/
Второй блог на блоголете:
Caught exception: The requested property files not found in class TOptions
0 /home/jposter/public_html/lib/kernel.php(31): TDataClass->Error('The requested p...')
1 /home/jposter/public_html/lib/kernel.php(254): TDataClass->__get('files')
2 /home/jposter/public_html/lib/templateclass.php(69): TEventClass->__get('files')
3 /home/jposter/public_html/lib/kernel.php(218): TTemplate->load()
4 /home/jposter/public_html/lib/kernel.php(546): TEventClass->__construct()
5 /home/jposter/public_html/lib/kernel.php(554): GetInstance('TTemplate')
6 /home/jposter/public_html/lib/templateclass.php(23): GetNamedInstance('template', 'TTemplate')
7 /home/jposter/public_html/lib/kernel.php(871): TTemplate::Instance()
8 /home/jposter/public_html/lib/kernel.php(860): TUrlmap->PrintClassContent('THomepage', Array)
9 /home/jposter/public_html/lib/kernel.php(755): TUrlmap->PrintContent(Array)
10 /home/jposter/public_html/lib/kernel.php(734): TUrlmap->DoRequest('/')
11 index.php(28): TUrlmap->Request('site.ru', '/')
12 {main}
не устанавливается ни на хостинге, ни на локалхосте
Fatal error: Uncaught exception 'Exception' with message 'Class ITemplate not found' in C:\www\website\cms\_\cms\_lp\lib\kernel.php:65 Stack trace: #0 C:\www\website\cms\_\cms\_lp\lib\kernel.php(543): TDataClass->Error('Class ITemplate...') #1 C:\www\website\cms\_\cms\_lp\lib\installerclass.php(294): GetInstance('ITemplate') #2 C:\www\website\cms\_\cms\_lp\lib\installerclass.php(137): TInstaller->InstallClasses() #3 C:\www\website\cms\_\cms\_lp\lib\installerclass.php(165): TInstaller->FirstStep() #4 C:\www\website\cms\_\cms\_lp\lib\include\install.php(5): TInstaller->Install() #5 C:\www\website\cms\_\cms\_lp\index.php(29): require_once('C:\www\website\...') #6 {main} thrown in C:\www\website\cms\_\cms\_lp\lib\kernel.php on line 65
редактировал и в полном режиме и в быстром - и новые посты создавал - без изменений, ну и ладно. для меня это не критично
Неудачно обновился - вчера была выложена около получаса битая версия, исправляется скриптом:
<?php
$mode = 'upd';
include('index.php');
include('lib/update/update277.php');
Update277();
?>
Обновление второму блогу не помогло.
если выполнить
<?php
$mode = 'upd';
include('index.php');
include('lib/update/update277.php');
Update277();
?>
ошибка
Parse error: syntax error, unexpected '<' in /lib/adminservice.php(180) : eval()'d code on line 1
Ну этот скрипт предназначался для сохранения и заливки на сервер, а если у тебя работает админка, то просто убери php теги в начале и в конце, можно также по другому:
$Options->version = 2.76';
и попытаться автоматически обновиться, тогда скачается и обновиться сайт
У меня 2 блога на одном движке блоголета. Один работает, а второй (у которого только index.php) выдает ошибку и вообще не работает.
Сейчас версия 2.78, после
$Options->version = 2.76';
не хочет обновляться
Fatal error: Using $this when not in object context in /lib/kernel.php on line 169
Со скриптом конечно пролетел, но сейчас боюсь его заливать и запускать.
еще бы поиск по блогу организовать,
а то и на blogolet.ru пока найдешь что нужно ...