Sie befinden sich hier: start » de » tips_and_tricks

Tipps und Tricks

Hier finden Sie einige Tipps und Tricks wie sie CMSimple_XH anpassen können.

Einige weitere Tipps und Tricks sind im CMSimple wiki aufgeführt. Bitte beachten Sie, dass diese Tipps und Tricks nicht notwendigerweise die Qualitätsstandards von CMSimple_XH erfüllen, und dass sie sogar inkompatibel zu CMSimple_XH sein könnten.

Eingangs-Seite

Manchmal möchte man eine Eingangs-Seite haben, die durch direkten Aufruf der Domain erreichbar ist, aber nicht im Navigationsmenü angezeigt werden soll. Die Lösung ist einfach: erzeugen Sie einfach eine Seite der obersten Ebene als erste Seite der CMSimple_XH-Installation und verstecken Sie sie.

Eigene 404 Fehler-Seite

Wenn jemand zu einer Seite navigiert, die es nicht gibt, sendet CMSimple_XH den HTTP-Response-Code 404 und zeigt eine entsprechende Meldung an. Seit CMSimple_XH 1.5 ist es einfach Ihre eigene Fehlerseite anzuzeigen: erstellen Sie einfach eine versteckte Seite auf oberster Ebene mit der Überschrift „404“ und dem gewünschten Inhalt. Dann definieren Sie die folgende Funktion in userfuncs.php:

function custom_404()
{
    header('Location: ?404');
    exit;
}

Wie eine eigene 404 Fehler-Seite mit älteren Versionen von CMSimple_XH implementiert werden kann, ist im CMSimple Forum beschrieben.

Template-Anpassung

Mit CMSimple_XH ist es möglich ein unterschiedliches Template für individuelle Seiten Ihrer Website auszuwählen. Also ist es immer möglich das Template zu duplizieren, und im „Seiten“-Reiter das gewünschte auszuwählen.

FIXME Sprachspezifische Templates erwähnen.

Allerdings können verschiedene Anwendungsfälle durch Ausnutzen des gesamten Leistungsvermögens des CMSimple_XH-Frameworks ohne eine Kopie des Templates behandelt werden, indem Sie kleinere Anpassungen am Template vornehmen. Einige Beispiele nützlicher Techniken werden im folgenden gezeigt.

Newsbox nur auf der Startseite

Um eine Newsbox nur auf der Startseite anzuzeigen, kann man folgende Änderung am Template vornehmen:

<?php if ($s === 0): ?>
    <?php echo newsbox();?>
<?php endif ?>

Dies ist nur ein Beispiel. Sie müssen es an Ihr Template anpassen, d.h. Sie müssen die eingerückte Zeile um alles, das ausgeschlossen werden soll, erweitern, z.B. <div>s, die die Newsbox zu Layout-Zwecken umgeben. Passen Sie auf, dass die eingerückte Zeile ein vollständiges (X)HTML-Element enthält, und nicht nur einen Teil davon.

Sprachspezifische Templates

Wenn Sie Ihr Template für verschiedene Sprachen anpassen wollen, können Sie dafür die CMSimple_XH-Variable $sl verwenden. Diese enthält die aktuelle Sprache, z.B. „en“, „de“ oder „dk“. Sie können eine Variante der in Newsbox nur auf der Startseite erwähnten Technik verwenden:

<?php if ($sl == 'en'):?>
    <p>Welcome</p>
<?php elseif ($sl == 'de'):?>
    <p>Willkommen</p>
<?php elseif ($sl == 'fr'):?>
    <p>Bienvenue</p>
<?php endif;?>

Bitte beachten Sie, dass just dieser Effekt leichter erzielt werden kann, indem die „template texts“ in der Subsite-Konfiguration genutzt werden:

<?php echo $txc['template']['text1'];?>

Manchmal ist es möglich eine alternative Technik zu verwenden. Wenn Sie z.B. ein sprachspezifisches Header-Bild einbinden wollen, können Sie schreiben:

<?php echo tag('img src="'.$pth['folder']['template'].'images/header-'.$sl.'.jpg" alt="..."')?>

Dies zeigt header-en.jpg für den englischen und header-de.jpg für den deutschen Teil der Website. Die Bilddateien sollten im image/ Unterordner Ihres Templates hinterlegt sein.

FIXME Erklären wie man bei mehrsprachigen Websites verlinkt und Bilder etc. referenziert. Erklären wie man in die selbe Sprache einer anderen Installation verlinken kann.

Eigenes Stylesheet für jede Seite

