Возникла задача интегрировать два компонента 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 в общем случае можно разными способами и конкретная реализация зависит от конкретной задачи.