taky hook_form_alter()
Dobry vecer, moc se omlouvam za dalsi dotaz, ale docela v tom plavu. Staci mi kdyztak lehce popostrcit.
Mam v Ubercartu nejake produkty, kazdy ma nejake vlastnosti, podle kterych je pak potrebuji filtrovat-vaha, vek, pohlavi... a vetsinu a veci je tam zadavana jako 45-50, 70-90 a podobne, proste aby clovek co to plnil nemusel psat porad cisla ale mel vyber z par moznosti.
Ted kdyz delam filtr ve views, potrebuji ale aby uzivatel mohl vepsat to textfieldu cislo (jeho konkretni vahu, vek...) a podle toho to pak vyfiltrovat.
Moznost zobrazit textfield misto selectboxu ve filtru pro lidi jsem nikde nenasel, tak se pokousim jit cestou prepsani hook_form_alter(); ale to se mi absolutne nedari zprovoznit, nechapu jestli staci funkce do template.php, nebo pro to musim psat solo modul, nebo nejak uplne jinak? O.o
Dekuju moc za navedeni na cestu
Michal Reznicek
Volná místa v IT
- Quality assurance engineer (40 - 60.000,- Kč) (Advantage Consulting, s.r.o.)
- Vývojář pro android (30 – 55.000,- Kč) (Advantage Consulting, s.r.o.)
- Managed Services Consultant with French based in lovely Prague! (Teradata Česká republika, spol. s r. o.)
- Technicko – administrativní podpora (25-30.000,- Kč) (Advantage Consulting, s.r.o.)
- Java EE Developer (IBA CZ, s.r.o.)

















Ja budu mit asi problem nekde
Michal Reznicek (neověřeno) 13.7.2012 00:28:27 (#8659)Ja budu mit asi problem nekde na zacatku, pul dne se rozciluju ze mi to nedela co delat ma a googlim jak o zivot, ale ani podle vaseho uzasneho postupu
http://www.maxiorel.cz/jak-upravit-polozky-formulare-exposed-views-v-drupalu
se nedostanu nikam.
Uz samotne
function gala_preprocess_views_exposed_form(&$vars, $hook) {
dsm($vars);
var_dump($vars);
}
Neudela vubec nic :(
Zase hroznej trapas, template
Michal Reznicek (neověřeno) 13.7.2012 00:50:36 (#8660)Zase hroznej trapas, template.php do rootu vzhledu, ne do templates....
Template.php
Jan Polzer (www.polzer.cz/) 13.7.2012 07:36:57 (#8662)Takže se nakonec povedlo?
Majitel Maxiorla. Nabízím mimo jiné placené poradenství pro Drupal. Jsem i na Twitteru.
No chyba byla od zacatku
Michal Reznicek (neověřeno) 13.7.2012 10:35:14 (#8663)No chyba byla od zacatku spatnej soubor, ale je pravda ze ted narazim na problem zmenit celectbox na text, radio, cokoliv. Vlastne udelat jakoukoliv zmenu s tim prvkem.
I jen
$form['field_product_vaha_value'] = array(
'#type' => 'radios',
);
Nema zadny efekt, asi jeste uplne nechapu jak se to ma presne prepisovat, internet je sice plny postupu ale nejak se nedari, ale snad se to prolomi.
Nasel jsem jeste tuhle
Michal Reznicek (neověřeno) 13.7.2012 11:30:33 (#8664)Nasel jsem jeste tuhle moznost
if ($form_id == 'views_exposed_form') {
$form['views-exposed-form-filtrcs-page']['field_product_vaha_value']['#type'] = 'textfield';
$form['views-exposed-form-filtrcs-page']['field_product_vaha_value']['#size'] = 60;
$form['views-exposed-form-filtrcs-page']['field_product_vaha_value']['##maxlength'] = 128;
}
A ta prida extfield, ale porad je tam stary selectbox a oba navzajem se hadaj :)
Ja sem s dovolenim budu psat
Michal Reznicek (neověřeno) 13.7.2012 13:19:19 (#8665)Ja sem s dovolenim budu psat jak tim postupne prochazim, trebas se to nekdy bude nekomu hodit :)
Pro zmenu ze selectboxu na radio funguje
function views_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == "views_exposed_form" && $form['#id'] == "views-exposed-form-filtrcs-page") {
$form['field_product_vaha_value']['#type'] = "radios";
$form['field_product_vaha_value']['#size'] = null;
}
}
a funguje to komplet.
Pro zmenu na textfield bohuzel dostavam hlasku "Zjištěna neplatná volba. Kontaktujte administrátora webu."
Coz bude protoze hodnota kterou to hleda je napr 35-55, ne 40 - coz uz asi nepujde dost dobre udelat, bude to chtit nejak vyrobit ze to nacte 40 a podle tabulky to zmeni hodnotu v odesilacim fieldu na 35-55
Prostě tam nacpěte vlastní
Michal Reznicek 13.7.2012 16:05:49 (#8666)Prostě tam nacpěte vlastní hodnoty do vybíračky. Pak asi bude potřeba implementovat hook_views_query_alter(&$view, &$query), kde upravíte filtr v $query tak, aby odpovídal vašemu požadavku.