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

#1 08. Juni 2011 14:57

COR9
Server-Pate
Ort: Dresden
Registriert: 09. November 2010
Beiträge: 281

Template-Switching-Probleme mit dem content-TAG

Ich habe ein Template erstellt, das je nach hierarchischer Position und Seiten-Alias drei verschiedene Layouts erzeugt, was wunderbar funktioniert. Die differierenden Bereiche enthalten jeweils content und zusätzliche Inhaltsblöcke und sind in GCBs ausgelagert. Jetzt habe ich das Problem, dass mir beim Seitenbearbeiten entweder keine Inhalte im Backend angezeigt werden (Konflikt von Content-Tags ohne »block«), da ja jedes Layout einen primären Inhaltsbereich besitzt. Oder: Wenn ich diesen Konflikt vermeide, werden mir auf allen Seiten (nur im Backend) sämtliche Inhaltsblöcke aus allen Layouts angezeigt. Woran kann das liegen?

Die Content-Bereiche bekommen Variablen, sie werden im Kopf des Templates definiert und dann jeweils in den GCBs aufgerufen:

Zur Verdeutlichung hier der Switch im Template:

[== Smarty ==]
{if $position|count_characters != 1}{global_content name='col_sub'}{elseif $page_alias == "home"}{global_content name='col_home'}{else}{global_content name='col_haupt'}{/if}

Einer der GBCs (col_haupt):

[== HTML/Smarty ==]
<div id="col2_haupt">
          <div id="col2_content_haupt" class="clearfix">
            
            <div class="subcolumns">

              <div class="c33l">
                <div class="subcl">
                <!-- Inhalt linker Block -->
                {content label="Hauptseiten-Thumbnails Spalte 1"}
                </div>
              </div>
              <div class="c33l">
                <div class="subc">
                <!-- Inhalt mittlerer Block -->
                {$hauptzwo}
                </div>
              </div>              
              <div class="c33r">
                <div class="subcr">
                <!-- Inhalt rechter Block -->
                {$hauptdrei}
                </div>
              </div>

            </div><!-- close subcolumns -->
          </div><!-- close col2_content -->
        </div><!-- close col2 -->

        <div id="col3_haupt">
          <div id="col3_content_haupt" class="clearfix">           
          </div>
          <!-- IE Column Clearing -->
          <div id="ie_clearing"> &#160; </div>
        </div>

Offline

#2 08. Juni 2011 15:15

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

Re: Template-Switching-Probleme mit dem content-TAG

Wieder das Problem, dass das Template im Backend nicht verarbeitet wird.
Du kannst den {content} Tag nicht einfach in einen GCB packen. Das mag im Frontend funktionieren, aber im Backend wird im Template lediglich nach der Zeichenkombination {content ... } gesucht.
Da ist nichts mit Smarty.
D.h. Deine globalen Inhaltsblöcke werden im Backend ignoriert.

Pack den {content}-Tag ganz oben (außerhalb des Template-Switches) ins Template mit dem Parameter assign="content" Und verwende im GCB die Variable {$content}


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 08. Juni 2011 18:50

COR9
Server-Pate
Ort: Dresden
Registriert: 09. November 2010
Beiträge: 281

Re: Template-Switching-Probleme mit dem content-TAG

Dass ich nur content-Variablen im GCB aufrufen kann, war mir eigentlich klar, der obige fehlerhafte Aufruf war ein Verzeiflungs-Test, was eigentlich im Backend passiert, wenn ich content ohne block und pur einsetze.
Mit der Verwendung des primären content-Tags außerhalb des Template-Switchs (wollte ich sowieso) verschwindet nun zwar das Problem, keine Editoren-Anzeige im Backend zu haben. So weit so gut.

Allerdings, da ich ja alle sekundären Inhaltsblöcke im Kopf des Templates Variablen zuweise, die ich dann in den einzelnen GCB wieder aufrufe, werden im Backend weiterhin alle zusätzlichen Inhaltsblöcke angezeigt, nicht nur die jeweils relevanten. Das verwirrt den Benutzer. Wie kann ich die jeweils »falschen« ausfiltern?

Offline

#4 08. Juni 2011 19:32

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

Re: Template-Switching-Probleme mit dem content-TAG

Kurz: Das geht eigentlich garnicht. D.h. jedenfalls nicht mit nur einem einzigen Template.

Ich hätte eine Idee wie man es mit AdvancedContent realisieren könnte, aber dazu müsste ich am Modul ein paar Änderungen vornehmen. Mit dem Parameter active=false kann man Blöcke komplett "verschwinden" lassen. D.h. sie werden weder im Backend noch im Frontend berücksichtigt. Ich hatte bisher noch keine Verwendung für diesen Parameter und fand ihn so unnütz, dass ich ihn eigentlich rausnehmen wollte. Aber jetzt scheint er sich doch noch bewähren zu können.

Momentan hat der Parameter smarty=true noch keine Auswirkungen auf den Parameter active, lässt sich aber leicht ändern. Wenn man also den Parameter active von der Ausgabe eines Plugins o.ä. abhängig macht, dann wäre er mal false, mal true, je nachdem was das Plugin zurückgibt. Und das bedeutet, dass er im Frontend immer zu sehen wäre (weil Smarty in den Parameterwerten im Frontend nicht verarbeitet wird) aber im Backend nur unter bestimmten Bedingungen.

Das Hauptproblem ist hierbei allerdings immer noch, dass man bei Seiten, die gerade erst erstellt werden, nicht feststellen kann, welches die übergeordneten Seiten sind bzw. in welcher Hierarchie sie sich befinden, welches Template benutzt wird oder welches Alias sie haben.

Das Problem mit der übergeordneten Seiten bzw. Hierarchie könnte man so lösen, dass, sobald eine übergeordnete Seite ausgewählt wurde, die Seite im Backend neu geladen wird (wie bei der Template-Auswahl).

Alles andere würde nur dann funktionieren, wenn, bevor eine übergeordnete Seite oder ein Template ausgewählt wurde, bereits ein Alias von Hand eingetragen wurde. Aber ich denke das wäre für einen unbedarften Editor auch wieder zu kompliziert, oder?


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#5 09. Juni 2011 01:13

COR9
Server-Pate
Ort: Dresden
Registriert: 09. November 2010
Beiträge: 281

Re: Template-Switching-Probleme mit dem content-TAG

Ich denke, das Umschalten auf ein anderes Template wird dem unbedarften Editor leichter fallen. Zumal meine Teillösung momentan nicht nur verwirrend für ihn ist, sondern auch ziemlich Geschwindigkeit kostet, bsonders beim Seitenaufbau im Backend. Das passende, eindeutig bezeichnete Template auszuwählen, ist dem Nutzer zumutbar.
Trotzdem danke für die ausführliche Antwort, NaN.

Offline