Тема: Проблема с Comment.pm после обновления до MT 5.04
В общем, после обновления MT 5.031 до 5.04 при попытке публикации или сохранения любой записи стала вылазить следующая ошибка:
failed loading package MT::Template::Tags::Comment for routine MT::Template::Tags::Comment::_hdlr_if_comments_active: Global symbol "$label" requires explicit package name
Под сообщением показывается кнопка "Редактировать шаблон", при нажатии которой сначала открывался шаблон архива записей по месяцам. Когда я закомментировал в модуле "Общий вид записи" кусок с условием mt:IfCommentsActive, при нажатии этой же кнопки начал открываться шаблон индивидуальной записи. Закомментировал аналогичный кусок в нем - начал открываться шаблон архива категорий. На этом месте я пасанул, поскольку в самом архиве категорий условия о комментариях нет, а "Общий вид записи" я уже отредактировал.
Стал экспериментировать с файлом lib\MT\Template\Tags\Comment.pm. Сначала заменил его аналогичным файлом от версии 5.031 - помогло, вроде все стало работать нормально. Однако такой вариант показался сомнительным, поэтому стал рыть дальше.
Сравнил файлы из двух версий и попробовал немного подредактировать код. В районе 1476 строки, между строками
return $ctx->_no_comment_error();
и
my $comment_author = MT::Util::encode_html(
добавил следующую строку (взятую из файла от версии 5.031):
my $label = $args->{label} || $args->{text} || MT->translate('Reply');
Вроде опять все работает, но меня терзают смутные сомнения (с). Хочется, чтобы глянул кто-нибудь разбирающийся в perl.
Еще не понимаю, почему никто больше не жалуется на такую проблему (ни в этом форуме, ни в англоязычном) - у всех остальных все работает? Почему тогда у меня лезет ошибка?
Отредактировано pishchour (10:12:2010 06:11:27)