Red de conocimiento informático - Problemas con los teléfonos móviles - thinkphp3.2.3 Cómo reemplazar contenido mediante herencia

thinkphp3.2.3 Cómo reemplazar contenido mediante herencia

La ventaja de la herencia de plantillas es en realidad diseñar bloques (bloques) en la plantilla base y reemplazar estos bloques en la plantilla secundaria.

Cada bloque consta de etiquetas . A continuación se muestra un diseño de bloque típico en una plantilla básica (utilizada para diseñar títulos de sitios web):

<title> título del sitio< / La etiqueta del bloque p>

debe especificar un atributo de nombre para identificar el nombre del bloque actual, que debe ser único dentro de la plantilla actual.

La etiqueta de bloque puede contener cualquier contenido de plantilla, incluidas otras etiquetas y variables, como

{$web_title}

Incluso puedes cargar archivos externos en bloques:

Una plantilla puede definir any Múltiples bloques con identificadores de nombre únicos, por ejemplo, lo siguiente define una plantilla base base.html:

< meta http -equiv="Tipo de contenido" content="text/html; charset=utf-8">

título</título>

menú

< nombre del bloque ="left">barra lateral izquierda

< block name="main">Contenido principal

< block name="right">Columna derecha< /block>

< block name="footer"> Abajo<

Nosotros luego use la herencia en la plantilla secundaria (en realidad, la plantilla de entrada para la operación actual):

<.block name ="title"> {$title}

inicio< /a>

info

<a href="/bbs/" >Foro

< br/> {$ vo.content}

Últimas noticias:

"/new/{$new.id}">{$new.title}

@ThinkPHP2012 Copyright

Como puede ver, la subplantilla usa la etiqueta extender para definir la plantilla a ser heredado. La etiqueta extender se usa de la misma manera que la etiqueta incluir, y también puedes cargar otras plantillas:

O cargarlas usando rutas de archivo absolutas

En la subplantilla actual, solo puede definir bloques y no otro contenido de la plantilla ; de lo contrario, se ignorará y solo podrá definir bloques que ya estén definidos en la plantilla base.

Por ejemplo, si utilizas la siguiente definición:

{$title}

inicio< /a>

Foro

La sección de navegación no será válida y no se mostrará en la plantilla.

En una subplantilla, se puede anular la definición de un bloque en la plantilla base. Si no se redefine, significa que se sigue la definición del bloque en la plantilla base; definido, significa que se ha eliminado el contenido del bloque en la plantilla base. En el ejemplo anterior, eliminaremos el contenido del bloque IZQUIERDO y recargaremos todos los demás bloques.

El orden de las definiciones de bloques en las plantillas secundarias es arbitrario. El uso de la herencia de plantillas depende de cómo se presenta y diseña la plantilla base. Será más flexible si la combina con la funcionalidad de diseño original.