Я начинаю с разработки как для php, так и для Joomla, и мне трудно работать в Joomla, чтобы делать довольно простые вещи. Изучили пример Joomla MVC и Lynda (и создали несколько простых представлений ).
У меня есть вспомогательный файл/класс/функция, которая выводит все идентификаторы пользователей, которые существуют в «завершенной» таблице, поэтому я могу отобразить ссылку либо на новую запись, основанную на этом пользователе, либо отредактировать запись существующего пользователя.
Я уже успешно использовал другую функцию в этом вспомогательном файле в другой части компонента(Joomla :Написать и вызвать вспомогательную функцию в компоненте).
Когда я делаю то же самое в модели, я получаю это :«Неустранимая ошибка :Вызов защищенного метода JModel ::_createFileName ()из контекста «JView» в C :\ wamp\www\illocal\libraries\joomla\application\component\view.php в строке 773". Когда я пробую это в представлении, работает нормально -, но мне нужен вывод в модели.
Код:
lookups.php
abstract class LookupHelper {
public function other_functions($vars){
...
}
public function completions_exist() {
$db =& JFactory::getDBO();
$query = $db->getQuery(true);
$query->SELECT(' #__completed.completed_userid as UserID');
$query->FROM (' #__completed');
$query->GROUPBY (' #__completed.completed_userid ');
$db->setQuery($query);
$result = $db->loadResultArray(0);
return $result;
}
}
В модели:
$completions_exist = Jview::loadHelper('lookups');
$completions_exist = LookupHelper::completions_exist();
Эта строка выдает ошибку:$completions_exist = Jview::loadHelper('lookups');
Я нашел несколько очень расплывчатых ссылок на то, что называется JLoader ::зарегистрируйтесь для извлечения вспомогательных функций, но не могу найти никакой хорошей документации по этому поводу в Joomla, за исключением того, что все говорят просто использовать это. Итак, я попытался использовать его так :
JLoader::register('LookupHelper', dirname( JPATH_COMPONENT_ADMINISTRATOR).DS.'helpers'.DS.'lookups.php');
$completions_exist = LookupHelper::completions_exist();
, который выдает эту ошибку :«Неустранимая ошибка :Класс« LookupHelper »не найден в C :\wamp\path\to\model\not\to\lookups.php Пробовал манипулировать JLoader ::регистр (все здесь )и это не влияет на путь сообщения об ошибке.
Мысли? Почему это работает в представлении, а не в модели? Как это сделать? Я использую вспомогательные функции в модели?
Спасибо!
##### РЕДАКТИРОВАТЬ
Благодаря @cppl похоже, что это проблема пути со вторым битом кода. Также я читал, что.DS. нотация будет прекращена в будущих версиях -, поэтому работает код:
JLoader::register('LookupHelper', JPATH_COMPONENT_ADMINISTRATOR.'/helpers/lookups.php');
$completions_exist = LookupHelper::completions_exist();