Ergebnis 1 bis 9 von 9

Thema: Überschriften verbieten außer im CE Überschrift

  1. #1
    Contao-Nutzer Avatar von quenn
    Registriert seit
    28.03.2013.
    Ort
    Köln
    Beiträge
    74

    Standard Überschriften verbieten außer im CE Überschrift

    Hallo,

    gibt es eine Möglichkeit, in den Benutzerrechten einzustellen, dass es für bestimmte Benutzer kein Feld "Überschrift" z.B. im CE Text oder Tabelle gibt, gleichzeitig aber im CE Überschrift dieses noch vorhanden ist?

    Ich möchte dem Nutzer gerne das CE Überschrift zur Verfügung stellen, ihm gleichzeitig aber die Möglichkeit nehmen, dieses bei andere CEs zu benutzen.

  2. #2
    Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    4.258
    Partner-ID
    7421

    Standard

    Könnte mit der Erweiterung CE-Access zu machen sein.
    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.
    Immer dran denken: Contao-Check zum Testen der Servervoraussetzungen (Contao 2, Contao 3 und Contao 4) und zum Prüfen einer bestehenden Installation (bis Contao 3.5)

  3. #3
    Contao-Nutzer Avatar von quenn
    Registriert seit
    28.03.2013.
    Ort
    Köln
    Beiträge
    74

    Standard

    Die habe ich bereits installiert, die hilft da leider nicht. Wenn man unter tl_content das Häckchen bei "Überschrift" entfernt, verschwindet das Feld aus sämtlichen CEs.

  4. #4
    Contao-Nutzer Avatar von JMMB
    Registriert seit
    08.03.2012.
    Beiträge
    219
    User beschenken
    Wunschliste

    Standard

    Hallo,

    ich glaube das kannst Du noch über die DCA config lösen (zumindest bei Contao 4.4 möglich in system/config/dcaconfig.php).

    Da käme dann ein Eintrag rein der die Headline aus der Palette nimmt:

    PHP-Code:
    <?php 

    $GLOBALS
    ['TL_DCA']['tl_content']['palettes']['text'] = '{type_legend},type;{text_legend},text;{image_legend},addImage;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID;{invisible_legend:hide},invisible,start,stop';
    ist normalerweise so am Anfang der Zeile:

    PHP-Code:
    {type_legend},type,headline;{text_legend
    Das müsste dann aber für alle für Dich relevanten Paletten passieren.

    Bei Text hat es jetzt auf die schnelle funktioniert.

    Um das ganze nur für die Redakteure einzuschränken war das hier mal eine gängige Lösung:

    PHP-Code:
    <?php 
    $this
    ->import('BackendUser''User'); 
    if(!
    $this->User->isAdmin)
            {
                
    $GLOBALS['TL_DCA']['tl_content']['palettes']['text'] = '{type_legend},type;{text_legend},text;{image_legend},addImage;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID;{invisible_legend:hide},invisible,start,stop';
            }
    Schau mal ob Dir das hilft.

    Grüße

  5. #5
    Contao-Nutzer Avatar von quenn
    Registriert seit
    28.03.2013.
    Ort
    Köln
    Beiträge
    74

    Standard

    Hat hervorragend funktioniert, vielen Dank!

    Ich musste das auch noch für das CE Bild umsetzen. Ich habe mir die entsprechende Palette dann von hier geholt:

    vendor\contao\core-bundle\src\Resources\contao\dca\tl_content.php

    Dann ohne die nicht gewünschten Felder in die dcaconfig.php kopiert.

  6. #6
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.341

    Standard

    Verbesserungsvorschlag: mach es nicht hartkodiert, denn dann würdest Du auch Änderungen an einer Palette überschreiben, die ggf. eine Erweiterung gemacht hat.

    Code:
    foreach ($GLOBALS['TL_DCA']['tl_content']['palettes'] as $name => $palette) {
      if ('headline' === $name) { continue; }
      $GLOBALS['TL_DCA']['tl_content']['palettes'][$name] = preg_replace("/,headline(?=[,;$])/", '', $palette); 
    }
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  7. #7
    Contao-Nutzer Avatar von quenn
    Registriert seit
    28.03.2013.
    Ort
    Köln
    Beiträge
    74

    Standard

    Der Vorschlag von fiedsch hat funktioniert, bis ich mich eben über die app_dev.php eingeloggt habe. Jetzt bekomme ich folgende Meldung:

    Warning: Invalid argument supplied for foreach()

  8. #8
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.341

    Standard

    Wenn mit der app_dev.php der Inhalt von $GLOBALS['TL_DCA']['tl_content']['palettes'] noch nicht gesetzt ist (weil nicht aus cache geladen?), dann könntest
    Du das abfangen, indem Du die Schleife mit

    Code:
    if (isset($GLOBALS['TL_DCA']['tl_content']['palettes'])) {
      ...
    }
    klammerst. Das sollte den Fehler abfangen, ändert dann aber auch keine Paletten.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  9. #9
    Contao-Nutzer Avatar von quenn
    Registriert seit
    28.03.2013.
    Ort
    Köln
    Beiträge
    74

    Daumen hoch

    danke, funktioniert!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •