Codefragmente
zum Einfügen in deine eigenen header.php oder footer.php Die auf den folgenden Seiten beschriebenen PHP-Fragmente erzeugen auf den Seiten eures Wacko-Layouts die verschiedenen Elemente wie Links, Grafiken oder zum Beispiel das Feld für die Suche. Es ist wichtig, solange du keine Erfahrung mit PHP hast, den kompletten Code zu kopieren und in dein Layout einzufügen. |
1. Titel
Dieser Code erstellt den Text für die Titelleiste des Browsers und muss im <head> Tag stehen.
<title><?php
// echoes title of the page.
echo $this->get_wacko_name() . " : " . $this->add_spaces($this->get_page_tag()) . ($this->method != "show" ? " (" . $this->method . ")" : "");
?></title>
2. Suchmaschinen Blocker
Mit diesem Code wird verhindert, dass Suchmaschinen allen Links der Seite folgen. Wird jedoch nicht mehr von allen Suchmaschinenrobots auch umgesetzt.
Dieser Code muss in den head Bereich.
<?php
// we don't need search robots to index subordinate pages
if ($this->get_method() != 'show' || $this->page['latest'] == 1)
echo '<meta name="robots" content="noindex, nofollow" />' . "\n";
?>
3. Weitere Meta Angaben
Diese Meta Angaben gehören alle in den Header und sollten einfach übernommen werden. Sie sorgen u.a. dafür, dass jeder Seite (die unter Einstellungen angegebenen Keywords) auch in die Seite geschrieben werden. Weiter wird hier unter anderem der Name der CSS Datei definiert. Falls du deine eigene CSS Datei mit einem anderen Namen gespeichert hast, musst du diesen Teil umbenennen.
<meta name="keywords" content="<?php echo $this->get_keywords(); ?>" />
<meta name="description" content="<?php echo $this->get_description(); ?>" />
<meta http-equiv="content-type" content="text/html; charset=<?php echo $this->get_charset(); ?>" />
<link rel="stylesheet" href="<?php echo $this->db->theme_url ?>css/wacko.css" />
<link rel="shortcut icon" href="<?php echo $this->db->theme_url ?>icons/wacko.ico" type="image/x-icon" />
<link rel="alternate" type="application/rss+xml" title="RecentChanges in RSS" href="<?php echo $this->db->root_url;?>xml/recentchanges_<?php echo preg_replace("/[^a-zA-Z0-9]/", "", strtolower($this->config['wacko_name']));?>.xml" />
4. JavaScript einfügen
Mit diesen Zeilen werden die für den Editor benötigten Funktionen geladen. Diese sorgen u.a. dafür, dass man die Formatierungsschaltflächen nutzen kann.
<?php
// Wacko can show message (by javascript)
$message = $this->get_message();
// Three JS files.
// default.js contains common procedures and should be included everywhere
// protoedit & wikiedit.js contain classes for WikiEdit editor. We may include them only on method==edit pages
?>
<script src="<?php echo $this->db->root_url;?>js/default.js"></script>
<script src="<?php echo $this->db->root_url;?>js/protoedit.js"></script>
<script src="<?php echo $this->db->root_url;?>js/wikiedit.js"></script>
<?php
// doubleclick edit feature.
// enabled only for registered users who don't swith it off.
if ($user = $this->get_user())
if ($user['doubleclickedit'] == 1) {?>
<script>
var edit = "<?php echo $this->href('edit');?>";
</script>
<?php }
?>
Achtung: Ab WikiEdit 3.0 muss dieser Abschnitt angepasst werden.
4.1. Initialisierung
Zum starten der Javascripte ist es notwendig, diese im Body zu initialisieren.
<?php
// all_init() initializes all js features:
// * WikiEdit
// * Doubleclick editing
// Also, here we show message (see beginning of this file)
?>
<body onload="all_init();<?php if ($message) echo "alert('".$message."');";?>">
5. Wacko Name
Hiermit wird dir der Name deines Wacko angezeigt.
<?php echo $this->db->wacko_name; ?>
6. Pfad zur aktuellen Seite
Mit dieser Zeile fügt Wacko den Weg zu der aktuell angezeigten Seite an.
<?php echo $this->get_page_path(); ?>
7. Search Title Help
Erstellt im Default Layout die 3 Punkte am Ende der Seitenadresse. Durch klicken dieses Links wird der Pfad der aktuell geöffneten Seite in die Wacko Suche übergeben.
<a title="<?php echo $this->_t('SearchTitleHelp')?>"
href="<?php echo $this->db->base_url . $this->_t('TextSearchPage') . ($this->db->rewrite_mode ? "?" : "&");?>phrase=<?php echo urlencode($this->get_page_tag()); ?>">...</a>
8. Editieren
Erstellt den Link zum editieren einer Seite. Der Link erscheint nur, wenn der Besucher das Recht hat, die Seite zu bearbeiten.
<?php
// If User has rights to edit page, show Edit link
echo $this->has_access('write') ? "<a href=\"" . $this->href('edit') . "\" accesskey=\"E\" title=\"" . $this->_t('EditTip') . "\">" . $this->_t('EditText') . "</a>\n" : ""; ?>
9. Revisionen
Erstellt den Link für die verschiedenen Revisionen einer Seite.
<?php
// revisions link
echo $this->get_page_time() ? "<a href=\"" . $this->href('revisions') . "\" title=\"" . $this->_t('RevisionTip') . "\">" . $this->get_page_time() . "</a>\n" : ""; ?>
10. Wackoversion
Über diesen Code wird die aktuell verwendete Version ausgegeben.
<?php
echo $this->get_wacko_version();
?>
10.1. Credits
Der entsprechende Hinweis, der auf jeder Seite zu finden sein sollte!
<?php
if ($this->get_user())
{
echo $this->_t('PoweredBy') . " " . $this->link('WackoWiki:WackoWiki', '', 'WackoWiki');
}
?>
11. Suche
Dieser Code erstellt ein Text mit den jeweiligen Wort aus der Sprachdatei für "Suche:" und dahinter ein einzeiliges Textfeld für den zu suchenden Text. Das in HTML benötigte Form Tag wird mit erstellt. Durch Drücken von Return oder Enter wird die Suche abgeschickt.
<?php
// searchbar
echo $this->form_open('', $this->_t('TextSearchPage'), 'get');
echo $this->_t('SearchText') ?><input type="text" name="phrase" size="15" />
<?php
// Search form close
echo $this->form_close();
?>
12. Seite beobachten
Mit diesem Code wird die entsprechende Seite beobachten Funktion erstellt. Der Code erstellt je nach Status das Icon (aus dem Template Ordner) für beobachten oder aus der Beobachtung löschen. weitere Infos
<?php
// Watch/Unwatch icon
echo ($this->is_watched($this->get_user_name(), $this->get_page_tag()) ? "<a href=\"" . $this->href('watch') . "\"><img src=\"" . $this->db->theme_url . "icon/1unvisibl.gif\" title=\"" . $this->_t('RemoveWatch') . "\" alt=\"" . $this->_t('RemoveWatch') . "\" align=\"middle\" border=\"0\" /></a>" : "<a href=\"" . $this->href('watch') . "\"><img src=\"" . $this->db->theme_url . "icon/visibl.gif\" title=\"" . $this->_t('SetWatch') . "\" alt=\"" . $this->_t('SetWatch') . "\" /></a>" )
?>
13. Drucken
Fügt das aus dem Template Order für Drucken abgelegte Icon mit dem entsprechenden Link ein.
<?php
// Print icon
echo "<a href=\"" . $this->href('print') . "\" target=\"_new\"><img src=\"" . $this->db->theme_url . "icon/print.svg\" title=\"" . $this->_t('PrintVersion') . "\" alt=\"" . $this->_t('PrintVersion') . "\" /></a>";
?>
14. Seiten Einstellungen
Erstellt einen Link für die Einstellungen der aktuellen Seite. Hier können verschiedene seitenspezifische Vorgaben bemacht werden.
<?php // Page settings link
print("<a href=\"" . $this->href("settings") . "\"" . (($this->method == 'edit')?" onclick=\"return window.confirm('" . $this->_t('EditACLConfirm') . "');\"":"").">" . $this->_t('SettingsText') . "</a>");
?>
15. Lesezeichen
Erstellt eine Liste mit allen Lesezeichen des Nutzers.
<?php echo $this->format(implode( "\n", $this->get_bookmarks())); ?>
als Liste
<?php
echo "<ul><li>";
// Bookmarks
$BMs = $this->get_bookmarks();
$formatedBMs = $this->format($this->format(implode("| ", $BMs), "wacko"), "post_wacko");
$formatedBMs = str_replace ( "| ", "</li><li>\n", $formatedBMs );
echo $formatedBMs;
echo "</li></ul>";
?>
16. Seitenzusätze
Blankoform
Beschreibung
<?php echo"Hier den Code einfügen"; ?>
17. Diskussion
- TheBone /08.03.2006 15:56/ – CSS sollte hier vom Code getrennt behandelt werden. Daher ist er über Bord gegangen. Für das erstellen einer Seite kann man sich dann selbst im HTML und CSS üben und eine eigene Seite verfassen. :-)
- TheBone /09.03.2006 10:59/ – Sagt mal, kann es sein, dass der PHP Code des default Theme sehr buggy ist? Ich habe mal gelernt, dass ein PHP Befehlt fast immer mit einem ; abzuschliessen ist. In den einzelnen Codeschnipseln ist das aber teilweise nicht der Fall. Mal ist das echo this... ; und mal fehlt es! Absicht?
- RobertVaeth /09.03.2006 16:38/ Wäre es nicht praktischer, alle Beispiele unter die Beschreibung zu setzen. Sieht bischen gestaucht aus, da der Code so in die Breite geht.
- TheBone /09.03.2006 17:58/ Besser? :-) Jetzt sag nicht nein! Wäre ne schei** arbeit das alles wieder auf Tabellen zu machen. ;)
- RobertVaeth /09.03.2006 18:36/ Perfekt so, danke!
- TheBone /09.03.2006 17:58/ Besser? :-) Jetzt sag nicht nein! Wäre ne schei** arbeit das alles wieder auf Tabellen zu machen. ;)
18. Verknüpfungen / Links
Referring pages:
19. Aufgaben
- Einheitliches Layout erstellen
- Wichtige Funktionen auflisten
- Beispiele für Funktionen