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

Ieri stavo lavorando ad un nuovo progetto basato su Drupal. Dopo aver creato il tema, mi sono messo a scrivere il modulo base per la gestione dei contenuti. Finito di scrivere il codice, installo il modulo per testare che tutto funzioni correttamente. Dopo l'attivazione il FE sembra un cimitero: sono spariti tutti i blocchi e le sessioni sono impazzite. Cerco per ore e ore nel codice qualche errore di sintassi ma niente. Ebbene ci ho messo 5 ore per ricordarmi che...Il nome di un modulo non può essere uguale a quello...

Ho provato Views 2 per Drupal6, ma onestamente è ancora lontanto dall'essere definito stabile! Nella nuova versione del blog volevo mettere in evidenza un articolo fra tutti quelli inviati. Non avendo a disposizione views, ho creato un blocco con del codice php scritto ad hoc. In particolare volevo estrarre, il titolo, le prime 30 parole del sommario (senza le eventuali immagini presenti) e un link "leggi tutto" al nodo selezionato.

nuovo sito screenshotDopo 3 mesi di duro lavoro (spesso notturno) ho messo online la nuova versione del mio blog. E' stata dura trasferire tutto da Wordpress a Drupal ma ne è valsa la pena. Credo rimanga qualche piccolo baco qua e la ma lo correggerò col tempo. Ho inserito anche una nuova galleria fotografica in flash (Portfolio) ed anche una migliore visualizzazione dei dati meteo in testa alla pagina grazie all'utilizzo di jQuery. In questa prima versione ho...

Logo del sito di norabergChe bello poter lavorare solo con html e grafica! Capita sempre più raramente, di solito si è sempre alla prese con incastri, contenuti strutturati testi troppo lunghi, redazioni che non sanno cosa sia il web e giornate di formazione sul concetto di "abstract". Quando fai tutto a manina, puoi disporre tutto con la massima libertà, e vieni...

screenshot del tema Disponibile per il download Marinelli per Drupal 6. Ho colto l'occasione dell'aggiornamento per introdurre alcune funzionalità e apportare qualche miglioramento. Tra le novità il banner a rotazione (come quello che vedete su questo blog), i secondary links...

screenshot del templateSono rimasto piacevolmente stupito dalle potenzialità di NiftyCube. Grazie a questo javascript è possibile realizzare angoli arrotondati per qualsiasi elemento html. Il codice eredita le dichiarazioni di stile dell'elemento al quale viene applicato; di conseguenza è possibile...