PHP-Befehle im Joomla!-Template PDF Drucken E-Mail
Templates > PHP-Anweisungen
Geschrieben am: Mittwoch, 28. November 2007

Frage:
Ich tue mich schwer mit der Thematik PHP-Anweisungen in der "index.php". Hier dazu nun ein paar Fragen.

Frage 1:
Abbildungen werden mit dem entsprechenden PHP-Befehl in Verbindung mit 'echo' ausgegeben. Die externe CSS-Datei wird ebenfalls mit 'echo' eingebunden. Meine Vermutung: Es handelt sich um externe Daten, die nicht in der Datenbank vorliegen. | ... Antwort

Frage 2:
Der MainBody-Teil benötigt kein ‘echo‘ zur Ausgabe, dieser liegt doch in der Datenbank vor, oder? | ... Antwort

Frage 3:
Warum werden aber ‘Meta-Daten‘ ohne, die ‘Breadcrumb‘ mit ‘echo‘ eingebunden; nach meiner Theorie müssten doch beide aus der Datenbank ausgelesen werden, also ohne ‘echo‘ funktionieren? | ... Antwort

Frage 4:
Was hat es mit der ersten PHP-Anweisung in der 'index.php' auf sich? Wozu ist diese Anweisung gut?
<?php
defined( '_VALID_MOS' ) or die( 'Restricted access' );
?>
| ... Antwort

Frage 5:
Was bedeutet ‘$mos‘ ? | ... Antwort

****************************************

Wenn man mit PHP vorher noch nie zu tun hatte, sind die PHP-Anweisungen in der "index.php" sicherlich am Anfang etwas verwirrend. Die PHP-Befehle die man fuer die Erstellung eines Joomla!-Templates benötigt sind immer gleich.



Frage 1: Abbildungen werden mit dem entsprechenden PHP-Befehl in Verbindung mit 'echo' ausgegeben. Die externe CSS-Datei wird ebenfalls mit 'echo' eingebunden. Meine Vermutung: Es handelt sich um externe Daten, die nicht in der Datenbank vorliegen. | ... zur Antwort |

Antwort 1:
Ja, perfekt.  Mit "echo" kann man PHP Pfade oder auch Texte ausgeben lassen. Hier dazu nun ein paar Beispiele:

Beispiel - Ausgabe der Bilder
<img xsrc="<?php echo $mosConfig_live_site;
?>/templates/tiere_dieser_welt/images/logo.jpg" alt="" border="0"/>


Mit der Anweisung <?php echo $mosConfig_live_site; ?> wird die URL der Live-Site ausgelesen. In der Konfigurationsdatei "configuration.php" findet man die Angabe der in der Zeile: $mosConfig_live_site = '....';

Beispiel - Einfügen der CSS-Datei
<link xhref="<?php echo $mosConfig_live_site;
?>/templates/tiere_dieser_welt/css/template_css.css" rel="stylesheet"
type="text/css"/>


Auch hier wird die Live-Site per "echo" ausgelesen.
Alternativ könnte man die Bilder und den Link zur CSS-Datei auch ganz normal wie in statischen Seiten per "relativen oder absoluten" Pfad auslesen. Der Einbau per PHP-Befehl hat den Vorteil, das bei einem Umzug der Site auf eine andere Domain automatisch die richtige "Live-Site" ausgegeben wird.

****************************************

Frage 2: Der MainBody-Teil benötigt kein ‘echo‘ zur Ausgabe, dieser liegt doch in der Datenbank vor, oder?

Antwort 2:
Richtig. Die Inhalte und auch die gesamte Menüstruktur werden in der Datenbank gespeichert. Für den Einbau der Inhalte und Menüs gibt es in Joomla! zwei feststehende Befehle.

1. Menüs und Module einbauen
<?php mosLoadModules('position'); ?>

2. Inhalte einbauen
<?php mosMainBody(); ?>

Die beiden PHP-Anweisungen sind Joomla!-spezifisch. Alternativ könnte man in beiden Befehlen auch die 'echo-Anweisung' mit einbauen. Also, z.B.:
<?php echo mosLoadModules('left'); ?> und <?php echo mosMainBody(); ?>.

Im Hintergrund wird über die beiden Befehle die Verbindung zur Datenbank hergestellt und die Inhalte und Menüs aus der Datenbank an der festgelegten Position im Template eingebaut.

****************************************

Frage 3: Warum werden aber ‘Meta-Daten‘ ohne, die ‘Breadcrumb‘ mit ‘echo‘ eingebunden; nach meiner Theorie müssten doch beide aus der Datenbank ausgelesen werden, also ohne ‘echo‘ funktionieren? 

Antwort 3:
Richtig. Man kann beide Befehle mit oder ohne "echo" einbauen, also entweder so:

Meta-Daten auslesen:
<?php echo mosShowHead(); ?>

Pfad auslesen (Breadcrumbs):
<?php echo mospathway(); ?>
               
oder so:

Meta-Daten auslesen:
<?php mosShowHead(); ?>

Pfad auslesen (Breadcrumbs):
<?php mospathway(); ?>

****************************************

Frage 4: Was hat es mit der ersten PHP-Anweisung in der 'index.php' auf sich? Wozu ist diese Anweisung gut? 

Antwort 4:
Mit der ersten Anweisung:
<?php
defined( '_VALID_MOS' ) or die( 'Restricted access' );
?>

wird der direkte Aufruf des Templates unterdrückt. Wenn man im Browser die URL des Templates direkt aufruft, erhält  man die Fehlermeldung: "Restricted access".

Fehlt die Anweisung im Template, erhält man beim direkten Aufruf des Templates eine Fehlermledung: "Fatal error: Call to undefined function: mosshowhead() ..."

****************************************

Frage 5: Was bedeutet ‘$mos‘ ? 

Antwort 5:
Das ist eine Joomla! spezische Variable die in Core-Dateien von Joomla! verwendet/definiert ist. Über die Variable "$mos..." werden in der Konfigurationsdatei von Joomla!, der "configuration.php",  die Einstellungen der Grundkonfiguration ausgelesen.

 
weiter >

Kurze URL: www.joomla-workshop.de/content/view/398/34
| joomla-workshop.de ist ein projekt von portal 2 | Zum Seitenanfang