Creare form di ricerca personalizzati, form di redirect
Ciao a tutti, ho dei problemi a comprendere come sviluppare form personalizzati da inserire come blocco all'interno del sito.
I problemi che devo risolvere sono questi :
1) Creare un form , visualizzarlo come combobox(select HTML) al cui interno siano contenuti x indirizzi web , ad esempio google.it, google.com,google.fr,..... (uno per ogni Option della select)
Questo form non dovrà fare altro che reindirizzare all'indirizzo selezionato l'utente sull'evento onchange() ;
Premetto che sto lavorando in un sito di sviluppo configurato per il multilanguage al momento solo per 2 lingua, quando andrà in produzione saranno 4
in html una cosa del genere
<select id="qualcosa" class="qualcosaltro" onchange="javascript:document.location.href=$this.val();">
<option id="" class="" >google.it</option>
<option id="" class="" >google.com</option>
<option id="" class="" >google.fr</option>
</select>
Con la possibilità di escludere dalla visualizzazione il link con estensione uguale all'attuale, per essere più chiaro nel sito xxxxx.it non voglio visualizzare l'option google.it e così via per le altre lingue e
recuperare i vari indirizzi tipo da un vocabolario di tassonomia o un'altra struttura dati in modo da rendere riutilizzabile il tutto in caso di sviluppi futuri (esempio aggiunta altre lingue).
2) Creare 2 combo di ricerca che sull'onchange portino ad una pagina (creata da una vista) che filtri i risultati in base al valore selezionato (qualche idea o guida su come filtrare una vista da un argomento passato da questa combo).
Grazie mille a tutti
Michele
Risposte
Ciao, potresti utilizzare
Ciao, potresti utilizzare qualcosa come i menù rapidi di Views. Questo plugin di visualizzazione ti permette di creare jump menù simili a quelli che si vedo sui forum classici per saltare da un thread ad un altro. Ti gestisce anche l'evento onchange e il tutto senza scrivere una riga di codice. Per il secondo punto, non so se intendi creare dei filtri dropdown dipendenti l'uno dall'altro: in questo caso potresti provare http://drupal.org/project/views_dependent_filters.
Grazie mille, per quanto
Grazie mille, per quanto riguarda il primo problema sono riuscito a risolverlo creando un vocabolario ed aggiungendo un campo link sono riuscito a generare il dropdown desiderato come mi hai gentilemnte consigliato.
Per il secondo problema sono ancora in alto mare , ho letto sommariamente il modulo che mi hai segnalato, ma devo ancora guardarlo nel dettaglio.
Quando riuscirò a risolvere di sicuro lo posto. Intanto se qualcuno ha già affrontato lo stesso problema non esiti a postare
Grazie ancora
Michele
Ti posto una vista da
Ti posto una vista da importare che usa il modulo suddetto (deve essere attivo): implica che nel sistema esista almeno il contenuto di tipo "article" che Drupal crea durante l'installazione. Calcola che è un esempio semplice e veloce in cui la vista espone il filtro "tipo" e quando selezioni il tipo "Articolo" appare un ulteriore campo di ricerca sul titolo.
$view = new view();
$view->name = 'filtri_dipendenti';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'filtri_dipendenti';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'filtri_dipendenti';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['use_more_text'] = 'altro';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['submit_button'] = 'Applica';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Ripristina';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Ordina per';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'Disc';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '10';
$handler->display->display_options['pager']['options']['expose']['items_per_page_label'] = 'Voci per pagina';
$handler->display->display_options['pager']['options']['expose']['items_per_page_options_all_label'] = '- Tutto -';
$handler->display->display_options['pager']['options']['expose']['offset_label'] = 'Scostamento';
$handler->display->display_options['pager']['options']['tags']['first'] = '« prima';
$handler->display->display_options['pager']['options']['tags']['previous'] = '‹ precedente';
$handler->display->display_options['pager']['options']['tags']['next'] = 'seguente ›';
$handler->display->display_options['pager']['options']['tags']['last'] = 'ultima »';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'node';
/* Campo: Contenuto: Titolo */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
/* Criterio di ordinamento: Contenuto: Data di inserimento */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
/* Criterio del filtro: Globale: Dependent filter */
$handler->display->display_options['filters']['views_dependent_filter']['id'] = 'views_dependent_filter';
$handler->display->display_options['filters']['views_dependent_filter']['table'] = 'views';
$handler->display->display_options['filters']['views_dependent_filter']['field'] = 'views_dependent_filter';
$handler->display->display_options['filters']['views_dependent_filter']['group'] = 1;
$handler->display->display_options['filters']['views_dependent_filter']['controller_filter'] = 'type';
$handler->display->display_options['filters']['views_dependent_filter']['controller_values'] = array(
'article' => 'article',
'blog' => 0,
'cerchia' => 0,
'contenuto_di_gruppo' => 0,
'page' => 0,
'book' => 0,
'panel' => 0,
'poll' => 0,
'tipo_di_gruppo' => 0,
'webform' => 0,
);
$handler->display->display_options['filters']['views_dependent_filter']['dependent_filters'] = array(
'title' => 'title',
'type' => 0,
);
/* Criterio del filtro: Contenuto: Pubblicato */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Criterio del filtro: Contenuto: Tipo */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['group'] = 1;
$handler->display->display_options['filters']['type']['exposed'] = TRUE;
$handler->display->display_options['filters']['type']['expose']['operator_id'] = 'type_op';
$handler->display->display_options['filters']['type']['expose']['label'] = 'Tipo';
$handler->display->display_options['filters']['type']['expose']['operator'] = 'type_op';
$handler->display->display_options['filters']['type']['expose']['identifier'] = 'type';
$handler->display->display_options['filters']['type']['expose']['remember_roles'] = array(
2 => '2',
1 => 0,
3 => 0,
);
/* Criterio del filtro: Contenuto: Titolo */
$handler->display->display_options['filters']['title']['id'] = 'title';
$handler->display->display_options['filters']['title']['table'] = 'node';
$handler->display->display_options['filters']['title']['field'] = 'title';
$handler->display->display_options['filters']['title']['operator'] = 'contains';
$handler->display->display_options['filters']['title']['exposed'] = TRUE;
$handler->display->display_options['filters']['title']['expose']['operator_id'] = 'title_op';
$handler->display->display_options['filters']['title']['expose']['label'] = 'Titolo';
$handler->display->display_options['filters']['title']['expose']['operator'] = 'title_op';
$handler->display->display_options['filters']['title']['expose']['identifier'] = 'title';
$handler->display->display_options['filters']['title']['expose']['remember_roles'] = array(
2 => '2',
1 => 0,
3 => 0,
);
/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['defaults']['hide_admin_links'] = FALSE;
$handler->display->display_options['path'] = 'filtri-dipendenti';
$handler->display->display_options['menu']['type'] = 'normal';
$handler->display->display_options['menu']['title'] = 'Test View';
$handler->display->display_options['menu']['name'] = 'main-menu';
$translatables['filtri_dipendenti'] = array(
t('Master'),
t('filtri_dipendenti'),
t('altro'),
t('Applica'),
t('Ripristina'),
t('Ordina per'),
t('Asc'),
t('Disc'),
t('Voci per pagina'),
t('- Tutto -'),
t('Scostamento'),
t('« prima'),
t('‹ precedente'),
t('seguente ›'),
t('ultima »'),
t('Tipo'),
t('Titolo'),
t('Page'),
);