view adatiból hogy tudom kiemelni a beállított filter id-jét ami történetesen egy term és mindezt a view fejlécében php+sql lekérdezésben felhasználni?
$handler->override_option('filters', array(
'tid' => array(
'operator' => 'or',
'value' => array(
'110' => '110',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'type' => 'select',
'limit' => TRUE,
'vid' => '4',
'id' => 'tid',
'table' => 'term_node',
'field' => 'tid',
'hierarchy' => 1,
'relationship' => 'none',
'reduce_duplicates' => 0,
'override' => array(
'button' => 'Felülírás',
),
),
));
tehát 'value' => array('110' => '110',), erre volna szükségem a fejlécben.
Köszönöm!
ha nem ajaxos a nézet, akkor benne van az urlben
mit szeretnél csinálni? lehet van más módja.
-
clear: both;
AJAX használata: Nem - és
AJAX használata: Nem - és sajnos nincs az url-ben semmi az
útvonal opcióban meghatározotton kívül.
a kifejezés leírását szeretném elérni ami működik is ha beírom az azonosítót a php kódban a sql lekérdezésbe csak változóba szeretném tenni és ehhez valahonnan kinyerni...
$view objektumból kell kihalászni
Pl. saját modulban:
Bár ugyanezt többnyire a Views beépített eszközeivel is meg lehet oldani (argument handling), csak ügyesen kell összekattintgatni.
Hogy szedem ki ebből a
Hogy szedem ki ebből a többszintű gyönyörűségből tid-t? A $view változó tartalmazza a és ki is listázza kérésre az view objet adott nézetre vonatkozó összes adatát...
Megvan... Köszönöm
Megvan... Köszönöm mindenkinek a jó szándékát segítőkészségét. Nem kell feltétlenül modulba vinni a dolgot... de köszönöm a tippet sokat segített. Ezzel és hasonló kóddal bármit ki lehet szedni a pl. fejlécen a view object -ből.
Biztos van egyszerűbb módszer is de ez most azt csinálja amire szükségem van... :-)
ILYET SOHA TOBBET!!!
Ilyet nem csinalunk!!!
Helyes kod:
---
http://drupalaton.hu
Köszönöm! Megfogadom a
Köszönöm! Megfogadom az észrevételedet.
Hogy őszinte legyek életem első drupálos kódja a fönti... :-)
Az sql dogokat meg még gyakorlnom kell.
szépség
Ha nem akarod modulba tenni, és design szempontból nincs akadálya, akkor inkább használd az aboros által alább leírt blokkos megoldást. Ezt gondolom a view fejlécbe tolod be, és az úgy nem valami szép. A tid, vid és name értékekre meg nincs szükséged a $query-ből, felesleges őket lekérdezni.
OK ezt is megfontolom... Azt
OK ezt is megfontolom... Azt értem, hogy a programozói érzékenységet sérti ez a megoldás, de hát pont a programozók tették bele a Drupálba ezeket a php kapukat...
Egyébként elfogadom a méltatlankodást...
A többi mezőnévre valóban nincs szükség (esetleg a name??) a kód tesztnél kerültek bele természetesen kivehetők.
Egyébként megcsináltam a kód alapján amit fönt közöltél a modulos változatát is...
Köszi szépen... :-) Sokat tanulok tőletek...
ezzel a sorral valami baja
modulként ezzel a sorral valami baja van
$terms = array_keys($view->display['default']->display_options['filters']['tid']['value']);
lefut a meghíváskor és kiírja a várt eredményt de ezzel a hibaüzenettel...
warning: array_keys() [function.array-keys]: The first argument should be an array in /home/valaki/public_html/modules/termid/termid.module on line 12.
miert szenvedsz ezzel?
nem egyszerubb 10-12 kattintassal csinalni egy viewt? karbantartani/valtoztatni is sokkal konnyebb lenne..
-
clear: both;
design megkötés
Ha jól értem, a view headerbe kell neki behívni a taxonomy descriptiont. Oda nem tudja betenni a blokkot PHP nélkül. Bár az is igaz, hogy egyszerűbb lenne az általad javasolt view blokkját module_invoke()-kal behívni, és akkor nem kell a view-ban halászni.
hát akkor ez nem tömb lesz :)
Hát akkor úgy tűnik, neked a $view->display['default']->display_options['filters']['tid']['value'] az nem egy tömb. :) Nézd meg print_r()-ral, hogy hogyan épül fel a $view->display['default']->display_options['filters'], vagy a $view->display['default']->display_options['filters']['tid']. Sajnos a Views programozása ezzel jár, hogy időnként ilyen óriási tömbökből kell kihalászni, ami kell. Még jobb, hogy a fejlesztő időnként át is rendezi ezeket a tömböket, és elfelejti bejelenteni, a webhelyek meg lehalnak. :) Ettől izgalmas a Drupal fejlesztés. :)
Nem nem ettol...
Nem ettol... :)
Szerintem egyaltalan nem jellemzo a drupal modulokra, hogy a komoly valtozasokat figyelmeztetes nelkul tennek bele.
---
http://drupalaton.hu
ha nem ajaxos, ott kell legyen az urlben az adatod
http://www.ceu.hu/about/organization?unit_type=565
tessek, ez egy exposed filterrel szurt nezet url -je... benne van a filterben beallitott ertek.
csinalhatsz egy nezetet, ami "term" alapu (az a base table) es egy argumentumot var ami a term id es a term descriptiont jeleniti meg mezokent. az argumentumnal if not present » provide default argument » php code, es oda irsz egy mini snippet ami kiszedi az urlbol az idt es azt visszaadja. ez egy blokk megjelenitot hasznal, azt beteszed egy regioba.
meg tudod mutatni ezt valahogy? elerheto valahol?
-
clear: both;
csak felfedett szűrőnél
Gondolom nincs a szűrője felfedve, azért nincs infó az URL-ben.
Űrlap felfedése blokkban
Ebben az esetben az Űrlap felfedése blokkban beállítást Igenre kell állítani, és máris ott lesznek. Aztán a blokkot meg nem kell berakni sehova, ha nincs rá szükség.
Igen ez így volt viszont
Igen ez így volt viszont szűrőt nem szeretném megjeleníteni az oldalon...
OK ezt kipróbálom. Az oldal
OK ezt kipróbálom. Az oldal sajnos még nem elérhető. Ha view object- tömből valahogy ki tudnám szedni az tid-t tulajdonképpen megoldódna a problémám. A szűrőt nem szeretném megjeleníteni az oldalon.
jahogy ez egy fix szűrő és nem felfedett...
akkor még egyszerűbb. csinálsz egy másik nézetet, amin nem "node" hanem "term" alapú. (létrehozás első lépésénél a term lehetőséget választod). hozzáadsz egy filtert, ugyan azt, mint a másik nézetednél. mezőket jelenít meg, egy mezőt, a term descriptiont. egy blokkot állít elő. ezt a blokkot berakod a neked tetsző helyre, beállítod, hogy csak a másik nézeted útvonalán jelenjen meg, kész.
-
clear: both;