2011-01-08 9 views
6

¿Cómo puedo cambiar la extensión de CakePHP Vistas desde .ctp a .phpCakePHP Ver el cambio de extensión

he visto que hay en esta línea /cake/libs/view.php var $ext = '.ctp'; que establece la extensión, pero ¿cómo puede Lo hago desde mi carpeta/app/para que no afecte los archivos básicos de Cake.

Gracias

Respuesta

10

Puede establecer la extensión de su AppController con

public $ext = '.yourext'; 
+0

¿Qué hay de las extensiones múltiples, como aceptar tanto .php como .ctp, eso es posible? – Cameron

+0

No puede especificar varias extensiones, sin embargo, parece que hay un retroceso a .ctp si no se encuentra ningún archivo .php. Sin embargo, esto no funciona para los elementos (abrí un ticket para este problema). – dhofstet

1

Ésta es decir respuesta al comentario de Cameron respecto a la cuestión de la utilización múltiples extensiones a la luz del hecho de cakephp no permite usted para especificar extensiones múltiples

Estoy usando Mustache para un sitio único que usa merb, rails2, rails3 y cakephp para diferentes secciones del sitio. El sitio de la torta "recibe" archivos de bigote para elementos de diseño comunes, pero estas plantillas tienen una extensión de archivo 'bigote' que mi sitio de pastel no reconocerá. Mi solución es básicamente lo que dhofstet sugiere enmarcado en el contexto de su caso de uso específico. En definitiva, crear un contenedor que podría ser algo como esto:

<? 
    $tmp = $this->ext; 
    $this->ext = '.mustache'; 
?> 
<?= $m->render($this->renderElement('moznav/advanced_header'), array('foo' => $bar)) ?><br /> 

<? $this->ext = $tmp; ?> 

Cuando el flujo vuelve a la persona que llama, que siguen utilizando la extensión de archivo nativo.

0

How can I change the extension for CakePHP Views from .ctp to .php

I have seen there is this line in /cake/libs/view.php var $ext = '.ctp'; that sets the extension but how can I do it from my /app/ folder so it doesn't effect Cake core files.

ejemplo:

  • tiene vista posts/add.ctp
  • ahora se cambia el nombre add.ctp en add.php
  • y luego ejecuta el programa .../posts/add mensaje de error:

    Error: The view for PostsController::add() was not found.

    para su aplicación puede comprender la extensión .php, agrega línea pública $ext = '.php' en PostsController.php

  • ahora, se ejecuta de nuevo. .posts/add => Okie, cakephp entienden extensión .php

Aviso: si utiliza atrribuya vista $ext = '.php' pero fichero llamado .ctp, extensión cakephp .ctp utilizará de forma predeterminada

0

me encontré con este post porque he tenido la el mismo problema. Esto no se menciona en la documentación del plugin Predominant TwigView en Github. Estoy cansado de esas documentaciones que explican solo la mitad de las cosas y con las cuales tenemos que adivinar la segunda mitad. Esta es una gran pérdida de tiempo que ralentiza proyectos sin sentido.

Cuestiones relacionadas