19 declare(strict_types=1);
46 array $contextObjects = []
50 $this->
ctrl = $DIC[
'ilCtrl'];
51 $this->
lng = $DIC[
'lng'];
52 $this->
user = $DIC[
'ilUser'];
53 $this->
http = $DIC->http();
55 $this->ui_factory = $DIC->ui()->factory();
56 $this->ui_renderer = $DIC->ui()->renderer();
58 $tableId =
ilStr::subStr($type .
'_cml_' . md5(implode(
'_', $contextObjects)), 0, 30);
59 $this->
setId($tableId);
63 if ($this->context ===
'mail') {
65 $this->mailing_allowed = $DIC->rbac()->system()->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId());
71 $this->
lng->loadLanguageModule(
'crs');
72 $this->
lng->loadLanguageModule(
'buddysystem');
75 if ($type ===
'crs') {
76 $mode[
'checkbox'] =
'search_crs';
77 $mode[
'short'] =
'crs';
78 $mode[
'long'] =
'course';
79 $mode[
'lng_type'] = $this->
lng->txt(
'course');
80 $mode[
'view'] =
'crs_members';
81 } elseif ($type ===
'grp') {
82 $mode[
'checkbox'] =
'search_grp';
83 $mode[
'short'] =
'grp';
84 $mode[
'long'] =
'group';
85 $mode[
'lng_type'] = $this->
lng->txt(
'group');
86 $mode[
'view'] =
'grp_members';
92 $this->
ctrl->setParameter($a_parent_obj,
'view', $mode[
'view']);
95 $this->
http->wrapper()->query()->has(
'ref') &&
96 $this->
http->wrapper()->query()->retrieve(
'ref', $this->
refinery->kindlyTo()->string()) !==
'' 98 $this->
ctrl->setParameter(
101 $this->
http->wrapper()->query()->retrieve(
'ref', $this->
refinery->kindlyTo()->string())
105 if ($this->
http->wrapper()->post()->has($mode[
'checkbox'])) {
106 $ids = $this->
http->wrapper()->post()->retrieve(
112 $this->
ctrl->setParameter(
122 $this->
setRowTemplate(
'tpl.mail_search_objects_members_row.html',
'components/ILIAS/Contact');
125 $this->
addColumn($this->
lng->txt(
'login'),
'members_login',
'22%');
126 $this->
addColumn($this->
lng->txt(
'name'),
'members_name',
'22%');
127 $this->
addColumn($this->
lng->txt($mode[
'long']),
'members_crs_grp',
'22%');
129 $this->
addColumn($this->
lng->txt(
'buddy_tbl_filter_state'),
'status',
'23%');
131 $this->
addColumn($this->
lng->txt(
'actions'),
'',
'10%');
133 if ($this->context ===
'mail') {
134 if ($this->mailing_allowed) {
140 $this->
lng->loadLanguageModule(
'wsp');
143 $this->
lng->loadLanguageModule(
'buddysystem');
150 if ($this->
http->wrapper()->query()->has($key)) {
151 $value = $this->
http->wrapper()->query()->retrieve($key, $trafo);
154 if ($this->
http->wrapper()->post()->has($key)) {
155 $value = $this->
http->wrapper()->post()->retrieve($key, $trafo);
161 protected function fillRow(array $a_set): void
163 $trafo = $this->
refinery->custom()->transformation(
function ($value):
string {
164 if (is_string($value)) {
173 $this->
refinery->kindlyTo()->listOf(
176 $this->
refinery->kindlyTo()->string()
184 $this->
ctrl->setParameter($this->parent_obj,
'search_members', $a_set[
'members_id']);
185 $this->
ctrl->setParameter(
187 'search_' . $this->mode[
'short'],
190 $this->
ctrl->setParameter($this->parent_obj,
'view', $this->mode[
'view']);
193 if ($this->context ===
'mail') {
194 if ($this->mailing_allowed) {
198 $this->
lng->txt(
'mail_member'),
199 $this->
ctrl->getLinkTarget($this->parent_obj,
'mail')
206 $this->
lng->txt(
'wsp_share_with_members'),
207 $this->
ctrl->getLinkTarget($this->parent_obj,
'share')
214 $a_set[
'members_id'] !== $this->
user->getId() &&
218 $this->
ctrl->setParameterByClass(ilBuddySystemGUI::class,
'user_id', $a_set[
'members_id']);
222 $this->
lng->txt(
'buddy_bs_btn_txt_unlinked_a'),
223 $this->
ctrl->getLinkTargetByClass(ilBuddySystemGUI::class,
'request')
229 $drop_down = $this->ui_factory
232 ->withLabel($this->
lng->txt(
'actions'));
233 $action_html = $this->ui_renderer->render($drop_down);
235 $this->tpl->setVariable(
'CURRENT_ACTION_LIST', $action_html);
237 foreach ($a_set as $key => $value) {
238 $this->tpl->setVariable(strtoupper($key), $value);
readonly GlobalHttpState $http
setFormAction(string $a_form_action, bool $a_multipart=false)
addCommandButton(string $a_cmd, string $a_text, string $a_onclick='', string $a_id="", string $a_class="")
Interface Observer Contains several chained tasks and infos about them.
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
setSelectAllCheckbox(string $a_select_all_checkbox, bool $a_select_all_on_top=false)
static _lookupPref(int $a_usr_id, string $a_keyword)
static subStr(string $a_str, int $a_start, ?int $a_length=null)
getRequestValue(string $key, \ILIAS\Refinery\Transformation $trafo, $default=null)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
readonly Refinery $refinery
readonly ILIAS UI Renderer $ui_renderer
static http()
Fetches the global http state from ILIAS.
setDefaultOrderField(string $a_defaultorderfield)
setRowTemplate(string $a_template, string $a_template_dir="")
Set row template.
setDefaultOrderDirection(string $a_defaultorderdirection)
setTitle(string $a_title, string $a_icon="", string $a_icon_alt="")
__construct( $a_parent_obj, string $type='crs', string $context='mail', array $contextObjects=[])
__construct(Container $dic, ilPlugin $plugin)
readonly ILIAS UI Factory $ui_factory
addColumn(string $a_text, string $a_sort_field="", string $a_width="", bool $a_is_checkbox_action_column=false, string $a_class="", string $a_tooltip="", bool $a_tooltip_with_html=false)
static yn2tf(string $a_yn)
addMultiCommand(string $a_cmd, string $a_text)
static getInstanceByGlobalUser(?ilObjUser $user=null)