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.

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>

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";
?>

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->config['theme_url'?>css/wacko.css" />
<link rel="shortcut icon" href="<?php echo $this->config['theme_url'?>icons/wacko.ico" type="image/x-icon" />
<link rel="alternate" type="application/rss+xml" title="RecentChanges in RSS" href="<?php echo $this->config['root_url");?>xml/recentchanges_<?php echo preg_replace("/[^a-zA-Z0-9]/", "", strtolower($this->config['wacko_name']));?>.xml" />

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->config['root_url'];?>js/default.js"></script>
  <script src="<?php echo $this->config['root_url'];?>js/protoedit.js"></script>
  <script src="<?php echo $this->config['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'] == "Y") {?>
  <script>
   var edit = "<?php echo $this->href('edit');?>";
  </script>
<?php }
?>

Achtung: Ab WikiEdit 3.0 muss dieser Abschnitt angepasst werden.

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."');";?>">

Wacko Name

Hiermit wird dir der Name deines Wacko angezeigt.



<?php echo $this->config['wacko_name'?>

Pfad zur aktuellen Seite

Mit dieser Zeile fügt Wacko den Weg zu der aktuell angezeigten Seite an.



<?php echo $this->get_page_path(); ?>

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->get_translation('SearchTitleHelp')?>
     href="<?php echo $this->config['base_url'].$this->get_translation('TextSearchPage').($this->config['rewrite_mode'] ? "?" "&");?>phrase=<?php echo urlencode($this->get_page_tag()); ?>">...</a>

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->get_translation('EditTip')."\">".$this->get_translation('EditText')."</a>\n" ""?>

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->get_translation('RevisionTip')."\">".$this->get_page_time()."</a>\n" ""?>

Wackoversion

Über diesen Code wird die aktuell verwendete Version ausgegeben.



<?php
echo $this->get_wacko_version();
?>

Credits

Der entsprechende Hinweis, der auf jeder Seite zu finden sein sollte!



<?php 
if ($this->get_user()){
    echo 
$this->get_translation('PoweredBy')." ".$this->link('WackoWiki:WackoWiki''''WackoWiki');
}
?>

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->get_translation('TextSearchPage'), 'get');
echo 
$this->get_translation('SearchText'?><input type="text" name="phrase" size="15" />
<?php 
// Search form close
echo $this->form_close(); 
?>

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->config['theme_url']."icons/1unvisibl.gif\" title=\"".$this->get_translation('RemoveWatch')."\" alt=\"".$this->get_translation('RemoveWatch')."\"  align=\"middle\" border=\"0\" /></a>" "<a href=\"".$this->href('watch')."\"><img src=\"".$this->config['theme_url']."icons/visibl.gif\" title=\"".$this->get_translation("SetWatch")."\" alt=\"".$this->get_translation("SetWatch")."\"  align=\"middle\" border=\"0\" /></a>" 
?>

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->config['theme_url']."icons/print.svg\" title=\"".$this->get_translation('PrintVersion')."\" alt=\"".$this->get_translation('PrintVersion')."\" /></a>";
?>

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->get_translation('EditACLConfirm')."');\"":"").">".$this->get_translation('SettingsText')."</a>");
?>

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>";
?>

Seitenzusätze

Blankoform


Beschreibung



<?php echo"Hier den Code einfügen"?>

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. ;)

Verknüpfungen / Links

Aufgaben

  1. Einheitliches Layout erstellen
  2. Wichtige Funktionen auflisten
  3. Beispiele für Funktionen