me faltaba super escapar una cadena que tenia tags.......ahora no da error......
$t->setProcessing ("\"<a href=\'{$elem[1]}\'>{$elem[0]}</a>\"");
...pero tampoco evalua las variables dentro del metodo
private function procesoItem($elem){
eval("\$return=" . $this->code . ";" );
return $return;
}
public function setProcessing ($code){
$this->code= $code;
}
Código PHP:
<?
// CLASE de TABLAS basada en betadir
$t = new table(3,500);
$t->setCols(4); // encadenar!
$a=5;
$t->setProcessing ("\"<a href='{$elem[1]}'>{$elem[0]}</a>\"");
//$t->setProcessing (5);
//$t->setRows(2);
$t->addItem( array ('Wikipedia','http://www.wikipedia.com') );
$t->addItem( array ('Google','http://www.google.com') );
$t->addItem( array ('BetaDir','http://www.betadir.com') );
$t->addItem( array ('YeapDIR','http://www.yeapdir.com') );
$t->addItem( array ('Foros Del Web','http://forosdelweb.com') );
$t->addItem( array ('Pirulex','http://www.pirulex.com') );
echo $t->getTable();
Class table {
private $width;
private $cols;
private $rows=NULL;
private $code=NULL;
private $tabla; // html generado
private $icon= '<img src="http://www.bancocredicoop.coop/modules/personas/images/bullet_on.gif">';
private $list=array();
private $item; //array bi-
private $total=0; // cant de items
public function __construct($width){
$this->width= $width;
}
public function setCols ($cols){
$this->cols = $cols;
return $table;
}
public function setRows ($rows){
$this->rows = $rows;
return $table;
}
public function setProcessing ($code){
$this->code= $code;
}
private function procesoItem($elem){
//return "<a href='{$elem[1]}'>{$elem[0]}</a>";
eval("\$return=" . $this->code . ";" );
return $return;
}
public function getTable(){ // __tostring
$this->doTable();
return $this->tabla;
}
public function addItem($fila){
$this->list[]=$fila;
$this->total++;
}
private function assign (){
// asigno elementos al listado
$i=0;
for ($f=0;$f<$this->rows;$f++){
for ($c=0;$c<$this->cols;$c++){
$this->item[$f][$c] = $this->list[$i];
++$i;
}
}
}
private function doTable (){
if ($this->rows == NULL){
$this->rows = ceil(count($this->list) / $this->cols);
}
$this->assign();
// creo tabla en HTML
$tabla="<table width='".$this->width."' border='0' CellSpacing='5' CellPadding='5'>";
for ($f=0;$f<$this->rows;++$f){
$fila = "<tr>";
for ($c=0;$c<$this->cols;$c++){
if (count($this->item[$f][$c])>0){
$fila = $fila. "<td align='left'>".$this->icon. $this->procesoItem($this->item[$f][$c]) ."</td>";
}else{
$fila = $fila. "<td align='left' > </td>";
}
}
$fila= $fila."</tr>";
$tabla = $tabla . $fila;
}
$tabla= $tabla.'</table>';
$this->tabla=$tabla;
}
} # fin de la clase
?>
PATE ... probé tu modificacion.. pero con como le paso ahora el codigo las comillas son las que salen impresas.
Alguien sabe si puedo evaluar variables que estan "definidas" dentro de una funcion o metodo ?
podrá solucionarse mi problema? no se que mas probar...