4 require_once
'Services/Table/classes/class.ilTable2GUI.php';
5 require_once
'Services/Contact/BuddySystem/classes/class.ilBuddyList.php';
6 require_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);
125 $options[
$key] = $option;
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();
151 $state_filter = $this->filter[self::STATE_FILTER_ELM_ID];
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 = $this->filter[
'public_name'];
172 $relations = $relations->filter(
function (
ilBuddySystemRelation $relation) use ($public_name, $relations, $public_names, $logins) {
174 !strlen($public_name) ||
175 strpos(strtolower($public_names[$relations->getKey($relation)]), strtolower($public_name)) !==
false ||
176 strpos(strtolower($logins[$relations->getKey($relation)]), strtolower($public_name)) !==
false 180 foreach ($relations->toArray() as $usr_id => $relation) {
183 'public_name' => $public_names[$usr_id],
184 'login' => $logins[$usr_id]
198 if ($this->access_to_mail_system) {
203 if (!$this->
user->isAnonymous() && $public_profile ==
'y' || $public_profile ==
'g') {
204 $this->ctrl->setParameterByClass(
'ilpublicuserprofilegui',
'user', $a_set[
'usr_id']);
205 $profile_target = $this->ctrl->getLinkTargetByClass(
'ilpublicuserprofilegui',
'getHTML');
206 $a_set[
'profile_link'] = $profile_target;
207 $a_set[
'linked_public_name'] = $a_set[
'public_name'];
209 $a_set[
'profile_link_login'] = $profile_target;
210 $a_set[
'linked_login'] = $a_set[
'login'];
212 $a_set[
'unlinked_public_name'] = $a_set[
'public_name'];
213 $a_set[
'unlinked_login'] = $a_set[
'login'];
217 parent::fillRow($a_set);
225 $listener_tpl =
new ilTemplate(
'tpl.buddy_system_relation_table_listener.html',
true,
true,
'Services/Contact/BuddySystem');
226 $listener_tpl->setVariable(
'TABLE_ID', $this->
getId());
227 $listener_tpl->setVariable(
'FILTER_ELM_ID', self::STATE_FILTER_ELM_ID);
230 return parent::render() . $listener_tpl->get();
setExternalSorting($a_val)
Set external sorting.
__construct($a_parent_obj, $a_parent_cmd="", $a_template_context="")
ilTable2GUI constructor.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
static getInstanceByGlobalUser()
setExternalSegmentation($a_val)
Set external segmentation.
addFilterItem($a_input_item, $a_optional=false)
Add filter item.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setTitle($a_title, $a_icon=0, $a_icon_alt=0)
Set title and title icon.
if(!array_key_exists('stateid', $_REQUEST)) $state
Handle linkback() response from LinkedIn.
setResetCommand($a_val, $a_caption=null)
Set reset filter command.
special template class to simplify handling of ITX/PEAR
addMultiCommand($a_cmd, $a_text)
Add Command button.
fillRow($a_set)
Standard Version of Fill Row.
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:
setRowTemplate($a_template, $a_template_dir="")
Set row template.
Create styles array
The data for the language used.
getNoEntriesText()
Get text for an empty table.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
Class ilBuddySystemRelation.
static _lookupPref($a_usr_id, $a_keyword)
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.
static getMailObjectRefId()
Determines the reference id of the mail object and stores this information in a local cache variable...
const STATE_FILTER_ELM_ID
setSelectAllCheckbox($a_select_all_checkbox)
Set the name of the checkbox that should be toggled with a select all button.
static formCheckbox($checked, $varname, $value, $disabled=false)
??? public
if(!isset($_REQUEST['ReturnTo'])) if(!isset($_REQUEST['AuthId'])) $options
setFilterCommand($a_val, $a_caption=null)
Set filter command.