Van egy alapnode és vannak hozzá kapcsolt további node-ok.
Amikor az alapnode megjelenik (node/x), a kapcsolt node-ok a jobb sáv egyik blokkjában (node_view+node_load) jelennek meg.
Megjelenéskor ki szeretném íratni a drupal_set_message()-val a node-ok címeit. A drupal_set_message()-t a hook_nodeapi() 'view' ágba tettem. A gond ott van, hogy az alapnode neve a lap megjelenésekor, a kapcsolt node-ok a következő lap megjelenésekor íródnak ki, én viszont egyszerre szeretném.
Vagyis a node_view+node_load esetén a hook_nodeapi() 'view' ágban hozzáadott drupal_set_message() nem az aktuális lapmegjelenítés üzeneteihez adódik hozzá, hanem a következő megjelenítéshez.
Lehet, hogy máshova kellene drupal_set_message()-t tennem ?
Drupal verzió:
Fórum:
más nem jó?
Az üzenet a $_SESSION-ben tárolódik. Miért fontos, hogy drupal_set_message() segítségével írd ki?
Mivel én akarom hozzáadni az
Mivel én akarom hozzáadni az üzenetet (tudtommal ez a módja). Hogy pontos legyek olyan esetben kell az üzenetnek megjelennie, ha az adott node (még) nem közzétett.
...mit tudok: http://web.termuves.hu
továbbra sem értem
Az nem világos, hogy miért nem fűzöd a $node->content tömbhöz $op = view stádiumban, ha már egyszer ott vagy?
Hogy jön ide a $node->content
Hogy jön ide a $node->content ?
Mint írtam a drupal_set_message()-el szeretném kiíratni a címet. A mondatban nem a címen van a hangsúly, hanem a drupal_set_message()-n. Persze visszaolvasva megtévesztő, a lényeg, hogy egy üzenetet akarok megjeleníteni, ami végeredmynben sikerül is, éppenséggel az időzítése nem jó.
Tehát másként:
Ha a címsorban ?q=node/1 és a hook_nodeapi() 'view' részében meghívok egy drupal_set_message() függvényt, akkor a lap megjelenítésénél a node fölött rendesen megjelenik az üzenet.
Viszont ha node megjelenése előtt egy blokkban meghívom a node_view+node_load párost (?q=node/2), akkor a ?q=node/1-he tartozó üzenet megjelenik, viszont a ?q=node/2-höz tartozó, csak a következő lap megjelenítésénél. Vagyis két megjelenítéskor, ugyan a hook_nodeapi() egymás után fut le, a drupal_set_message() viszont nem.
...mit tudok: http://web.termuves.hu
túlbonyolítod
De miért ragaszkodsz a drupal_set_message()-hez? Nem mindegy, hogy egy adott HTML tartalmat a drupal_set_message() ír ki, vagy a node_view(), vagy a turoscsusza(), vagy a makosteszta()?...
Egyébként te is nyugodtan betehetsz bármit a $_SESSIONS-be, nem kell feltétlenül a drupal_set_message()-en keresztül dolgozni vele.
Ha leírod, miért ragaszkodsz a drupal_set_message()-hez, szerintem előrébb leszünk.
Ha az a feladat, hogy x node megjelenítésekor y és z node megjelenjen egy jobb oldali blokkban, y és z címe pedig egy blokkban a node felett, akkor én erre írnék egy egyszerű kis blokk-modult, ami pl. arg()-tól függően elkészíti a két blokk tartalmát. A hook_nodeapi() nem blokk-készítésre való.
Ha nagyon muszáj, hogy üzenetnek nézzen ki, akkor CSS-ben tennék köré vékony rózsaszín vonalat. ;)
mit értesz azon, hogy egy blokkban?
Az van, hogy akkor adsz ki egy drupal_set_message-t amikor már a $message változó elkészült és át lett adva a sminkrendszernek. Ekkor nyílván máskor fog megjelenni. Értelmes kérdés is jöhetne, hogy mit is akarsz...
Én a (szülő) node-load-ba tenném bele a "gyermek" nodeok betöltését és ekkor a view ágbában a szülő node-nak már csak meg kéne jelenítenem azt.
pp
(az a baj, hogy gányolsz és átlépsz a normális működési logikán ;))
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Már bocsánat, de nem
Már bocsánat, de nem gányolok. Elvégre szerintem jó helyre teszem az üzenet beküldését, csak a végrehajtási sor miatt nem akkor jelenik meg amikor én szeretném.
Nagyon leragadtatok a 'cím' szövegen, bár hangsúlyoztam a drupal_set_message()-on van.... Próbáltam egyszerűsíteni a kérdésem, de látom félrement...
Leírom újra:
Adva van egy normál node, és x darab node ami blokkban jelenik meg, ezek a node-ok az normál node-hoz vannak kapcsolva. Azt szeretném, hogy ha valamelyik node nincs közzétéve, akkor a beküldőnek, és az adminisztrátornak jelenjenek meg (eddig minden rendben működik, még ki is vannak emelve a rejtett node-ok), de szeretnék egy drupal_set_message() üzenetet is arról, hogy melyik node-ok nincsenek közzétéve, ebben az üzenetben (többek között) az adott node címe is szerepel.
Ez azért szükséges, hogy egyértelmű legyen a beküldőnek is és észrevegye az adminisztrátor is, melyik node nincs közzétéve.
Kézenfekvőnek tűnt a hook_nodeapi()-ba tenni az üzenet elküldését, de úgy látom, hogy az alap node megjelenítése után a $message változó lezárásra kerül...
Közvetlenül nem akartam a $_SESSION-ba tenni (ha lehet) az üzenetemet elvégre van a drupal_set_message().
Leginkább azt látom, hogy az alapnode hook_nodeapi() 'view' ágában kell vizsgálnom a kapcsolt node-ok megjelenését, és itt kell beküldenem az üzeneteket.
...mit tudok: http://web.termuves.hu
M
Már bocsánat, de nem vagyunk távolbalátó kézrátétellel gyógyító csodadoktorok mi sem!
Hát honnan az öreg ördögből tudjam, hogy Te írtál egy modult, ami megjelenít egy blokkot, vagy csináltál egy blokkot és PHP beviteli formában belgányoltad amit akartál?
A lényeg átment szerencsére, ott a hozzászólásod végén amit tenned kell.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Például onnan, hogy elolvasod
.
...mit tudok: http://web.termuves.hu
Lehet bennem van a hiba!
Erre gondolsz?
a kapcsolt node-ok a jobb sáv egyik blokkjában (node_view+node_load) jelennek meg.
maradok csendben, de nekem ebből nem egyértelmű, hogy hogyan oldottad meg. (mi az a node_view az egy view vagy a node_view függvény? Hogyan kerül a blokkba?
Nem kétlem, hogy velem van a hiba, de én akkor se értettem, hogy hogyan jelennek meg a jobb oldalsáv egyik blokkjában...
Magánban tisztázhatjuk egy sör mellett legközelebb. ;)
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
ha saját modullal állítod elő a blokkot is,
akkor nem értem ezt a node_api dolgot, miért nem a hook_block() -ban hívod a drupal_set_message() -et? (ahol a blokk tartalmát előállítod..)
az épp megjelenített node -ra meg a template_preprocess_node() -ban vagy akár a hook_nodeapi() -ban, ahogy eddig is.
ha nem saját modul, hanem views blokk amiről szó van, akkor meg a nézet megjelenítőjének lehet egyetlen sorát is sminkelni egy tpl.php -val (vagy előfeldolgozóval) és ott hívni a szet messzidzs.
-
clear: both;