Se nell'hook_form_alter() di un modulo vengono chiamate le funzioni drupal_add_js() oppure drupal_add_css() per caricare dei Javascript o dei CSS nella form di creazione/modifica di un nodo, e la form non viene validata correttamente, all'apertura successiva non vengono caricati i Javascript e i CSS.
Il problema si può risolvere aggiungendo alla form il parametro #after_build e spostando le chiamate a drupal_add_js() e drupal_add_css() nella funzione da esso definita. In questo modo l'hook_form_alter() contiene esclusivamente gli elementi form, mentre nel #after_build ci sarà solo il caricamento dei Javascript e dei CSS.
Installando il modulo date_popup presente nel pacchetto date si può creare un elemento calendario per inserire date. Basta assegnare ad una normale casella di testo il tipo date_popup, ad esempio:
$form['data_inizio'] = array(
'#type' => 'date_popup',
'#title' => 'Data iniziale',
'#default_value' => $values['data_inizio'],
'#date_format' => 'd/m/Y',
'#size' => 13,
);
Cliccando dentro la casella viene fuori un widget calendario per scegliere la data.
Bisogna fare attenzione a NON INSERIRE la proprietà #maxlength, altrimenti verrà fuori un errore come questo:
warning: mb_strlen() expects parameter 1 to be string, array given in D:\localhost\drupal\includes\unicode.inc on line 410.
L'errore è dovuto al fatto che il modulo date_popup trasforma il valore della data in un array, quindi il controllo sulla lunghezza massima fatto durante la validazione della form si trova a eseguire la funzione drupal_strlen su un array anziché su una stringa, e genera quell'errore.
Se l'opzione di visualizzazione dei file nascosti in Explorer è disattivata o non funziona, si possono provare questi due metodi per risolvere il problema:
Può capitare di non riuscire ad accedere correttamente alle Connessioni di rete, ad esempio trovare tutte le connessioni sparite, oppure creando una connessione Internet si trovano le opzioni Connessione tramite modem remoto e Connessione a banda larga con immissione di nome utente e password disattivate.
Per risolvere il problema bisogna innanzitutto verificare che il servizio Connection Manager di Accesso remoto sia attivato, seguendo questi passi:
Se avviando il servizio Connection Manager di Accesso remoto viene fuori il messaggio di errore Errore 126: impossibile trovare il modulo specificato, seguire questi passi:
Se per qualcuno di questi comandi viene fuori un errore Impossibile trovare il modulo specificato, è assai probabile che questi file non siano presenti nella directory \Windows\System32. Copiarli sul proprio PC da un altro PC dotato dello stesso sistema operativo, oppure ripristinarli dal CD di installazione di Windows XP seguendo questi passi:
A questo punto rieseguire il comando regsvr32 per i file copiati, e riprovare ad attivare il servizio Connection Manager di Accesso remoto. Una volta attivato, la pagina Connessioni di rete sarà di nuovo accessibile regolarmente.
Nelle versioni di PHP 5.2.x e successive può capitare di trovare NULL come risultato di un'espressione regolare (preg_replace, preg_match, ecc...) applicata a stringhe molto lunghe. Questo problema è dovuto ad un limite troppo restrittivo nella direttiva pcre.backtrack_limit. Il valore di default è 100000, quindi riesce a gestire stringhe lunghe fino a 100000 caratteri. È opportuno aumentare questo limite, all'occorrenza anche a 20MB. Analoga modifica può essere fatta per la direttiva pcre.recursion_limit.
Le modifiche possono essere fatte nel file php.ini:
pcre.backtrack_limit=20971520
pcre.recursion_limit=20971520
oppure tramite ini_set():
ini_set('pcre.backtrack_limit', 20971520);
ini_set('pcre.recursion_limit', 20971520);
