Problemas con php en un .tpl  

Página 1 / 2
 
oscar
 oscar
Usuario experto

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

Citar
Respondido : 12/08/2015 11:52 pm
Johnny Heredia Montiel
 Johnny Heredia Montiel
Miembro Moderator

Hola,

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

Si nuestra ayuda te ha sido útil, déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 13/08/2015 12:00 am

wpdoctor-revisa-la-salud-de-tu-wordpress

oscar
 oscar
Usuario experto

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

ResponderCitar
Respondido : 13/08/2015 1:56 pm
Pablo Velasco
 Pablo Velasco
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

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar Testimonio
¡Gracias!.

ResponderCitar
Respondido : 13/08/2015 3:33 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

oscar
 oscar
Usuario experto

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.

ResponderCitar
Respondido : 13/08/2015 5:23 pm
Jhon Marreros Guzman
 Jhon Marreros Guzman
Soporte CMS Webempresa 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

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 13/08/2015 6:27 pm

Cursos Gratuitos WordPress

oscar
 oscar
Usuario experto

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.

ResponderCitar
Respondido : 13/08/2015 7:03 pm
Jhon Marreros Guzman
 Jhon Marreros Guzman
Soporte CMS Webempresa 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.

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 13/08/2015 7:28 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

oscar
 oscar
Usuario experto

¿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.

ResponderCitar
Respondido : 13/08/2015 10:24 pm
Jhon Marreros Guzman
 Jhon Marreros Guzman
Soporte CMS Webempresa 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.

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 13/08/2015 10:57 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

oscar
 oscar
Usuario experto

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

ResponderCitar
Respondido : 14/08/2015 5:05 am
Jordi Sala
 Jordi Sala
Miembro 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

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio

ResponderCitar
Respondido : 14/08/2015 11:36 am

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

oscar
 oscar
Usuario experto

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.

ResponderCitar
Respondido : 14/08/2015 6:53 pm
Jhon Marreros Guzman
 Jhon Marreros Guzman
Soporte CMS Webempresa 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.

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 14/08/2015 8:20 pm

Cursos Gratuitos WordPress

oscar
 oscar
Usuario experto

¿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.

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

Por favor Iniciar Sesión o Registro