Joomla Custom Component — Ошибка при загрузке файла формы

В настоящее время я пытаюсь познакомиться с программированием пользовательских компонентов для Joomla 3.4.8. Поэтому я установил новый веб-сайт Joomla на Raspberry Pi 2 для тестирования. Все работает как надо.

Затем я начал делатьРазработка компонента MVCУчебник предоставлен самой Joomla. Все отлично работало до точки 7 ‘Использование базы данных».

Хотя этот момент говорит о базе данных, проблема состоит в том, чтобы заставить типы полей работать. То есть Когда я хочу добавить новый элемент меню (в части администратора) и выбираю тип элемента пользовательского меню, я получаю сообщение об ошибке «Ошибка загрузки файла формы».

Я пытался найти ошибку в течение нескольких дней, но безуспешно. Я даже зашел так далеко, чтобы отследить строку кода внутри фреймворка joomla, которая выдает эту ошибку. Строка кода находится внутри /libraries/legacy/model/form.php (строка 192). На этой линии вы можете увидеть $this->preprocessForm($form, $data);, Но почему-то код даже не входит в этот метод, он просто выдает исключение.

Я сравнил $form а также $data переменная с теми из нормального запуска, добавив следующий оператор (найдено Вот) до строки 192:

 echo "<pre>"; print_r($arr); echo "</pre>";

$form Переменные не имеют никакой разницы. $data переменные, однако, немного отличаются. К сожалению, я довольно новичок в этих понятиях, поэтому я не знаю, что может быть не так или где искать проблему.

Надеюсь, кто-нибудь из вас сможет мне помочь …

Для завершения здесь вывод $data переменная, когда ошибка вызвана:

    Array
(
[parent_id] => 1
[level] =>
[lft] =>
[rgt] =>
[alias] =>
[id] =>
[menutype] => mainmenu
[title] =>
[note] =>
[path] =>
[link] => index.php?option=com_helloworld&view=helloworld
[type] => component
[published] =>
[component_id] => 10000
[checked_out] =>
[checked_out_time] =>
[browserNav] => 0
[access] =>
[img] =>
[template_style_id] => 0
[params] => Array
(
[menu-anchor_title] =>
[menu-anchor_css] =>
[menu_image] =>
[menu_text] => 1
[page_title] =>
[show_page_heading] =>
[page_heading] =>
[pageclass_sfx] =>
[menu-meta_description] =>
[menu-meta_keywords] =>
[robots] =>
[secure] => 0
)
[home] => 0
[language] =>
[client_id] =>
[request] => Array
(
[option] => com_helloworld
[view] => helloworld
)
[menuordering] => 0
[toggle_modules] => 1
)

0

Решение

Хорошо! Я наконец решил проблему. К сожалению, это была очень глупая ошибка …

Прежде всего, я заметил, что метод preprocessForm($form, $data) был перезаписан подклассом. Отсюда мой echo заявления не будут выполнены. Это привело меня к тому, что мой XML-файл в <joomla-root>/components/com_helloworld/views/helloworld/tmpl/default.xml был загружен.

К сожалению, это не сработало. И это произошло из-за небольшой ошибки в файле XML. Ошибка была очень простой и глупой:

<fieldset name="request">
<field
name="id"type="helloworld"label="COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_LABEL"description="COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_DESC"/>
</field>
</fieldset>

Я просто закрыла field дважды, где второй закрывающий тег использовался на предыдущем шаге урока.

Очень глупая ошибка, которая стоила мне нескольких часов. По крайней мере, у меня было некоторое представление о коде Joomla. Надеемся, что этот пост позволит избежать других, ищущих бесчисленные часы за такую ​​незначительную ошибку.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]