MyXoops Forum

Forum - myXOOPS German Support

1 + 3 = ?  
Geben Sie das Ergebnis der Berechnung ein
Sie haben max. 10 Versuche.
 
* = Erforderlich

Automatische Generierung von Kategorie-Templates

Betreff: Automatische Generierung von Kategorie-Templates
von Gast am 11.03.2004 00:32:03

Den Hack den ich geschrieben habe, ist WAHRSCHEINLICH eher lachhaft für die PHP-Gurus unter euch.

Der Ansatz: Ich fand das Template-System von Xoops nicht zufriedenstellend. Schön wäre es wenn unterschiedliche Kategorien auch unterschiedliche Templates haben könnten.

Die Idee ist folgende: Die Kategorien des Moduls werden aus der Datenbank ausgelesen und entsprechende Templates im Templates-Verzeichnis erstellt. Als Dummy muss das Original-Template herhalten dem der Kategorie-ID entsprechend die ID an den Namen gehängt wird.

Und so sieht das Ganze aus. Die Datei news/xoops_version.php in einem Editor öffnen und nach dem templates-Bereich folgenden Code einfügen:

global $xoopsDB;
$i 5;

$result $xoopsDB->query("SELECT topic_id FROM ".$xoopsDB->prefix("topics")."");

 while (list(
$topic_id) = $xoopsDB->fetchRow($result)) {
$modversion['templates'][$i]['file'] = 'news_article'.$topic_id.'.html';
$modversion['templates'][$i]['description'] = 'Kat-ID '.$topic_id;
$quelle XOOPS_ROOT_PATH.'/modules/news/templates/news_article.html';
$ziel XOOPS_ROOT_PATH.'/modules/news/templates/news_article'.$topic_id.'.html';
$verz XOOPS_ROOT_PATH.'/modules/news/templates';

if ( !
file_exists(XOOPS_ROOT_PATH.'/modules/news/templates/news_article'.$topic_id.'.html') ) {
        
@
chmod($verz0777);
copy($quelle$ziel);
@
chmod($verz0644); 
}
$i++;
}


Die Datei news/article.php in einem Editor öffnen und folgende Zeile löschen

$xoopsOption['template_main'] ='news_article.html';


und folgende Zeile vor dem include der footer.php einfügen

$xoopsOption['template_main'] = 'news_article'.$article->topicid().'.html';


Und so funktioniert es. In die Moduladministration gehen und das Modul aktualisieren. Danach in den Templates-Manager gehen und von Hand die Templates generieren.

Ein paar Schönheitsfehler hat der Hack allerdings.

- Wenn das Modul neu installiert wird, lässt sich das erste kopierte Template nicht generieren. Erst wenn eine zweite Kategorie angelegt und das Modul aktualisiert wird können beide Templates generiert werden.

- Dass der Code in article.php so weit nach unten wandert, gefällt mir nicht, aber ich weiß nicht wie ich das umgehen soll.

- Da ich keine Linux-Server habe kann ich die chmod-Funktionalität nicht testen. Ansonsten muss das templates-Verzeichnis von Hand mit chmod 777 versehen werden.

Über Antworten zu diesen Problemen würde ich mich sehr freuen. Viel Spaß beim Testen und wie immer übernehme ich keine Gewähr für den Quatsch, den ich hier verzapft habe.

Aktuell aus dem Forum

Forum Thema Antworten Views Letzter Beitrag
Modulentwicklung New Xoops Xcreate Module 0 5314 26.11.2025 15:22
efkan Gehe zum letzten Beitrag
Modulentwicklung XOOPS Custom Field Module 1 1808 24.11.2025 11:21
Goffy Gehe zum letzten Beitrag