Возникла задача интегрировать два компонента mos tree (com_mtree) и jom social (com_community). Нужно было что бы при добавлении объявления в mos tree некоторые поля заполнялись данными профиля пользователя из jom social.
Для этого в первую очередь надо было получить все поля профиля для текущего пользователя. Сделать это удалось с помощью следующего кода
require_once( JPATH_ROOT . DS . 'components' . DS . 'com_community' . DS . 'models' . DS . 'models.php' );
require_once( JPATH_ROOT . DS . 'components' . DS . 'com_community' . DS . 'models' . DS . 'profile.php' );
$model=new CommunityModelProfile();
$profile=$model->getEditableProfile($userid);
$profile_fields=array("email"=>$profile["email"], "name"=>$profile["name"]);
if(isset($profile["fields"]) && is_array($profile["fields"]) && count($profile["fields"])>0) {
foreach($profile["fields"] AS $fld) {
if(is_array($fld) && count($fld)>0) {
foreach($fld AS $field) {
$profile_fields[$field["fieldcode"]]=$field["value"];
}
}
}
}
$profile=$model->getViewableProfile($userid);
if(isset($profile["fields"]) && is_array($profile["fields"]) && count($profile["fields"])>0) {
foreach($profile["fields"] AS $fld) {
if(is_array($fld) && count($fld)>0) {
foreach($fld AS $field) {
$profile_fields[$field["fieldcode"]]=$field["value"];
}
}
}
}
Вставлять полученные в $profile_fields значения в форму mos_tree в общем случае можно разными способами и конкретная реализация зависит от конкретной задачи.