2012-03-28 13 views
0

Meine Drupal 6-Installation hat den PHP-Filter deaktiviert, so dass ich <?php ... ?> im Knoten selbst nicht verwenden kann.Ausführen von PHP-Code auf bestimmten Drupal-Knoten

Ich habe einen Fall, wo ich ein wenig PHP-Code auf einer kleinen Anzahl von Seiten ausführen muss. Gibt es einen Weg in Drupal 6, ein Modul zu erstellen, das einem URL-Muster entspricht und dann vor dem Anzeigen der Seite eine Funktion ausführt?

Insbesondere auf ein paar Seiten muss ich einige Daten verarbeiten und dann einen HTTP-Header senden. Ich weiß, dass ich eine benutzerdefinierte .tpl-Datei für diese Seiten erstellen kann, aber eine solche Anwendungslogik in eine .tpl-Datei zu stecken, fühlt sich an wie ein Hack.

Antwort

1

Wenn Sie dies speziell für Knotenseiten tun möchten, sollten Sie besser hook_nodeapi() implementieren. Dies würde bedeuten, Sie müssen keine Übereinstimmung ausführen basierend auf der URL und Sie können Ihre Header in der die meisten ‚strukturierten‘ Art und Weise möglich hinzuzufügen:

function MYMODULE_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { 
    if ($op == 'view') { 
    drupal_set_header('some header'); 
    } 
} 

Wenn Sie es Seiten für Nicht-Knoten tun müssen, dann Sie hook_init() stattdessen implementieren möchten:

function MYMODULE_init() { 
    if ($_GET['q'] == 'node/1') { // or whatever path 
    drupal_set_header('some header'); 
    } 
} 

Sowohl der Haken werden aufgerufen, lange bevor die Header an den Client gesendet werden, so arbeiten oder so.

+0

Hey Clive, vielen Dank für Ihre Antwort. Ich werde es versuchen und eine Notiz darüber machen, wie es funktioniert. – newz2000

Verwandte Themen