Um ein eigenes Stylesheet für jede einzelne Seite zu verwenden, können Sie die folgende Anpassung an Ihrem Template vornehmen. Fügen Sie den Code unmittelbar oberhalb des </head> Tags ein.

<?php echo tag('link rel="stylesheet" type="text/css" href="'.$pth['folder']['template'].$sl.'-'.$su.'.css"')."\n"; ?>

Auf diese Weise wird ein zusätzliches Stylesheet für die Seite eingebunden. Diese Stylesheets müssen im Templateordner als LANG-HEADING.css (z.B. en-Start.css) gespeichert sein. Sie müssen keine leeren Stylesheets für Seiten anlegen, die kein zusätzliches Styling benötigen. Achten Sie bei dieser Technik darauf, dass Sie keine Sonderzeichen in den Seitenüberschriften verwenden.

Eine Newsbox vollständig ausblenden

Wenn Sie eine Newsbox vorübergehend ausblenden wollen, können Sie einfach ihren Status auf unveröffentlicht ändern. Aber manchmal wird die Newsbox innerhalb eines div Elements mit zusätzlichem Styling (z.B. background, border) angezeigt, und dieses bleibt auf der Seite sichtbar. Um die Newsbox vollständig auszublenden, können Sie Ihr Template ändern (nur die erste und letzte Zeile muss ergänzt werden):

<?php if (isPublished('News01')):?>
<div class="newsbox">
  <?php echo newsbox('News01');?>
</div>
<?php endif;?>

Die Funktion isPublished() muss mit dem gleichen Parameter wie newsbox() aufgerufen werden. Da isPublished() in CMSimple_XH nicht zur Verfügung steht, müssen Sie es zu userfuncs.php hinzufügen:

function isPublished($heading)
{
    global $h, $pd_router;
 
    $i = array_search($heading, $h);
    if ($i !== false) {
        $pd = $pd_router->find_page($i);
        if (function_exists('Pageparams_isPublished')) {
            return Pageparams_isPublished($pd);
        } else {
            return $pd['published'] == '1';
        }
    } else {
        return false;
    }
}

Seitenspezifische Header-Bilder

Wenn Sie individuelle Header-Bilder für jede Seite anzeigen wollen, können Sie so genannte „Template Variablen“ verwenden. Die Grundidee ist, dass Sie ein Variable anstatt eines fest codierten Wertes im Template verwenden, und dass Sie diesen Wert auf jeder Seite mit CMSimple Skripting setzen. Fangen wir mit einem vereinfachten Beispiel an. Angenommen Sie haben in template.htm:

<img src="./images/header.jpg">

Um es variabel zu machen, ändern Sie es in:

<img src="./images/header<?php echo $headerImage;?>.jpg">

Hiermit wird das selbe Header-Bild auf jeder Seite angezeigt. Auf Seiten, auf denen Sie ein anderes Header-Bild anzeigen möchten, schreiben Sie einfach in den Seiteninhalt:

#CMSimple $headerImage='kontakt';#

Damit wird das Bild „header-kontakt.jpg“ auf dieser Seite angezeigt. Natürlich muss dieses Bild noch in den gleichen Ordner wie das allgemeine header.jpg hoch geladen werden. Beachten Sie, dass der Wert „kontakt“ in obigem Code nichts mit der Seitenüberschrift zu tun hat; es ist einfach nur die Endung des Dateinamens.

Nun zu einem richtigen Beispiel. In template.htm:

<?php if (empty($headerImage)) {$headerImage = 'header.jpg';}?>
<?php if (empty($headerAlt)) {$headerAlt = 'ein alt text für das Standard-Header-Bild';}?>
<?php echo tag('img src="' . $pth['folder']['templateimages'] . $headerImage . '" alt="' . $headerAlt . '"');?>

Auf der Seite:

#CMSimple $headerImage = 'header-der-ueber-uns-seite.jpg'; $headerAlt = 'ein alt text für eben dieses Header-Bild';#

Auf diese Weise können sie beliebige Dateinamen (sogar unterschiedliche Grafikformate) auf verschiedenen Seiten wählen, und Sie können einen individuellen „alt“ text für das Bild angeben. Beachten Sie, dass die Bilder im Unterordner images/ des Templateordners vorliegen müssen.

Zur leichteren Auswahl der seitenspezifischen Bilder können Sie das Morepagedata_XH Plugin verwenden.

 
Sie befinden sich hier: start » de » tips_and_tricks
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: GNU Free Documentation License 1.3
Valid XHTML 1.0 Valid CSS Driven by DokuWiki