$value) { $config[ $param ] = $value; } if (!empty($config["environment"])) { self::$environment = $config["environment"]; } } self::$config = $config; } public static function getInstance() { global $config; self::$config = $config; if (!empty($config["environment"])) { self::$environment = $config["environment"]; } if (!self::$instancia instanceof self) { self::$instancia = new self; } return self::$instancia; } public static function getAll() { if (!empty(self::$environment)) { $configs = array(); foreach (self::$config as $param => $value) { $configs[ str_replace(".".self::$environment, "", $param) ] = self::get($param); } return $configs; } else { return self::$config; } } public static function get($param) { if (!empty(self::$environment)) { if (isset(self::$config[ $param.".".self::$environment ])) { return self::$config[ $param.".".self::$environment ]; } else if (isset(self::$config[ $param ])) { return self::$config[ $param ]; } } else if (isset(self::$config[ $param ])) { return self::$config[ $param ]; } else { return null; } } public static function getAllFor($module) { if (isset(self::$config["modules"][ $module ])) { return self::$config["modules"][ $module ]; } else { return null; } } public static function getFor($module, $property, $simple=false) { if ($simple) { if (isset(self::$config["modules"][ $module ][ $property ])) { return self::$config["modules"][ $module ][ $property ]; } } if ((!empty(self::$environment))&&(empty($module))) { self::$config["modules"][ $property.".".self::$environment ]; } else if (isset(self::$config["modules"][ $module ][ $property ])) { self::$config["modules"][ $module ][ $property ]; } else { return null; } } } get("languaje") ])) { // get the first one $langs = array_keys($staticProperties); if (count( $langs ) >= 0) { $staticProperties = $staticProperties[ $langs[0] ]; } else { return; } } else { $staticProperties = $staticProperties[ ConfigManager::getInstance()->get("languaje") ]; } if ($staticProperties) { foreach($staticProperties as $key=>$value) { $lang[ $key ] = $value; } } } self::$lang = $lang; } public static function getInstance() { if (!self::$instancia instanceof self) { self::$instancia = new self; } return self::$instancia; } public static function getAll() { return self::$lang; } public static function get( $param ) { if (isset(self::$lang[ $param ])) { return self::$lang[ $param ]; } else { return $param; } } } 5.3) por explode * version 3.5 * Agregadas funciones: obtenerNumeroEnteroDeUnaFecha, array_orderby * version 3.4 * Agregadas funciones: cleanSlashes, stripslashes_deep, fullhtmlentities * @author Adrián Prause para www.mediaclic.com.ar */ class Utils { static function daysBetween($date1, $date2) { $date1=str_replace("/","-",$date1); $date2=str_replace("/","-",$date2); $dias= (@strtotime($date1)-@strtotime($date2))/86400; $dias = abs($dias); $dias = floor($dias); return $dias; } static function createFilterInFromArray($theList) { $i = 0; if (!empty($theList)) { if (is_array($theList)) { foreach($theList as $key => $value) { if ($i == 0) { if (is_integer($value)) $filter = "0"; if (is_string($value)) $filter.=""; $i++; } if (is_integer($value)) $filter.=",".$value; if (is_string($value)) $filter.=",".$value.""; } } } else { return null; } return $filter; } static function isValidURL($strURL) { if( preg_match( '/^(http|https|ftp):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,6}' .'((:[0-9]{1,5})?\/.*)?$/i' ,$strURL)) { return true; } else { return false; } } static function slug($text, $puntos=0){ if (is_string($text) || is_numeric($text)) { // replace non letter or digits by - $text = preg_replace('~[^\pL\d]+~u', '-', $text); // transliterate $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text); // remove unwanted characters $text = preg_replace('~[^-\w]+~', '', $text); // trim $text = trim($text, '-'); // remove duplicate - $text = preg_replace('~-+~', '-', $text); // lowercase $text = strtolower($text); if (empty($text)) { return 'n-a'; } return $text; } else { } } static function isInteger($value){ if (preg_match("^([0-9]+)$",$value)) return 1; else return 0; } function isIntegerOfSize($value,$size){ if (preg_match("[0-9]{".$size."}",$value)) return 1; else return 0; } static function lastDayOfMonth($month,$year){ $lastDay=28; while (checkdate($$month,$lastDay + 1,$year)){ $lastDay++; } return $lastDay; } static function fechaMesesAntes($meses){ return date( "d/m/Y", mktime(0,0,0, date("m")-$meses, date("d"), date("Y"))); } static function lastMonth(){ return date( "d/m/Y", mktime(0,0,0, date("m")-1, date("d"), date("Y"))); } static function isCorrectDate($theDate){ if (strlen($theDate)<10) return 0; $f1=substr($theDate,2,1); $f2=substr($theDate,5,1); if ( ($f1!="/") || ($f2!="/") ) return 0; list ($d,$m,$a)=explode("/",$theDate); if ($d>31) return 0; if ($m>12) return 0; return 1; } static function dateFormat($theDate,$type){ if ($type=="PHP") { if ($theDate==""){ return ""; } else { preg_match( "([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})", $theDate, $myDate); $newDate=$myDate[3]."/".$myDate[2]."/".$myDate[1]; return $newDate; } } else { if ($theDate==""){ return ""; }else{ preg_match( "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $theDate, $myDate); $newDate=$myDate[3]."-".$myDate[2]."-".$myDate[1]; return $newDate; } } } static function dump($x){ echo "
";
		var_dump($x);
		echo "
"; } static function isValidEmail($email){ $mail_correcto=0; //compruebo unas cosas primeras if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){ if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) { //miro si tiene caracter . if (substr_count($email,".")>= 1){ //obtengo la terminacion del dominio $term_dom=substr(strrchr ($email, '.'),1); //compruebo que la terminación del dominio sea correcta if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){ //compruebo que lo de antes del dominio sea correcto $antes_dom=substr($email,0,strlen($email) - strlen($term_dom) - 1); $caracter_ult=substr($antes_dom,strlen($antes_dom)-1,1); if ($caracter_ult != "@" && $caracter_ult != "."){ $mail_correcto=1; } } } } } if ($mail_correcto) return 1; else return 0; } static function isNum($var) { if (is_numeric($var)) { return 1; } else return false; } static function cleanSlashes(&$data) { if (get_magic_quotes_gpc()) { $data = array_map('stripslashes_deep', $data); } } static function stripslashes_deep($value) { $value = is_array($value)?array_map('stripslashes_deep', $value):stripslashes($value); return $value; } static function fullhtmlentities(&$value) { if (is_array($value)) return $value; $value = @is_array($value)?@array_map('htmlentities', $value):@htmlentities ($value); return $value; } static function orderMultiDimensionalArray ($toOrderArray, $field, $inverse = false) { $position = array(); $newRow = array(); foreach ($toOrderArray as $key => $row) { $position[$key] = $row[$field]; $newRow[$key] = $row; } if ($inverse) { arsort($position); } else { asort($position); } $returnArray = array(); foreach ($position as $key => $pos) { $returnArray[] = $newRow[$key]; } return $returnArray; } /** * */ static function getLocationDate($location = 'Posadas') { $nro_dia = date ( 'w' ); $nro_mes = date ( 'n' ); $nro_anio = date ( 'Y' ); $listado_dias = self::getDays (); $listado_meses = self::getMonths (); $lugar_y_fecha = $location . ', ' . $listado_dias [$nro_dia] . ' ' . date ( 'j' ) . ' de ' . $listado_meses [$nro_mes] . ' de ' . $nro_anio; return $lugar_y_fecha; } static function getDays() { $listado_dias = array (); $listado_dias [0] = 'Domingo'; $listado_dias [1] = 'Lunes'; $listado_dias [2] = 'Martes'; $listado_dias [3] = 'Miercoles'; $listado_dias [4] = 'Jueves'; $listado_dias [5] = 'Viernes'; $listado_dias [6] = 'Sabado'; return $listado_dias; } static function getMonths() { $listado_meses = array (); $listado_meses [1] = 'Enero'; $listado_meses [2] = 'Febrero'; $listado_meses [3] = 'Marzo'; $listado_meses [4] = 'Abril'; $listado_meses [5] = 'Mayo'; $listado_meses [6] = 'Junio'; $listado_meses [7] = 'Julio'; $listado_meses [8] = 'Agosto'; $listado_meses [9] = 'Septiembre'; $listado_meses [10] = 'Octubre'; $listado_meses [11] = 'Noviembre'; $listado_meses [12] = 'Diciembre'; return $listado_meses; } /** * * Formato gerenal de numeros. * Por defecto formatea el numero con dos decimales, coma para separar decimales, sin separador de miles * @param number|float $number * @param number $decimals * @param char $dec_point * @param char $thousands_sep * @param bool $is_money */ static function formatNumber($number, $decimals = 2, $dec_point = ',', $thousands_sep = '.',$is_money = false) { if (!empty($number)) { $v = number_format($number,$decimals,$dec_point,$thousands_sep); } else { return ''; } if ($is_money) { return '$ '.$v; } else { return $v; } } static function getCurrentDate() { return @date("d/m/Y"); } } OriginalImage=$OriginalImage; } function getOriginalImage(){ return $this->OriginalImage; } function setImageType($ImageType){ $this->ImageType=$ImageType; } function getImageType(){ return $this->ImageType; } function setDestinationName($DestinationName){ $this->DestinationName=$DestinationName; } function getDestinationName(){ return $this->DestinationName; } function setWidth($Width){ $this->Width=$Width; } function getWidth(){ return $this->Width; } function setHeight($Height){ $this->Height=$Height; } function getHeight(){ return $this->Height; } function setWaterMark($WaterMark){ $this->WaterMark=$WaterMark; } function getWaterMark(){ return $this->WaterMark; } function getInfo(){ return getimagesize($this->getOriginalImage(), $info); } function copyImage(){ copy($this->getOriginalImage(), $this->getDestinationName()); } function getSource(){ $info=$this->getInfo(); if ($info["mime"]=="image/gif"){ $src = ImageCreateFromGif($this->getOriginalImage()); } else if ($info["mime"]=="image/pjpeg"){ $src = ImageCreateFromJpeg($this->getOriginalImage()); } else if ($info["mime"]=="image/jpeg"){ $src = ImageCreateFromJpeg($this->getOriginalImage()); } else if ($info["mime"]=="image/bmp"){ $src = ImageCreateFromwBmp($this->getOriginalImage()); } else if ($info["mime"]=="image/png"){ $src = ImageCreateFrompng($this->getOriginalImage()); } return $src; } function Resize(){ $info=$this->getInfo(); $this->copyImage(); $dst = ImageCreateTrueColor($this->getWidth(), $this->getHeight()); ImageCopyResampled($dst, $this->getSource(), 0, 0, 0, 0, $this->getWidth(), $this->getHeight(), $info[0], $info[1]); ImageJpeg($dst, $this->getDestinationName(), 95); ImageDestroy($dst); } function Fit(){ $info=$this->getInfo(); $this->copyImage(); if ($info[0]>=$info[1]){ //mas ancho que alto $proporcion=$info[1] / $info[0]; $this->setHeight( intval($this->getWidth()*$proporcion) ); } else { //mas alto que ancho $proporcion=$info[0] / $info[1]; $this->setWidth( intval($this->getHeight()*$proporcion) ); } $dst = ImageCreateTrueColor($this->getWidth(), $this->getHeight()); ImageCopyResampled($dst, $this->getSource(), 0, 0, 0, 0, $this->getWidth(), $this->getHeight(), $info[0], $info[1]); if ($this->getWaterMark()!=""){ ImageAlphaBlending($dst, true); $sizem = GetImageSize($this->getWaterMark()); /* ubica en el centro $x=($ancho-$sizem[0])/2; $y=($alto-$sizem[1])/2; $src = ImageCreateFrompng($marca); imagecopy ( $dst, $src, $x, $y, 0, 0, $sizem[0], $sizem[1] ); */ $x=($this->getWidth()-$sizem[0]); $y=($this->getHeight()-$sizem[1]); $src = ImageCreateFrompng($this->getWaterMark()); imagecopy ( $dst, $src, $x, $y, 0, 0, $sizem[0], $sizem[1] ); } ImageJpeg($dst, $this->getDestinationName(), 95); ImageDestroy($dst); } function ResizeToWidth(){ $info=$this->getInfo(); $this->copyImage(); $proporcion=$info[1] / $info[0]; $this->setHeight( intval($this->getWidth()*$proporcion) ); $dst = ImageCreateTrueColor($this->getWidth(), $this->getHeight()); ImageCopyResampled($dst, $this->getSource(), 0, 0, 0, 0, $this->getWidth(), $this->getHeight(), $info[0], $info[1]); if ($this->getWaterMark()!=""){ ImageAlphaBlending($dst, true); $sizem = GetImageSize($this->getWaterMark()); /* ubica en el centro $x=($ancho-$sizem[0])/2; $y=($alto-$sizem[1])/2; $src = ImageCreateFrompng($marca); imagecopy ( $dst, $src, $x, $y, 0, 0, $sizem[0], $sizem[1] ); */ $x=($this->getWidth()-$sizem[0]); $y=($this->getHeight()-$sizem[1]); $src = ImageCreateFrompng($this->getWaterMark()); imagecopy ( $dst, $src, $x, $y, 0, 0, $sizem[0], $sizem[1] ); } ImageJpeg($dst, $this->getDestinationName(), 95); ImageDestroy($dst); } function ResizeToHeight(){ $info=$this->getInfo(); $this->copyImage(); $proporcion=$info[0] / $info[1]; $this->setWidth( intval($this->getHeight()*$proporcion) ); $dst = ImageCreateTrueColor($this->getWidth(), $this->getHeight()); ImageCopyResampled($dst, $this->getSource(), 0, 0, 0, 0, $this->getWidth(), $this->getHeight(), $info[0], $info[1]); if ($this->getWaterMark()!=""){ ImageAlphaBlending($dst, true); $sizem = GetImageSize($this->getWaterMark()); /* ubica en el centro $x=($ancho-$sizem[0])/2; $y=($alto-$sizem[1])/2; $src = ImageCreateFrompng($marca); imagecopy ( $dst, $src, $x, $y, 0, 0, $sizem[0], $sizem[1] ); */ $x=($this->getWidth()-$sizem[0]); $y=($this->getHeight()-$sizem[1]); $src = ImageCreateFrompng($this->getWaterMark()); imagecopy ( $dst, $src, $x, $y, 0, 0, $sizem[0], $sizem[1] ); } ImageJpeg($dst, $this->getDestinationName(), 95); ImageDestroy($dst); } function FitIfBigger(){ $info=$this->getInfo(); $this->copyImage(); if (($info[0]<$this->getWidth())||($info[1]<$this->getHeight())) { $this->setWidth($info[0]); $this->setHeight($info[1]); } else { if ($info[0]>=$info[1]){ //mas ancho que alto $proporcion=$info[1] / $info[0]; $this->setHeight( intval($this->getWidth()*$proporcion) ); } else { //mas alto que ancho $proporcion=$info[0] / $info[1]; $this->setWidth( intval($this->getHeight()*$proporcion) ); } } $dst = ImageCreateTrueColor($this->getWidth(), $this->getHeight()); ImageCopyResampled($dst, $this->getSource(), 0, 0, 0, 0, $this->getWidth(), $this->getHeight(), $info[0], $info[1]); if ($this->getWaterMark()!=""){ ImageAlphaBlending($dst, true); $sizem = GetImageSize($this->getWaterMark()); /* ubica en el centro $x=($ancho-$sizem[0])/2; $y=($alto-$sizem[1])/2; $src = ImageCreateFrompng($marca); imagecopy ( $dst, $src, $x, $y, 0, 0, $sizem[0], $sizem[1] ); */ $x=($this->getWidth()-$sizem[0]); $y=($this->getHeight()-$sizem[1]); $src = ImageCreateFrompng($this->getWaterMark()); imagecopy ( $dst, $src, $x, $y, 0, 0, $sizem[0], $sizem[1] ); } ImageJpeg($dst, $this->getDestinationName(), 95); ImageDestroy($dst); } } /* $image=new image; $image->setOriginalImage("sin_foto.jpg"); $image->setDestinationName("estrella2.jpg"); $image->setWidth(126); $image->setHeight(86); $image->Resize(); //Redimensiona deformando a las medidas pasadas $image->Fit(); //Redimensiona proporcionalmente dentro del recuadro de las medidas pasadas */ messages = $messages; if (method_exists($classToInstaciate,$method)){ $html=call_user_func_array(array($claseTemp, $method),array()); } else { $html=PropertiesManager::get("error.actionDoesntExists"); } } else { $html=PropertiesManager::get("error.actionDoesntExists"); } return $html; } } 1, CURLOPT_URL => ConfigManager::get("baseHrefTemp")."index.php?action=install", CURLOPT_USERAGENT => 'Codular Sample cURL Request' )); // Send the request & save response to $resp $resp = curl_exec($curl); //dump($resp); // Close request to clear up some resources curl_close($curl); } function void($params = null) { return false; } function catalog_YesNo() { $catalog = new Catalog(); return $catalog->habilitado(); } function getCatalogs() { $catalog = array(); $methods = get_class_methods($this); foreach($methods as $method) { if (substr($method, 0, 8) == "catalog_") { $name = str_replace("catalog_", "", $method); $catalog[$name] = $method; } } return $catalog; } function getRewriteRules() { return $this->rewriteRules; } function __construct() { global $db, $config; $this->logEverything = $config["logEverything"]; $this->db = $db; $this->debug = $config["debug"]; $this->module = lcFirst(str_replace("Web_model", "", get_class($this))); $this->module = lcFirst(str_replace("_model", "", $this->module)); if (isset($config["modules"][$this->module])) { foreach ($config["modules"][$this->module] as $i => $configParam) { $this->$i = $configParam; } $configuracion_model = new Configuracion_model(); $parameters = $configuracion_model->setParametersToModule($this); } } protected function getNotifications($params = null) { return null; } function inicializeParams($sql, $params) { $newParams = array(); $pattern = '#\{([^\{\}]*)\}#'; preg_match_all($pattern, $sql, $result); foreach ($result[1] as $key => $value) { if (!isset($params[$value])) { $newParams[$value] = null; } else { $newParams[$value] = $params[$value]; } } return $newParams; } function orderParams($sql, $params) { $newParams = array(); foreach ($params as $key => $value) { $i = strpos($sql, "{" . $key . "}"); if ($i != null) { $newParams[$i] = $value; } } return array_values($newParams); } function replaceParamsAsOptional($sql, $params) { foreach ($params as $key => $value) { $sql = str_replace("{" . $key . "}", "%S", $sql); } return $sql; } function replaceParams($sql, $params) { foreach ($params as $key => $value) { $sql = str_replace("{" . $key . "}", "%s", $sql); } return $sql; } protected function doBeforeSearch(&$data) { //sobreescribir } function search(&$filters) { $this->doBeforeSearch($filters); $safesql = new SafeSQL_MySQL(); $filters = $this->inicializeParams($this->searchSql, $filters); $query = $safesql->query( $this->replaceParamsAsOptional($this->searchSql, $filters), $this->orderParams($this->searchSql, $filters) ); $result = $this->db->select($query); if ($this->debug) { echo "
  • " . $query; dump($this->db); } $this->doAfterSearch($result); return $result; } protected function doAfterSearch(&$data) { //sobreescribir } protected function validateBeforeSave(&$data, $files = null) { $messages = new Messages(_OK); return $messages; } protected function doBeforeSave(&$data, &$messages = null, &$files = null) { //sobreescribir } protected function doBeforeAdd(&$data, &$messages = null, &$files = null) { //sobreescribir } protected function doAfterAdd(&$data, &$messages = null, &$files = null) { //sobreescribir } function save(&$data, $files = null) { $data = stripslashes_deep($data); $this->doBeforeSave($data); $messages = $this->validateBeforeSave($data, $files); if ($messages->getMessagesType() == _OK) { if (empty($data["id"])) { $this->doBeforeAdd($data, $messages); $messages->addAll($this->add($data)); $this->doAfterAdd($data, $messages); } else { $messages->addAll($this->update($data)); } } $this->doAfterSave($data, $messages, $files); return $messages; } protected function doAfterSave(&$data, &$messages = null, &$files = null) { //sobreescribir } function add(&$data) { $entity = $data; $safesql = new SafeSQL_MySQL(); $entity = $this->inicializeParams($this->addSql, $entity); $query = $safesql->query( $this->replaceParams($this->addSql, $entity), $this->orderParams($this->addSql, $entity) ); $result = $this->db->query($query); if ($this->debug) { echo "
  • " . $query; dump($this->db); } if ($result) { $data["id"] = $this->db->insertID(); if ($this->logEverything) { $this->log( $this->module, niceDump($data), "add" ); } $messages = new Messages(_OK); $messages->add(translate("message.saved.succesfully")); } else { $messages = new Messages(_ERROR); $messages->add($this->db->errorMsg); } return $messages; } function update(&$data) { $safesql = new SafeSQL_MySQL(); $data = $this->inicializeParams($this->updateSql, $data); $query = $safesql->query( $this->replaceParams($this->updateSql, $data), $this->orderParams($this->updateSql, $data) ); $result = $this->db->query($query); if ($this->debug) { echo "
  • " . $query; dump($this->db); } if ($result) { if ($this->logEverything) { $this->log( $this->module, niceDump($data), "update" ); } $messages = new Messages(_OK); $messages->add(translate("message.saved.succesfully")); } else { $messages = new Messages(_ERROR); $messages->add($this->db->errorMsg); } return $messages; } protected function doBeforeDelete(&$data) { //sobreescribir } function delete($data) { $safesql = new SafeSQL_MySQL(); $this->doBeforeDelete($data); $data = $this->inicializeParams($this->deleteSql, $data); $query = $safesql->query( $this->replaceParams($this->deleteSql, $data), $this->orderParams($this->deleteSql, $data) ); $result = $this->db->query($query); if ($result) { if ($this->logEverything) { $this->log( $this->module, niceDump($entity), "delete" ); } $messages = new Messages(_OK); $messages->add(translate("message.deleted.succesfully")); } else { $messages = new Messages(_ERROR); $messages->add($this->db->errorMsg); } $this->doAfterDelete($data); return $messages; } protected function doAfterDelete(&$data) { //sobreescribir } protected function doBeforeGet(&$data) { //sobreescribir } function get($data) { $safesql = new SafeSQL_MySQL(); $this->doBeforeGet($data); $data = $this->inicializeParams($this->getSql, $data); $query = $safesql->query( $this->replaceParams($this->getSql, $data), $this->orderParams($this->getSql, $data) ); $result = $this->db->select($query); if ($this->debug) { echo "
  • " . $query; dump($this->db); } if ($result) { $this->doAfterGet($result[0]); return $result[0]; } else { return false; } } protected function doAfterGet(&$data) { //sobreescribir } function install() { $safesql = new SafeSQL_MySQL(); $sqls = explode("--", $this->installSql); foreach ($sqls as $sql) { $result = $this->db->query($sql); if ($result) { $messages = new Messages(_OK); $messages->add("" . $this->module . ": " . translate("Se ha creado el modulo correctamente")); } else { $messages = new Messages(_ERROR); $messages->add("" . $this->module . ": " . $this->db->errorMsg); } } /* installa dependencies */ $install_model = new install_model(); global $config; if (isset($config["modules"][$this->module]["dependencies"])) { foreach ($config["modules"][$this->module]["dependencies"] as $dependencie) { $data["modulo"] = $dependencie; $data["password"] = "clave-instalacion-modulo-dependiente"; $messages2 = $install_model->installNew($data); $messages->setMessages(array_merge($messages->getMessages(), $messages2->getMessages())); } } return $messages; } function friendlyUrl($template, $data) { if (!$template) return false; if ($data) foreach ($data as $key => $value) { if (!(is_array($value)) && (!is_object($value))) { $template = str_replace("{" . $key . "}", espaciosToGuiones($value), $template); } } return $template; } function select($sql, $filters) { $safesql = new SafeSQL_MySQL(); $filters = $this->inicializeParams($sql, $filters); $query = $safesql->query( $this->replaceParamsAsOptional($sql, $filters), $this->orderParams($sql, $filters) ); $result = $this->db->select($query); if ($this->debug) { echo "
  • " . $query; dump($this->db); } $this->doAfterSearch($result); return $result; } function count(&$filters) { $safesql = new SafeSQL_MySQL(); $filters["limitStart"] = 0; $filters["limitEnd"] = 9999999; $sql = str_replace("{searchSql}", $this->searchSql, $this->countSql); $filters = $this->inicializeParams($sql, $filters); $query = $safesql->query( $this->replaceParamsAsOptional($sql, $filters), $this->orderParams($sql, $filters) ); $result = $this->db->select($query); if ($this->debug) { echo "
  • " . $query; dump($this->db); } return $result[0]["total"]; } function query($sql, $data) { $safesql = new SafeSQL_MySQL(); $data = $this->inicializeParams($sql, $data); $query = $safesql->query( $this->replaceParams($sql, $data), $this->orderParams($sql, $data) ); $result = $this->db->query($query); if ($this->debug) { echo "
  • " . $query; dump($this->db); } if ($result) { $messages = new Messages(_OK); $messages->add(translate("Ok")); } else { $messages = new Messages(_ERROR); $messages->add($this->db->errorMsg); } return $messages; } function getRssInfo($filters = array()) { return array(); } var $addLoggerSql = " insert into logger set modulo='{modulo}', fecha=NOW(), mensaje='{mensaje}', operacion='{operacion}', idUsuario='{idUsuario}' "; var $deleteLoggerSql = " delete from logger where id='{id}' "; var $deleteLoggerAllSql = " delete from logger "; function log($modulo, $mensaje, $operacion = "", $error = false) { if ($error) $mensaje .= "ERROR: " . $mensaje; $data = array( "id" => "", "modulo" => $modulo, "mensaje" => $mensaje, "operacion" => $operacion, "idUsuario" => UserSessionManager::getUserId() ); return $this->query($this->addLoggerSql, $data); } function cleanLog() { $filtros = array(); $this->query($this->deleteAllSql, $filtros); } } decorators = DecoratorsManager::getAll(); parent::__construct($tpl_file, $type); } function __assign($varName, $value) { if ($this->debug) { dump(array("var" => $varName )); } parent::__assign($varName, $value); } function assign( $varname, $value='' ) { if (is_array( $varname )) { foreach($varname as $var => $value) { if (is_string($var)) { $this->__assign( $var, $value ); $this->__assign( "slug-".$var, $this->slug($value) ); $this->assignWithDecorators( $var, $value ); } } } else if (is_string($varname)) { $this->__assign( $varname, $value ); $this->__assign( "slug-".$varname, $this->slug($value) ); $this->assignWithDecorators( $varname, $value ); } } function assignGlobal( $varname, $value = null ) { if (is_array( $varname )) { foreach($varname as $var => $value) { if (is_string($var)) { $this->__assignGlobal( $var, $value ); $this->__assignGlobal( "slug-".$var, $this->slug($value) ); $this->assignWithDecorators( $var, $value ); } } } else if (is_string($varname)) { $this->__assignGlobal( $varname, $value ); $this->__assignGlobal( "slug-".$varname, $this->slug($value) ); $this->assignWithDecorators( $varname, $value ); } } function slug($string, $puntos=0){ if (is_string($string)) { $string = trim(strtolower(str_replace("ñ", "n", (str_replace(" ","-",$string))))); $string = str_replace("ú", "u", str_replace("ó", "o", str_replace("í", "i", str_replace("é", "e", str_replace("á", "a", $string))))); $string = str_replace("¡","",$string); if(!$puntos) $string = str_replace(".","",$string); $string = str_replace(",","",$string); $string = str_replace(":","",$string); $string = str_replace("%","",$string); $string = str_replace("+","",$string); $string = str_replace("'","",$string); $string = str_replace("\"","",$string); $string = str_replace("/","-",$string); $string = str_replace("´","",$string); $string = str_replace("?","",$string); } return $string; } function assignWithDecorators($varname, $value) { if ($this->decorators) { foreach($this->decorators as $staticDecorator) { if ((!is_array($value))&&(!is_object($value))) @$this->__assign( $varname.":".$staticDecorator, call_user_func_array(array($staticDecorator, "decorate"), array($value))); } } } }
    Fatal error: Uncaught Error: Interface "Decorator" not found in /home/av9wdkmsv179/public_html/cms/includes/classes/decorators/class.NoEspecificadoDecorator.php:3 Stack trace: #0 /home/av9wdkmsv179/public_html/index.php(211): include() #1 /home/av9wdkmsv179/public_html/index.php(39): CMS->includes() #2 /home/av9wdkmsv179/public_html/index.php(397): CMS->__construct() #3 {main} thrown in /home/av9wdkmsv179/public_html/cms/includes/classes/decorators/class.NoEspecificadoDecorator.php on line 3