Problemas con php e...
 
Avisos
Vaciar todo

Problemas con php en un .tpl

16 Respuestas
5 Usuarios
0 Reactions
3,071 Visitas
Respuestas: 69
Trusted Member
Topic starter
 

Hola

Estoy creando un formulario de contacto para prestashop, para ello estoy he creado una pagina propia (.tpl), para este formulario uso el anti-robots de Google reCaptcha no captcha.
Tengo un pequeño problema ya que el codigo php insertado en el .tpl se imprime en la pagina despes del operador ->
Una imagen vale más que mil palabras, así que:

¿Como puedo arreglar esto?

Mil gracias

URL del sitio: Contenido solo visible a usuarios registrados


 
Respondido : 12/08/2015 10:52 pm
Johnny Heredia Montiel
Respuestas: 20131
Illustrious Member Moderator
 

Hola,

Tu sitio web se encuentra en mantenimiento, tendrías que habilitarlo para poder revisarlo.


 
Respondido : 12/08/2015 11:00 pm
Respuestas: 69
Trusted Member
Topic starter
 

Dame tu IP y la añadoo para que puedas ver el sitio.

Por ciertose me olvido mencionar que el sitio usa el theme Panda


 
Respondido : 13/08/2015 12:56 pm
Pablo Velasco
Respuestas: 20382
Illustrious Member
 

Hola,

Tendrías que quitar el estado de mantenimiento. Ten en cuenta que en el foro somos varias personas respondiendo, cada una con su IP, en incluso algunas de esas IP serían dinámicas, por lo que limitaría la capacidad de ayudarte.

Antes de quitar el estado de manteniemiento te hago una anotación. Para incluir código php dentro de un archivo smarty .tpl no se pueden utilizar la marcas para marcar el inicio y el fin del código php, ya que smarty no sabrá interpretarlo.

En su lugar tienes que utilizar las etiquetas {php} y {/php} para delimitar el código php. En el siguiente enlace puedes ver más información:

http://www.smarty.net/docsv2/es/language.function.php.tpl


 
Respondido : 13/08/2015 2:33 pm
Respuestas: 69
Trusted Member
Topic starter
 

Hola

Ya habia leido lo de {php} y {/php} pero si uso esto en lugar de simplemente me carga una pàgina en blanco...

Entonces si no puedo cargar php con {php} y {/php} ni , ¿que hago?

Voy a preguntar si puedo quitar el estado de mantenimiento, aunque dudo que me dejen hacerlo, sin eso no hay solución?

Gracias.


 
Respondido : 13/08/2015 4:23 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

Una opción es tener tu código en un archivo externo tal como se muestra en el ejemplo, verás la sentencia include

http://www.smarty.net/docsv2/es/language.function.php.tpl

Si aún asi te sale errores es posible que el código que insertas sea el problema y no la integración con smarty, tendrías que probar tu código de manera aislada primero con un html simple antes de integrarlo con prestashop.

Saludos


 
Respondido : 13/08/2015 5:27 pm
Respuestas: 69
Trusted Member
Topic starter
 

Hola

El codigo no es el problema, ya que he testeado un simple echo "hola"; y no imprime el hola

Como comento en mi anterior mensaje, con {php} y {/php} me carga una pagina en blanco, el include tampoco lo podria hacer

Además de todo esto, desenvolupe el formulario completo en archivos externos, por lo que no hay problemas en ellos.

Como al principio tenia el problema de integracion php, puse todo el envio del form en un php externo, pero estoy usando recaptcha no captcha y eso lo tengo que incluir en el archivo que pinta el formulario.

Gracias.


 
Respondido : 13/08/2015 6:03 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

Con el include lo puedes hacer, es decir es como si se insertara todo el código en el lugar indicado.
Prueba hacer ut echo "hola" con el archivo incluido

Saludos.


 
Respondido : 13/08/2015 6:28 pm
Respuestas: 69
Trusted Member
Topic starter
 

¿Y como hago un include sin php? No me permite usar ni ni {php} y {/php}

Si uso no me carga la zona central del template, es decir el header, sidebar y footer si que me los carga pero el contenido de la pagina no.

