drupal 6.9: hook_nodeapi mit $op "alter" - finde keine doku dazu
am 10.02.2009 - 15:12 Uhr in
versuche mich grade in der modul entwicklung fuer drupal 6.9.
angefangen hab ich mit einem ersetz-filter, tut auch soweit.
allerdings wird immer gecached, obgleich der filter bei der op "no cache" TRUE returned,
der cache wird offensichtlich dennoch nur refreshed, wenn ich den node/artikel editiere,
etwas aendere und save. soweit, so gut. also suchte ich einen ausweg und landete bei:
hook_nodeapi mit $op "alter"
siehe http://api.drupal.org/api/function/hook_nodeapi
dort heisst es:
"alter": the $node->content array has been rendered, so the node body or teaser is filtered and now contains HTML. This op should only be used when text substitution, filtering, or other raw text operations are necessary.
leider gibts sonst keinerlei doku dazu. ein return eines string juckt es genauso wenig
wie ein zuweisen eines anderen textes zu $node->content['body']['#value'];
wenn ich bei case 'alter' z.b. mit print einen text ausgeben lasse, wird der auch ausgegeben, d.h. prinzipiell springt er da rein,
nur wie ich vorzugehen habe um z.B. im body des aktuellen nodes ::filterme:: mit
filtered
zu ersetzen ?
vorsicht: in v7 heisst es hook_nodeapi_alter .. ich meine hier aber hook_nodeapi mit der $op "alter"
- Anmelden oder Registrieren um Kommentare zu schreiben

ok, habs hinbekommen, hier
am 10.02.2009 - 15:45 Uhr
ok, habs hinbekommen, hier die loesung, war gar nicht so schwer ;)
function includefilter_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
switch ($op) {
case 'alter':
$node->body = preg_replace('@::myfilter::@', '!!filtered!!', $node->body);
break;
}
}