Перенос плагина ReDJ с Joomla 2.5 на Joomla 3 (ничего не отображается в панели администратора)

У меня был плагин ReDJ версии 1.6, работающий на сайте 2.5 Joomla. Но я перехожу на Joomla 3, и этот модуль теперь не работает - появляются ошибки исключения. В журналах изменений я нашел это: Changed class names for ALL models, controllers and views. Поэтому я просто добавляю суффикс Legacy ко всем классам, которые обрабатывают исключения. А также поменять JRequest (устарело в v3) на $input=JFactory::getApplication()->input;.

Так что пока вроде все работает нормально. За исключением... административной панели компонента - я вижу меню компонента, но на странице нет никакого контента. Вот скриншот: http://tinyurl.com/btfzxux

Код главного контроллера controller.php: http://pastebin.com/vQjYvYkK
Файл основного компонента redj.php код: http://pastebin.com/gF6icdE3


Я обнаружил, что не работает строка parent::display(); в файле controller.php. И в журналах и на дисплее нет ошибок.
И эта строка вызывает JControllerAdmin->display(), что означает:

/**
 * Display is not supported by this controller.
 *......................
 *......................
 */
public function display($cachable = false, $urlparams = array())
{
    return $this;
}

Так ничего не отображается. Я попытался переименовать определение extends в JControllerLegasy (поскольку оно поддерживает метод display()), но ничего не выводится в компонентном выводе.


Как я могу вывести содержимое компонента в панель администратора в Joomla 3?

Любая помощь приветствуется.
С.Г.


ОБНОВЛЕНИЕ 1:

Я публикую свой код на GitHub. Я пытаюсь оптимизировать этот плагин для Joomla 3. Приветствуется любая помощь! https://github.com/staniaslavg/ReDJ

P.S. Теперь отображается список перенаправлений, и добавление нового работает нормально. Но... в списке элементов нет элементов.


ОБНОВЛЕНИЕ 2:

Наконец, все работает нормально (проверено только мной, но вроде все ок..)

P.S. Если на вкладках ничего не отображается, проверьте столбцы базы данных. Я добавил еще несколько. Проверьте это с помощью переменной ошибок var_dump (например, $this->get('Errors')) в файлах views/.../view.html.php

Код на GitHub: https://github.com/staniaslavg/ReDJ


person StasGrin    schedule 11.03.2013    source источник
comment
Проверяли ли вы docs.joomla.org/   -  person Valentin Despa    schedule 11.03.2013
comment
@ValentinDespa, как я уже сказал: in change-logs I found.. Так что я действительно прочитал все эти изменения и исправил все проблемы.   -  person StasGrin    schedule 11.03.2013
comment
Вы также переименовали JView в JViewLegacy?   -  person Valentin Despa    schedule 11.03.2013
comment
@ValentinDespa Да, я уверен, что переименую все классы в Legacy.   -  person StasGrin    schedule 11.03.2013
comment
Поделитесь своим кодом на github, чтобы я мог все увидеть. Если мы исправим это, возможно, другие тоже заинтересуются, и сопровождающий объединит его.   -  person Valentin Despa    schedule 11.03.2013
comment
Кроме того, теперь у меня есть выход. Но он не показывает должным образом. Что я сделал? Я просто делаю так: 1. переименовываю класс как JControllerLegacy. 2. удалить строки с ошибкой блокировки в форме вывода, например: if (count($errors = $this->get('Errors'))) { return false; }. Итак, теперь у меня есть выход, и он действительно работает. Но с ошибками.   -  person StasGrin    schedule 11.03.2013
comment
Хорошо, большое спасибо. Это займет несколько минут.   -  person StasGrin    schedule 11.03.2013
comment
@ValentinDespa github.com/staniaslavg/ReDJ   -  person StasGrin    schedule 11.03.2013
comment
@ValentinDespa проверить наличие вопросов Обновления   -  person StasGrin    schedule 11.03.2013


Ответы (1)


Я разместил несколько обновлений в репозитории github, чтобы показать, что это возможно. (для последовательности просмотра редиректов). К сожалению, некоторый код, используемый в Joomla! 2.5 компонент уже устарел и был удален в 3.0. Кроме того, графический интерфейс выглядит плохо в 3.0, он нуждается в доработке.

Как бы я ни хотел помочь вам запустить его, на это ушло много времени. Я настоятельно рекомендую использовать Joomla! 2.5, которая все еще поддерживается в течение хорошего периода времени.

Также разработчик сообщает, что Joomla! Версия 3.0 находится в разработке.

Просмотр всего кода и его исправление для меня не имеет особого смысла, но вот несколько примеров:

JDatabase::getEscaped() удален. Вместо этого используйте JDatabase::escape().

$db->getEscaped($orderCol.' '.$orderDirn)

=> $db->escape($orderCol.' '.$orderDirn)

JToolBar больше не поддерживает функции "X" (например, addNewX, editListX), которые скрывают главное меню перед выполнением функции.

и другие.

person Valentin Despa    schedule 11.03.2013
comment
хм .. кажется, я пропустил эти два примера. большое спасибо! я собираюсь делать это дальше таким образом. - person StasGrin; 12.03.2013
comment
я исправил некоторые другие проблемы, так что теперь все в порядке, я думаю. я имею в виду, что компонент окончательно и полностью перенесен на Jommla! 3. - person StasGrin; 12.03.2013
comment
Здорово. Имейте в виду, что вы использовали версию 1.6.X. Последняя версия для 2.5 - 1.7.X Проверьте программой типа WinMerge, какие еще есть отличия. - person Valentin Despa; 12.03.2013