alby
Member Support Team
Moderator
Power Poster
   
Karma: 99
Offline
Posts: 2126
Location: Ferrara, Italy
My kids
|
 |
« on: 14 Feb 2008, 12:12 » |
|
Ho cercato un po' nel forum, ma non mi sembra che questa domanda sia mai stata formulata.
E' possibile visualizzare tutte le news di un periodo specifico?
Ad esempio tutte le news avente data di inizio pubblicazione nel periodo 01/02/2008 - 29/02/2008? Ossia le news di un mese specifico?
No, non mi risulta Alby
|
|
|
|
« Last Edit: 18 Feb 2008, 05:33 by alby »
|
Logged
|
|
|
|
blast2007
Forum Member
Karma: 1
Offline
Posts: 163
Location: Italy
|
 |
« Reply #1 on: 15 Feb 2008, 05:26 » |
|
No, non mi risulta
Se pensi che possa interessare posto la modifica che sono riuscito ad eseguire. In particolare ho aggiunto due parametri: startperiod e endperiod es. {news category="blabla" startperiod="01/01/2008" endperiod="31/01/2008"} Ciao blast
|
|
|
|
« Last Edit: 15 Feb 2008, 05:30 by blast2007 »
|
Logged
|
|
|
|
alby
Member Support Team
Moderator
Power Poster
   
Karma: 99
Offline
Posts: 2126
Location: Ferrara, Italy
My kids
|
 |
« Reply #2 on: 15 Feb 2008, 10:16 » |
|
Se pensi che possa interessare posto la modifica che sono riuscito ad eseguire.
In particolare ho aggiunto due parametri: startperiod e endperiod
es. {news category="blabla" startperiod="01/01/2008" endperiod="31/01/2008"}
Bello  postalo anche nei tracker patch di News Alby
|
|
|
|
|
Logged
|
|
|
|
blast2007
Forum Member
Karma: 1
Offline
Posts: 163
Location: Italy
|
 |
