Aktionsmenü
Am ActionMenu
können Aktionsicons in ein ausklappbares Menü zusammengefasst werden.
ActionMenu
Die Klasse kann direkt innerhalb einer View verwendet werden, weil sie den nötigen HTML-Code generiert und ausgibt.
Über ActionMenu::get()
erhält man eine Instanz der Klasse, die mit Inhalten befüllt werden kann.
Über die Methode addLink
werden neue Aktionslinks hinzugefügt, die wie üblich mit den Parametern URL, Label, Icon und weiteren Optionen spezifiziert werden.
Weiter gibt es die Methode addMultiPersonSearch
, die als Parameter ein MultiPersonSearch-Objekt
erhält und diese Suche als Aktion hinzufügt.
Ein minimaler Aufruf mit einer einzigen Aktion könnte also so aussehen:
<?php
$menu = ActionMenu::
get();
$menu->
addLink(
$controller->
url_for('controller/action'),
_
('Hinzufügen'),
Icon::
create('add'),
['data-dialog' =>
'size=auto']
);
$menu->
addLink(
$controller->
url_for('controller/second_action'),
_
('Bearbeiten'),
Icon::
create('edit'),
['data-dialog' =>
'size=auto']
);
$menu->
addButton(
'delete',
('Löschen'),
Icon::
create('trash'),
[
'data-confirm' =>
_('Wollen Sie wirklich löschen?'),
'formaction' =>
$controller->
url_for('controller/delete')
]
);
$menu->
addMultiPersonSearch(
MultiPersonSearch::
get('add_users')
->
setTitle(_('Personen hinzufügen'))
->
setLinkText(_('Personen hinzufügen'))
->
setSearchObject($array)
->
setDefaultSelectedUser($array_selected_user)
->
setDataDialogStatus(Request::
isXhr())
->
setJSFunctionOnSubmit(Request::
isXhr() ?
'STUDIP.Dialog.close();' :
false)
->
setExecuteURL($controller->
url_for('controller/add_member/'))
->
addQuickfilter(_('Titel'),
$array)
);
echo $menu->
render();
?>