Theme
Aus PHP-Fusion Wiki
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:
- die Datei themes/benutzte_theme/theme.php öffnen
- Die Funktion render_footer suchen
- 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).