« Reply #3 on: 15 Feb 2008, 10:31 » |
|
Ecco le modifiche che ho fatto ai file di CMSMS per la nuova funzionalità. Occorre modificare 3 files. Primo file: /module/News/action.default.phpdopo le righe 102 $query1 .= ") AND "; 103 $query2 .= ") AND "; 104 }
aggiungere // start mod "params period" added by blast if (isset($params["startperiod"]) && isset($params["endperiod"]) ) { $query1 .= "(('" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 3, 2), substr($params["startperiod"], 0, 2), substr($params["startperiod"], 6, 4)) ) . "' < " . "mn.news_date" . ")" . " AND " . "(" . "mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 3, 2), substr($params["endperiod"], 0, 2), substr($params["endperiod"], 6, 4)) ) ."')) AND "; $query2 .= "((" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 3, 2), substr($params["startperiod"], 0, 2), substr($params["startperiod"], 6, 4)) ) . " < " . "mn.news_date" . ")" . " AND " . "(" . "mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 3, 2), substr($params["endperiod"], 0, 2), substr($params["endperiod"], 6, 4)) ) ."')) AND "; } // end mod "params period" added by blast
Secondo file: /module/News/News.module.phpdopo la riga 88 $this->CreateParameter('action','default',$this->Lang('helpaction'));
aggiungere $this->CreateParameter('startperiod','default',$this->Lang('helpstartperiod')); //added by blast $this->CreateParameter('endperiod','default',$this->Lang('helpendperiod')); //added by blast
e dopo la riga 124 $this->SetParameterType('inline',CLEAN_STRING);
aggiungere $this->SetParameterType('startperiod',CLEAN_STRING); //added by blast $this->SetParameterType('endperiod',CLEAN_STRING); //added by blast
Terzo file: /module/News/lang/en_US.phpdopo la riga 341 $lang['helpaction'] = 'Override the default action. Possible values are \'default\' to display the summary view, and \'fesubmit\' to display the frontend form for allowing users to submit news articles on the front end.';
Aggiungere $lang['helpstartperiod']='Display only a news period. Start date of period formatted as dd/mm/yyyy'; $lang['helpendperiod']='Display only a news period. End date of period formatted as dd/mm/yyyy';
Bisognerebbe editare anche tutti i files delle lingue aggiungendo le descrizioni dei due tags nelle altre lingue. Ovviamente il controllo della formattazione potrebbe essere migliorato per altri paesi dove non si usa il formato 'dd/mm/yyyy'. Se hai dei suggerimenti possiamo integrarli e poi postare la release finale nei tracker patch (magari se puoi mi aiuti a farlo che non l'ho mai fatto). Ciao e a presto blast
|
|
|
|
« Last Edit: 15 Feb 2008, 10:38 by blast2007 »
|
Logged
|
|
|
|
alby
Member Support Team
Moderator
Power Poster
   
Karma: 99
Offline
Posts: 2126
Location: Ferrara, Italy
My kids
|
 |
« Reply #4 on: 15 Feb 2008, 10:51 » |
|
Ti ho linkato da un post di oggi che chiedeva una funzionalità di questo genere. Ovviamente il controllo della formattazione potrebbe essere migliorato per altri paesi dove non si usa il formato 'dd/mm/yyyy'.
E' un pò pericoloso il formato italiano (dd/mm/YYYY) Conviene sempre utilizzare il formato ISO: YYYY-MM-DD così da non aver problemi con le lingue // start mod "params period" added by blast if (isset($params["startperiod"]) && isset($params["endperiod"]) ) { $query1 .= "(('" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 3, 2), substr($params["startperiod"], 0, 2), substr($params["startperiod"], 6, 4)) ) . "' < " . "mn.news_date" . ")" . " AND " . "(" . "mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 3, 2), substr($params["endperiod"], 0, 2), substr($params["endperiod"], 6, 4)) ) ."')) AND "; $query2 .= "((" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 3, 2), substr($params["startperiod"], 0, 2), substr($params["startperiod"], 6, 4)) ) . " < " . "mn.news_date" . ")" . " AND " . "(" . "mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 3, 2), substr($params["endperiod"], 0, 2), substr($params["endperiod"], 6, 4)) ) ."')) AND "; } // end mod "params period" added by blast
Secondo me si potrebbero separare e non obbligatori entrambi: - solo startperiod: tutte le news > di startperiod - solo endperiod: tutte le news < di endperiod - entrambi: le news nell'intervallo EDIT: da verificare le parentesi // start mod "params startperiod" added by blast if (isset($params["startperiod"])) { $query1 .= "('" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 3, 2), substr($params["startperiod"], 0, 2), substr($params["startperiod"], 6, 4)) ) . "' < " . "mn.news_date" . ") AND "; $query2 .= "('" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 3, 2), substr($params["startperiod"], 0, 2), substr($params["startperiod"], 6, 4)) ) . "' < " . "mn.news_date" . ") AND "; } // end mod "params startperiod" added by blast
// start mod "params endperiod" added by blast if (isset($params["endperiod"])) { $query1 .= "(mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 3, 2), substr($params["endperiod"], 0, 2), substr($params["endperiod"], 6, 4)) ) ."')) AND "; $query2 .= "(mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 3, 2), substr($params["endperiod"], 0, 2), substr($params["endperiod"], 6, 4)) ) ."')) AND "; } // end mod "params endperiod" added by blast
Alby
|
|
|
|
« Last Edit: 15 Feb 2008, 11:15 by alby »
|
Logged
|
|
|
|
blast2007
Forum Member
Karma: 1
Offline
Posts: 163
Location: Italy
|
 |
