Theme

Aus PHP-Fusion Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

[Bearbeiten] Allgemeines über das Fusion Templatesystem

PHP-Fusion verwendet für die Darstellung des Auftritts ein Template-System. Ein Template-System ist vergleichbar mit einer zweischichtigen Architektur mit dem Unterscheid, dass es hier keine Fat- und Thin-Clients gibt sondern eine Content-Schicht und eine Layout-Schicht. Durch das Template-System ist es möglich, jedem Anwender ein anderes Layout zu geben, ohne das sich der Content ändert. Somit wäre es also durchaus möglich, für seh- oder hörbehinderte User ein Layout zu gestalten, daß dieser Usergruppe auch gerecht wird. Siehe dazu auch Barrierefreies Internet. Der User selber kann in seinen Profil-Einstellungen ein anderes Layout auswählen, sofern andere Layouts durch den Administrator freigeschaltet sind.

[Bearbeiten] Download

Es gibt diverse PHP-Fusion-Seiten, die sich mit dem Thema Themes auseinandersetzen und Themes anbieten. Eine Auswahl findest Du hier.

[Bearbeiten] Installation

Themes werden auf dem Server in den ordner theme gespeichert. Dieser Ordner wird in den Profileinstellungen eines Users ausgelesen und ihm als Auswahlliste angeboten!!!

[Bearbeiten] Inhalt des Theme Ordner

Normalerweise gibt es in dem Theme-Ordner 3 Dateien:

Neben diesen kann es aber auch weitere Dateien geben, so z.B. JavaScript-Dateien.

[Bearbeiten] Programmierung

[Bearbeiten] theme.php

In der theme.php sind einige Funktionen hinterlegt, mit deren Hilfe bestimmte Elemente von Panels und Boxen vordefiniert sind. Diese Funktionen sind in jeder Theme zu finden. Zusätzlich gibt es Themes, die in der themep.php das Seitenlayout bzgl. der Größe definieren.

[Bearbeiten] Theme Einstellungen

$body_text
generelle Schriftfarbe
$body_bg
generelle Hintergrundfarbe
$theme_width
Gesamtbreite des Themes
$theme_width_l/$theme_width_r
Breite der linken und rechten Seitenpanels


[Bearbeiten] Theme Funktionen

render_header($header_content)
der Kopfteil eines Themes darstellen, Aufruf aus der subheader.php heraus. $header_content ist dabei meistens eine URL zu einem Banner
render_footer()
der Fußteil eines Themes darstellen, Aufruf aus der footer.php heraus
render_news($subject, $news, $info)
eine News darstellen, Aufruf aus der news.php heraus. $subject ist die Überschrift, $news der Inhalt, $info beinhaltet Informationen wie Autor etc.
render_article($subject, $article, $info)
einen Artikel darstellen, Aufruf aus der readarticle.php heraus. $subject ist die Überschrift, $article der Inhalt, $info beinhaltet Informationen wie Autor etc.
opentable($title)
eine Tabelle öffnen. $title wird im Kopfteil der Tabelle angezeigt. Siehe auch Panel
closetable()
eine Tabelle schliessen
openside($title)
eine Tabelle im Seitenpanbel öffnen. $title wird im Kopfteil der Tabelle angezeigt. Siehe auch Panel
closeside()
eine Tabelle im Seitenpanel schliessen
opensidex($title, $state="on")
entspricht openside() mit dem Zusatz, daß definiert werden kann, ob das Seitenpanel aufgeklappt ist oder nicht (Standard "ja"). Siehe auch Klapp-Panels
closesidex()
eine mit opensidex() geöffnete Tabelle schliessen
tablebreak()
einen Leerraum einfügen, wird sowohl in den Seitenpanels als auch in der Mitte verwendet

[Bearbeiten] style.css

PHP-Fusion setzt auf bestimmte Standard-CSS-Klassen in den Themes. Weitere CSS-Klassen können durch den Designer definiert werden, die hier aufgelisteten sollten jedoch mindestens enthalten sein. Wie CSS-Klassen zu definieren sind, wird hier nicht erläutert, auch nicht wie man CSS schreibt. Dafür gibt es die Dokumentationen CSS4You und SelfHTML. Grundlage ist das bei der Installation mitgelieferte Theme Similitude.

