示例#1
0
 /**
  * Calcula a idade em anos
  * @param string $Nascimento
  * @param string $DataReferencia
  * @return int
  */
 public static function idade($Nascimento, $DataReferencia = 'NOW')
 {
     $inicio = Date::data($Nascimento);
     $fim = $DataReferencia == 'NOW' ? date('Y-m-d') : Date::data($DataReferencia);
     $anos = Date::year($fim) - Date::year($inicio);
     return $anos;
 }
 /**
  * Formata o valor
  * @param mixed $value
  * @param string $type
  * @param boolean $formatar
  * @return mixed
  */
 function formatValue($value, $type, $formatar)
 {
     switch (strtolower($type)) {
         case 'data':
         case 'dt':
         case 'date':
             $value = Date::data((string) $value);
             return $formatar ? Date::formatData($value) : $value;
             break;
         case 'timestamp':
         case 'datatime':
             $value = Date::timestamp((string) $value);
             return $formatar ? Date::formatDataTime($value) : $value;
             break;
         case 'real':
             return $formatar ? Number::real($value) : Number::float($value, 2);
         case 'hide':
             return $formatar ? null : $value;
             break;
         case 'array':
             return $formatar ? stringToArray($value) : arrayToString($value);
             break;
         default:
             return $value;
     }
 }
 /**
  * Efetua uma busca complexa a partir dos parâmetros passados
  * @param array $Paranmetros
  * @param int $CurrentPage
  * @param int $PorPagina
  * @param string $OrderBy
  * @return Pagination
  */
 function Busca(array $Paranmetros = null, $CurrentPage = 1, $PorPagina = 10, $OrderBy = 'rand()')
 {
     $Termos = 'WHERE a.status != 99';
     $Places = [];
     if ($Paranmetros) {
         foreach ($Paranmetros as $key => $value) {
             if (!isEmpty($value) and !empty($key)) {
                 switch ($key) {
                     case 'data':
                         $Termos .= " AND ((a.inicio = a.fim  AND a.inicio = '0000-00-00') OR (:data BETWEEN a.inicio AND a.fim))";
                         $Places['data'] = Date::data($value);
                         break;
                     case 'dia':
                         $Termos .= ' AND (a.dias LIKE "%[*]%" OR a.dias LIKE CONCAT("%[",:dia,"]%"))';
                         $Places['dia'] = $value;
                         break;
                     case 'status':
                     case 'ref':
                         $Termos .= " AND a.{$key} = :{$key}";
                         $Places[$key] = $value;
                         break;
                     case 'title':
                         $Termos .= ' AND (a.title CONCAT("%",:title,"%"))';
                         $Places['title'] = $value;
                         break;
                 }
             }
         }
     }
     return $this->ListaPagination("{$Termos} ORDER BY {$OrderBy}", $Places, $CurrentPage, $PorPagina);
 }
 /**
  * 
  * @param array $Parans
  * @param int $CurrentPage
  * @param int $PorPagina
  * @return Pagination
  */
 function Busca(array $Parans = null, $CurrentPage = 1, $PorPagina = 20)
 {
     $Termos = 'WHERE a.status != 99';
     $Places = [];
     if ($Parans) {
         foreach ($Parans as $key => $value) {
             if (!isEmpty($value) and !empty($key)) {
                 switch ($key) {
                     case 'status':
                     case 'ref':
                         $Termos .= " AND a.{$key} = :{$key}";
                         $Places[$key] = $value;
                         break;
                     case 'data':
                         $value = Date::data($value);
                         $Termos .= " AND a.{$key} = :{$key}";
                         $Places[$key] = $value;
                         break;
                 }
             }
         }
     }
     return $this->ListaPagination($Termos, $Places, $CurrentPage, $PorPagina);
 }