Y si uso {php} y {/php} me carga toda la pagina completamente en blanco.

Es más de poder usar un include en prestashop hubiera hecho el form en una pagina del cms

Gracias.


 
Respondido : 13/08/2015 9:24 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

Según veo {php} esta descartado para las plantillas de smarty en prestashop, revisa
https://www.prestashop.com/forums/topic/232274-include-php-file-in-tpl-file/

En resumen en la vista sólo podrás poner código final html o variables con smarty, el código PHP tendrías que usarlo en el controlador

Tendrías que especificar que código quieres poner en este archivo .tpl ya que no podrás insertarlo directamente

Una opción alterna es que lo incluyas con sentencias smarty, tu código estaría en un archivo .php pero lo incluirías con :

{include file="http://tu_sitio.com/tu_archivo.php"}

Tendrías que usar la url de tu sitio y el archivo .php copiado en la raiz de tu sitio

Saludos.


 
Respondido : 13/08/2015 9:57 pm
Respuestas: 69
Trusted Member
Topic starter
 

El metodo aterno que me propones me deja la pagina en blanco, exactamente igual que si uso el {php}{/php}

Lo del controlador no lo piillo, como se haria eso?

El codigo que necesito insertar en mi .tpl es este:

verifyResponse(
			$_SERVER["REMOTE_ADDR"],
			$_POST["g-recaptcha-response"]
		);
	}
?>

ALTA NEWSLETTER PARA PROFESIONALES:

Dese de alta como profesional para recibir nuestras invitaciones a actividades para profesionales, cursos, seminarios, webinarios e informaciones relacionadas.

success) { echo "Hi " . $_POST["name"] . " (" . $_POST["email"] . "), thanks for submitting the form!"; } else { ?>
@

gracias


 
Respondido : 14/08/2015 4:05 am
Jordi Sala
Respuestas: 12058
Illustrious Member Admin
 

Hola Oscar,

Respecto al tema del controlador, tienes una ejemplo en https://www.prestashop.com/forums/topic/329803-problema-con-personalizacion-de-tpl-en-backoffice/?p=1670764

Saludos


 
Respondido : 14/08/2015 10:36 am
Respuestas: 69
Trusted Member
Topic starter
 

Hola

Aun no he probado lo que ahi se explica, pero la replica de la persona que pide ayuda es que eso no funciona... :S

Gracias.


 
Respondido : 14/08/2015 5:53 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

A primera vista viendo el código que quieres poner, no creo que te funcione, la razón es por que estas saliendo del modelo de programación de Prestashop, no te funcionará usas por ejemplo : $_POST["name"]
Además veo en este misma línea que esperas que te envie un mensaje, esto igual no te funcionará por que todo lo maneja prestashop con el modelo MVC

Tendrías que evaluar hacer un módulo prestashop para lo que quieres y ceñirte al estandard de programacion que se usa, lamentablemente si decides hacer un módulo, desde foro no podemos asesorarte en estos temas de programación debido a su complejidad,

Otra opcion alterna es que este archivo sea un archivo independiente de prestashop y lo llames desde un link o un iframe

Saludos.


 
Respondido : 14/08/2015 7:20 pm
Respuestas: 69
Trusted Member
Topic starter
 

¿Y dejando de lado el codigo que os he puesto (ya que puedo trabajar sobre uno más sencillo)?
¿¿Como hago para imprimir un simple echo "hola mundo";??
Como ya os dijje las soluciones que me proponiais no eran validas. Y simplemente un include ya me solucionaria el tema.

¿Si hago un modulo, podré trabajar con php o estaré en las mismas?

Los iframes tampoco estan permitidos en Prestashop y a parte de no estarlo (dado que se puede desactivar el bloqueo en el documento de validación) no stán recomendados.

Por cierto, volviendo al tema del controlador, dado que este se trabaja en php, ¿podria desde ahí aplicar todo el codigo?
¿Y en ese caso como se haria? Ya que no acabo de entender mucho el rollo del Controller

Gracias.


 
Respondido : 15/08/2015 10:03 pm
Página 1 / 2