ecco il codice del file News.class.php:
<?php
class News {
var $news_id;
var $news_title;
var $news_url;
var $news_external;
var $news_description;
var $news_pos_id;
var $img_path;
var $newss = Array();
var $db;
function News(&$db) {
$this->db = $db;
$this->img_path = "/upload/";
$q = sprintf('select * from cms_news order by news_pos_id');
if($db->query($q))
{
while($db->next_record_assoc())
{
$this->newss[] = $db->Record;
}
}
return 1;
}//:-
function modNews($attributes,$news_lang,$news_id) {
if(!isset($news_id))
{
$this->ERROR = _("LINK ID NON DEFINITO");
return false;
}
$row = $this->getNews($news_id,$news_lang);
if(count($row) == 0)
{
return $this->addNews($attributes,$news_id,$news_lang);
}
if(count($attributes) > 0)
{
$fsep = "";
$str = "";
foreach($attributes as $k => $v)
{
if($k == 'news_date' && $v != '')
{
$patterns[] = "/(\d+) \/ (\w+) \/ (\d+)/";// - (\d+)\d+)/";
$replaces[] = "\$3\$2\$1";// \$4:\$5";
$patterns[] = "/(\d+)(Gennaio)(\d+)(.*)/";
$replaces[] = "\$1-01-\$3 \$4";
$patterns[] = "/(\d+)(Febbraio)(\d+)(.*)/";
$replaces[] = "\$1-02-\$3 \$4";
$patterns[] = "/(\d+)(Marzo)(\d+)(.*)/";
$replaces[] = "\$1-03-\$3 \$4";
$patterns[] = "/(\d+)(Aprile)(\d+)(.*)/";
$replaces[] = "\$1-04-\$3 \$4";
$patterns[] = "/(\d+)(Maggio)(\d+)(.*)/";
$replaces[] = "\$1-05-\$3 \$4";
$patterns[] = "/(\d+)(Giugno)(\d+)(.*)/";
$replaces[] = "\$1-06-\$3 \$4";
$patterns[] = "/(\d+)(Luglio)(\d+)(.*)/";
$replaces[] = "\$1-07-\$3 \$4";
$patterns[] = "/(\d+)(Agosto)(\d+)(.*)/";
$replaces[] = "\$1-08-\$3 \$4";
$patterns[] = "/(\d+)(Settembre)(\d+)(.*)/";
$replaces[] = "\$1-09-\$3 \$4";
$patterns[] = "/(\d+)(Ottobre)(\d+)(.*)/";
$replaces[] = "\$1-10-\$3 \$4";
$patterns[] = "/(\d+)(Novembre)(\d+)(.*)/";
$replaces[] = "\$1-11-\$3 \$4";
$patterns[] = "/(\d+)(Dicembre)(\d+)(.*)/";
$replaces[] = "\$1-12-\$3 \$4";
$date = preg_replace($patterns,$replaces,$v);
$v = $date;
}
if($k == 'news_description')
{
$v = stripslashes($v);
}
$str.= "{$fsep}{$k}='" . mysql_escape_string($v) . "'";
$fsep = ",";
}
$query = "update cms_news set {$str} where news_id like '{$news_id}' and news_lang like '{$news_lang}'";
/**
echo "<!--";
devdump($query);
echo "-->";
**/
if(!$this->db->query($query))
{
$this->ERROR = mysql_error($this->db);
return false;
}
}
$this->_xmlExport();
return 1;
}
function addNews($attributes,$news_id,$news_lang) {
$fsep = "";
$vsep = "";
$fields = $values = "";
$attributes['news_id'] = $news_id;
$attributes['news_lang'] = $news_lang;
foreach($attributes as $k => $v)
{
if($k == 'news_date' && $v != '')
{
$patterns[] = "/(\d+) \/ (\w+) \/ (\d+)/";// - (\d+)\d+)/";
$replaces[] = "\$3\$2\$1";// \$4:\$5";
$patterns[] = "/(\d+)(Gennaio)(\d+)(.*)/";
$replaces[] = "\$1-01-\$3 \$4";
$patterns[] = "/(\d+)(Febbraio)(\d+)(.*)/";
$replaces[] = "\$1-02-\$3 \$4";
$patterns[] = "/(\d+)(Marzo)(\d+)(.*)/";
$replaces[] = "\$1-03-\$3 \$4";
$patterns[] = "/(\d+)(Aprile)(\d+)(.*)/";
$replaces[] = "\$1-04-\$3 \$4";
$patterns[] = "/(\d+)(Maggio)(\d+)(.*)/";
$replaces[] = "\$1-05-\$3 \$4";
$patterns[] = "/(\d+)(Giugno)(\d+)(.*)/";
$replaces[] = "\$1-06-\$3 \$4";
$patterns[] = "/(\d+)(Luglio)(\d+)(.*)/";
$replaces[] = "\$1-07-\$3 \$4";
$patterns[] = "/(\d+)(Agosto)(\d+)(.*)/";
$replaces[] = "\$1-08-\$3 \$4";
$patterns[] = "/(\d+)(Settembre)(\d+)(.*)/";
$replaces[] = "\$1-09-\$3 \$4";
$patterns[] = "/(\d+)(Ottobre)(\d+)(.*)/";
$replaces[] = "\$1-10-\$3 \$4";
$patterns[] = "/(\d+)(Novembre)(\d+)(.*)/";
$replaces[] = "\$1-11-\$3 \$4";
$patterns[] = "/(\d+)(Dicembre)(\d+)(.*)/";
$replaces[] = "\$1-12-\$3 \$4";
$date = preg_replace($patterns,$replaces,$v);
$v = $date;
}
if($k == 'news_description')
{
$v = stripslashes($v);
}
$fields.= "{$fsep}{$k}";
$values.= "{$vsep}'". mysql_escape_string($v) . "'";
$fsep = ",";
$vsep = ",";
}
$query = "insert into cms_news ({$fields}) values ({$values})";
if(!$this->db->query($query))
{
$this->ERROR = mysql_error($this->db);
return false;
}
$news_id = mysql_insert_id();
return 1;
}
function getList($lang,$limit = 0){
$rs = array();
if($limit > 0)
$limit = " limit $limit";
else
$limit = '';
$q = sprintf('select * from cms_news where news_lang like \'%s\' order by news_date DESC %s',$lang,$limit);
if($this->db->query($q))
{
while($this->db->next_record_assoc())
{
if($this->db->Record['news_date'] != '')
{
$patterns[] = "/(\d+)-(\d+)-(\d+)/";// (\d+)\d+)(.*)/";
$replaces[] = "\$3 / \$2 / \$1";// - \$4:\$5";
$patterns[] = "/(\d+) \/ (00) \/ (\d+)(.*)/";
$replaces[] = " ";
$patterns[] = "/(\d+) \/ (01) \/ (\d+)(.*)/";
$replaces[] = "\$1 Gennaio \$3";
$patterns[] = "/(\d+) \/ (02) \/ (\d+)(.*)/";
$replaces[] = "\$1 Febbraio \$3";
$patterns[] = "/(\d+) \/ (03) \/ (\d+)(.*)/";
$replaces[] = "\$1 Marzo \$3";
$patterns[] = "/(\d+) \/ (04) \/ (\d+)(.*)/";
$replaces[] = "\$1 Aprile \$3";
$patterns[] = "/(\d+) \/ (05) \/ (\d+)(.*)/";
$replaces[] = "\$1 Maggio \$3";
$patterns[] = "/(\d+) \/ (06) \/ (\d+)(.*)/";
$replaces[] = "\$1 Giugno \$3";
$patterns[] = "/(\d+) \/ (07) \/ (\d+)(.*)/";
$replaces[] = "\$1 Luglio \$3";
$patterns[] = "/(\d+) \/ (08) \/ (\d+)(.*)/";
$replaces[] = "\$1 Agosto \$3";
$patterns[] = "/(\d+) \/ (09) \/ (\d+)(.*)/";
$replaces[] = "\$1 Settembre \$3";
$patterns[] = "/(\d+) \/ (10) \/ (\d+)(.*)/";
$replaces[] = "\$1 Ottobre \$3";
$patterns[] = "/(\d+) \/ (11) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Novembre / \$3\$4";
$patterns[] = "/(\d+) \/ (12) \/ (\d+)(.*)/";
$replaces[] = "\$1 Dicembre \$3";
$this->db->Record['news_date'] = preg_replace($patterns,$replaces,$this->db->Record['news_date']);
}
$this->db->Record['news_description'] = stripslashes($this->db->Record['news_description']);
$this->db->Record['news_title'] = stripslashes($this->db->Record['news_title']);
$this->db->Record['news_link_text'] = stripslashes($this->db->Record['news_link_text']);
$rs[] = $this->db->Record;
}
}
return $rs;
}//:-
function getNews($news_id,$news_lang) {
if(!isset($news_id))
{
$this->ERROR = _("Nessun news specificato");
return false;
}
$q = sprintf('select * from cms_news where news_id = \'%s\' and news_lang like \'%s\'',$news_id,$news_lang);
$row = array();
if($this->db->query($q))
{
while($this->db->next_record_assoc())
{
$row = $this->db->Record;
}
foreach($row as $k => $v)
{
if($k == 'news_date' && $v != '')
{
$patterns[] = "/(\d+)-(\d+)-(\d+)/";// (\d+)\d+)(.*)/";
$replaces[] = "\$3 / \$2 / \$1";// - \$4:\$5";
$patterns[] = "/(\d+) \/ (01) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Gennaio / \$3\$4";
$patterns[] = "/(\d+) \/ (02) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Febbraio / \$3\$4";
$patterns[] = "/(\d+) \/ (03) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Marzo / \$3\$4";
$patterns[] = "/(\d+) \/ (04) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Aprile / \$3\$4";
$patterns[] = "/(\d+) \/ (05) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Maggio / \$3\$4";
$patterns[] = "/(\d+) \/ (06) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Giugno / \$3\$4";
$patterns[] = "/(\d+) \/ (07) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Luglio / \$3\$4";
$patterns[] = "/(\d+) \/ (08) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Agosto / \$3\$4";
$patterns[] = "/(\d+) \/ (09) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Settembre / \$3\$4";
$patterns[] = "/(\d+) \/ (10) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Ottobre / \$3\$4";
$patterns[] = "/(\d+) \/ (11) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Novembre / \$3\$4";
$patterns[] = "/(\d+) \/ (12) \/ (\d+)(.*)/";
$replaces[] = "\$1 / Dicembre / \$3\$4";
$date = preg_replace($patterns,$replaces,$v);
$row[$k] = $date;
}
if($k == 'news_description')
{
$row[$k] = html_entity_decode(stripslashes($v));
}
$this->$k = $v;
}
return array_filter($row,'output_filter');
}
}//:-
function deleteNews($news_id,$lang='') {
if($lang != 'all')
{
$q = sprintf('delete from cms_news where news_id like \'%s\' and news_lang like \'%s\'',$news_id,$lang);
} else {
$q = sprintf('delete from cms_news where news_id = \'%s\'',$news_id);
}
if(!$this->db->query($q))
{
$this->error = mysql_error();
return false;
}
return true;
}//:-
function listNews($lang='IT') {
$q = sprintf('select * from cms_news where news_lang like \'%s\' order by news_date desc',$lang);
if(!$this->db->query($q))
{
$this->ERROR = mysql_error();
return false;
}
$rs = array();
while($this->db->next_record_assoc())
{
$rs[] = $this->db->Record;
}
return $rs;
}//:-
function _xmlExport($limit = 3,$export_path = "../inc/box_home.xml"){
$q = sprintf("select * from cms_news order by news_pos_id asc limit %d",$limit);
if(!$this->db->query($q))
{
$this->ERROR = mysql_error();
return false;
}
$rs = array();
$i = 0;
/*
$xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<xml>\n";
while($this->db->next_record())
{
$xml.= "<box id=\"{$i}\">\n";
$xml.= "\t<title><![CDATA[".$this->db->f('news_title')."]]></title>\n";
$xml.= "\t<linktitle><![CDATA[".$this->db->f('news_url')."]]></linktitle>\n";
$xml.= "\t<body><![CDATA[".utf8_encode($this->db->f('news_description'))."]]></body>\n";
$xml.= "\t<img><![CDATA[{$this->img_path}".$this->db->f('news_img')."]]></img>\n";
$xml.= "\t<testolink><![CDATA[".$this->db->f('news_link_text')."]]></testolink>\n";
$xml.= "\t<link><![CDATA[".$this->db->f('news_url')."</XMLCDATA></link>\n";
$xml.= "</box>\n\n";
$i++;
}
$xml.= "</xml>\n";
// echo "<xmp>";echo $xml; echo "</xmp>";
if(!$fp = fopen($export_path,"w+"))
{
$this->ERROR = _("Impossibile aprire il file di esportazione.");
return false;
}
if(!fwrite($fp, $xml))
{
$this->ERROR = _("Impossibile scrivere sul file di esportazione");
return false;
}
fclose($fp);
**/
}//:-
}///:-
?>