示例#5
0
    $smarty->assign("contents", $text);
    $smarty->assign("url_cms", $cms->url_cms());
    $smarty->assign("url_smartytpl", $cms->url_smartytpl());
    $smarty->assign("cmsversion", $cms->cmsversion());
    $smarty->display("admin/index/index.tpl");
    exit;
}
if (isset($_POST['modificanews'])) {
    // Creo le variabili con i dati
    $codice = $_COOKIE[$func->cookie()];
    $newautore = $db->nickname($codice);
    $newtitolo = $func->escape($_POST['newtitolo']);
    $newcategoria = $func->escape($_POST['newcategoria']);
    $newnews = $func->authescape($_POST['newnews']);
    $newora = $data->ore_min(':');
    $newdata = $data->data('-');
    $minititolo = $func->escape($_POST['minititolo']);
    // Mi connetto al database
    $db->connettidb();
    // Modifico la news
    $query = $db->query("UPDATE news SET autoreultimamodifica='{$newautore}', titolo='{$newtitolo}', categoria='{$newcategoria}', news='{$newnews}', oraultimamodifica='{$newora}', dataultimamodifica='{$newdata}' WHERE minititolo='{$minititolo}'");
    // Mi disconnetto dal database
    $db->disconnettidb();
    // Aggiorno i log se sono attivi
    if ($cms->cmslog() == 1) {
        $azione = 'modificato una news (' . $minititolo . ')';
        $db->log($codice, $azione);
    }
    // Mando l' avviso
    $text = 'La news è stata modificata.';
    $smarty->assign("titolo", "Modifica news");
示例#6
0
 /**
  * 
  * @param string $Table
  * @param array $values
  * @return array
  */
 public static function format_values($Table, array $values = null)
 {
     if (is_null($values)) {
         return $values;
     } else {
         foreach ($values as $key => $value) {
             if (is_null($value)) {
                 $values[$key] = '';
             }
         }
     }
     $infoTable = self::getTableInfo($Table);
     $result = [];
     foreach ($infoTable as $info) {
         $field = $info['Field'];
         # Verificando campo
         if (isset($values[$field])) {
             # Valor passado
             $value = $values[$field];
             # Tipo de dado
             $type = strtolower(current(explode('(', $info['Type'])));
             # Formatando tipos de valores
             if (trim($value) !== '') {
                 switch ($type) {
                     case 'date':
                         $value = Date::data($value);
                         break;
                     case 'tinyint':
                     case 'smallint':
                     case 'mediumint':
                     case 'bigint':
                     case 'int':
                         $value = Number::int($value);
                         break;
                     case 'decimal':
                     case 'float':
                     case 'double':
                     case 'real':
                         $value = Number::float($value);
                         break;
                     case 'datetime':
                     case 'timestamp':
                         $value = Date::timestamp($value);
                         break;
                     case 'time':
                         $value = Date::time($value);
                         break;
                 }
             } else {
                 if ($info['Null'] == 'NO') {
                     $value = '';
                 } else {
                     if ($info['Null'] == 'YES') {
                         $value = null;
                     }
                 }
             }
             # Setando valor na array
             $result[$field] = $value;
         }
     }
     return $result;
 }
示例#7
0
/**
 * Verifica se a variavel está vazia
 * 
 * Contorna as especificações de empty() para 0 e '0'
 * Adicionado verificações para o formato data '0000-00-00' e '00/00/0000'
 * 
 * @param mixed $var
 * @return boolean
 */
function isEmpty($var)
{
    # Exceções para empty
    if (empty($var)) {
        if ($var !== 0 and $var !== '0') {
            return true;
        }
    } else {
        if (Date::isDate($var)) {
            $value = Date::data($var);
            if ($value == '0000-00-00' or $value === null) {
                return true;
            }
        }
    }
    return false;
}
 public static function data($value)
 {
     return Date::data($value) ? true : false;
 }
示例#9
0
    $db->disconnettidb();
    // Mi disconnetto dal database
    if ($conta > 0 or $conta2 > 0) {
        $text = 'Il nickname o l\'indirizzo email da te scelto è già in uso. Riprova scegliendone un altro.';
        $smarty->assign("titolo", "Registrazione");
        $smarty->assign("contents", $text);
        $smarty->assign("url_cms", $cms->url_cms());
        $smarty->assign("url_smartytpl", $cms->url_smartytpl());
        $smarty->assign("cmsversion", $cms->cmsversion());
        $smarty->display("admin/index/index2.tpl");
        exit;
    }
    // Registro l'utente
    $password = $func->hash($password);
    // Converto la password nell'algoritmo di hash
    $dataregistrazione = $data->data("-");
    $db->connettidb();
    // Mi connetto al database
    $db->query("INSERT INTO utenti(nickname,password,email,grado,dataregistrazione) VALUES('{$nickname}','{$password}','{$email}','Webmaster','{$dataregistrazione}')");
    $db->disconnettidb();
    // Mi disconnetto dal database
    $text = 'Registrazione effettuata.';
    // Visualizzo la pagina
    $smarty->assign("titolo", "Registrazione");
    $smarty->assign("contents", $text);
    $smarty->assign("url_cms", $cms->url_cms());
    $smarty->assign("url_smartytpl", $cms->url_smartytpl());
    $smarty->assign("cmsversion", $cms->cmsversion());
    $smarty->display("admin/index/index2.tpl");
    exit;
}
 function getData($format = false)
 {
     return $format ? Date::formatData($this->Data) : Date::data($this->Data);
 }
