Sziasztok!
Sikerült egy nagyon egyszerű problémát végleg elbonyolítanom. :-)
A probléma az, hogy van egy modulom, annak saját mezői. Ezek közül az egyik mezőt el szeretném rejteni a bevezetőben. Csak akkor látszódjon, ha valaki a teljes tartalomra kattint.
Több megoldást néztem. Próbálkoztam hook_view-val de nem találtam rá megoldást.
A hook_nodeapi-val az volt a problámám, hogy bár működött minden más tartalom típust is átírt. Ez egy kicsit rejtély számomra miért is.
Ami viszont igazán tetszik, amit a CCK tudna, de nem találtam rá dokumentációt csak utalást.
"Third-party modules can expose their own display contexts ($node->build_mode) to the list of available contexts."
Tehát a CCK képes valahogy észrevenni az én mezőimet és ide-oda rendezgetni a "Manage fields" alatt.
Ez a megoldás tetszik igazán. Tudna valaki segíteni?
Természetesen a többi megoldás is érdekelne...
kód részlet?
Mutasd a hook_view()-t, főleg azt hogy mit raksz a $node->content -be
function mymodule_view($node,
function mymodule_view($node, $teaser = FALSE, $page = FALSE) {
$node = node_prepare($node, $teaser);
$node->content['myfield'] = array(
'#value' => 'Hello'
);
return $node;
}
Csak a value-t töltöm ki...
$teaser
Érdemes használni a $teaser változót. (Ha már egyszer úgy is rendelkezésre áll, meg aztán nélküle egy kicsit nehéz lenne)
Köszi! Ez alapján meg tudtam
Köszi! Ez alapján meg tudtam oldani a problémát, de továbbra is azt gondolom a CCK-s megoldás hatékonyabb és elegánsabb megoldás lenne és továbbra is nagyon érdekel.
A node.example modult hogyan kellene átírni, hogy a CCK lássa a mezőit?
http://api.drupal.org/api/file/developer/examples/node_example.module/6
hook_content_extra_fields()
A címben említett kampót kell megvalósítani.
forrás olvasás javasolt content_content_extra_fields().