W systemie eDokumenty istnieje możliwość definiowania własnych przycisków na pasku tzw. pluginów lub custom widgets - tzw. toolbarze. W obecnej chwili funkcjonalność ta jest obsługiwana tylko w modułach Dokumenty oraz Klienci.
Wszelkie informacja odnośnie dodatków są przechowywane w tabeli custom_widgets, która zawiera 9 kolumn. Zanim jednak wprowadzimy dane do tabeli należy przygotować skrypt oraz ikonę dla przycisku, który ten skrypt będzie uruchamiał.
Skrypt ma postać pliku z rozszerzeniem .inc (np. Test.inc). Jest to klasa zapisana przy pomocy języka PHP. Listing przykładowej klasy został umieszczony poniżej:
<?php final class Test { public static function init() { // wyświetla monit eDokumentowy JScript::alert(Translator::translate('Witaj to ja Twój plugin')); // wyświetla monit JavaScriptowy alert JScript::add('alert(666)'); } } print_r($args); Test::init(); ?>
Jak widać powyżej w skrypcie można wykorzystywać także język JavaScript. Jednakże należy mieć na uwadze, że błędny lub szkodliwy skrypt może wpłynąć negatywnie na stabilność systemu !!!
Utworzony skrypt umieszczamy w katalogu public_html/apps/edokumenty/scripts
Ikona musi mieć rozmiar 24x24px format np. png i być umieszczona w katalogu: public_html/framework/img/toolbarIcons/24x24/.
Przycisku definiowane są w Panel sterowania > Manager Custom Widget. Gdzie pola:
Istotą działania modułu dodatkowego jest przekazywanie danych z zaznaczonych elementów pod kluczami
<buttons> <button> <id> new </id> <label> Nowa </label> <dscrpt> Nowa </dscrpt> <onclick> App.openDialogByCls({CLSNAM}, {KEYVAL}, ({afterSubmit:'{AFTER_SUBMIT}', mode:'new'}).toJSONString()) </onclick> <icon> new.gif </icon> </button> <button> <custom_widget> 3 </custom_widget> </button> </buttons>
Domyślnie każdy użytkownik ma dostęp do utworzonego w ten sposób przycisku. Ograniczenie dostępu jest realizowane poprzez tabelę access, kórej opis jest zamieszczony w artykule: http://support.edokumenty.eu/trac/wiki/DeployerGuide/Others/SettingRightsForFields
Dane do ustawiania uprawnień dla przycisku: