User-Logon

Download der aktuellen Versionen.

Benutzer:
Kennwort:

Die letzten beiden Tipps lassen sich kobinieren. D.h. umlaufende Sidebars, die aber für Kontextspalten flexibel sind.

Funktionales:

Jahreszeitenanimation

Download Counter

Download Hitliste

Dateiaustausch Counter

Umlaufende Kontextspalten

Kyrillisch im Titel: Этого слова

Automatischer Fotonachweis

Bewegliche Infoboxen

News integrieren

Kalender mit Feiertagen

Nächste und Letzte Seite

Landingpages merken

Allgemein:

Startseite

§6 TDG Kennzeichnung

Warenkorb

Referenzen und Gästebuch

Kontakt

Mobil A
Mobil D
Office
Fax
+43 (68) 110 622 322
+49 (175) 29 843 83
+49 (89) 820 738-24
+49 (89) 820 738-29

 

Vermeidung von SPAM

Um SPAM zu vermeiden, finden Sie auf der gesamten Site keine e-Mail Adresse. Sie können aber über das Anfrage-Formular, oder die Links für "e-Mail senden" eine e-Mail an e-Consultance senden. Die e-Mail-Adresse wird im Moment des Clicks generiert und ist damit für normale Internet-Scanner derzeit noch nicht ermittelbar.

Wichtige Seiten

Referenzen

Bestellung & Handbuch

Sie sind hier: »  Startseite  »  Funktionales »  Umlaufende Kontextspalten  » Umlaufende Sidebars auf Unterseiten

Umlaufende Sidebars auf Unterseiten


Mit dem "#" als Titel und dem abschließenden Namen in einem Absatz einer Kontextspalte wird die Seite definiert, für die die folgenden Absätze auszugeben sind. Folgt der nächste "#...." Absatz endet die Kontextspalte für die zuletzt definierte Seite.

Die Eingabe "#Seite" gibt dabei aber den Seiteninhalt aus. D.h. alles vor #Seite wird links ausgegeben, alles nach "#Seite" als Titel eines Absatzes wird rechts ausgegeben. Der Text des Absatzes is irrelevant.

D.h. man definiert in der einen verfügbaren Kontextspalte der Hauptseite die Summe aller Absätze aller Unterseiten und der einen Hauptseite und muss dann mit entsprechenden steuernden Absätzen "Titel #" die Ausgabe ggf. unterdrücken.
Note: die Texte in den runden Klammern dienen zur Erläuterung und sind nicht Bestandteil der Absätze.

Beispiel für den Aufbei einer Kontextspalte:

Absatz
      Titel: Titel des Absatzes 1
      text: Text für Hauptseite (Ausgabe linke Spalte)
Absatz
      Titel: Titel des Absatz 2
      Text: Texte für Hauptseite (Ausgabe linke Spalte)
Absatz
      Titel: #
      Text: impressum.php
Absatz
      Titel: Titel für den 1. Absatz der Impressum-Seite
      text: Text des Absatzes (Ausgabe linke Spalte)
Absatz
      Titel: Titel für den 2. Absatz der Impressum-Seite
      text: Text des Absatzes (linke Spalte)
Absatz
      Titel: #Seite
      Text: irrelevant, jetzt wird der Seiteninhalt ausgegeben
Absatz
      Titel: #
      Text: agb.php (Folgende Sidebar-Absätze nur auf Seite AGB ausgeben)
Absatz
      Titel: Titel für den 1. Absatz der AGB-Seite
      Text: Text des Absatzes (rechte Spalte)
Absatz
      Titel: #
      Text: index.php (Absatz für die Hauptseite)
Absatz
      Titel: Titel des Absatz 3
      Text: Texte für Hauptseite (Ausgabe 1. Absatz in rechter Spalte)


Zum Verständnis: is_output beginnt mit "ja" auf Hauptseiten, und mit "nein" für Unterseiten. Die Routine testet auf "#" als Titel. Der Absatz heißt "nur" # und der zu nutzende Seitenname ist im Absatztext zu hinterlegen. Achtung auf Tippfehler!

Durch "index.php" wird die Haupseite identifiziert, da alle Unterseiten einen anderen Namen haben.

<?php
   $seitenname = preg_replace("/^.*\//","",$_SERVER['REQUEST_URI']);
   $seitenmame = $_SERVER['REQUEST_URI'];
   $in_analyse ='nein'; // Dient nur der Analyse, dann 'ja' eingeben
   $seite_ausgegeben='nein';
