Ahoj muj problem je tento :
na prvni strance mam view s clanky, kdyz kliknu na nejaky clanek tak na detailu clanku se objevi dalsi view ktere zobrazuje seznam podpolozek souvisejici se clankem. Clanek ma kod , kterych bych chtel omezit vypis podpolozek , napr clanek ma kod = 3 , tak na detailu clanku chci zobrazit vsechny podpolozku ktere maji kod == 3. View podpolozek by asi mel resit pomoci Contextual filters , ale nevim jak dostat ten kod do URL . Prosim poradte nebo napiste jine reseni , moc dekuji
Diky moc po mensi uprave jsem to pouzil , ale ted mam problem ze pokud view ma prazdny vysledek pak to vyhodi chybu . Co s tim ? Musis se jeste priznat ze v Drupalu jsem zacatecnik
Jakou chybu? Jak říkám, psal jsem to z hlavy.
stranka se zobrazi bez stylu s hlaskou: Fatal error: Unsupported operand types in /volume1/web/dobrejistoty.cz/modules/block/block.module on line 352
jo a jeste na hlavni strance se objevi :
- Notice: Undefined index: views_stopovatelnost_view-block ve funkci eval() (řádek: 11 v souboru /volume1/web/dobrejistoty.cz/modules/php/php.module(80) : eval()'d code).
- Notice: Trying to get property of non-object ve funkci _block_get_renderable_array() (řádek: 337 v souboru /volume1/web/dobrejistoty.cz/modules/block/block.module).
Dobrý den, odpovím teoreticky, nemám teď bohužel čas to přesně vyzkoušet.
1. Contextual filters jsou to pravé.
2. Přidejte nový kontextový filtr pro dané políčko, ale řekněte, že mu poskytnete Default value tvořenou pomocí PHP kódu.
3. Ten kód by měl vypadat nějak takto: if (arg(0) == 'node' && is_numeric(arg(1))){ $node = node_load(arg(1)); $hodnotakodu = $node->field_kod[0]['und']['value']; return $hodnotakodu;}
Tedy pro jistotu ověříme, zda je zobrazen nějaký uzel, načteme jej na základě čísla z URL (node/číslo, funguje i v případě zobrazení na adrese s aliasem), vezmeme si z objektu uzlu potřebnou hodnotu a vrátíme ji kontextovému filtru.
Ještě by tam mělo být ověření, zda je políčko s kódem naplněno, ale to už zvládnete sám.