4require_once 
'Services/Table/classes/class.ilTable2GUI.php';
 
    5require_once 
'Services/Contact/BuddySystem/classes/class.ilBuddyList.php';
 
    6require_once 
'Services/Contact/BuddySystem/classes/class.ilBuddySystemLinkButton.php';
 
   58    public function __construct($a_parent_obj, $a_parent_cmd)
 
   66        $this->ctrl = 
$DIC[
'ilCtrl'];
 
   67        $this->container_tpl = 
$DIC[
'tpl'];
 
   68        $this->
user = $DIC[
'ilUser'];
 
   70        $this->
setId(
'buddy_system_tbl');
 
   71        parent::__construct($a_parent_obj, $a_parent_cmd);
 
   73        $this->lng->loadLanguageModule(
'buddysystem');
 
   77        $chatSettings = 
new ilSetting(
'chatroom');
 
   78        $this->chat_enabled = $chatSettings->get(
"chat_enabled", 
false);
 
   83        $this->
setTitle($this->lng->txt(
'buddy_tbl_title_relations'));
 
   85        if ($this->access_to_mail_system || $this->chat_enabled) {
 
   88            if ($this->access_to_mail_system) {
 
   91            if ($this->chat_enabled) {
 
   92                $this->
addMultiCommand(
'inviteToChat', $this->lng->txt(
'invite_to_chat'));
 
   96        $this->
addColumn($this->lng->txt(
'name'), 
'public_name');
 
   97        $this->
addColumn($this->lng->txt(
'login'), 
'login');
 
  100        $this->
setRowTemplate(
'tpl.buddy_system_relation_table_row.html', 
'Services/Contact/BuddySystem');
 
  101        $this->
setFormAction($this->ctrl->getFormAction($a_parent_obj, $a_parent_cmd));
 
  114        $this->filters = array();
 
  115        $this->filter = array();
 
  117        require_once 
'Services/Contact/BuddySystem/classes/states/class.ilBuddySystemRelationStateFactory.php';
 
  119        require_once
'Services/Form/classes/class.ilSelectInputGUI.php';
 
  120        $relations_state_selection = 
new ilSelectInputGUI($this->lng->txt(
'buddy_tbl_filter_state'), self::STATE_FILTER_ELM_ID);
 
  127        $relations_state_selection->setOptions(array(
'' => $this->lng->txt(
'please_choose')) + 
$options);
 
  129        $relations_state_selection->readFromSession();
 
  130        $this->filter[
'relation_state_type'] = $relations_state_selection->getValue();
 
  132        require_once 
'Services/Form/classes/class.ilTextInputGUI.php';
 
  133        $public_name = 
new ilTextInputGUI($this->lng->txt(
'name'), 
'public_name');
 
  135        $public_name->readFromSession();
 
  136        $this->filter[
'public_name'] = $public_name->getValue();
 
  153            return !strlen($state_filter) || strtolower(get_class($relation->
getState())) == strtolower($state_filter);
 
  156        require_once 
'Services/User/classes/class.ilUserUtil.php';
 
  160        $logins = array_map(
function ($value) {
 
  162            preg_match_all(
'/\[([^\[]+?)\]/', $value, $matches);
 
  164                is_array($matches) &&
 
  165                isset($matches[1]) &&
 
  166                is_array($matches[1]) &&
 
  167                isset($matches[1][count($matches[1]) - 1])
 
  168            ) ? $matches[1][count($matches[1]) - 1] : 
'';
 
  171        $public_name_query = (string) $this->filter[
'public_name'];
 
  178            $usrId = $relations->getKey($relation);
 
  181                0 === ilStr::strlen($public_name_query) ||
 
  183                    ilStr::strtolower($public_names[$usrId]),
 
  184                    ilStr::strtolower($public_name_query)
 
  186                ilStr::strpos(ilStr::strtolower($logins[$usrId]), ilStr::strtolower($public_name_query)) !== false
 
  189            if (!$hasMatchingName) {
 
  196        foreach ($relations->toArray() as $usr_id => $relation) {
 
  199                'public_name' => $public_names[$usr_id],
 
  200                'login' => $logins[$usr_id]
 
  214        if ($this->access_to_mail_system) {
 
  219        if ((!$this->
user->isAnonymous() && $public_profile === 
'y') || $public_profile === 
'g') {
 
  220            $this->ctrl->setParameterByClass(
'ilpublicuserprofilegui', 
'user', $a_set[
'usr_id']);
 
  221            $profile_target = $this->ctrl->getLinkTargetByClass(
'ilpublicuserprofilegui', 
'getHTML');
 
  222            $a_set[
'profile_link'] = $profile_target;
 
  223            $a_set[
'linked_public_name'] = $a_set[
'public_name'];
 
  225            $a_set[
'profile_link_login'] = $profile_target;
 
  226            $a_set[
'linked_login'] = $a_set[
'login'];
 
  228            $a_set[
'unlinked_public_name'] = $a_set[
'public_name'];
 
  229            $a_set[
'unlinked_login'] = $a_set[
'login'];
 
  233        parent::fillRow($a_set);
 
  241        $listener_tpl = 
new ilTemplate(
'tpl.buddy_system_relation_table_listener.html', 
true, 
true, 
'Services/Contact/BuddySystem');
 
  242        $listener_tpl->setVariable(
'TABLE_ID', $this->
getId());
 
  243        $listener_tpl->setVariable(
'FILTER_ELM_ID', self::STATE_FILTER_ELM_ID);
 
  246        return parent::render() . $listener_tpl->get();
 
if(!array_key_exists('stateid', $_REQUEST)) $state
Handle linkback() response from LinkedIn.
An exception for terminatinating execution or to throw for unit testing.
static getInstanceByGlobalUser()
Class ilBuddySystemRelation.
const STATE_FILTER_ELM_ID
render()
{render table @access public}
fillRow($a_set)
Standard Version of Fill Row.
initFilter()
{Init filter.Overwrite this to initialize all filter input property objects.}
static getMailObjectRefId()
Determines the reference id of the mail object and stores this information in a local cache variable.
static _lookupPref($a_usr_id, $a_keyword)
static _lookupActive($a_usr_id)
Check user account active.
setExternalSorting($a_val)
Set external sorting.
getNoEntriesText()
Get text for an empty table.
setTitle($a_title, $a_icon=0, $a_icon_alt=0)
Set title and title icon.
setSelectAllCheckbox($a_select_all_checkbox, $a_select_all_on_top=false)
Set the name of the checkbox that should be toggled with a select all button.
setData($a_data)
set table data @access public
setResetCommand($a_val, $a_caption=null)
Set reset filter command.
__construct($a_parent_obj, $a_parent_cmd="", $a_template_context="")
ilTable2GUI constructor.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
addMultiCommand($a_cmd, $a_text)
Add Command button.
addFilterItem($a_input_item, $a_optional=false)
Add filter item.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
addColumn( $a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
setExternalSegmentation($a_val)
Set external segmentation.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setFilterCommand($a_val, $a_caption=null)
Set filter command.
special template class to simplify handling of ITX/PEAR
This class represents a text property in a property form.
static getNamePresentation( $a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true, $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
static formCheckbox($checked, $varname, $value, $disabled=false)
??? @access public