?>

<cc:if cond="&sidebar.count gt 0">
   <?php
      $is_output='nein';
      if($seitenname=="index.php")
         { $is_output='ja';}
   ?>

   <cc:loop type="sidebar" obj="mysidebar">
      <cc:if cond="&mysidebar.caption='#Seite'">
         </div>
         <div id="content">
            <cc:print value="&page.content.text">
            <php
               $seite_ausgegeben='ja';
            ?>
            <cc:*> Seiten Content Ende </cc:*>
         </div>
         <div id="sidebar">
      <cc:else>
         <cc:if cond="&mysidebar.caption='#'">
            <?php
               $is_output='nein';
               $vorgabeseite='<cc:print value="&mysidebar.text">';
               if($in_analyse=='ja') {
                  echo 'Der Absatz enth&auml;t:"',$vorgabeseite,
                      '"! (das ist inkl. HTML-Code!)<br />';
               }
               $vorgabeseite=substr($vorgabeseite,3,strlen($vorgabeseite)-7);
               if($in_analyse=='ja')
               { echo 'Vergleich mit folgendem Teilstring:"',$vorgabeseite,'"!<br />';
                  echo 'gefundener aktueller Seitenname:"',$seitenname,'"!<br />';}
               if($seitenname==$vorgabeseite)
               {$is_output='ja';
                  if($in_analyse=='ja')
                  {echo 'Das ist ein Treffer. Die Ausgabe beginnt.<br />';}
               }
               else { if($in_analyse=='ja')
                  {echo 'Das ist kein Treffer. Es gibt keine Ausgabe!<br />';}}
            ?>
         <cc:else>
            <?php
               if($is_output=="ja") {
            ?>
            <cc:if cond="&mysidebar.caption">
               <h2><cc:print value="&mysidebar.caption"></h2>
            </cc:if>
            <cc:print value="&mysidebar.text"><br/>
            <?php
               }
            ?>
         </cc:if>
      </cc:if>
   </cc:loop>
   </div><cc:*> Ende der Sidebar </cc:*>
</cc:if><cc:*> If-Ende auf Abfrage gibt es eine Sidebar </cc:*>

</body>
</html> <cc:*> Navigation.Ende </cc:*>

Wenn man genau hingesehen at, findet man noch die Variable "$seite_ausgegeben". Die hilft bei fehlenden Sidebars, oder fehlenden "#Seite" eine Zwangsausgabe der Seite durchzuführen. Der folgende Code muss an das Ende der navigation.ccml.

   </div><cc:*> Ende der Sidebar </cc:*>
</cc:if><cc:*> If-Ende auf Abfrage gibt es eine Sidebar </cc:*>

<php
   if ($seite_ausgegeben=='nein')
      {
      </div>
      <div id="contentfull">
         <cc:print value="&page.content.text">
      </div>
   }
?>

</body>
</html> <cc:*> Navigation.Ende </cc:*>

Hier wird die Seite dann auch mit Contentfull ausgegeben. Was aber immer noch nicht geht, ist das man auch bei Inhalten in der Kontextspalte ein Style Contentfull verwenden kann. Das geht auch noch mit folgender Erweiterung:

<?php
   $seitenname = preg_replace("/^.*\//","",$_SERVER['REQUEST_URI']);
   $seitenmame = $_SERVER['REQUEST_URI'];
   $in_analyse ='nein'; // Dient nur der Analyse, dann 'ja' eingeben
   $seite_ausgegeben='nein';
?>

