MyXoops Forum

Re: Automatische Generierung von Kategorie-Templates [Script-Workshop] - myXOOPS German Support

Gast

Gepostet am:11.03.2004 23:59
Gast
Gast (Show more)
Posts: 0
Since:
#3

Re: Automatische Generierung von Kategorie-Templates

Hier noch ein kleines Update zur xoops_version.php:

// Templates
$modversion['templates'][1]['file'] = 'news_archive.html';
$modversion['templates'][1]['description'] = '';
$modversion['templates'][2]['file'] = 'news_article.html';
$modversion['templates'][2]['description'] = '';
$modversion['templates'][3]['file'] = 'news_index.html';
$modversion['templates'][3]['description'] = '';
$modversion['templates'][4]['file'] = 'news_item.html';
$modversion['templates'][4]['description'] = '';
$modversion['templates'][5]['file'] = 'news_article1.html';
$modversion['templates'][5]['description'] = 'Kat-ID 1';

global 
$xoopsDB;
$i 6;

$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';

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


Leider muss dem templates-Verzeichnis von Hand Schreibrechte gegeben werden.

Der Code für article.php wie im ersten Artikel angegeben ändern.

Nach diesem Beispiel können auch andere Module angepasst werden. Z. B. wfsection, welches nur sehr wenige Templates hat.

Gast

Gepostet am:11.03.2004 10:03
Gast
Gast (Show more)
Posts: 0
Since:
#2

Re: Automatische Generierung von Kategorie-Templates

Zu den chmods: Statt 0644 müsste 0770 geschrieben werden.

EDIT: FALSCH DU DEPP

Advertisement

Gepostet am:0
Advertisement (Show more)
Posts: 0
Since: 0


Hier könnten Sie Ihre Anzeige aufgeben!
Bitte kontaktieren Sie uns, um mehr darüber zu erfahren.

Gast

Gepostet am:11.03.2004 00:32
Gast
Gast (Show more)
Posts: 0
Since:
#1

Automatische Generierung von Kategorie-Templates

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.
Diesen Thread durchsuchen:  1 Anonyme Benutzer

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 1807 24.11.2025 11:21
Goffy Gehe zum letzten Beitrag