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.

Šablony použité pro ribbon

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.

Přepínání databází v Sitecore

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.

Vložení itemy do ribbonu

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.

Vložení itemy do ribbonu

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.

Vložení itemy do ribbonu

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.

Vložení itemy do ribbonu

obr. 6

A tím je úprava ribbonu hotová.