Custom filter with hook_filter_info() in Drupal -
i got problem when trying create custom filter hook_filter_info(). have make replacement based on fields of current viewed node. using following code.
return str_replace('%people1%', 'replacing working', $text); in process callback, code works fine, can't current node id (menu_get_item() or arg()). also, have clear cache every time make changes ('cache' => false).
is there need know processing data in process callback?
menu_get_item() , arg() don't return different value when called process callback of input filter; not returning value expecting, because input filter called in different context think.
an input filter called when:
- a node body needs rendered
- a comment body needs rendered
- a entity field using input format needs rendered
- a view created views module using input format render text entered user
- a module using input format render text entered user
even in case input filter used render body of node, there still 2 cases:
- the node rendered alone in page (e.g. http://example.com/node/2)
- the page shows more 1 node (e.g. front page shows list of nodes promoted front page)
a module implementing input filter cannot understand entity called, , path of current page doesn't give information. example, have module @ mymodule/disclaimer shows content of node id equal 2, or have view @ example_path/just_to_make_an_example shows excerpt taken nodes matching criteria decided.
if need replace words in node body, example replacing %author% username of node creator, should rather implement hook_node_view_alter().
Comments
Post a Comment