stampa questa pagina feed di signalkuppe.com/

You are hereInput type image nella search box di Drupal

Input type image nella search box di Drupal

By admin - Posted on 29 October 2009

Spesso per rendere un layout più accattivante conviene utilizzare un input type image al posto del classico bottone del submit, specialmente per la form di ricerca del sito. Drupal di default propone il classico submit per tutte le sue form; vediamo come utilizzare un' immagine per il submit della form di ricerca. Esistono diversi modi, il più pulito forse è quello di modificare la form attraverso un piccolo modulo scritto apposta per questa necessità. Un modulo non è altro che una cartella contenente due files

  • Un file .info con alcune informazioni riguardanti il modulo
  • Un file .module con la logica del modulo

Supponiamo di voler creare un modulo chiamato "cercaimmagine":
la logica del file .module, che in questo caso dovrà chiamarsi cercaimmagine.module è semplicissima

function cercaimmagine_form_alter(&$form, $form_state, $form_id) {
 
 switch ($form_id) {
 
          //  form di ricerca
 
          case 'search_theme_form':
 
           $form['submit']['#type'] = 'image_button';
           $form['submit']['#id'] = 'bottoneaccedi';
           $form['submit']['#attributes'] = array(
 
          // immagine del submit
 
          'src' => base_path().drupal_get_path('theme','miotema').'/img/cerca.png',
          'alt' => t('search')
 
          );
 
        break;  
 
      }
}

Il file cercaimmagine.info serve solo per comunicare a Drupal l'esistenza del modulo stesso

name = cercaimmagine
description = input type image
core = 6.x

Abbiamo utilizzato l'hook form alter per modificare l'output di una form specifica, ovvero quella di ricerca, cambiando la tipologia dell'input submit. Chiaramente è necessario specificare quale immagine utilizzare come bottone di invio della form. In questo caso abbiamo detto a Drupal di utilizzare un'immagine "cerca.png" che risiede nella sottocartella "img" del tema "miotema". L'id della form da modificare lo trovate nel sorgente della pagina sottoforma di id della form

<form action="/" accept-charset="UTF-8" method="post" id="search-theme-form">

Dobbiamo solo ricordarci di cambiare il simbolo "-" con "_". Possiamo quindi utilizzare questo modulo per apportare tutte le modifiche che ci servono alla varie form di Drupal.



Anonymous's picture

non mi visualizza piu nessun bottone di submit di nessuna form del sito, quindi non posso piu loggarmi!

mi da questo errore

* warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'phptemplate_search_theme_form' was given in /home/mhd-01/www.img-dev.com/htdocs/includes/theme.inc on line 656.
* warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'phptemplate_button' was given in /home/mhd-01/www.img-dev.com/htdocs/includes/theme.inc on line 656.
* warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'phptemplate_button' was given in /home/mhd-01/www.img-dev.com/htdocs/includes/theme.inc on line 656.
* warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'phptemplate_button' was given in /home/mhd-01/www.img-dev.com/htdocs/includes/theme.inc on line 656.

Anonymous's picture

It is very interesting article! Regards from Minsk (Belarus)

Post correlati

Non chiedetemi perchè ma mi è capitato di dover concatenare due viste in modo da passare i risultati di una vista come argomento di un'altra. In particolare dovevo passare il nid di un nodo come argomento della seconda vista e mostrare quindi il risultato della seconda vista nella vista di partenza. Non è complicato, basta utilizzare la funzione views_embed_view

Un trucchetto semplice ma secondo me molto utile per escludere da una vista dei nodi restituiti da una seconda vista. Il procedimento è molto semplice: fra gli argomenti della vista basta aggiungere "node: nid", e impostare questi parametri

Prima Drupalcon in una città a dir poco fantastica. Sabato riunione del core developer summit guidata da Kieran Lal vestito da monaco. Interessante il nuovo sistema di testing del codice, sarà introdotta una nuova funzionalità che consentirà di testare al volo le patch. Anche Javascript rienterà nel sistema di testing. Lato Front End si cercherà di creare delle linee guida di sviluppo delle UI, in modo da rendere il più possibile coerente l...

Purtroppo molti siti ospitati su Aruba, compreso questo basato su Drupal (aggiornato all'ultima versione), sono stati infettati. Il problema riguarda l'inserimento di uno script nel file index.php. Per risolvere il problema è necessario rimuovere lo script dal file e in seguito far riconsiderare il sito da google attraverso il pannello di controllo del servizio Strumenti per webmaster. Per evitare di incappare di nuovo in questo...

Da poco ho iniziato lo sviluppo della nuova versione del tema Marinelli per drupal. Uno dei miei obiettivi è quello di scrivere un codice conforme ai nuovi standard di marcatura, che segua il più possibile le indicazioni di accessibilità fornite dalle WCAG2. Come sappiamo l'uso delle intestazioni è di fondamentale importanza per strutturare il contenuto ed aiuta moltissimo nell'indicizzazione del sito...

icona che rappresenta il pluginLa nuova versione del noto Framework javascript (la 1.3) ha introdotto l'interessantissimo metodo "live()" per gestire gli eventi su gli elementi presenti e generati del DOM. Ho testato questo metodo per un mini-applicativo che dovevo realizzare; quello che mi serviva era una tabella nella quale doveva essere possibile editare al volo alcuni dei suoi valori senza ricaricare...