No, no puedo adjuntar archivos :S
Código PHP:
<?php
/**
* GestioURL - PHP control d'enllaços url
* @author Xavier Ivars i Ribes
* @email [email][email protected][/email]
* @copyright 2004 Xavier Ivars i Ribes
*/
class GestioURL
{
/////////////////////////////////////////////////
// VARIABLES PRIVADES
/////////////////////////////////////////////////
var $url="";
var $href=true;
var $variables= array();
var $afegit=0;
var $name="";
var $classe="";
var $id="";
var $target="";
var $onmouseover="";
var $onmouseout="";
var $onclick="";
var $cadena_variables="";
/////////////////////////////////////////////////
// METODES PUBLICES
/////////////////////////////////////////////////
/*
* Constructor.
* Funció que es crida automàticament
* al fer $variable=new GestioURL
* Pot portar un paràmetre, que li donarà
* un nom intern a l'enllaç.
* Per defecte, no té nom concret.
*/
function GestioURL($cad="")
{
$this->name=$cad;
$this->reset_url();
}
function clean()
{
$this->reset_url();
$this->variables='';
$this->afegit=0;
$this->name="";
$this->classe="";
$this->id="";
$this->target="";
$this->onmouseover="";
$this->onmouseout="";
$this->onclick="";
$this->cadena_variables="";
$this->href=true;
}
function canviar_url($string)
{
$this->url=$string;
return;
}
function reset_url()
{
$this->url=$_SERVER['PHP_SELF'];
return;
}
function afegir_var($nom,$valor)
{
$this->afegit=true;
$this->variables[$nom]=$valor;
return;
}
function borrar_var($nom)
{
unset($this->variables[$nom]);
}
function obtenir_variables()
{
$primer=true;
if($this->afegit)
{
ksort($this->variables); // PIJAETA
$this->cadena_variables="?";
foreach($this->variables as $nom => $valor)
{
if(!$primer)
$this->cadena_variables.="&";
else
$primer=false;
$this->cadena_variables.="$nom=$valor";
}
}
return $this->cadena_variables;
}
function propagar_get()
{
foreach($_GET as $nom => $valor)
{
$this->afegir_var($nom,$valor);
}
return;
}
function propagar_de_get($var)
{
if(isset($_GET[$var]))
$this->afegir_var($var,$_GET[$var]);
}
function canviar_class($nova)
{
$this->classe=$nova;
}
function canviar_id($nova)
{
$this->id=$nova;
}
function canviar_target($nou)
{
$this->target=$nou;
}
function canviar_onmouseover($nova)
{
$this->onmouseover=$nova;
}
function canviar_onmouseout($nova)
{
$this->onmouseout=$nova;
}
function canviar_onclick($nova)
{
$this->onclick=$nova;
}
function status($text)
{
$text=addslashes($text);
$this->onmouseout="javascript:window.status=''";
$this->onmouseover="javascript:window.status='$text';return true;";
}
function obrir_url()
{
$this->obtenir_variables();
$obrir="<a ";
if($this->classe!="")
$obrir.="class=\"".$this->classe."\" ";
if($this->id!="")
$obrir.="id=\"".$this->id."\" ";
if($this->target!="")
$obrir.="target=\"".$this->target."\" ";
if($this->onmouseover!="")
$obrir.="onmouseover=\"".$this->onmouseover."\" ";
if($this->onmouseout!="")
$obrir.="onmouseout=\"".$this->onmouseout."\" ";
if($this->onclick!="")
$obrir.="onclick=\"".$this->onclick."\" ";
if($this->href)
$obrir.="href=\"".$this->url.$this->cadena_variables."\" ";
$obrir.=">";
return $obrir;
}
function tancar_url()
{
return "</a>";
}
function form()
{
foreach($this->variables as $nom=>$valor)
{
echo "<input type=\"hidden\" name=\"$nom\" value=\"$valor\" />\n";
}
}
}
?>
Lo que me falta por hacer es una buena documentacion...