Esta web tiene una arquitectura definida con patrones de diseño, esta seccion donde tengo el problema, estoy usando el patron FACTORY.
Aclaro que la version de php es PHP/5.4.17.
Probe de muchas maneras, hasta crei que al devolverme el html por una clase seria el problema, pero copie el html y lo pegue en el index y segimos con el bendito error 500.
xcoraxapp.php en un archivo que incluye todas las librerias.
index.php
Código:
<?php require_once('xcoraxapp.php'); $array = array('header','nav','content','footer'); foreach($array as $type){ echo FactoryTemplate::createTemplate($type)->getHtml(); } ?>
xcontrolador.php
Código:
patherfactory.php<?php abstract class Template{ protected $_html; public function getHtml() { return $this->_html; } public static function contactoSend(){ } } class Templateheader extends Template{ protected $_html = ' <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- CHANGE THIS TITLE TAG --> <title>Dario Sanchez</title> <meta charset="utf-8"> <META NAME="Keywords" CONTENT="Diseño, web, software, medida, tecnología, reparación, pc, Freelancer, freelance, programación"> <META NAME="Language" CONTENT="Spanish"> <META NAME="Revisit" CONTENT="1 day"> <META NAME="Distribution" CONTENT="Global"> <META NAME="Robots" CONTENT="All"> <!-- media-queries.js --> <!--[if lt IE 9]> <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script> <![endif]--> <!-- html5.js --> <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link href="font/stylesheet.css" rel="stylesheet" type="text/css" /> <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css" /> <link href="css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css" /> <link href="css/styles.css" rel="stylesheet" type="text/css" /> <link href="css/media-queries.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" type="text/css" href="fancybox/jquery.fancybox-1.3.4.css" media="screen" /> <meta name="viewport" content="width=device-width" /> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> <link href="http://fonts.googleapis.com/css?family=Exo:400,800" rel="stylesheet" type="text/css"> </head> '; } class Templatenav extends Template{ protected $_html = ' <body data-spy="scroll"> <!-- TOP MENU NAVIGATION --> <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <a class="brand pull-left" href="#"> </a> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <div class="nav-collapse collapse"> <ul id="nav-list" class="nav pull-right btn-group"> <li><a href="#home">Inicio</a></li> <li><a href="#about">Objetivos</a></li> <li><a href="#updates">Descargas</a></li> <li><a href="#screenshots">Servicios</a></li> <li><a href="#contact">Contacto</a></li> </ul> </div> </div> </div> </div> '; } class Templatecontent extends Template{ protected $_html = ' contenido html (me quedo largo el tema y tuve que acortarlo) '; } class Templatefooter extends Template{ protected $_html = ' <!-- FOOTER --> <div class="footer container container-fluid"> </div> <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/bootstrap-collapse.js"></script> <script src="js/bootstrap-scrollspy.js"></script> <script src="fancybox/jquery.mousewheel-3.0.4.pack.js"></script> <script src="fancybox/jquery.fancybox-1.3.4.pack.js"></script> <script src="js/init.js"></script> <script src="core/controller.js"></script> </body> </html> '; }
Código:
xcontrolador.js<?php require_once('xcontrolador.php'); class FactoryTemplate{ public static function createTemplate($name){ $baseclass = 'Template'; $targetclass = $baseclass.$name; if(class_exists($targetclass) && is_subclass_of($targetclass,$baseclass)){ return new $targetclass; }else{ throw new Exception("El tipo de archivo '$name'.php no existe"); } } } ?> ?>
Código:
function send(){ $.ajax({ type:"POST", datatype:"json", url:"http://www.miweb.com/jscontroller.php", contentType: "application/json; charset=utf-8", async:false, data:{ opt:"SEND" }, success:function(data){ if(data.sendEmail == "OK") { $("#formSend").attr({'style':'display:block'}); } } }); }
jscontroller.php
Código:
<?php require_once('core.php'); session_start(); if($_POST["opt"] == "SEND"){ $sendEmail = "OK"; $tabla = "HOLA SOY Json"; $result = array("tabla"=>$tabla,"sendEmail"=>$sendEmail); echo json_encode($result,JSON_FORCE_OBJECT); exit(0); } ?>