Обновление ядра блоголёта
27.08.2009Выложил сложное обновление - через админку обновляться нельзя! Это приведет только к неработоспособности сайта, поэтому я настоятельно рекомендую перед этим обновлением на всякий случай создать и скачать резервную копию. Делается это в админке - Обслуживане/Резирвирование.
обновляться надо только через специально созданный для этого скрипт update255.php, скачать его надо отсюда http://litepublisher.googlecode.com/svn/trunk/update255.php, скрипт следует залить в корень сайта и набрать его адрес в браузере. Также следует обновить и index.php в корне, взять его можно отсюда: http://litepublisher.googlecode.com/svn/trunk/index.php. Пожалуйста, будьте аккуратны, когда будете делать это обновление, и не забудьте про резервную копию. В этот раз она не создается автоматически! Я нормально обновил blogolet.ru чего и вам благополучно желаю.
Эта версия - большой шаг к дальнейшей абстракции и свободы в блоголёте. Главное - это приведение к стандарту класса TClasses - теперь это полноценный класс без статических методов.
Комментарии (51) на запись “Обновление ядра блоголёта”
Оставить комментарий
Или это из разряда "нет предела совершенству"?
При установке с нуля выдает такую ерунду.
Fatal error: Class 'TLocal' not found in /home/ikorrek/public_html/semya/lib/installerclass.php on line 248
Что делать?
Все данные классов в блоголёте хранятся единообразно, а вот список зарегистрированных классов (то бишь название класса - файл, в котором он находится), хранились по другому, а класс для упправления классами был почти весь из статических методов. Перевел TClasses в стандарт блоголёта, сделав его потомком от TItems. Соответствено пришлось переносить список классов из старого формата. Плюс еще одно важное изменение - теперь класс для стандартных классов (посты, шаблоны, рубрики и так далее), можно задавать произвольными. Это нужно например тогда, когда хочется заменить какой то из стандартных классов на свой собственный класс. Пример - тикет система.
Инсталяцию сейчас проверю и выложу обновление.
- включаю плагин NiceEdit, в поле для редактирования текста появляется сама тулбар от плагина, но он недоступен в браузере Maxthon, ошибка Javascript (Line:8
Char:721
Code:0
Error:Неизвестная ошибка выполнения
URL:http://apocx.ru/plugins/nicedit/nicEdit.js)
- почему то уменьшилось в высоту поле для редактирования =(
- проблема о которой я писал раньше "Сллишком много комментариев" до сих пор не исправлена =(
Нужно, наверное для тех кто юзает визивиг, подключать нормальный редактор
Насчет nicedit ничего сказать не могу - я его не исползую и включил по просьбам, так что если есть решение, то пожалуйста, а иначе ничего не будет изменено.
"Слишком много комментариев" появляется только в случае, когда у комментатора нет хотя бы двух одобренных комментариев - это защита от спама, хочешьчтобы я ее убрал? Если не хочется такихсообщений, то совет - став статус комментариев "одобрено" по умолчанию.
Все равно что-то не так. Ниже результат:
Warning: require_once(/classes.install.php) [function.require-once]: failed to open stream: No such file or directory in /home/ikorrek/public_html/semya/lib/installerclass.php on line 132
Fatal error: require_once() [function.require]: Failed opening required '/classes.install.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/ikorrek/public_html/semya/lib/installerclass.php on line 132
Да действительно посмотрел- есть расхождение между имеющимся у меня инсталятором и находящимся в zip - есть разница, не пойму почему, надо будет сейчас опять сгенерировать дистрибутив, но так или иначе полная синхронизация есть с репозиторием:
http://litepublisher.googlecode.com/svn/trunk/lib/installerclass.php
можешь его оттуда прямо сейчас скачать, до того как обновлю zip (минимум 20 от этого коммента - пока запущу денвер, и т.д.)
Теперь все заработало.
Одно НО.
Ссылки в комментариях так и не работают. Только html код показывает. Клинты недовольны. Когда будет исправлен этот досадный мелочь?
>>"Слишком много комментариев" появляется только в случае, когда у комментатора нет хотя бы двух одобренных комментариев - это защита от спама, хочешьчтобы я ее убрал? Если не хочется такихсообщений, то совет - став статус комментариев "одобрено" по умолчанию.
Так в том то и прикол, что нету неодобренных комментариев, в админке все одобрены! И все равно человек не может добавить комментарий =(
Так что если говорить о фильтрации контента в комментариях, то этот фильтр находится в lib/contentfilterclass.php
метод:
public function GetCommentContent($content)
задача по фильтрации контента сложная, и существующее простое решение избавляет от спама в комментариях. Если сможешь предложить более удобный фильтр, то давай его.
ApocX, редактируемое поле видимо регулирует сам плагин редактора. При заполнении текстом, поле увеличивается.
"..важное изменение - теперь класс для стандартных классов (посты, шаблоны, рубрики и так далее), можно задавать произвольными.."
Можно поподробнее как и где их задавать?
А если для фильтрации сделать так:
$result = str_replace("<b>", "<b>", $result);
или сделать ВВ код:
$result = str_replace("[b]", "<b>", $result);
Лучше конечно использовать preg_replace и создать нужные правила.
задавать просто:
global $classes;
$classes->classes['post'] = 'TMyPostClass';
$classes->Save();
список классов, которые уже поддерживают это есть в секции classes файла lib/install/classes.ini
В общем очередная проблема, полез одабривать комментарий и:
Caught exception: Item not found in class TCommentUsers
trace error
0 lib/kernel.php(354): TDataClass->Error('Item not found...')
1 lib/commentitemsclass.php(98): TItems->GetItem(NULL)
2 lib/commentitemsclass.php(160): TComments->GetUserInfo(46)
3 lib/commentitemsclass.php(142): TComment->Getname()
4 lib/adminmoderator.php(167) : eval()'d code(2): TComment->__get('name')
5 lib/adminmoderator.php(167): eval()
6 lib/adminmoderator.php(60): TAdminModerator->SingleModerate()
7 lib/adminpage.php(37): TAdminModerator->Getcontent()
8 lib/templateclass.php(418) : eval()'d code(12): TAdminPage->__get('content')
9 lib/templateclass.php(418): eval()
10 lib/adminpage.php(114): TTemplate->ParseFile('menuitem.tml')
11 lib/templateclass.php(560): TAdminPage->GetTemplateContent()
12 lib/templateclass.php(44): TTemplate->Getcontent()
13 lib/templateclass.php(418) : eval()'d code(46): TTemplate->__get('content')
14 lib/templateclass.php(418): eval()
15 lib/templateclass.php(384): TTemplate->ParseFile('index.tml')
16 lib/kernel.php(746): TTemplate->Request(Object(TAdminModerator))
17 lib/kernel.php(734): TUrlmap->PrintClassContent('TAdminModerator', Array)
18 lib/kernel.php(656): TUrlmap->PrintContent(Array)
19 lib/kernel.php(633): TUrlmap->DoRequest('/admin/moderato...')
20 index.php(35): TUrlmap->Request('apocx.ru', '/admin/moderato...')
21 {main}
Это мой косяк, после смены хостинга надо было и права на файлы с постами и комментами поменять, т.к коменты не писались, а уведомление на почту приходило, и когда на ссылку с одобрением нажимал, вылазила такая бяка.
Кстати еещ одна проблема, когда посетитель пишет коммент, то на страничку появляется такое:
<ol class="commentlist" start="%2"> %1 </ol>
<a name="respond"></a><h3>Оставить комментарий</h3>
у меня такой же глюк((
Блоголётчик
твой способ не помог(
Это обновление достаточно болезненное - я на новую версию перевел только blogolet.ru остальные сайты еще побаиваюсь. Особено тяжело далось последнее обновление: полдня сидел писал, потом случайно потер все изменения, пришлось скачивать из инета обратно к себе и по новой редактировать. Начал собирать zip - неожиданно выяснилось, что стандартная библиотека zip имеет непонятные ограничения на размеры файла - дистрибутив не хотел собираться, пока нашел причинну проблем... Если есть другие нормально работающие сайты на блоголёте, то я рекомендовал бы подождать где то неделю, чтобы в самой свежей версии было все в порядке.
Из за этого сложного обновления, думал даже сделать импорт/экспорт всего сайта в один xml файл, но потом отказался - самая большая сложность это это было написать скрипт перехода, в котором бы не загружался блоголёт, но при этом он бы обновился.
Fatal error: Using $this when not in object context in /домен/lib/kernel.php on line 97
При попытке скачать сохраненные файлы бэкапа из админки скачивается поврежденный архив нулевого размера.
Вот вылазит такая бяка:
Fatal error: Class 'TRedirector' not found in /домен/lib/kernel.php on line 802
Первый раз когда заменил файл index.php, а второй, когда блог установил с нуля и пытался восстановить из бекапа из админки.
Установил новую версию блога, потом восстанавливал из резервной копии (сделанной на старой версии Блоголета) из админки?
Ошибка со скачиванием сохраненного бекапа устранена в новой версии.
У меня нормально генерируется полный бекап, но возможны проблемы из за ограничений на память (требуется как минимум на порядок больше памяти, чем размер архива) или недостаточно прав для чтения файлов, например на файлах темы стоят более низкие права