<cc:if cond="&sidebar.count gt 0">
   <?php
      $is_output='nein';
      if($seitenname=="index.php")
         { $is_output='ja';}
   ?>

   <cc:loop type="sidebar" obj="mysidebar">

      <cc:if cond="&mysidebar.caption='#Seite'">
         </div>
         <div id="content">
            <cc:print value="&page.content.text">
            <php
               $seite_ausgegeben='ja';
            ?>
            <cc:*> Seiten Content Ende </cc:*>
         </div>
         <div id="sidebar">
      <cc:else>   <cc:*>ist nicht #Seite </cc:*>

         <cc:if cond="&mysidebar.caption='#Seitefull'">
            </div>
            <div id="contentfull">
               <cc:print value="&page.content.text">
               <php
                  $seite_ausgegeben='ja';
               ?>
               <cc:*> Seitemkontekt Ausgabe Ende </cc:*>
            </div>
         <cc:else>   <cc:*>ist weder #Seite noch #S.full</cc:*>
         <cc:if cond="&mysidebar.caption='#'">
            <?php
               $is_output='nein';
               $vorgabeseite='<cc:print value="&mysidebar.text">';
               if($in_analyse=='ja') {
                  echo 'Der Absatz enth&auml;t:"',$vorgabeseite,
                     '"! (das ist inkl. HTML-Code!)<br />';
               }
               $vorgabeseite=substr($vorgabeseite,3,strlen($vorgabeseite)-7);
               if($in_analyse=='ja')
               { echo 'Vergleich mit folgendem Teilstring:"',$vorgabeseite,'"!<br />';
                  echo 'gefundener aktueller Seitenname:"',$seitenname,'"!<br />';}
               if($seitenname==$vorgabeseite)
               {$is_output='ja';
                  if($in_analyse=='ja')
                  {echo 'Das ist ein Treffer. Die Ausgabe beginnt.<br />';}
               }
               else { if($in_analyse=='ja')
                  {echo 'Das ist kein Treffer. Es gibt keine Ausgabe!<br />';}}
            ?>
         <cc:else>
            <?php
               if($is_output=="ja") {
            ?>
            <cc:if cond="&mysidebar.caption">
               <h2><cc:print value="&mysidebar.caption"></h2>
            </cc:if>
            <cc:print value="&mysidebar.text"><br/>
            <?php
               }
            ?>
         </cc:if><cc:*> check if Titel=# </cc:*>
      </cc:if>   <cc:*> check if Titel=#Seitefull </cc:*>

      </cc:if>   <cc:*> check if Titel=#Seite </cc:*>

   </cc:loop>
   </div>   <cc:*> Ende der Sidebar </cc:*>
</cc:if>    <cc:*> If-Ende auf Abfrage gibt es eine Sidebar </cc:*>

   </div><cc:*> Ende der Sidebar </cc:*>
</cc:if><cc:*> If-Ende auf Abfrage gibt es eine Sidebar </cc:*>

<php
   if ($seite_ausgegeben=='nein')
      {
      </div>
      <div id="contentfull">
         <cc:print value="&page.content.text">
      </div>
   }
?>

</body>
</html> <cc:*> Navigation.Ende </cc:*>


Die Syntax wird dann verständlicher, wenn man bedenkt, dass CCML während der Seitengenerierung am PC stattfindet, das PHP aber erst am Server im Moment der Seitenausgabe aktiv wird. D.h. PHP ist hier dynamischer und kann besser in Schleifen reagieren, als CCML. Java würde dann bei der Ausgabe auf dem PC interpretiert, so dass man dann flexible Inhalte der Seite userspezifisch ausgeben könnte. Aber Java kommt hier noch nicht vor.

In rot wurde oben der Einschub für ein neues Kriterium markiert. D.h. mit jeder weiteren Verzweigung auf bestimmte Steuerkriterien in einem Absatz-Titel ist diese rote Struktur zu wiederholen. Also vor der oben roten Block ist der obere rote Block einzufügen und nach der unteren roten Zeile ist eine weitere Zeile als Abschluss der IF-Verzweigung einzufügen. Im neu eingefügten roten Block sind dann die neuen Bedingungen und Verhaltensweisen zu hinterlegen:

<?php
   $seitenname = preg_replace("/^.*\//","",$_SERVER['REQUEST_URI']);
   $seitenmame = $_SERVER['REQUEST_URI'];
   $in_analyse ='nein'; // Dient nur der Analyse, dann 'ja' eingeben
   $seite_ausgegeben='nein';
?>

