ich arbeite mich gerade in Redaxo ein und bin bislang erfreut. Nur zum Template-System habe ich schon jetzt eine Frage. Bislang war ich es gewohnt, dass im CMS die Module über Platzhalte rim HTML-Layout eingebunden werden (etwa Contenido, Der Dirigent). Hier sieht es ja etwas anders aus, und deswegen eine kleine Frage. Mal angenommen, ich möchte gerne auf meiner Seite zunächst einen Willkommens-Text haben und darunter eine Artikelliste der letzten fünf News. Soweit ich das System verstehe, würde ich diese Elemente einfach im Rahmen des Anlegens des Startartikels hintereinander einbinden (also einen Block nach dem anderen). Aber: Wie schaffe ich es, das Layout dieser Module so zu ändern, dass ich etwa eine nette Grafik à la "Latest News" oder so über meinem Modul zu stehen habe? Mache ich das im Code des jeweiligen Moduls direkt, in dem ich - als ganz einfaches Beispiel etwas HTML bastele und dann den Modul-Code einbaue? Also etwa so:
Code: Alles auswählen
<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><img src="gfx/head_menue.jpg" width="400" height="134" /></td>
</tr>
<tr>
<td><div class="artikel-index">
<?php
// Start-Kategorie
$root = oocategory::getCategoryById( REX_CATEGORY_ID);
$index = array();
recurse( $root, $index);
// sortieren
ksort( $index);
// ausgabe
$firstChar = '';
$first = true;
foreach ( $index as $name => $article) {
$nextChar = $firstChar != $name{0};
if ( $nextChar) {
if ( $first) {
$first = false;
} else {
echo '
</fieldset>'. "\n";
}
$firstChar = $name{0};
echo '<fieldset>
<legend> '. $firstChar .' </legend>'. "\n";
}
echo ' <a href="'. $article->getUrl() .'" style="margin-left: 5px">'.$article->getName().'</a><br/>'. "\n";
}
echo '
</fieldset>';
function recurse( $cat, &$index)
{
// aktuelle Cat zum Index
if ( $cat->getId() != REX_CATEGORY_ID) {
article2Index( $cat, $index);
}
// alle Artikel zum Index
$articles = $cat->getArticles(true);
if ( is_array( $articles)) {
foreach( $articles as $article) {
if ( $article->getId() != REX_ARTICLE_ID) {
article2Index( $article, $index);
}
}
}
// Alle Childs zum Index
$childs = $cat->getChildren(true);
if ( is_array( $childs)) {
foreach( $childs as $child) {
recurse( $child, $index);
}
}
}
function article2Index( $article, &$index) {
if ( $article == null)
{
return;
}
$name = $article->getName();
$name = strtolower( $name);
// Ä,Ö,Ü ersetzen, damit im Index nicht zuletzt steht!
// Das 2. a damit Wörter mit Umlaut immer ganz vorne stehen
$name = str_replace( array( 'ä', 'ö', 'ü', 'Ä', 'Ö', 'Ü'), array( 'aa', 'ua', 'ua', 'Aa', 'Oa', 'Ua'), $name);
$name = ucwords( $name);
$index[$name] = $article;
}
?>
</div></td>
</tr>
</table>
Liebe Grüße,
Reinhard