Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 25. März 2021 20:05

parsec
kennt CMS/ms
Registriert: 04. Oktober 2012
Beiträge: 195

Content-Block im Backend ausblenden / unsichtbar machen

Hallo,

gibt es eine Möglichkeit den Tag {content} im HTML-Template zu belassen, aber damit im Backend keiner was reinschreibt nur dort ausblenden lassen oder unsichtbar machen?

Wichtig! Der soll schon fürs CMS technisch vorhanden bleiben, nur im Backend will ich nicht sichtbar haben.

Erklärung:

Es gibt Module wie zum Beispiel Gallery mit Sub-Galerien die funktionieren nur wenn der Tag auch im HTML-Template vorhanden ist. Aber zugleich will ich nicht das den Tag jemand unter Seiten im Backend sieht. Jetzt bitte nicht sagen dann zeig die Seite nicht im Backend an, das bringt mir nichts, weil ich den Zugriff zur Menu-Bezeichnung und Titel eben nicht verwehren will.

Also ungefähr sowas wie {content hide="true"}  das gibt es jetzt nicht, aber sowas in der Art, weis jemand Rat???

Danke!

Beitrag geändert von parsec (25. März 2021 20:09)


"Es ist unmöglich, alles zu wissen" - Horaz

Offline

#2 26. März 2021 15:57

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.379

Re: Content-Block im Backend ausblenden / unsichtbar machen

Sowas geht mit AdvancedContent.
Da kann man angeben, wer den Block bearbeiten darf (usernamen, usergruppen).
Das mal eben mit Bordmitteln umzusetzen, dürfte schwierig werden.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12.2 unter PHP 7:
cmsms-1.12.2-php7.2-diff.tar.gz (nur die geänderten Dateien)
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 27. März 2021 16:06

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.379

Re: Content-Block im Backend ausblenden / unsichtbar machen

Nachtrag: Ab CMSms 2.0 ginge das evtl. auch ohne Extra-Modul über ein geändertes Modul-Template des CMSContentManagers via module_custom und einem Plugin (zum Abfragen des Users bzw. seiner Berechtigungen).

Problem an der Sache ist, man kann im Template nur nach dem Label des Inhaltsbocks filtern, nicht nach seiner ID (die ist im Template nicht vorhanden). Das Label kann sich aber ändern. Z.B. je nach Sprache steht da entweder "Inhalt:" oder "Content:". Das Label beinhaltet aber neben dem Text auch das HTML Element <label> und da drin steht die ID des Contentblocks. Daher kann man sich da insofern behelfen, dass man mit "strpos"nach "content_en" im Label sucht.

Plugin zum Abfragen des Users (ja, ist wirklich nur eine Zeile Code - hab aber noch keine Möglichkeit gefunden, das vom Template aus zu machen):

<?php

function smarty_function_get_admin_user($params, &$template)
{
	$template->assign( "admin_user" , cmsms()->GetUserOperations()->LoadUserByID(get_userid()) );
}

einfach unter "assets/plugins/function.get_admin_user.php" speichern.

Dann die Datei "/modules/CMSContentManager/templates/admin_editcontent.tpl" nach "/assets/module_custom/CMSContentManager/templates/admin_editcontent.tpl" kopieren und den Bereich {* tab content *} folgendermaßen ändern:

 {* tab content *}
  {get_admin_user} {* <-- hier das plugin einfügen *}
  {foreach $tab_names as $key => $tabname}
    {tab_start name=$key}
      {if isset($tab_message_array[$key])}{$tab_message_array[$key]}{/if}
      {if isset($tab_contents_array[$key])}
        {foreach $tab_contents_array.$key as $fld}
        {if $fld[0]|stripos:'content_en' === false || $admin_user->username == 'admin'} {* <-- hier den Inhaltsblock nur anzeigen, wenn es nicht der Standardinhaltsblock ist bzw. wenn man der user mit dem Namen "admin" ist (dann darf man alles) *}
        <div class="pageoverflow">
          <p class="pagetext">{$fld[0]|default:''}</p>
          <p class="pageinput">{$fld[1]|default:''}{if isset($fld) && count($fld) == 3}<br/>{$fld[2]|default:''}{/if}</p>
        </div>
        {/if} {* <-- if-Bedingung schließen *}
        {/foreach}
      {/if}
  {/foreach}

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12.2 unter PHP 7:
cmsms-1.12.2-php7.2-diff.tar.gz (nur die geänderten Dateien)
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)

Offline

#4 27. März 2021 20:05

parsec
kennt CMS/ms
Registriert: 04. Oktober 2012
Beiträge: 195

Re: Content-Block im Backend ausblenden / unsichtbar machen

Danke, ich werde das morgen mal versuchen...


"Es ist unmöglich, alles zu wissen" - Horaz

Offline