Giovedi 25 Luglio 2013 14:35:10
Ultima modifica di bebabi34 (Giovedi 26 Dicembre 2013 11:02:55)
Re: date e ore in formato umano yyyymmddhhiiss
in attesa che diventi possibile inserire eventi con data impostata manualmente, anche futura, segnalo una piccola aggiunta che potrebbe essere comoda (per me lo è).
1. aggiungere uno script personalizzato in /include/phpfunctions/ con la funzione di conversione data dal formato iso8601 a quello unix. nel mio caso il file si chiama tounix.php e contiene:
<?php if (strpos($_SERVER['PHP_SELF'], "tounix.php")) die();
# restituisce il timestamp unix di una data leggibile iso8601. function tounix($data) { # se è iso8601 converte, altrimenti (anche se zero o nullo) restituisce lo stesso valore di input. if (strpos($data, "T")) { $anno = intval(substr($data,0,4)); $mese = intval(substr($data,4,2)); $giorno = intval(substr($data,6,2)); # qui in mezzo c'è la T, salto una posizione. $ora = intval(substr($data,9,2)); $minuto = intval(substr($data,11,2)); $secondo = intval(substr($data,13,2)); $data = mktime($ora,$minuto,$secondo,$mese,$giorno,$anno); } return $data; } ?>
2. usare questa nuova funzione per ordinare correttamente le notizie nei due formati. faccio riferimento a flatnuke-3.1.1 (o 3.1.2 in sviluppo, per altre versioni potrebbe cambiare il numero di riga e non garantisco un funzionamento corretto). nel file /flatnews/include/news_functions.php aggiungere dopo la riga 1406:
$time = str_replace($search,$replace,basename($news)); $time = tounix($time);
3. ora possiamo creare manualmente i file con nome in formato iso8601 (oppure crearli da fn come notizie nascoste e poi rinominarli manualmente in formato iso8601 (ad esempio 20130815T150000.fn.php conterrà dettagli sul prossimo concerto di ferragosto).
4. cancellare manualmente il file newslist.php della sezione in cui abbiamo inserito le nostre notizie personalizzate. al primo accesso alla sezione verrà ricreato con l'ordine corretto dei file nei due formati. c'è ancora un problema con eventi antecedenti il 1970 (che avrebbero timestamp unix negativo e quindi non utilizzabile come chiave per l'array delle notizie). se mi viene in mente un modo per risolvere, lo farò.
5. fatto. ora avete anche le notizie col nome file leggibile (e quindi facilmente personalizzabile) ordinate correttamente come quelle create in flatnuke. sbizzarritevi! fate attenzione che notizie con data futura verranno mostrate come ultime notizie (è un aspetto che devo ancora correggere...). consiglio di lasciarle nascoste o di utilizzarle in una sezione notizie apposita (es. eventi futuri, ...)
|