Pro našeho klienta jsem připravoval synchronizaci uživatelů, kontaktních údajů a dalších informací z jeho systému do Sitecore. Kromě toho, že se synchronizace spouští automaticky, chtěl jsem pro klienta připravit možnost ruční synchronizace. Rozhodl jsem se, že rozšířím nabídku content editoru o další záložku, ve které budou pro každou synchronizaci tlačítka.
Jak se v Sitecore říká „Everything is item“, tak to samozřejmě platí i pro ribbon. Každá položka v ribbonu je samostatná itema vytvořena z předdefinovaných šablon, viz obr. 1.
Abychom přidali potřebné itemy do nabídky content editoru je potřeba se přepnout do Core databáze viz obr. 2.
Vytvoření bloku tlačítek
Po přepnutí do Core databáze najdeme ribbon content editoru na cestě /sitecore/content/Applications/Content Editor/Ribbons. Zde je adresářová struktura záložek, tlačítek a všeho, z čeho se ribbon skládá. Nejdříve si připravím blok (chunk) tlačítek. Přepnu se do adresáře Chunks (/sitecore/content/Applications/Content Editor/Ribbons/Chunks) a sem vložím itemu, kterou si nazvu např. „Synchronization“. Použiju šablonu /sitecore/templates/System/Ribbon/Chunk, viz obr. 3.
Vytvoření tlačítka
Když mám připravený blok tlačítek, vložím pod něj jednotlivá tlačítka pro konkrétní synchronizace. Takže pro synchronizaci uživatelů vytvořím itemu „Users“ a použiju šablonu /sitecore/templates/System/Ribbon/Large Button, viz obr 4.
U tlačítka musím vyplnit pole „Click“. Do tohoto pole se vyplňuje název commandu v konfiguračním souboru sitecore.config, respektive v konfiguračním souboru, který jsem si vytvořil. Více o konfiguračních souborech napsal můj kolega v tomto článku.
Můj konfigurační soubor vypadá takhle:
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> <sitecore> <commands> <command name="test:SynchronizeUsers" type="Test.Sc82.Core.Commands.SynchronizeUsers, Test.Sc82" /> </commands> </sitecore> </configuration>
Tímto zápisem do konfiguračního souboru řeknu, jaká akce se má spustit po kliknutí na tlačítko. A do příslušné třídy pak napíšu celou logiku synchronizace uživatelů.
Vytvoření záložky
Pro vytvoření záložky v ribbonu se přepnu do /sitecore/content/Applications/Content Editor/Ribbons/Strips. Tady si vytvořím itemu ze šablony /sitecore/templates/System/Ribbon/Strip, viz obr. 5.
Přidání nabídky do Content editoru
Nyní je téměř vše hotové. Jen musím jednotlivé itemy propojit, abych je viděl v ribbonu content editoru. Pro propojení všech částí mé nové nabídky ribbonu použiju šablonu /sitecore/templates/System/Reference. Jednu referenci přidám pod nově vytvořenou záložku (/sitecore/content/Applications/Content Editor/Ribbons/Strips/Synchronization) a připojím blok s tlačítky a tlačítka samotná. Druhou referenci přidám do toolbaru content editoru (/sitecore/content/Applications/Content Editor/Ribbons/Ribbons/Default) a připojím záložku se synchronizacemi, viz obr. 6.
A tím je úprava ribbonu hotová.