Salve a tutti,
ho un problema che non riesco a capire come risolverlo.
Sto sviluppando un semplice modulo con una pagina al cui interno viene inserito un form. Il form e lo scopo del modulo funzionano perfettamente, ma ho notato che se vado nella pagina d'amministrazione delle ricerche (admin/settings/search) ricevo questo errore:
Cannot use string offset as an array in /...../includes/form.inc on line 990
So per certo che si tratta di questo modulo perchè disabilitandolo la pagina d'amministrazione la vedo correttamente.
Qua sotto il sorgente del modulo:
<?php
//$Id$
/*
*
* Implementation of hook_perm();
*
*/
function gmap_proxi_perm(){
return array('access gmap');
}
/*
*
* Implementation of hook_menu();
*
*/
function gmap_proxi_menu(){
$items = array();
$items['proximity-search'] = array(
'title' => t('Testing Proximity'),
'page callback' => 'gmap_proxi_search',
'access arguments' => array('access gmap'),
'type' => MENU_CALLBACK,
);
return $items;
}
/*
*
* Menu callback
*
*/
function gmap_proxi_search(){
jmapping_get_js();
drupal_add_js(drupal_get_path('module', 'gmap_proxi').'/js/gmap_proxi.js');
drupal_add_css(drupal_get_path('module', 'gmap_proxi').'/gmap_proxi.css');
$output = drupal_get_form('gmap_proxi_location');
$output .= '<div id="map" style="width:400px; height:400px;"></div>';
$view = views_get_view('proximity');
$output .= '<div id="result">'.$view->execute_display('page_1', array()).'</div>';
return $output;
}
function gmap_proxi_location($form_state){
$form = array();
$form['proxi'] = array(
'#type' => 'fieldset',
'#title' => t('Location name'),
);
$form['proxi']['address'] = array(
'#type' => 'textfield',
'#title' => t('Location name'),
'#description' => t('Location name'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Search'),
);
return $form;
}
function gmap_proxi_location_submit($form, &$form_state){
drupal_set_messagge("OK");
}
?>
Visto che non è il primo modulo che realizzo (men che meno con un form!), non capisco quale sia il problema (con molta probabilità ce l'ho davanti agli occhi, ma visto la stanchezza di questi giorni non riesco a vederlo...).
Ringrazio anticipatamente chi mi da un piccolo aiuto!
;)
Strano, il codice (ad occhio) sembra a posto. Forse il nome del menù per il router 'proximity-search'? Prova con 'proximity/search' per esempio...
Più imparo, più dubito.
Urca, al nome del path non ci ho pensato! Magari è il search che lo può infastidire...
Domani verifico e ti so dire... Grazie per lo spunto!
;)
Ciao,
non era il path il problema ma ci sei andato vicino!!!
Il problema era il nome della funzione: gmap_proxi_search non gli piace (molto probabilmente è il search finale che non gli piace). Cambiando nome, ad esempio, in gmap_proxi_page funziona tutto perfettamente!
Incredibile, non si finisce proprio mai di imparare!
Grazie per l'aiuto!
;)
Bene - ci sono cascato anch'io...
Usando il nome
gmap_proxi_search
per la funzione avevi inavvertitamente creato unhook_search
!Per fortuna non c'è un
hook_page
...Più imparo, più dubito.