« Reply #5 on: 15 Feb 2008, 11:12 » |
|
Ti ho linkato da un post di oggi che chiedeva una funzionalità di questo genere.
Ottimo. Speriamo serva anche ad altri. Conviene sempre utilizzare il formato ISO: YYYY-MM-DD .... Secondo me si potrebbero separare e non obbligatori entrambi: - solo startperiod: tutte le news > di startdate - solo endperiod: tutte le news < di enddate - entrambi: le news nell'intervallo
Lunedi sistemo il codice per effettuare le modifiche secondo le tue utili osservazioni. Poi al limite ti scrivo un PM per avere le info riguardo al post nel tracker. Ciao e buon w/e blast
|
|
|
|
« Last Edit: 15 Feb 2008, 11:57 by blast2007 »
|
Logged
|
|
|
|
blast2007
Forum Member
Karma: 1
Offline
Posts: 163
Location: Italy
|
 |
« Reply #6 on: 18 Feb 2008, 05:09 » |
|
Ecco la versione finale. Le modifiche sono state testate ovviamente. File: /module/News/action.default.php// ** start ** Module News mod "period" added by blast2007 // All ISO Data format yyyy/mm/dd // You can use only one or two parameters together eg. // {news startperiod="2008/01/01" endperiod="2008/01/31"} // or // {news startperiod="2008/01/01"} //or // {news endperiod="2008/01/31"} // if (isset($params["startperiod"]) && isset($params["endperiod"]) ) { $query1 .= "(('" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 5, 2), substr($params["startperiod"], 8, 2), substr($params["startperiod"], 0, 4)) ) . "' < " . "mn.news_date" . ")" . " AND " . "(" . "mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 5, 2), substr($params["endperiod"], 8, 2), substr($params["endperiod"], 0, 4)) ) ."')) AND "; $query2 .= "((" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 5, 2), substr($params["startperiod"], 8, 2), substr($params["startperiod"], 0, 4)) ) . " < " . "mn.news_date" . ")" . " AND " . "(" . "mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 5, 2), substr($params["endperiod"], 8, 2), substr($params["endperiod"], 0, 4)) ) ."')) AND "; } elseif (isset($params["startperiod"])) { $query1 .= "('" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 5, 2), substr($params["startperiod"], 8, 2), substr($params["startperiod"], 0, 4)) ) . "' < " . "mn.news_date" .") AND "; $query2 .= "('" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 5, 2), substr($params["startperiod"], 8, 2), substr($params["startperiod"], 0, 4)) ) . "' < " . "mn.news_date" .") AND "; } elseif (isset($params["endperiod"])) { $query1 .= "(" . "mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 5, 2), substr($params["endperiod"], 8, 2), substr($params["endperiod"], 0, 4)) ) ."') AND "; $query2 .= "(" . "mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 5, 2), substr($params["endperiod"], 8, 2), substr($params["endperiod"], 0, 4)) ) ."') AND "; } // ** end ** Module News mod "period" added by blast2007
x Alby: provo a postare su patch tracker...Se ho problemi posso chiederti aiuto? Ciao blast
|
|
|
|
« Last Edit: 18 Feb 2008, 05:21 by blast2007 »
|
Logged
|
|
|
|
alby
Member Support Team
Moderator
Power Poster
   
Karma: 99
Offline
Posts: 2126
Location: Ferrara, Italy
My kids
|
 |
« Reply #7 on: 18 Feb 2008, 05:37 » |
|
x Alby: provo a postare su patch tracker...Se ho problemi posso chiederti aiuto?
Ok, io nel frattempo ho aperto un nuovo topic e combinato un pò di casino con lo "split" perdendo il primo post Alby
|
|
|
|
« Last Edit: 18 Feb 2008, 06:42 by alby »
|
Logged
|
|
|
|
blast2007
Forum Member
Karma: 1
Offline
Posts: 163
Location: Italy
|
 |
