Не работает компонент Joomla при другой установке Joomla

У меня проблемы с саморазвитым компонентом Joomla (бэкэнд). Я разработал его без каких-либо проблем, и он отлично работает на моем развитии Joomla.

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

Я регистрирую классы по мере необходимости в отношении документов - и, как уже упоминалось, это работает FINE с моей разработкой Joomla.

Для тестирования я загрузил помощников "вручную" require_once() - само сообщение об ошибке пропало, но оно тоже не работает. Он даже не загружает пользовательский вид, но показывает список по умолчанию.

Кто-нибудь знает, что идет не так? Сама установка (через zip) была без каких-либо сообщений.

  • Разработка Joomla версии: 3.2.2
  • Клиентская версия Joomla: 3.3.1

Выдержки из кода для импорта

controller.php

class DhhcController extends JControllerLegacy {
  /* ... */
  public function display($cachable = false, $urlparams = false) {
    JLoader::register('DhhcHelper', JPATH_COMPONENT .'/helpers/dhhc.php');
    JLoader::register('LanguageHelper', JPATH_COMPONENT .'/helpers/language.php');

    // ...
  }
}

Любая помощь приветствуется - спасибо!

1 ответ

Решение

Я узнал, чего не хватало, но все еще не знаю, зачем мне это было нужно в этой конкретной установке.

После клонирования установки клиента на мою машину для разработки я попробовал несколько разных вещей (деактивация различных компонентов...), но ничто не помогло мне. Эта конкретная установка Joomla с клиента (с той же версией Joomla!) Не работала с компонентом, работающим на моей установке Joomla dev на той же машине.

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

В dhhc.php (основной файл) я изменил файл на эту часть:

<?php
// ...
require_once(JPATH_COMPONENT .'/helpers/dhhc.php');
require_once(JPATH_COMPONENT .'/helpers/language.php');

JLoader::register('DhhcHelper', JPATH_COMPONENT .'/helpers/dhhc.php');
JLoader::register('LanguageHelper', JPATH_COMPONENT .'/helpers/language.php');

$controller = JControllerLegacy::getInstance('Dhhc');
$controller->execute(JFactory::getApplication()->input->get('task'));
$controller->redirect();

Сейчас все работает как положено.

Я все еще задаюсь вопросом, почему моя установка dev включала controller.php на каждом сайте, в то время как при установке клиента controller.php был включен только в основные контроллеры, непосредственно выбранные на боковой панели инструментов.

Может быть, кто-то может помочь это;-).

Другие вопросы по тегам