Sziasztok!
Meg szeretném oldalni, hogy egy táblázatban egyik oszlopban generált url vagy gomb alapján
egy uj formon adatokat jelenitsen meg az adott tábla sorról részletesen, és ehhez át kellene adni a paramétert a másik form-ra, hogy az alapján a részleteket megjelenitse. jelen esetben a sor id-je lenne.
Sajnos csak 4.7 drupalhoz találtam példát, ami alapján a callback argumentel operálnak.
$items['valami/form/reszletek'] = array( 'title' => t('részletek'), 'page callback' => 'valami_form_reszletek', 'callback arguments' => $id, 'access arguments' => array('access content'), 'description' => t('Reszletek'), 'type' => MENU_CALLBACK, );
a táblázatban generált mezők:
'<a href="http://server2/portal/?q=valami/form/reszletek/'$id'">'.link szovege.'</a>'
a funkcio:
function valami_form_reszletek_form($id="") { drupal_set_message($id); return $form; }
(Drupal 6.2)
Egyáltalán jó fele indultam el?
köszi.
Fórum:
kimaradt
jo
a megoldas rendben van, jo uton vagy
itt talalsz egy peldat drupal 6ra:
http://drupal.hu/node/4079
a /lista/edit linket nezd hogyan van megoldva
köszi
Köszi, este megnézem.
valami még nem jó
az én menü részeletem:
A link form eleme:
ezt nem tettem bele, mert nem tudom mire jó:
'access callback' => 'user_access',
ebben a sorban mi a végén at a 2-es?
'page arguments' => array('valami_reszletek', 2),
A válasz a generált linkre, hogy az oldal nem található.
köszi
hook_menu reszletek
1. mire jo az 'access callback'
menu elem jogosultsag ellenorzese
acces callback = jogosultsag ellenorzo fuggveny neve
access argument = parameter
tehat a jogosultsag ellenorzes a user_access('access content') fuggvenyhivassal fog tortenni. Igy gondolom erted miert kapsz "oldal nem talalhato" valaszt ha nem toltod ki az 'access callback' reszt..
2. page arguments-ben mit jelent a 2
a menu elem utvonalanak 2. resze
tehat konkret pelda
az a szoveg lesz a fuggveny parametere amit a % helyebe irsz
tehat pl valami/reszletek/115 bol drupal_get_form('valami_reszletek', 115) lesz ami a valami_reszletek(115) fuggvenyt fogja meghivni
megjegyzes
a hook_menu modositasa utan ujra kell generalni a menut, amit a modul ki es bekapcsolasaval el tudsz erni..
paraméter
Nem tudom elérni a paramétert:
Erre csak ezt irja ki:
array
egyik se jó:
$id[0]
$id->valami_resztletek
$id['valami_reszletek']
nagyon köszi
url?
milyen cimmel probaltad?
pl: /valami/reszletek/116-ra megjelenik a 116?
az "egyik se jo" reszt abszolut nem ertem. milyen peldak ezek?
hiba kereses
az kell megertened, hogy honnan jon oda az a 116 resz, melyik kodreszletbol, es akkor rajosz hol a hiba
Kötött az argumentum lista
1.) A drupal_set_message() string-et vár te pedig tömböt adsz. Ezért írja azt hogy: array (Lásd 2. pont)
Barba trükk:
drupal_set_message('<pre>$varname = '.htmlentities(print_r($varname, true)).'</pre>');
(A devel modulban is van valami eszköz ilyenre)
2.)
A drupal_get_form() hívja meg a te űrlapépítő függvényedet - valami_reszletek() - ezáltal kötött az argumentum lista.
Fejből nem tudom, de lehet hogy a #parameters fogja tartalmazni a drupal_get_form() számára átadott változókat.
ui.:
Érdemes elolvasni a menu wildcard-okról szóló doksikat.
$item['mymodule/%mymodule_id'] = array(...)
function mymodule_id_load($path_part) {
}
function mymodule_id_to_arg($path_part, &$map, $index) {
}
Ismét szenvedek
Pár hónap kihagyás után ismét folytatni szeretném a progimat. Addig eljutottam, hogy a modulban generált link pl.:
http://server2/portal/?q=valami/reszletek/60
végére odateszi a paramétert, amit át szeretnék adni a meghivott valami_reszletek függvégynek.
Sajnos még nem jöttem rá, hogyan nyerhetem ki a paramétert a meghivott függvényben.
menü részlet:
a függvény
a függvény eredménye:
$form_state = Array
(
[storage] =>
[submitted] =>
[post] => Array
(
)
)
Ebből nem tudom még hogy hol a paraméter.
Lécci adjon valaki konkrét választ mert ez a rávezetős dolog nem jött be :-)
köszi
drupal_get_form
működik
Nagyon köszi, működik.
Örök hála.
érdemes használni a valami_load() függvényt
Érdemes használni a D6 menü rendszerének szolgáltatását, a kapott azonosítóval kapcsolatban.