« Reply #8 on: 18 Feb 2008, 07:28 » |
|
Ok, io nel frattempo ho aperto un nuovo topic e combinato un pò di casino con lo "split" perdendo il primo post Alby
Nessun problema per questo. Invece x i patch tracker: Bene o male ho capito come postare le diff su SVN. Non ho ben capito invece come mantenere localmente una release trunk funzionante, (comprensiva di moduli aggiuntivi) Ossia: tenendo aggiornato con SVN la trunk version, ho in locale i files con tutte le ultime modifiche implementate dai developers fino a quel momento. A questo punto come faccio, senza alterare i files locali dell'archivio SVN a far "girare" una release locale trunk di CMSMS? Se uso la stessa directory, una volta eseguito "release-cleanup.sh" perdo tutti i riferimenti SVN, quindi come faccio a testare in locale una modifica appena eseguita? Sono un po' confuso...  Forse si potrebbe scrivere un piccolo howto per i developers, in italiano, poichè anche quelli in inglese sono un po' frammentati. Ciao
|
|
|
|
|
Logged
|
|
|
|
alby
Member Support Team
Moderator
Power Poster
   
Karma: 99
Offline
Posts: 2126
Location: Ferrara, Italy
My kids
|
 |
« Reply #9 on: 18 Feb 2008, 08:39 » |
|
Non ho ben capito invece come mantenere localmente una release trunk funzionante, (comprensiva di moduli aggiuntivi) Ossia: tenendo aggiornato con SVN la trunk version, ho in locale i files con tutte le ultime modifiche implementate dai developers fino a quel momento. A questo punto come faccio, senza alterare i files locali dell'archivio SVN a far "girare" una release locale trunk di CMSMS? Se uso la stessa directory, una volta eseguito "release-cleanup.sh" perdo tutti i riferimenti SVN, quindi come faccio a testare in locale una modifica appena eseguita? Sono un po' confuso...  Forse si potrebbe scrivere un piccolo howto per i developers, in italiano, poichè anche quelli in inglese sono un po' frammentati. Si può anche fare comunque mon c'è una vera linea guida per una cosa del genere, conta sopratutto il "gusto" personale legato alle modalità operative. Nel mio caso ho un server (può essere benissimo in locale) in cui ho il trunk (in verità più trunk: 1.2X, 2.0 e l'ultima distribuzione) ed i moduli che mi interessano ed una cartella a fianco con le modifiche mie personali o che reputo buone per me. La struttura della cartella deve riflettere quella della distribuzione: se io modifico il file modules/News/action.default.php sarà presente il file con tutte le directory modules/News. Quando voglio una mia distribuzione completa personalizzata per aggiornamento o per test: - creo una directory temporanea - copio il trunk in questa directory - copio la cartella personalizzata in questa directory (va a sovrascrivere i file) [- nel mio caso copio anche un'altra directory per il multilang] - ripulisco il tutto (oltre a release-cleanup.sh io ripulisco di molti linguaggi) - comprimo in tar.bz2 la directory - cancello la directory temporanea In verità non c'è neanche bisogno di tenere il trunk (basta fare il download quando serve) l'importante è la tua cartella personale. Questa però deve essere continuamente aggiornata quando vengono modificati i file relativi (se no dopo un pò si perde il controllo). Per questo che io mantengo anche il trunk: con l'update si vedono subito quali files sono stati modificati dall'ultima volta e quindi vedo subito se devo aggiornare qualcosa o meno Alby
|
|
|
|
|
Logged
|
|
|
|
alby
Member Support Team
Moderator
Power Poster
   
Karma: 99
Offline
Posts: 2126
Location: Ferrara, Italy
My kids
|
 |
