Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Jade y PHP

Estas en el tema de Jade y PHP en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola!... Soy nuevo por aquí y de antemano pido disculpas si este tema no corresponde a esta sección. Mi problema es que empecé a usar ...
  #1 (permalink)  
Antiguo 13/12/2012, 00:16
 
Fecha de Ingreso: diciembre-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 2
Pregunta Jade y PHP

Hola!... Soy nuevo por aquí y de antemano pido disculpas si este tema no corresponde a esta sección. Mi problema es que empecé a usar Jade para generar mi código HTML, y a la ves estoy trabajando con CakePHP, para los que ya conocen Cake saben que éste trabaja bajo archivos con extensión *.ctp, lo cual no tengo inconveniente ya que jade me renderiza estos archivos como si fueran HTML, el inconveniente es cuando intento utilizar código PHP dentro de los archivos *.jade, me explico, si quisiera hacer un link usando Cake dentro de un archivo ctp, tendría que codear lo siguiente:

Código PHP:
<?php
    
echo $this -> Html -> link('Un link', array('controller' => 'Controlador''action' => 'alguna_accion'));
?>
Lo cual se renderizaría como:

Código HTML:
<a href="Controlador/alguna_accion">Un link</a> 
Aquí es donde está el problema, como inserto el código PHP en el archivo Jade para que se renderice como debe ser?

Muchas gracias
  #2 (permalink)  
Antiguo 14/12/2012, 07:16
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Jade y PHP

no conozco jade ¿es un script de javascript?, en dado cado solo necesitas renombrarlo a *.php o con la extensión del sistema de plantillas de cake, para que sea leído por PHP y como tal por el Core de cake.

¿realmente Jade te pide que el archivo sea *.jade?

si es esto: http://en.wikipedia.org/wiki/JADE_%2...ng_language%29 me temo que es un lenguaje similar a php, por lo que no veo el porqué necesites php en tal caso
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 14/12/2012, 07:48
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Jade y PHP

Tengo la duda tambien de a que jade se refiere exactamente, @johnse0828 estamos hablando del template engine jade ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 14/12/2012, 11:25
 
Fecha de Ingreso: diciembre-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Jade y PHP

Cita:
Iniciado por masterpuppet Ver Mensaje
Tengo la duda tambien de a que jade se refiere exactamente, @johnse0828 estamos hablando del template engine jade ?
Hola, siento no especificar, me refiero a Jade Template Engine!
  #5 (permalink)  
Antiguo 14/12/2012, 11:34
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Jade y PHP

En ese caso, no te sirven los filtros ?

Código JADE:
Ver original
  1. :php
  2.     echo $this ->Html->link('Un link', array('controller' => 'Controlador', 'action' => 'alguna_accion'));
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 15/12/2012, 10:17
 
Fecha de Ingreso: diciembre-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Jade y PHP

Hola, no, no sirven, el error que me arroja cuando compilo es:
Error: uknown filter ":php"
  #7 (permalink)  
Antiguo 15/12/2012, 10:21
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Jade y PHP

Pregunta tonta, lo habilitaste al filtro ?, postea el código que estas utilizando.
__________________
http://es.phptherightway.com/
thats us riders :)
  #8 (permalink)  
Antiguo 15/12/2012, 11:38
 
Fecha de Ingreso: diciembre-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Jade y PHP

Hola, este es el código que estoy utlizando, y como es eso de habilitar los filtros? Como lo mencioné, soy nuevo en Jade. :S
Código HTML:
li
    :php
        echo $this -> Html -> link('Link', array('controller => Controlador', 'action' => 'Accion'))
  #9 (permalink)  
Antiguo 17/12/2012, 01:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Jade y PHP

No hace falta ningún filtro.

Al igual que Haml, Jade debe contar con modificadores para acceso a código en linea.

HAML
Cita:
%p.foo= $mi_variable
JADE
Cita:
p#bar= $mi_variable
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 17/12/2012, 05:39
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Jade y PHP

@johnse0828, yo te hablo del código que genera los templates, estas utilizando este compiler verdad ? https://github.com/everzet/jade.php
__________________
http://es.phptherightway.com/
thats us riders :)
  #11 (permalink)  