<cc:if cond="&sidebar.count gt 0">
   <?php
      $is_output='nein';
      if($seitenname=="index.php")
         { $is_output='ja';}
   ?>

   <cc:loop type="sidebar" obj="mysidebar">

      <cc:if cond="&mysidebar.caption='#Common">
            <cc:*> Schleife auf Commonpages ausgeben </cc:*>
         <cc:loop type="commonpages" obj="mycommonpage">
            <li><a class="blacklink" href="<cc:print value="&mycommonpage.url">"><cc:print
                  value="&mycommonpage.caption"></a></li>
         </cc:loop>
      <cc:else>   <cc:*>ist nicht #Common </cc:*>

      <cc:if cond="&mysidebar.caption='#Seite'">
         </div>
         <div id="content">
            <cc:print value="&page.content.text">
            <php
               $seite_ausgegeben='ja';
            ?>
            <cc:*> Seiten Content Ende </cc:*>
         </div>
         <div id="sidebar">
      <cc:else>   <cc:*>ist nicht #Seite </cc:*>

         <cc:if cond="&mysidebar.caption='#Seitefull'">
            </div>
            <div id="contentfull">
               <cc:print value="&page.content.text">
               <php
                  $seite_ausgegeben='ja';
               ?>
               <cc:*> Seitemkontekt Ausgabe Ende </cc:*>
            </div>
         <cc:else>   <cc:*>ist weder #Seite noch #S.full</cc:*>
         <cc:if cond="&mysidebar.caption='#'">
            <?php
               $is_output='nein';
               $vorgabeseite='<cc:print value="&mysidebar.text">';
               if($in_analyse=='ja') {
                  echo 'Der Absatz enth&auml;t:"',$vorgabeseite,
                     '"! (das ist inkl. HTML-Code!)<br />';
               }
               $vorgabeseite=substr($vorgabeseite,3,strlen($vorgabeseite)-7);
               if($in_analyse=='ja')
               { echo 'Vergleich mit folgendem Teilstring:"',$vorgabeseite,'"!<br />';
                  echo 'gefundener aktueller Seitenname:"',$seitenname,'"!<br />';}
               if($seitenname==$vorgabeseite)
               {$is_output='ja';
                  if($in_analyse=='ja')
                  {echo 'Das ist ein Treffer. Die Ausgabe beginnt.<br />';}
               }
               else { if($in_analyse=='ja')
                  {echo 'Das ist kein Treffer. Es gibt keine Ausgabe!<br />';}}
            ?>
         <cc:else>
            <?php
               if($is_output=="ja") {
            ?>
            <cc:if cond="&mysidebar.caption">
               <h2><cc:print value="&mysidebar.caption"></h2>
            </cc:if>
            <cc:print value="&mysidebar.text"><br/>
            <?php
               }
            ?>
         </cc:if><cc:*> check if Titel=# </cc:*>
      </cc:if>   <cc:*> check if Titel=#Seitefull </cc:*>

      </cc:if>   <cc:*> check if Titel=#Seite </cc:*>

      </cc:if>   <cc:*> check if Titel=#Common </cc:*>

   </cc:loop>
   </div>   <cc:*> Ende der Sidebar </cc:*>
</cc:if>    <cc:*> If-Ende auf Abfrage gibt es eine Sidebar </cc:*>

   </div><cc:*> Ende der Sidebar </cc:*>
</cc:if><cc:*> If-Ende auf Abfrage gibt es eine Sidebar </cc:*>

<php
   if ($seite_ausgegeben=='nein')
      {
      </div>
      <div id="contentfull">
         <cc:print value="&page.content.text">
      </div>
   }
?>

</body>
</html> <cc:*> Navigation.Ende </cc:*>

Menü ausgeben

Mit dem obigen Code haben wir eine Syntax geschaffen, die die Links auf die Common-Pages, also auf die Unterseiten der Hauptseite, dann ausgibt, wenn ein Absatz in der Kontextspalte mit dem Titel "#Common" auftaucht. Damit läßt sich die Position dieser Common-Pages verändern (dynamisch, je nach Kontextspalte). Man möge aber beachten, dass die Ausgabe nicht davon abhängt, ob die richtige Unterseite aktiv ist. Erscheint "#Common" werden die Links ausgegeben. Die flexible Steuerung der Ausgabe bezieht sich nur auf "normale Absätze" der Kontextspalte. Auch das wäre umbaubar, so dass die Steuerabsätze "#Common", "#Seite" usw. nur dann wirken, wenn auch die Ausgabe auf dieser Unterseite aktiv ist. Also jede Unterseite könnte eine eigene Aufbaustruktur bekommen. Aber das macht ggf. weniger Sinn. Und die, die die Logik nun verstanden haben, könen den Code umbauen, so dass die gewünschten Funktionen entstehen.

zur letzten Seite zurück
Startseite
zur vorherigen Seite
zur vorherigen Seite
zur letzten Seite zurück
Startseite
zum Seitenanfang
zum Textanfang
zum Seitenende
druckbare Seiten
Seite mailen
Add Site to Mr. Wong
Bei LinkARENA bookmarken