Hol és mivel tudok beavatkozni abba, hogy egy tartalom beküldése után ne a beküldött tartalom megjelenítéséhez, hanem egy másik oldalra érkezzen vissza a beküldő.
Mindezt a saját modulomban akarom megcsinálni.
Próbálkoztam a hook_nodeapi insert ágával, de ekkor a rendszerüzenetek még nem jelennek meg...
Drupal verzió:
Fórum:
akciók + triggerek
engedélyezd a trigger modult.
a webhely beállítások -> akciók menüpont alatt hozhatsz létre végrehajtandó akciókat amiket aztán a webhely építés -> triggerek menüpontban különböző eseményekhez rendelhetsz. mikor bekövetkezik adott esemény, végrehajtódik az akció.
(nem vagyok benne biztos, de lehet, hogy ezzel csak egy fix útvonalra tudod írányítani a beküldés után. szóval minden beküldés után irány a node/42 mondjuk)
-
clear: both;
#redirect
Szia.
A hook_form_alter-ben a megfelelő feltételektől függően hozzáadod a $form tömbhöz az útvonalat:
$form['#redirect'] = 'ide/menj';
Üdv: Zoli
Igen ! Pont erre vágytam. A
Igen ! Pont erre vágytam. A trigger-ek is biztos jók, csak nekem modulból kellett :)
Köszönöm,
...mit tudok: http://web.termuves.hu
Sajnos mégsem teljesen az
Sajnos mégsem teljesen az igazi. Alapból három lehetőség van a node beküldésénél: Mentés, Előnézet, Törlés. Nekem az első és az utolsó az érdekes.
A "#redirect"-el a Mentés utáni átirányítás kitűnően működik, de nem lehet Törölni a node-ot, mivel ott van (lenne, ha nem lenne átirányítva) egy megerősítés oldal is közben.
Próbáltam a "#submit"-ban vizsgálni, hogy éppen törlés vagy mentés van, de itt már nem fogadja el a $form-ba átírt "#redirect"-et.
...mit tudok: http://web.termuves.hu
Nézd meg ezt, szerintem erre
Nézd meg ezt, szerintem erre lesz szükséged: how to redirect after delete?
Üdv: Zoli
Érdekes ez is, de ez a saját
Érdekes ez is, de ez a saját modulban létrehozott node-ra vonatkozik.
...mit tudok: http://web.termuves.hu
goto
Ha sajat modul, akkor hivd meg ezt a fuggvenyt:
http://api.drupal.org/api/function/drupal_goto/6
---
http://drupalaton.hu
A node-ot szerkesztésre az
A node-ot szerkesztésre az alábbi formában kell meghívni: ?q=node/1&destination=node/2
...mit tudok: http://web.termuves.hu
redirect a submit függvényben
Pedig a form submit függvényében lehet redirect-et beállítani:
poenos ez a tema is
vicces, hogy ennyien segitenek megsincs egy hasznalhato valasz sem.. pedig nem lehet ez olyan bonyolult.. leirom megegyszer a kerdest mert latom ez okozza itt is a legnagyobb problemat
a kerdes az, hogy konkretan a node/add oldal utan kell atiranyitani, nem mashonnan. es a kerdezo jol tudja hogyan lehet atiranyitani..
ahogy crt megirta, szokasos eljaras a form_alter hook ahol a $form[#redirect] erteket megvaltoztatjuk. csakhogy ez nem jo mivel ezzel a torles gomb redirectje is megvaltozott..
szoval erre a kerdesre keressuk a valaszt..
Szerintem megoldható egy
Szerintem megoldható egy hook_nodeapi() hurokkal és egy drupal_goto() függvénnyel, de mivel a node_save() és a node_delete() függvények a node_invoke_nodeapi() hívás után tartalmaznak még kódot, azokat kézzel kell megvalósítani a drupal_goto() előtt.
Remélem kibogozható, amit írtam, egy próbát megér.
Üdv: Zoli
#submit
felaldoznad a node_save es a node_delete fuggvenyeket csak azert, hogy megoldj egy atiranyitast, ne mar.. ha csak ilyen hentes megoldas lenne akkor inkabb hagynam a fenebe..
en arra gondoltam, hogy sajat submit fuggvenyt kellene hozzaadni a formhoz, ami megnezi mire kattintottal es az szerint allitja be a redirectet.. csak azt nem tudom, hogy lehet e hozzaadni vagy csak felulirni lehet e az eredetit (bar az is egy lehetseges (kevesbe hentes) megoldas lenne). es az sem tudom, hogy ez mukodik e, elfogadja e az ott modositott redirectet, vagy valahol meg modosit rajta utana..
Mi lenne akkor, ha sajat
Mi lenne akkor, ha sajat sumbit-ot tenne a form feldolgozas vegere es ott vizsgalna, hogy torles vagy mentes volt-e?
Ha mentes akkor goto, ha torles akkor nem csinal semmit.
---
http://drupalaton.hu
Alapvetően egy akármilyen
Alapvetően egy akármilyen tartalomtípus beküldése utáni átirányításról van szó, nem pedig egy modulban létrehozott tartalomtípusról.
Ami működik az a ?q=node/1&destination=node/2 forma. Most így van megoldva. Ez jó a törlésnél és a mentésnél is.
Ha működik Bálint megoldása, a $form_state['redirect'], akkor szerintem ezzel elegánsabb megoldást lehet találni, kis kiegészítéssel.
Ezt még nem volt időm hogy teszteljem, de így képzelem el:
hook_alter() -ben
--------------------------------------
// a sajatfuggveny-ben tudom majd vizsgálni, hogy éppen mentés van-e
$form['submit'][] = "sajatfuggveny"; // 6.x Drupal
// törlés esetén
if ($form_id == 'node_delete_confirm') $form["#redirect] = 'ide/menj';
sajatfugvany()-ben
--------------------------------------
vizsgálni, hogy éppen mentés van, ha igen akkor $form_state['redirect'] = 'útvonal';
...mit tudok: http://web.termuves.hu
Ha mar ezt
Ha mar ezt megcsinalod:
$form['submit'][] = "sajatfuggveny"; // 6.x Drupal
Akkor miert bohockodsz utana ezzel:
$form_state['redirect'] = 'útvonal';
A submit-nel meghivodik a sajat fuggvenyed, ott el tudod donteni, hogy mentes vagy torles volt, ha mentes, akkor goto oda ahova ugrani szeretnel.
---
http://drupalaton.hu
A törlésnél van még egy
A törlésnél van még egy megerősítő form is. A 'sajatfuggveny' a törlésmegerősítés előtt fut le. A törlés megerősítését a hook_form()-ban meg lehet ejteni mert ennek tudom az id-jét. A mentés utáni átirányítást pedig csak a 'sajatfugveny' részben tudom megadni.
...mit tudok: http://web.termuves.hu
A torles utan is at kell iranyitanod?
A torles utan is at kell iranyitanod?
Mert ha nem akkor neked mar a torlessel nem kell foglalkozni, csak a mentessel.
---
http://drupalaton.hu