Vom: 08.04.2013

Userabhängige Toolbar im CK-Editor in Pimcore

Pimcore verwendet als WYSIWYG-Editor den CK-Editor, ein in JavaScript implementierter Editor der sehr viele Möglichkeiten bietet, einen Text direkt im Browser zu bearbeiten. Da es oft keine gute Idee ist, den User einen Text mit allen Möglichkeiten bearbeiten zu lassen, bietet der Editor die Möglichkeit, die Toolbar selbst zu definieren. Mit ein wenig Geschick lässt sich dies sogar Userabhängig bewerkstelligen, so daß beispielsweise ein Admin-User die vollständige Toolbar sieht, ein normaler User aber nur eine eingeschränkte. Die Information, welcher User gerade eingeloggt ist, lässt sich dem pimcore.globalmanager mit der Methode get("user") entlocken. Ein kleines Script, dass die Konfiguration dann Userabhängig gestaltet, könnte dann so aussehen:

CKEDITOR.editorConfig = function( config ) {
  var user = pimcore.globalmanager.get("user");

  if (!user.admin) {
    config.toolbar = [
      [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ],
      [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],
      '/',
      [ 'Bold', 'Italic' ]
    ];
  }
};

Dieses Stück Code kann man zum Beispiel in pimcore/static/js/lib/ckeditor/config.js ablegen.