Nodapi Load - Alter - View

Magus képe

Sziasztok!

Azt szeretném megtudni, hogy a hook_nodapi-ban melyik $OP-ra van szükségem, ha az alábbit szeretném megoldani:

Adott node típus esetén betöltődéskor a body-hoz kapcsoljunk szöveget, de természetesen csak megtekintéskor.

Ha a VIEW operátort (vagy minek a rövidítése az op?) használom, akkor hiába írok bármit a $node->body -ba semmit nem csinál vele :(.

Ha a LOAD opot használom, akkor a szerkesztési oldalon is megjelenik, és már így fogja elmenteni :(.

Az ALTER op jó lenne, de az már a legenerált html kódot tudja manipulálni, így a "xy".$node->body esetén a legtetejére írná ki, nem pedig a CCK mezők alá, ahova szeretném.

Hackeltem egy perpill használhatónak tűnő megoldást:

if ($op == "load" and !strpos($_GET['q'],"/edit") and $node->type == "...") {
 $node->body = "<div class='...'>...</div>".$node->body;
}

Csak nem tudom, ennél lenne-e jobb megoldás. Vagyis szerintem tuti, csak nemtom melyik az :(

Valakinek valami tippje?

Köszönöm,
O. Magus

Drupal verzió: 
pp képe

http://api.drupal.org/api/function/hook_nodeapi/6

"view": The node content is being assembled before rendering. The module may add elements $node->content prior to rendering. This hook will be called after hook_view(). The format of $node->content is the same as used by Forms API.

A lényeg, hogy view op-nál a $node->content változóba - ami egy tömb - na abba kell beletenned amit akarsz. A sorrendet a weight érték fogja meghatározni, ezért ha egy cck mező után akarod betenni, akkor annál nagyobb, de a követkző elemnél kisebb számot kell megadnod.

a példa szerint:

    case 'view':
      $node->content['my_additional_field'] = array(
        '#value' => theme('mymodule_my_additional_field', $additional_field),
        '#weight' => 10,
      );
      break;

pp

0
0
Magus képe

köszönöm a választ, működik

0
0

- - - - -
Orseolo Magus
[email protected]