<?
class filecounter
{
var $_File;
var $_Tabla = "counter";
var $_Modo;
var $_ModosValidos = array ("open");
function filecounter ($Filename=0, $Modo="open")
{
if (!in_array ($Modo, $this->_ModosValidos)){ $Modo = "open"; }
$this->_Modo = $Modo;
$this->_File = $Filename;
$this->_Set();
$this->Parsea();
return $this;
}
function DameHref()
{
global $PHP_SELF,$HTTP_GET_VARS;
$Retorno='';
$Link = $PHP_SELF.'?';
$HTTP_GET_VARS[fcaccion]= "upcounter";
$HTTP_GET_VARS[fcfile] = $this->_Encripta();
foreach ($HTTP_GET_VARS as $Clave=>$Valor){ $Link.='&'.$Clave.'='.$Valor; }
$Retorno = $Link;
return $Retorno;
}
function CambiaFile ($NuevoFile=0)
{
$this->_File = $NuevoFile;
$this->_Set();
}
function DameDatos ($Datos="*")
{
$Retorno=0;
$Accesobd = new accesobd();
$Sql = "SELECT ".$Datos." FROM ".$this->_Tabla." WHERE file='".$this->_File."'";
$Retorno = $Accesobd->QueryBDObjeto ($Sql);
return $Retorno;
}
function Parsea()
{
global $HTTP_GET_VARS;
if ($HTTP_GET_VARS[fcaccion]!= "upcounter"){ return $Retorno; }
$this->_File = $HTTP_GET_VARS[fcfile];
$this->_File = $this->_DesEncripta();
$Accesobd = new accesobd();
$Sql = "UPDATE ".$this->_Tabla." SET counter=counter+1 ";
$Sql.= "WHERE file='".$this->_File."'";
$Accesobd->InsertaBD ($Sql);
$Retorno = $this->DameDatos ("counter");
$Retorno = $Retorno->counter;
$CadenaEval = '$this->Modo'.strtolower (ucwords ($this->_Modo)).'();';
eval ($CadenaEval);
return $Retorno;
}
function _Set()
{
global $HTTP_GET_VARS;
if (!$this->_File){ $this->_File=$HTTP_GET_VARS[fcfile]; }
$this->_File = $this->_DesEncripta ();
if (!$this->_Existe()){ $this->_InsertaNuevo(); }
}
function _Existe()
{
$Retorno=0;
$Accesobd = new accesobd();
$Sql = "SELECT identificador FROM ".$this->_Tabla." WHERE file='".$this->_File."'";
$Identificador = $Accesobd->QueryBDObjeto ($Sql);
if ($Identificador->identificador){ $Retorno=1; }
return $Retorno;
}
function _InsertaNuevo()
{
$Retorno=0;
if (!$this->_File){ return $Retorno; }
$Accesobd = new accesobd();
$Sql = "INSERT INTO ".$this->_Tabla."(identificador,file,counter) ";
$Sql.= "VALUES ('', '".$this->_File."', '')";
$Retorno = $Accesobd->InsertaBD ($Sql);
return $Retorno;
}
function ModoOpen()
{
?>
<script language="Javascript">
window.open ('<?=$this->_File?>');
</script>
<?
}
function _Encripta()
{
$Retorno = urlencode ($this->_File);
return $Retorno;
}
function _DesEncripta()
{
$Retorno = urldecode ($this->_File);
return $Retorno;
}
}
?> |