« Reply #10 on: 18 Feb 2008, 08:44 » |
|
if (isset($params["startperiod"]) && isset($params["endperiod"]) ) { $query1 .= "(('" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 5, 2), substr($params["startperiod"], 8, 2), substr($params["startperiod"], 0, 4)) ) . "' < " . "mn.news_date" . ")" . " AND " . "(" . "mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 5, 2), substr($params["endperiod"], 8, 2), substr($params["endperiod"], 0, 4)) ) ."')) AND "; $query2 .= "((" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 5, 2), substr($params["startperiod"], 8, 2), substr($params["startperiod"], 0, 4)) ) . " < " . "mn.news_date" . ")" . " AND " . "(" . "mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 5, 2), substr($params["endperiod"], 8, 2), substr($params["endperiod"], 0, 4)) ) ."')) AND "; } elseif (isset($params["startperiod"])) { $query1 .= "('" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 5, 2), substr($params["startperiod"], 8, 2), substr($params["startperiod"], 0, 4)) ) . "' < " . "mn.news_date" .") AND "; $query2 .= "('" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["startperiod"], 5, 2), substr($params["startperiod"], 8, 2), substr($params["startperiod"], 0, 4)) ) . "' < " . "mn.news_date" .") AND "; } elseif (isset($params["endperiod"])) { $query1 .= "(" . "mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 5, 2), substr($params["endperiod"], 8, 2), substr($params["endperiod"], 0, 4)) ) ."') AND "; $query2 .= "(" . "mn.news_date" . " < '" . strftime("%Y-%m-%d %T", mktime(0, 0, 0, substr($params["endperiod"], 5, 2), substr($params["endperiod"], 8, 2), substr($params["endperiod"], 0, 4)) ) ."') AND "; } // ** end ** Module News mod "period" added by blast2007
Le parti in rosso sono inutili, le query nella prima chiamata sono le stesse della seconda ... si ripete quindi la condizione di WHERE, tipo: (...) AND (XXX < YYY) AND (XXX < YYY)Alby
|
|
|
|
« Last Edit: 18 Feb 2008, 08:48 by alby »
|
Logged
|
|
|
|
blast2007
Forum Member
Karma: 1
Offline
Posts: 163
Location: Italy
|
 |
« Reply #11 on: 18 Feb 2008, 09:13 » |
|
Le parti in rosso sono inutili, le query nella prima chiamata sono le stesse della seconda ... si ripete quindi la condizione di WHERE, tipo: (...) AND (XXX < YYY) AND (XXX < YYY)
Hai ragione, non pensavo all'accodamento... Ho modificato il codice. Invece per quanto riguarda l'invio dei file patch...si puo' inviare il file patch all'autore via mail o viene inviato dall'SVN? Io dovrei avere un account developer, ma non so se posso contribuire con il mio account ad altri progetti. Ciao
|
|
|
|
« Last Edit: 18 Feb 2008, 09:22 by blast2007 »
|
Logged
|
|
|
|
alby
Member Support Team
Moderator
Power Poster
   
Karma: 99
Offline
Posts: 2126
Location: Ferrara, Italy
My kids
|
 |
« Reply #12 on: 28 Mar 2008, 12:22 » |
|
Invece per quanto riguarda l'invio dei file patch...si puo' inviare il file patch all'autore via mail o viene inviato dall'SVN? Io dovrei avere un account developer, ma non so se posso contribuire con il mio account ad altri progetti.
Avevo capito male, pensavo che avessi postato il patch. In allegato c'è il diff contro la versione News 2.6.1 e 2.7 Rinominare il file a .zip ed estrarre il file patch I had misunderstood. I thought that you had posted the patch files. Attached there is the diff against the News 2.6.1 and 2.7 versions. Rename to .zip and uncompress for patch file Alby
|
|
|
« Last Edit: 25 Apr 2008, 07:03 by alby »
|
Logged
|
|
|
|
blast2007
Forum Member
Karma: 1
Offline
Posts: 163
Location: Italy
|
 |
« Reply #13 on: 28 Mar 2008, 12:27 » |
|
Grazie di nuovo
|
|
|
|
|
Logged
|
|
|
|
alby
Member Support Team
Moderator
Power Poster
   
Karma: 99
Offline
Posts: 2126
Location: Ferrara, Italy
My kids
|
 |
« Reply #14 on: 09 Apr 2008, 12:04 » |
|
Grazie di nuovo
Blast nel copia/incolla era rimasto un elseif (isset($params["endperiod"])) invece di if (isset($params["endperiod"])) Ho corretto il diff e verificato (ho variato anche l'help con yyyy/mm/dd) ma c'è da ripostare l'attach nel forge Alby
|
|
|
|
|
Logged
|
|
|
|
|