Antiguo 17/12/2012, 18:39
 
Fecha de Ingreso: diciembre-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Jade y PHP

Hola, gracias por responder pateketrueke, lo siento, pero no me funciona como Haml, tienes alguna otra manera que pueda ser?.

Y masterpuppet, el que estoy utilizando es el Node Template (https://github.com/visionmedia/jade#readme), no es el compiler for PHP ya que como lo mencioné en el primer comentario, estoy trabajando sobre un Framework de PHP llamado CakePHP y no puedo utilizar el compiler de Jade.
  #12 (permalink)  
Antiguo 17/12/2012, 18:55
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Jade y PHP

Haaaaa por eso no tienes el filtro que te comento :P, conozco el fw pero no se como interactúas con jade, si hablas un poco del flow talves te pueda dar una mano porque independientemente de como lo hagas el tema esta en el $this al que quieres referencias dentro de un template, y otro comentario, alguna razón en especial para utilizar jade ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #13 (permalink)  
Antiguo 17/12/2012, 21:45
 
Fecha de Ingreso: diciembre-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Jade y PHP

jeje... Ps la única razón es simplificar y optimizar la lectura de código del Front-End, solo que no creí que Jade me pusiera tanto lío al intentar colocar una etiqueta de PHP embebida!
  #14 (permalink)  
Antiguo 18/12/2012, 10:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Jade y PHP

¿Entonces estás usando Jade para Javascript o Jade para PHP?

No es igual, por favor aclarate.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 18/12/2012, 11:03
 
Fecha de Ingreso: diciembre-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Jade y PHP

Hola pateketrueke, gracias por responder, es Jade para JavaScript... Y Ps lo único que necesito saber es si se puede insertar una etiqueta de php!
  #16 (permalink)  
Antiguo 18/12/2012, 17:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Jade y PHP

Lee aquí:
http://www.forosdelweb.com/f68/trata...n-php-1028430/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 18/12/2012, 20:02
 
Fecha de Ingreso: diciembre-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Jade y PHP

Buenas noches @pateketrueke, ps bn, como ya lo he expresado anteriormente, no utilizo Jade Compiler para PHP porque el proyecto como tal lo estoy trabajando sobre CakePHP, por lo tanto, no puede combinar Jade Compiler for PHP con CakePHP, es por eso que pensé que utilizando el Node Template Engine de Jade podría diseñar mis interfaces de una manera muy clara, pero según veo, con Jade para Javascript no es posible :(.

En Jade Node Template Engine, hay un archivo js llamado filters.js qué es, creo yo, el archivo donde se generan los filtros, este archivo contiene lo siguiente
Código Javascript:
Ver original
  1. /*!
  2.  * Jade - filters
  3.  * Copyright(c) 2010 TJ Holowaychuk <[email protected]>
  4.  * MIT Licensed
  5.  */
  6.  
  7. module.exports = {
  8.  
  9.   /**
  10.    * Wrap text with CDATA block.
  11.    */
  12.  
  13.   cdata: function(str){
  14.     return '<![CDATA[\\n' + str + '\\n]]>';
  15.   },
  16.  
  17.   /**
  18.    * Transform sass to css, wrapped in style tags.
  19.    */
  20.  
  21.   sass: function(str){
  22.     str = str.replace(/\\n/g, '\n');
  23.     var sass = require('sass').render(str).replace(/\n/g, '\\n');
  24.     return '<style type="text/css">' + sass + '</style>';
  25.   },
  26.  
  27.   /**
  28.    * Transform stylus to css, wrapped in style tags.
  29.    */
  30.  
  31.   stylus: function(str, options){
  32.     var ret;
  33.     str = str.replace(/\\n/g, '\n');
  34.     var stylus = require('stylus');
  35.     stylus(str, options).render(function(err, css){
  36.       if (err) throw err;
  37.       ret = css.replace(/\n/g, '\\n');
  38.     });
  39.     return '<style type="text/css">' + ret + '</style>';
  40.   },
  41.  
  42.   /**
  43.    * Transform less to css, wrapped in style tags.
  44.    */
  45.  
  46.   less: function(str){
  47.     var ret;
  48.     str = str.replace(/\\n/g, '\n');
  49.     require('less').render(str, function(err, css){
  50.       if (err) throw err;
  51.       ret = '<style type="text/css">' + css.replace(/\n/g, '\\n') + '</style>';  
  52.     });
  53.     return ret;
  54.   },
  55.  
  56.   /**
  57.    * Transform markdown to html.
  58.    */
  59.  
  60.   markdown: function(str){
  61.     var md;
  62.  
  63.     // support markdown / discount
  64.     try {
  65.       md = require('markdown');
  66.     } catch (err){
  67.       try {
  68.         md = require('discount');
  69.       } catch (err) {
  70.         try {
  71.           md = require('markdown-js');
  72.         } catch (err) {
  73.           try {
  74.             md = require('marked');
  75.           } catch (err) {
  76.             throw new
  77.               Error('Cannot find markdown library, install markdown, discount, or marked.');
  78.           }
  79.         }
  80.       }
  81.     }
  82.  
  83.     str = str.replace(/\\n/g, '\n');
  84.     return md.parse(str).replace(/\n/g, '\\n').replace(/'/g,''');
  85.   },
  86.  
  87.   /**
  88.    * Transform coffeescript to javascript.
  89.    */
  90.  
  91.   coffeescript: function(str){
  92.     var js = require('coffee-script').compile(str).replace(/\\/g, '\\\\').replace(/\n/g, '\\n');
  93.     return '<script type="text/javascript">\\n' + js + '</script>';
  94.   }
  95.  
  96. };

Yo agregue estas lineas pero no sé que otras modificaciones hacerle para que pueda funcionar:

Código Javascript:
Ver original
  1. /**
  2.   * Transform php a html
  3.   */
  4.  
  5.   php: function(str){
  6.     str = str.replace(/\\n/g, '\n');
  7.     return '<?php ' + str + ' ;?>';
  8.   }

Si alguno puede ayudarme, le estaré eternamente agradecido, gracias muchachos!
  #18 (permalink)  
Antiguo 19/12/2012, 09:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Jade y PHP

La principal pregunta aquí es, ¿que te impide no usar la versión de Jade para PHP?

Me parece que los árboles te impiden ver el bosque, sé que se puede integrar cualquier tipo de clase o librería de terceros a cualquier framework, no veo de verdad el problema.

¿O qué parte de CakePHP te dice que no es posible?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #19 (permalink)  
Antiguo 19/12/2012, 09:48
 
Fecha de Ingreso: diciembre-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Jade y PHP

El impedimento más grande es que no sabría como hacerlo jeje, si tu conoces la manera de hacerlo, wow! Te agradeceré muchisimo!
  #20 (permalink)  
Antiguo 19/12/2012, 10:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Jade y PHP

¿Ves ahora cual es tu verdadero problema?

Asumir que es imposible o que simplemente no eres capaz de hacer las cosas es el primero paso hacia el fracaso, te lo digo de verdad.

Lo primero que debes ir haciendo es probar de manera independiente la librería de Jade para PHP, si consigues hacerla funcionar con algunas plantillas o ejemplos ya habrás dado el primero paso correctamente.

Después de eso puedes revisar la documentación de CakePHP para integrar dicha librería y usarla libremente dentro de tu proyecto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #21 (permalink)  
Antiguo 19/12/2012, 11:31
 
Fecha de Ingreso: diciembre-2012
Mensajes: 24
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Jade y PHP

Vale, ps por mi el tema lo dejo abierto a ver si a alguien se le ocurre una manera de agregar los filtros de PHP para que el compilador de Jade Node Template Engine genere el código correctamente.

Los filtros que actualmente soporta Jade son para cdata, sass, less, stylus, coffee-script y markdown, y usando el instalador de paquetes de NodeJs "npm" es posible instalar cada uno de estos modulos, incluido el de php, pero no sé como hacerlo funcionar.

Gracias

Etiquetas: cakephp, html, jade, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:45.