Projekt id (nid) beillesztése link-be

gazsesz képe

Hellói Mindenki!

A következőkben kérem segítségteket:
Casetarcker modult használok porjektek és azok feladatainak nyilvántartására. Csináltam egy view-t, amiben az egy adott projekthez tartozó feladatok jelennek meg táblázatban.
Erre az oldalra szeretnék kitenni egy linket, hogy új feladat hozzáadása az adott projekthez.
A projekt azonosítója (pid) a devel szerint a következő helyen van:

views-exposed-form.tpl.php

form (array)
pid (array)
#post(array)
pid

... és ezt a pidet kell a link végére biggyeszteni.
Próbálkozom a blokkban php-vel, de egyelőre még nem találtam meg a megoldást.
Előre is köszi!

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
pp képe

A pid az honnan jön?
Fix, akkor nem kell aggódni, argumentum? Akkor azt is könnyedén elő lehet szedni.

Szóval áruld el honnan jön az a pid.

pp

0
0
gazsesz képe

A pid tulajdonképp a projekt típusú node id-ja. A node teljes nézetében van egy link, ami meghívja egy paraméterrel az adott view-t a következőképpen: view_utvonal?keys=&pid=166. A view, pedig a projekt (pid) felfedett szűrőt már így állítja be, és így hozza az adott projekthez tartozó összes feladatot. Ami innen kell, az a 166-os szám, a node/add/feladat/166 linkhez.

Megnézem a másik javasolt megoldási módot és visszajelzek.

Köszi

0
0

Gazsesz

Bálint képe

Ha jól értem, van egy felfedett szűrőd, amiben kiválasztasz egy projektet, és a view listázza az ahhoz a projekthez tartozó feladatokat, és te emellé a lista mellé szeretnél egy linket, amelyen gyorsan hozzá lehet adni új feladatot az éppen kiválaszott projekthez?

Ha így van, szükséged lenne egy egyedi template-re. A view-nál a Basic Settingsben van egy Theme: Information rész. Innen neked a Display output kell, hozz létre a sminked mappájában egy fájlt valamilyen néven, amit mellete találsz (pl. views-view--VIEWNEVE.tpl.php). Ha ráklikkelsz itt a Display outputra, akkor ki tudod másolni a kódot, ami alapértelmezetten kerül ebbe a template-be. Ezt másold bele a létrehozott fájlodba, ebben tudsz módosítani. Üríteni kell a smink regisztrációs tárat, hogy tudomást szerezzen erről az új tpl-ről a sminkfeldolgozó.

A $view->exposed_input tömbben lesznek az adatok a felfedett szűrőben kiválasztott elemről. Ezt kellene megnézned (print_r()-rel vagy kpr()-rel), és utána már össze tudod rakni a linket.

0
0
gazsesz képe

Köszi a választ. Közben rájöttem, hogy nem is kell új tpl fájl, hisz elegendő a footer-be beírni a php kódot, annak ugyanaz a hatása. Ettől függetlenül továbbra sem sikerült még az a változót kiíratni (lehet, hogy a hiányos php ismeretem miatt).
Kiírattam a $view változót, aminek egy részlete alább:
view Object ( [db_table] => views_view [base_table] => node [args] => Array ( ) [use_ajax] => [result] => Array ( [0] => stdClass Object ( [nid] => 80 [casetracker_case_pid] => 67 [node_title] => Google Analytics kód lekérése [comments_subject] => Kód lekérve [comments_cid] => 27 [comments_nid] => 80 [comments_timestamp] => 1262783394 [node_data_field_deadline_field_deadline_value] => [node_type] => casetracker_basic_case [node_vid] => 81 [casetracker_case_assign_to] => 6 [casetracker_case_case_status_id] => 5
A vastagított részre, illetve abból a 67-es számra lenne szükségem.

Próbálkoztam a devel modul által megjelenített változók szerint is kiíratni az alábbiak szerint:
 print 'teszt'.$view['exposed_form']['submit']['#pid']['pid'];
 print 'teszt'.$view['form']['submit']['#pid']['pid'];
de így sem sikerült. Hol lehet a probléma?

0
0

Gazsesz

Bálint képe

Nyilván más itt a $view tartalma, mint egy tpl-ben, amit mondtam.

Ha már semmiképpen nem akarsz saját tpl-t - amivel nem értek egyet, de mindegy :) - akkor itt valahogy így olvashatod ki, amit akarsz:

$view->result[0]->casetracker_case_pid

(Ezt nem próbáltam ki, csak az alapján próbálkoztam, amit bemásoltál.)

Egyébként akár még a $_GET-ből is megtudhatnád így: $_GET['pid']

0
0
gazsesz képe

Végül ez lett a megoldás:

$view->result[0]->casetracker_case_pid

Viszont, ami érdekesség, hogy a footerbe betéve nem működött, csak ha beraktam a tpl fájlba. :)

0
0

Gazsesz

Bálint képe

De ott már van a $view->exposed_input tömb is, ami szebb, de ez már részletkérdés. :)

0
0