Именно такая ошибка возникла у меня на одном из сайтов после обновления Joomla с 2.5.11 до 2.5.13. Учитывая мой предыдущий пост про ошибку Fatal error: Cannot redeclare class JLanguageTransliterate in .../libraries/joomla/language/latin_transliterate.php on line 25, возникшую также после обновления Joomla с 2.5.11 до Joomla 2.5.13, задаюсь себе вопросом... а надо ли было обновляться? Наверное надо.

alt

А именно, в этот раз я получил ошибку на страницах компонента com_commedia:

Fatal error:  Cannot redeclare class Sh404sefAutoloader in /administrator/components/com_sh404sef/helpers/autoloader.php on line 20

Поиски на форуме разработчиков ни к чему толковому не привели. Нашел пару похожих топиков с аналогичной ошибкой, возникающей на страницах разных компонентов. Но все ответы разработчиков сводились к тому, что "Я не я и ж%па не моя". Типа сами разбирайтесь.

Вообще, хотелось бы сделать некоторое отступление по поводу поддержки упомянутого расширения sh404sef и других от разработчика. Лично я пользуюсь двумя: sh404sef и Advanced Site Manager. Разумеется, я получил лицензию на их использование (чего и Вам советую). Расширения отличные. Они решают именно те задачи, для которых предназначены и перекрывают на 90% требуемую от них функциональность, но... есть одно жирное НО!

Поддержка от разработчика не просто плохая - она ужасная! На мой взгляд хорошей можно назвать поддержку, когда разработчик отвечает в течение суток в 99% случаев (за исключением форсмажоров или когда он заранее предупредил об этом), и пусть даже он не может сразу решить проблему, но хотя бы он обозначит её для себя и пообещает решить в какие-то названные им сроки.

Плохой можно назвать поддержку, когда разработчик отвечает в течение 1-3 дней и иногда старается помочь, иногда "гонит зайца дальше", сваливая вину на разработчиков других расширений.

Ужасная же поддержка, это поддержка от разработчиков sh404sef и Advanced Site Manager, это когда разработчик отвечает в течение недели, десяти дней или не отвечает вовсе, а когда отвечает, в его ответе зачастую присутствует вот это самое "я не я и ж%па не моя", ищите решение в другом месте.

Все это конечно печально.

Ну что делать, придется все решать своими мозгами. Итак, открываем файл: /administrator/components/com_sh404sef/helpers/autoloader.php и меняем там:

class Sh404sefAutoloader {
...
}

на
 

if ( !(class_exists( 'Sh404sefAutoloader'))) {
class Sh404sefAutoloader {
...
}
}

Т.е. мы заключили весь класс вместе с его фигурными скобками в конструкцию проверки условия со своими фигурными скобками.

Comments   

0 # То же решение при ошибке в плагинеEcolora 2013-08-24 02:51
Что интересно, то же решение будет, в случае появления ошибки на сайте:

Quote:
Fatal error: include() function.include: Cannot redeclare class sh404sefautoloader in .../plugins/system/sh404sef/sh404sef.php on line 352
Поскольку по упомянутому пути /plugins/system/sh404sef/sh404sef.php в плагине это строка:

Quote:
include JPATH_ADMINISTRATOR . '/components/com_sh404sef/helpers/autoloader.php';
Которая опять же вызывает класс этой статьи, выдающий ошибку.
Reply | Reply with quote | Quote | Report to administrator

Add comment


Security code
Refresh