a
generelle Link-Definition
a:hover
generelle Link-Definition, wenn der Mauszeiger auf einem Link liegt
a.side
Link-Definition in den Seiten-Panels
a.side:hover
Link-Definition in den Seiten-Panels, wenn der Mauszeiger auf einem Link liegt
a.white
Link-Definition im white-header-Bereich
a.white:hover
Link-Definition im white-header-Bereich, wenn der Mauszeiger auf einem Link liegt
body
Definition für den body-Tag, gilt für alle weiteren Elemente, wenn nicht anders defiiniert
form
Definition für Formulare
hr
generelle Definition für horizontale Linien
hr.side-hr
Definition für horizontale Linien in den Seite-Panels
td
generelle Definition für Tabellenspalten
pre
generelle Definition für präformatierten Text
.alt
Definition für Text, der stellenweise in der Administration auftaucht
.white-header
Definition für die horizontale Navigationsleiste
.full-header
Definition für den Banner-Bereich
.footer
Definition für den Fußteil
.button
Definition für Push-Buttons
.textbox
Definition für Text-Eingabefelder
.main-body
Definition für Panels/Boxen in der Mitte
.side-body
Definition für Panels in den Seiten
.main-bg
Definition des Hintergrundes in der Mitte, eingegrenzt durch den Banner- und Fußbereich sowie den Seitenpanels
.border
Definition für den Rand der mittleren Panels/Boxen
.side-border-left/side-border-right
Definition für den Rand der Seitenpanels
.news-footer
Definition für den Fußteil von News und Artikeln
.capmain
Definition für den Kopfbereich von News, Artikeln und mittleren Panels/Boxen
.scapmain
Definition für den Kopfbereich von Seitenpanels
.tbl-border
Definition des Randbereichs von Tabellen im Forum
.tbl
Definition von Zeilen im Forum
.tbl1
Definition von Zeilen im Forum, in denen Content steht
.tbl2
Definition von (Kopf-)Zeilen im Forum, in denen (meistens) der Titel steht
.forum-caption
Definition von KAtegorienamen im Forum
.quote
Definition für ein Zitat im Forum
.poll
Definition für den Umfragebalken
.comment-name
Definition des Namens eines Gastes bei Kommentaren
.shoutboxname
Definition des Namens eines Gastes in der Shoutbox
.shoutbox
Definition des Textes in der Shoutbox
.shoutboxdate
Definition des Zeitstempels eines Shouts
.small/.small2
Definition von (kleinem) Text im mittleren Bereich
.side-small
Definition von (kleinem) Text in den Seitenpanels
.side-label
Definition für Kategorie-Zeilen im Seitenpanel "Navigation"
.gallery
Definition für die Photo-Galerie
.gallery img
Definition für Bilder in der Galerie
img.activegallery
Definition für Bilder einer Galerie, die gerade betrachtet wird

[Bearbeiten] Häufige Fehler im Umgang mit Themes

[Bearbeiten] Copyright entfernt

Immer wieder verschwindet das PHP-Fusion Copyright aus den Footern so mancher Homepage, was ja auch nicht unbedingt verboten ist. Wenn ein Administrator, auf dessen Homepage der Vermerk auf unerklärliche Weise und natürlich ohne Absicht verschwunden ist, dann aber Hilfe im Support Forum möchte, bekommt er von vielen Supportern und Community Mitgliedern keine Unterstützung.

Für die jenigen, die ihre Homepage wieder komplettieren wollen, hier die Rückgängig-Prozedur:

  1. die Datei themes/benutzte_theme/theme.php öffnen
  2. Die Funktion render_footer suchen
  3. An geeigneter Stelle das hier einfügen:
if (!$license) { echo showcopyright("white")."<br><br>\n"; }

Bei dem Theme Similitude zum Beispiel, sieht das anschließend so aus:

function render_footer($license=false) {
 
global $theme_width,$settings;
 
echo "</tr>\n</table>\n";
echo "<table cellpadding='0' cellspacing='0' width='100%'>
<tr>
<td align='center' class='footer'>".stripslashes($settings['footer'])."<br>\n";
if (!$license) { echo showcopyright("white")."<br><br>\n"; } echo showcounter()."<br><br>
</td>
</tr>
</table>
</td>
</tr>
</table>\n";
 
}

Sollte der Einbau nicht funktionieren, frag im Support Forum nach! Da werden dir sicherlich einige helfen.

[Bearbeiten] Theme kann nicht geladen werden

Typische Fehlermeldung

Warning: main(themes/geloeschte_theme/theme.php) [function.main]: failed to open stream: No such file or directory in /home/web1/htdocs/subheader.php on line 14

Fatal error: main() [function.require]: Failed opening required 'themes/geloeschte_theme/theme.php' (include_path='.:') in /home/web1/htdocs/subheader.php on line 14

Ursache

  • Wenn du in den Haupteinstellungen oder im Profil ein Theme auswählst und dieses später von deinem Webspace löschst
  • Wenn sich im Ordner themes/ ein anderer Ordner befindet der kein Theme ist und du diesen in den Haupteinstellungen oder im Profil ausgewählt hast

Fehlerbehebung

  • Wenn das Theme nur gelöscht wurde, dies wieder hochladen oder
  • ein anderes Theme hochladen und anschließen so umbenennen wie das gelöschte oder
  • mittels PHPMyAdmin (oder eines anderen Datenbank Frontends) in der Tabelle fusion_settings den Wert für theme auf den Namen eines Themes ändern, das sich im themes/ Ordner befindet sowie in der Tabelle fusion_users in der Spalte user_theme den Wert auf Default ändern (Default bedeutet, das er die Einstellung aus der fusion_settings Tabelle nehmen soll).