bloka skats (view) atbilstoši tekošajam mezglam (currnt node)

janeks Sun, 04/10/2011 - 19:16

Sadomājos sataisīt subj.
Tas viss darbojas izmantojot skatu argumentus.
Dotajā gadījumā cik saprotu jāizmanto noklusētais arguments:
Action to take if argument is not present: / Provide default argument / PHP Code

Pagaidām atdūros pret to, kādam tam kodam būtu jāizskatās un kā viņu debugot, ja kas.

Patreizējā versija sekojoša (bez kādām parbaudēm):

$node =& menu_get_object();

return $node->field_prj_lnk;

Vai tur tā funkcija kā tāda ir/nav jādefinē?

Tas field_prj_lnk ir domāts manis iepriekš ar CCK definēts tekošā mezgla lauks (currrent node).

Iepriekšpateicos,
Janeks

varbūt vari nedaudz vairāk aprakstīt situāciju, cik daudz būs tie mainīgie, kuri noteiks bloka parādīšanos. cik saprotu, ja CCK laukā ir ieraksts current node, tad tiek parādīts bloks?
Paldies par atsaucību - pats jau izkodu. Stc. 6.x versija bija domāta. Un dotais kods ir pareizs. un strādā vnk. ne visiem satura veidiem. Tur vnk. bija jāpieliek pārbaude uz satura tipu un tad attiecīgi jāatgriež mezgla (node) atbilstošais mainīgais. Sorre par ne pārāk saprotamu aprakstu, bet doma tāda, ka ir viens specifiska satura veids/tips, kurš ir tākā galvenais. Tad ir pakārtotie tipi, kuriem pielieku papildus lauku (ar CCK), kas ir reference (nid) uz konkrēto galveno mezglu (node). Tad nu bloka uzdevums ir parādīt pakārtotos mezglus (nodes), ja: esam galvenajā mezglā (nodē), vai kādā no pakārtotajām nodēm.
Hm, nebij gluži tik vnk., kā sākumā likās. return $node->field_prj_lnk; Nestrādā un sataisa kļūdu, jo atgriež masīvu, kur vajadzētu tekstu(int): field_prj_link ir CCK "node reference" lauks, bet šis arī neder :( return $node->field_prj_lnk->nid; Pagaidām rakšana ar Brillēm (google:) neveiksmīga.
Vai šādā gadījumā neder pie argumentiem Node ID from URL (provide default? Kā arguments būtu "galvenais" satura tips.
Nea - tas neder. Jeb arī tas šinī gadījumā jau strādā, bet caur vnk. Provide default -> Default argument type -> PHP Code. Tad gana labi der: return $node->nid; Bet man vajag citu gadīju, kur man nevajag tekošās nodes nid, bet gan tekošajā nodē esošajā CCK laukā ierakstītu nid, kas atbilst citai nodei. Teorētiski vajadzētu būt kaut kā šādi: return $node->field_lauka_nos->nid;
Parastajiem laukiem ir: return $node->field_prj_lnk[0]['value'] nodereference laukam varēt būt arī: return $node->field_prj_lnk[0]['nid'] sorry, ka šī tēma kaut kā nepamanījās agrāk. :
Paldies! Nu jau arī pats biju izracies. Sapratu, ka kaut kā vajadzētu spēt apskatīties, "kas lācītim vēderā", kad izdomāju kā, tad jau bija vnk.: Ieslēdzam PHP filtru nodēm un izmantojam print_r uz nodes objektu.