Virtuemart 2: Исправляем ошибки - Declaration of LiveUpdateController::display()
- Joomla /
- Virtuemart
- 12.06.2013
- job
- 7550
Преамбула: Решился все таки построить новую версию среднего по объемам интернет-магазина на базе Virtuemart 2.x. Предпосылки, естественно расширение функционала, похожего на полноценную систему торговли. Да, конечно Virtuemart сложно назвать такой, но наработанный функционал буду портировать, а что делать! А учитывая, что хочется делать все по фен-шую - ошибки, даже незначительные, не приемлемы. По ходу создания магазина буду описывать их исправление.
На сегодня начнем с Virtuemart 2 All in one Installer
Конфигурация:
Joomla 2.5.11
Virtuemart 2.0.20b
Ошибка
Strict Standards: Declaration of LiveUpdateController::display() should be compatible with that of JController::display() in /home/www/site.ru/administrator/components/com_virtuemart_allinone/classes/controller.php on line 16
Данная ошибка связана с изменениями в API движка/фреймворка, а именно в классе JController функция display(), в данную функцию передается две переменные, а в нашем классе LiveUpdateController всего одна. Косячек незначительный и на работу никак не влияет, но мы е любим чистые логи. Устраняем ошибку в файле /home/www/site.ru/administrator/components/com_virtuemart_allinone/classes/controller.php, находим функцию
public final function display($cachable = false)
исправляем
public final function display($cachable = false, $urlparams = false)
проверяем...
А еще если верить (утрирую) документации уже не принято подключать контроллер компонента jimport('joomla.application.component.controller');
Он уже подключен движком, а расширяемый класс JController теперь называется JControllerLegacy. И так, что мы делаем? Открываем /home/www/site.ru/administrator/components/com_virtuemart_allinone/classes/controller.php и заменяем
defined('_JEXEC') or die(); jimport('joomla.application.component.controller'); /** * The Live Update MVC controller */ class LiveUpdateController extends JController {
на
defined('_JEXEC') or die(); /** * The Live Update MVC controller */ class LiveUpdateController extends JControllerLegacy {
как то так!