示例#11
0
include_once "core/class.MySQL.php";
include_once "core/class.Functions.php";
include_once "etc/class.Date.php";
// Istanzio le classi
$db = new MySQL();
$func = new Functions();
$date = new Date();
// La pagina da dove sono venuto
$ref = $_SERVER['HTTP_REFERER'];
// Ottengo il titolo della news dal GET
$titolo_com = explode("=", $ref);
$titolo_com = $titolo_com[1];
if (isset($_POST['commenta'])) {
    // Prelevo i dati
    $titolo_com = $func->escape($titolo_com);
    $data_com = $func->escape($date->data("-"));
    $ora_com = $func->escape($date->ore_min_sec(":"));
    $testo_com = $func->escape($_POST['testo_com']);
    // Prelevo il nickname dal database
    $codice = $_COOKIE[$func->cookie()];
    $autore_com = $db->nickname($codice);
    // Se almeno un campo è vuoto rimando alla pagina precedente, altrimenti effetto la query e rimando nella pagina precedente.
    if ($titolo_com == '' or $autore_com == '' or $testo_com == '') {
        header("Location: {$ref}");
        exit;
    } else {
        $db->connettidb();
        $db->query("INSERT INTO commenti (titolo,data,ora,autore,testo) VALUES ('{$titolo_com}', '{$data_com}', '{$ora_com}', '{$autore_com}', '{$testo_com}')");
        $db->disconnettidb();
        header("Location: {$ref}");
        exit;
示例#12
0
// Scarico la news
$titolo_get = $func->escape($_GET['titolo']);
$query = $db->query("SELECT * FROM news WHERE minititolo='{$titolo_get}'");
$righe = $db->conta($query);
// Se la news esiste la prelevo
if ($righe > 0) {
    while ($riga = $db->estrai($query)) {
        $autore = $func->rescape($riga->autore);
        $titolo = $func->rescape($riga->titolo);
        $minititolo = $func->rescape($riga->minititolo);
        $news = bbcode($func->rescape($riga->news));
        $categoria = $func->rescape($riga->categoria);
        $data = $func->rescape($riga->data);
        $ora = $func->rescape($riga->ora);
    }
    $data_attuale = $datatime->data("-");
    $data_attuale2 = explode("-", $data_attuale);
    // Date
    if ($data == $data_attuale) {
        $data = 'oggi';
    } elseif ($r["data"] == $data_attuale2[0] - 1) {
        $data = 'ieri';
    } elseif ($r["data"] == $data_attuale2[0] - 2) {
        $data = 'l\' altro ieri';
    } else {
        $data = 'il giorno ' . $data;
    }
    $autorelink = '<a href="' . $cms->url_cms() . 'profilo.php?nickname=' . $autore . '">' . $autore . '</a>';
    $categorialink = '<a href="' . $cms->url_index() . 'categoria.php?cat=' . $categoria . '">' . $categoria . '</a>';
    $description = autodescription($news, 120);
    // Descrizione di 120 caratteri
include_once "../../core/class.Ocarina.php";
include_once "../../core/class.MySQL.php";
include_once "../../core/class.Functions.php";
include_once "../../rendering/config.php";
include_once "../../etc/class.Date.php";
// Istanzio le classi
$cms = new Ocarina();
$db = new MySQL();
$func = new Functions();
$data = new Date();
/* La lettura del robots.txt */
// Apro il file
$robots = @fopen($cms->root() . "robots.txt", "r");
// Lo leggo
$leggirobots = @fread($robots, @filesize($cms->root() . "robots.txt"));
$leggirobots = '#Robots.txt generato con admin il giorno ' . $data->data('-') . ".\n" . $leggirobots;
/* La modifica del robots.txt */
if (isset($_POST['modificarobots'])) {
    $newrobots = $_POST['newrobots'];
    // Apro il file
    $robots2 = @fopen($cms->root() . "robots.txt", "w");
    // Ci scrivo i dati
    fwrite($robots2, '');
    fwrite($robots2, $newrobots);
    // Lo chiudo
    fclose($robots2);
    // Aggiorno i log se sono attivi
    if ($cms->cmslog() == 1) {
        $codice = $_COOKIE[$func->cookie()];
        $azione = 'modificato il file robots.txt';
        $db->log($codice, $azione);
示例#14
0
    $smarty->assign("url_smartytpl", $cms->url_smartytpl());
    $smarty->assign("cmsversion", $cms->cmsversion());
    $smarty->display("admin/index/index.tpl");
    exit;
}
if (isset($_POST['modificasezione'])) {
    // Mi connetto al database
    $db->connettidb();
    // Creo le variabili con i dati
    $codice = $_COOKIE[$func->cookie()];
    $newtitolo = $func->escape($_POST['newtitolo']);
    $newminititolo = $func->escape($_POST['newminititolo']);
    $newcontenuto = $func->authescape($_POST['newcontenuto']);
    $newcategoria = $func->escape($_POST['newcategoria']);
    $newautore = $db->nickname($codice);
    $dataultimamodifica = $data->data("-");
    $autoreultimamodifica = $db->nickname($codice);
    $minititolo = $func->escape($_POST['minititolo']);
    // Modifico la sezione
    $query = $db->query("UPDATE pagine SET titolo='{$newtitolo}', minititolo='{$newminititolo}', contenuto='{$newcontenuto}', categoria='{$newcategoria}', dataultimamodifica='{$dataultimamodifica}', autoreultimamodifica='{$autoreultimamodifica}' WHERE minititolo='{$minititolo}'");
    // Mi disconnessione dal database
    $db->disconnettidb();
    // Aggiorno i log se sono attivi
    if ($cms->cmslog() == 1) {
        $azione = 'modificato una sezione (' . $minititolo . ')';
        $db->log($codice, $azione);
    }
    // Mando l' avviso
    $text = 'La sezione è stata modificata.';
    $smarty->assign("titolo", "Modifica sezione");
    $smarty->assign("cookie", $db->auth($_COOKIE[$func->cookie()]));
示例#15
0
// Istanzio le classi
$cms = new Ocarina();
$db = new MySQL();
$func = new Functions();
$data = new Date();
/* L' invio della sezione */
if (isset($_POST['creasezione'])) {
    // Creo le variabili con i dati
    $codice = $_COOKIE[$func->cookie()];
    $autore = $db->nickname($codice);
    $titolo = $func->escape($_POST['titolo']);
    $minititolo = $func->escape($_POST['minititolo']);
    $contenuto = $func->authescape($_POST['contenuto']);
    $categoria = $func->escape($_POST['categoria']);
    $striptitolo = $func->rescape($_POST['titolo']);
    $datacreazione = $data->data("-");
    // Controllo se nel database non ci sia una sezione con un titolo uguale
    $db->connettidb();
    $query = $db->query("SELECT titolo FROM pagine WHERE minititolo = '{$striptitolo}'");
    $conta = $db->conta($query);
    // Se esiste avviso e blocco lo script
    if ($conta > 0) {
        $text = 'Esiste già una sezione con lo stesso titolo. Prova a modificarlo e riprova.';
        $smarty->assign("titolo", "Crea sezione");
        $smarty->assign("cookie", $db->auth($_COOKIE[$func->cookie()]));
        $smarty->assign("grado", $db->grado($_COOKIE[$func->cookie()]));
        $smarty->assign("contents", $text);
        $smarty->assign("url_cms", $cms->url_cms());
        $smarty->assign("url_smartytpl", $cms->url_smartytpl());
        $smarty->assign("cmsversion", $cms->cmsversion());
        $smarty->display("admin/index/index.tpl");
示例#16
0
 /**
  * Verifica se é uma data válida
  * @param string $Date
  * @return boolean
  */
 public static function isDate($Date = null)
 {
     $Date = Date::data($Date);
     return ($Date and $Date != '0000-00-00') ? true : false;
 }
示例#17
0
/**
 * 
 * @param int $nascimento
 * @param int $dataReferencia
 * @return int
 */
function calc_idade($nascimento, $dataReferencia = __NOW__)
{
    $nascimento = !($nascimento = Date::data($nascimento)) ? date('Y-m-d') : $nascimento;
    $dataReferencia = !($dataReferencia = Date::data($dataReferencia)) ? date('Y-m-d') : $dataReferencia;
    $idade = (int) Date::year($dataReferencia) - (int) Date::year($nascimento);
    if (date('md', strtotime($dataReferencia)) < date('md', strtotime($nascimento))) {
        $idade--;
    }
    return $idade;
}
示例#18
0
 function getFim($format = false)
 {
     return $format ? Date::formatData($this->Fim) : Date::data($this->Fim);
 }