Новичок в Joomla / PHP-разработчике, пытающийся понять, как это сделать.Все, что я нашел в поиске, было для старых версий Joomla или других фреймворков, и поэтому все это сбивает с толку первый раз.
Я хочу иметь вспомогательную функцию, которую я могу вызывать из любого места в моем компоненте.По сути, он принимает ввод идентификатора пользователя и возвращает его полное имя, скажем, цвет волос и рост.Вот функция:
function get_profile_info($userID) {
$db =& JFactory::getDBO();
$query = $db->getQuery(true);
$query->SELECT('u.id as UserID
, u.name AS Name
, up.profile_value AS Hair
, up2.profile_value AS Height
');
$query->FROM (' #__users AS u');
$query->LEFTJOIN (' #__user_profiles AS up ON u.id = up.user_id AND up.ordering = 1');
$query->LEFTJOIN (' #__user_profiles AS up ON u.id = up.user_id AND up.ordering = 2');
$query->WHERE(' u.id = '.$userID.'');
$query->GROUPBY (' u.id
, u.name
, up.profile_value
');
$db->setQuery($query);
return $query;
}
Я бы поместил это в файл под названием «lookups.php» в папке «helpers» моего компонента ... но здесь я не уверен, что делатьследующий.В верхней части lookups.php есть обязательное:
<?php defined ( '_JEXEC' ) or die;
Итак, два вопроса: 1) Я все помещаю в класс или сохраняю как серию функций (так как будут другие)?
2) Как передать userID и вернуть значения Name, Hair и Height в представлении (view.html.php / default.php)?
Спасибо!
========================================
Редактировать: На основеОтвет @Shaz ниже здесь, где я нахожусь (опять же, просто начинаю и пытаюсь обернуть мою голову вокруг некоторых из них):
lookups.php
abstract class LookupHelper {
var $Name;
var $Hair;
var $Height;
public function get_profile_info($userID) {
...
(same as above until the next line)
$db->setQuery($query);
$result=$db->loadRow();
$Name = $result[1];
$Hair = $result[2];
$Height = $result[3];
$getprofileinfo = array(Name=>$Name, Hair=>$Hair, Height=>$Height);
$return $getprofileinfo;
}
}
Тогда по умолчанию.php (вероятно, переместится в view.html.php):
$getprofileinfo = Jview::loadHelper('lookups'); //got an error without this
$getprofileinfo = LookupHelper::get_profile_info($userID);
$Name = $getprofileinfo[Name];
$Hair = $getprofileinfo[Hair];
$Height = $getprofileinfo[Height];
Итак ... это работает - но кажется, что есть гораздо более простой способ сделать это (в частности, создание массива вручную, а затем вызовпозиция).Мысли?
Спасибо !!