Views exposure formulier aanpassen
Hoi,
Ik wil een Views filter exposure formulier aanpassen. Meerbepaald wil ik gebruikers de mogelijkheid bieden om alle content die tussen bepaalde datums ligt (CCK Date field) te laten tonen. Via de standaard filter exposure krijgen gebruikers zo meerdere dropdowns (eentje voor jaar, eentje voor maand) voor de begin- en einddatum. Ik wil die dropdowns nu combineren zodat men zal kunnen kiezen uit (vb. "2010 - januari", "2010 - februari" enzovoort).
Wat is de best practice methode hiervoor? Ik denk niet dat deze mogelijkheid bestaat in Views zélf? Is er een contrib module die dit wél kan? Of via hook_form_alter? En wat is dan de meest efficiënte manier in dat laatste geval?
Thx!
gerrit
Actuele inhoud
09 feb 2012
- , CKeditor zelf HTML en CSS toepassen in de code view , (Forumonderwerp) , DGNY
- , youtube film in website , (Forumonderwerp) , annemie
- , userpoints vraagje , (Forumonderwerp) , jeroenenwendy
08 feb 2012
- , Vacature Webdeveloper , (Forumonderwerp) , JoHo Processen ...
- , node id opslaan in database , (Forumonderwerp) , Noikes , Reacties: 5
07 feb 2012
- , Civi en Drupal installatie gevraagd! , (Forumonderwerp) , Koen van Hees
- , kan niet meer inloggen na verhuizing website , (Forumonderwerp) , meppel001
- , Image slider/banner maken in Dp7 , (Forumonderwerp) , CrazyFly , Reacties: 2
- , migrate van subdir naar main directory , (Forumonderwerp) , Jaap3D
- , Filter criteria , (Forumonderwerp) , Lambert de Groot , Reacties: 2
06 feb 2012
- , Activity map aanmaken , (Forumonderwerp) , Samuël2013
- , Weergave forums beperken tot containers die dan uitklapbaar zijn , (Forumonderwerp) , vdwaetsy
- , - , (Forumonderwerp) , karel3s
- , Tokens weergeven in een node , (Forumonderwerp) , Mindhunter , Reacties: 1
05 feb 2012
- , content type, manage fields, veld tonen naar gelang van item selected , (Forumonderwerp) , LLMM
hansrossel
5 september, 2010 - 22:18
Permalink
Afhankelijk van je voorkeur
Afhankelijk van je voorkeur kun je dit ofwel op theming niveau oplossen met de views-exposed-form--viewname--displayname.tpl.php template (klik op de "theme information" link in je view) of in template.php werken met THEMENAME_preprocess_views_exposed_form(&$vars, $hook).
Ofwel kun je inderdaad hook_form_alter gebruiken op de views-exposed-form in een custom module.
Hans
KOBA
gerrit1978
6 september, 2010 - 18:35
Permalink
Ik krijg er een punthoofd
Ik krijg er een punthoofd van!
Bedoeling is dus effectief dit met een custom module te doen. Dit is de hook_form_alter:
/**
* Implementation of hook_form_alter()
*/
function viewsbetterfilter_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'views_exposed_form') {
$form['date_filter']['min']['#type'] = $form['date_filter']['max']['#type'] = "select";
$form['date_filter']['min']['#options'] = $form['date_filter']['max']['#options'] = array('2010|1' => '2010 - jan', '2010|2' => '2010 - feb');
$form['date_filter']['min']['#size'] = $form['date_filter']['max']['#size'] = 1;
$form['#submit'][] = 'viewsbetterfilter_submit';
}
}
Ik herschrijf de opties in de dropdown dus naar één enkele waarde. Mijn bedoeling is in de submit functie viewsbetterfilter_submit die values uit $form dan te her-herschrijven naar de
oorspronkelijke - door de Views verwachte - 2 parameters: [min][month] en [min][year] (zelfde voor max). Uiteindelijk is het dan de bedoeling om een redirect te doen naar de juiste URL met die waarden erin.
Maar als ik bij wijze van test - met enkel de bovenstaande code in de module geïmplementeerd, manueel navigeer naar (bvb.)
www.mijndomein.com/home?date_filter[min][year]=2010&date_filter[min][month]=6&date_filter[max][year]=2013&date_filter[max][month]=12
dan krijg ik de blijkbaar mysterieuze error "Er is een ongeldige keuze vastgesteld. Neem contact op met de websitebeheerder." (in het Engels: An illegal choice has been detected. Please contact the site administrator.)
Alle hulp welkom!