Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/09/2010, 11:45
Avatar de javiertroya
javiertroya
 
Fecha de Ingreso: mayo-2009
Ubicación: Valencia
Mensajes: 15
Antigüedad: 15 años, 6 meses
Puntos: 2
Busqueda PHPOO Y Xajax

Buenas en el dia de hoy escribo por primera vez porque necesito una ayuda bastante particular.

He desarrollado un Framework personal, todavia esta en prueba así que tiene unos cuantos defectos.

La idea principal del framework es la integración de varias de las herramientas que se usan a diario para la programación como PHP, MySQL, Xajax, jQuery y CKEditor.

Una de las principales formas de trabajo del frame consiste en no escribir en otro lenguaje que no sea PHP, es decir, no escribiremos HTML, MYSQL, CSS o Javascript (Solo con jQuery si se usa), esto lo hago con el fin de evitar los errores que nos da muchas veces el cierre de las etiquetas, que algunos olvidamos colocar o simplemente para tener un codigo muchisimo mas ordenado

Entonces tengo varias clases como por ejemplo las clases sql y html que son obviamente para escribir las sentencias necesarias

Ahora mi problema:

Las funciones xajax normalemente deben llevar mucho html y sql embedido asi que para evitar errores pretendo crear las instancias de estos objetos dentro de mi funcion xajax

Ahora voy con el codigo:
Código PHP:
class html
{
    function 
div($id NULL,$contenido,$class NULL,$align NULL,$style NULL)
    {
        
$div '<div ';
        if(
$id$div.= 'id = "'.$id.'" ';
        if(
$class$div.= 'class = "'.$class.'" ';
        if(
$align$div.= 'align = "'.$align.'" ';
        if(
$style$div.= 'style = "'.$style.'" ';
        
$div.= '>';
        
$div.= $contenido;
        
$div.= '</div>';
    return 
$div;
    }

Con esta funcion se pretende crear una capa o div con parte de los atributos que este lleva.

Código PHP:
class sql
{
    function 
sql()
    {
        return 
$this->connect(sql_host,sql_user,sql_clave,sql_db);
    }

    function 
connect($host,$user,$pass,$db)
    {
        
$error "";
        if(
mysql_connect($host,$user,$pass) == false)
        {
            
$error "No se puede conectar al servidor";
        }
        elseif(
mysql_select_db($db) == false)
        {
            
$error "No se puede seleccionar la base de datos";
        }
        
        if(
$error != "")
        {
            
$mensaje $error;
        }
        else
        {
            
$mensaje true;
        }

    return 
$mensaje;

    function 
fetch_assoc($query)
    {
    
$fetch mysql_query($query);
        while(
$arr mysql_fetch_assoc($fetch))
        {
            
$dat[] = $arr;
        }
    return 
$dat;
    }

La clase SQL cuyas funciones escritas son la funcion de conexion y la funcion para crear matrices o arreglos que puedan ser manipulables como los conocidos $row["dato"]

Bien, ahora escribo mi funcion xajax

Código PHP:
<? require_once(dirname."xajax/xajax_core/xajax.inc.php");

$xajax = new xajax();
$xajax->configure("javascript URI"url."xajax/");
$xajax->configure("setCharEncoding",charset);

function 
modificar_div($tipo)
{
        
$html = new html();
        
$sql = new sql();

        
$query "select $tipo from nosotros";
        foreach(
$sql->fetch_assoc($query) as $row)
        {
            
$value $row[$tipo];
    }
    
$contenido =$html->div(NULL,$value);

    
$r = new xajaxResponse();

    
$r->assign($tipo,"innerHTML",$contenido);
return 
$r;
}

$xajax->register(XAJAX_FUNCTION"modificar_div");
$xajax->processRequest();
?>
Notaran que existen varias constantes dentro de la hoja xajax. Estas son definidas en un archivo define.class.php que toma las variable $config de un archivo config.php que he creado.

Mi problema es que cuando no hago instancias de los objetos es decir que en vez de escribir $contenido = $html->div(...) escribo $contenido = '<div id = "eldiv">'.$value.'</div>'; la funcion trabaja correctamente al instanciar los objetos pierde completa funcionalidad.

Lo mismo sucede al intentar conectar a la base de datos, no importa si creo la Instancia de SQL o no no se conecta con la base de datos

Les mostrare tambien el arbol de las carpetas para que puedan identificar mejor el problema si eso ayuda



Los archivos seleccionados son los que les he mencionado antes

Por favor, necesito ayuda lo mas pronto posible!