Hola colegas, como estan? voy a ser claro y conciso, estoy creando un formulario de contacto, lo estoy validando con json_encode+ajax-jquery+php.
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:
<?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>
';
}
patherfactory.php
Código:
<?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");
}
}
}
?>
?>
xcontrolador.js
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);
}
?>