Dinamikus szűrő

etyike képe

A views modulról szeretném azt megtudni, hogy rá tudom e venni a következőre:
Argumentumok:
Global (Null): [return (arg(0)) ? arg(0) : '';]
Szűrők:
Publikus, Típus, Szín: [contains %1]
Mezők:
Cím, ...
Én csak egy url-t szeretnék létrehozni a views-szal, ami visszatér egy json object-tel (views datasoure modul segítségével).
Tehát, ha elmegyek a oldalam.hu/nezetem/szinem oldalra csak egy json objektumot lássak (szín alapján szűrnék). Ez meg is van csak a színem argumentumot nem tudom beilleszteni a szűrőbe a %1 helyettesítővel.
Találtam egy oldalt, de nekem nem adott segítséget: arg to filter.
Sok ajax-os dolgot meg lehet így oldani szerintem, nem tántorodom meg a nézetem explortálásától, hogy be tudjam tenni az argumentumot.
Segítségetek előre is köszönöm

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

Fél megoldásként létrehoztam annyi nézetet (oldalt), amennyire szükségem van. Szuperül működik, de nem dinamikus sajnos.

0
0

Kellemes és szép napot a továbbiakban
etyike

etyike képe

Jutottam valamire. Így csak a már létező mező opciók közül olvas ki, ha van olyan

function dinamic_views_filter_value() {
  $sql = "SELECT global_settings FROM {content_node_field} WHERE
field_name = '%s'";
  $type = "field_pattern_color";
  $result = db_result(db_query($sql, $type));
  $colors = unserialize($result);
  $color = explode('/', url($_GET['q']));
  $colors = explode(' ', $colors["allowed_values"]);
  if(preg_match('@\b' . $color[3] . '\b@i', $colors[0])) {
    return $color[3];
  } else {
    return NULL;
  }
}
// views export function
$handler->display->display_options['filters']
['field_pattern_color_value']['value'] = dinamic_views_filter_value();

Igyekeztem a biztonságok szem előtt tartani, de ezt már csak a tapasztaltabbak tudják megítélni. Jobb ötletért még mindig ki vagyok éhezve.
0
0

Kellemes és szép napot a továbbiakban
etyike

etyike képe

hátha valakinek szüksége lesz erre

// *.module fajlba irtam
function valami_urlbol(){
  $url = url($_GET['q']);
  if(!empty($url)){
    $url = explode('/', $url);
    return $url[3];
  }
  return FALSE;
}
 
function valami_szuro() {
  $sql = "SELECT global_settings FROM {content_node_field} WHERE field_name = 'field_*'";
  $result = db_result(db_query($sql));
  $szinek = unserialize($result);
  $szin_urlbol = valami_urlbol();
  $szin = ($szin_urlbol) ? $szin_urlbol : '';
  if(preg_match('@\b' . $szin . '\b@i', $szinek['allowed_values'])) {
    return $szin;
  } else {
    return FALSE;
  }
}
// *.views_default.inc fajlba irtam
$handler->display->display_options['filters']['field_*_value']['value'] = valami_szuro();
0
0

Kellemes és szép napot a továbbiakban
etyike

aboros képe

de én ezt az egészet nem értem. úgy ahogy van. ha jól értem, hogy mit akarsz csinálni, akkor a szín mező nem filterként, hanem argumentumként kell szerepeljen a viewban és kész is vagy. ehhez egy leütést nem kell kódolnod.

aztán a kódban szerintem a "valami_urlbol" függvény teljesen felesleges, pontosan ezt csinálja a drupal arg() függvénye. arg(3) és megvan a színed. azt amúgy már teljesen nem értem, hogy a valami_szuro függvényben mit csinálsz tulajdonképpen.

tényleg nem kötekedésből írom, inkább segítő szándékkal, találjunk egy igazi megoldást mert ez nagyon botcsinálta így.

0
0

-
clear: both;

etyike képe

Nem veszem kötekedésnek egyáltalán, jól jön a tanító szó.
Itt lenne a megoldásom: http://planetrock.hu/polo-szerkeszto
És itt érhető el a views által létrehozott json fájlom: http://planetrock.hu/json-minta/feher (feher|piros|fekete)
Abban igazad van, hogy az arg() függvény azt teszi amire nekem szükségem van, de ha a nézetből hívom meg akkor nézet elérésével tér vissza (sites/modules/sajatnezet/...), ezért folyamodtam saját függvény írásához.

Ami a legkellemetlenebb, hogy most szuperül megy (telepítettem a views_extra_arguments modult), valamiért nem működik az arg() függvény megfelelően.

A valami_szuro egy gagyi arg függvény :$ :)

Így működik most, köszönöm a segítséget!

0
0

Kellemes és szép napot a továbbiakban
etyike

aboros képe

a kepernyokep alapjan a nezetnek pont jol kell mukodnie kod nelkul is, a http://planetrock.hu/json-minta/feher utvonalon adnia kell jsonban a feher mintat, hiszen szepen a szin mezo az argumentum. az utvonalnak json-minta/% -nak kell lennie es jo lesz mindenfele kod nelkul is.

0
0

-
clear: both;

etyike képe

kod neklul hasznalom mostmar :)
olyan szepen csinalja es sokkal gyorsabb is
igy a problemat megoldottnak szamitom (nem ertem miert nem akart mukodni a arg() fuggveny)

0
0

Kellemes és szép napot a továbbiakban
etyike

etyike képe

Ez lett végül a views szűrőjével: json-minta/*, polo-minta/*.
http://planetrock.hu/polo-szerkeszto
Köszönöm a segítséget

1
0

Kellemes és szép napot a továbbiakban
etyike