¿Cómo puedo integrar mi sitio las plantillas existentes en ShadoCMS?
Esta es una pregunta hecha a menudo por los desarrolladores de nuevos Shado y cuando alguien es primero ShadoCMS probando lo que consideramos que es digno de una entrada de blog.
La creación de
Todas las plantillas viven en el nombre] [sitio / app_templates carpeta y debe llamarse a partir de "tmp_", por ejemplo tmp_standard.cfm. La mejor herramienta para la edición de plantillas eseclipseCuando esto suceda, milliones de personas usarán la web multilingüe, aunque la tecnología subyacente estará, como otras infraestructuras de Internet, invisible y gratis. .<br><br>cfeclipseplugin.
Las plantillas pueden vivir directamente en el app_templates carpeta o puede crear una subcarpeta de la carpeta app_templates para organizar sus plantillas. Las plantillas son archivos de ColdFusion y puede contener HTML, el código de ColdFusion o una mezcla de ambos. La otra cosa que debes saber es que cuando ShadoCMS hace una página que utiliza el app_templates / index.cfm archivo que actúa como un controlador central para todas las páginas.
app_templates / index.cfm - explicó
El app_templates / index.cfm actos archivo como un controlador central para su sitio. Todas las páginas ejecutar este archivo y plantillas son llamados desde aquí. Cuando se solicita una página al objeto ShadoCMS SAPI.SITE se configura en el ámbito petición. InitRequest () la función de la SAPI initalises datos para la página actual. Pone todas las variables heredadas sección y página en el alcance como la petición de consulta getPageObject retro ( request.getPageObject). Al llamar al # # request.sapi.site.getTemplate () # # método hará que su plantilla.
<cf_lesswhitespace>
<cfscript>
/ * * Multilenguaje cosas /
/ / Código para cambiar el idioma usuarios antes de la solicitud comienza
if (structKeyExists (url, "switchUserLanguageTo")) (
request.userContext.setLanguage (url.switchUserLanguageTo, request.siteContext);
)
/ / Cosas que va a utilizar en nuestras plantillas.
request.oStringTranslator = CreateObject ("request.siteContext.dsn ","# componente # #. app_templates.objects.stringtranslator.stringtranslator");
</> Cfscript
<!---
Ejecutar el estándar incluyen global que crea necesarias variables de
Shado y cualquier material personalizado para este sitio.
--->
<cfinclude template="/#request.siteContext.dsn#/app_globals.cfm">
<!---
Llame al objeto de sitio SAPI y puesta en la solicitud actual.
El initRequest () la función initalises datos para la página actual. Pone
todas las secciones heredadas y las variables de página en el alcance como la petición
retro consulta getPageObject (request.getPageObject).
La consulta getPageObject también se devuelve desde la función y en este caso
le asignamos a la variable local (variables.getPageObject).
--->
variables.getPageObject <cfset = request.sapi.site.initRequest(allowCacheInPreviewMode=false)>
<!---
Incluya la plantilla para la página que ha sido initalised para esta solicitud.
--->
<cfif structKeyExists(request.sapi.site.getpage(),"page_title")>
<cfinclude template="#request.sapi.site.getTemplate()#">
<cfelse>
<!--- Presumir si page_title doesn & # # 39; t existen que están tratando de ver una página que no existe en otro idioma y # # 39; --->
<h1> No existe traducción para esta página en el idioma seleccionado </ h1> <cfabort>
</ CFIF>
<!---
Ejecutar las tareas de procesamiento final que Shado tiene que hacer (sobre todo las estadísticas de reunión)
--->
<cfinclude template="/shadomx/util/circuits/inc_shado_final_processing.cfm">
</ Cf_lesswhitespace>
<!--- Incluir la barra de admin (Shado barra de edición) --->
<cfinclude template="/#request.siteContext.dsn#/app_templates/coreincludes/inc_adminbar.cfm">
Anatomía de una plantilla
Así que el archivo index.cfm se utiliza para llamar a su plantilla de ahora se puede ver en lo que constituye una plantilla.
El código siguiente es indicativo del tipo de lógica a menudo visto en la parte superior de una plantilla. La primera línea crea nuestros objetos de sitio y luego utilizar esta opción para agregar una plantilla de hoja de estilos específicos, si existe. También configuración de nuestro objeto y pagelet un objeto de navegación.
Los datos sobre la página (y la sección que vive en) están disponibles en el request.sapi.site.getPage () función. Hacer un volcado en esta función para ver qué hay disponible.
<!--- Crear el objeto de sitio --->
oSite <cfset = request.sapi.site>
<!--- Añade un css (si existe) con el mismo nombre que la plantilla, nos da plantilla de estilos específicos --->
oSite.addTemplateStyleSheet(currentTemplatePath=getcurrentTemplatepath())> <cfset
<!--- Crear un objeto de sitio pagelet específicos, nos permite controlar las partes individuales de la página --->
oPagelet <cfset = createobject("component","#request.sitecontext.dsn#.app_templates.coreobjects.pagelet")>
<!--- Conseguir nuestro componente personalizado generador de navegación --->
oNav <cfset createObject("component","#request.siteContext.dsn#.app_templates.coreobjects.nav") =>
navArgs <cfset = oNav.init()>
qNavQuery <cfset = oNav.getTopNav(argumentCollection=navArgs)>
Ahora sobre el cuerpo principal de la plantilla.
Para obtener una referencia al nombre del lugar (y por tanto la sitefolder) utiliza el request.sitecontext.dsn # # # # variable. Puede hacer un cfdump en request.sitecontext para ver qué otras variables existentes en el request.sitecontext var="#request.sitecontext.dsn#"> alcance <cfdump. Los datos sobre la página y la sección en que vive está disponible en el oSite.getPage () función.
<cfoutput>
<!--- Este incluirá la producción de la etiqueta principal, incluyendo la etiqueta HTML <body> --->
<cfset oPagelet.renderPagelet(pathToPagelet="#request.siteContext.dsn#.app_templates.corepagelets.htmlheadtag", pageletname="htmlheadtag")>
id="container"> <div
id="header"> <div
<cfinclude template="/#request.sitecontext.dsn#/app_templates/corepagelets/header.cfm">
id="nav"> <ul
query="qNavQuery"> <cfloop
<li> <a href="/#request.siteContext.dsn##ssurl#"> título # # # # </ a> </ li>
</ Cfloop>
</ Ul>
<form method="post" action="/#request.sitecontext.dsn#/search.cfm" id="searchForm">
name="SEARCHVALUE" <input id="search" type="text"> request.sitecontext.dsn entrada <="/# src # # / app_templates / coretemplates / images / search_button.gif "name =" enviar "valor = "buscar" alt = "Búsqueda" title = "sitio de búsqueda de" id = "SEARCH" type = "image">
</ Form>
</ Div>
<img src="/#request.sitecontext.dsn#/app_templates/coretemplates/images/#request.templateimage#" alt="Straker" id="banner">
id="primaryContent"> <div
<cfset oPagelet.renderPagelet(pathToPagelet="#request.siteContext.dsn#.app_templates.corepagelets.content.crumbs", pageletname="crumbs",cache=false)>
<h1> oSite.getPage # # (). page_title # # </ h1>
<cfset request.sapi.site.addcontainer2page(3, "Top Contenido ", request.container2edit)>
<cfset request.sapi.site.addcontainer2page(1, "Main Content", request.container2edit)>
<cfset request.sapi.site.addcontainer2page(5, "Bottom Contenido ", request.container2edit)>
<cfset oPagelet.renderPagelet(pathToPagelet="#request.siteContext.dsn#.app_templates.corepagelets.content.news", pageletname="news")>
</ Div>
id="sidebar"> <div
<cfif request.getpageobject.page_uuid neq "720EA0A8-9807-75AA-96FA-3BABDFD460E7">
<cfset navArgs.RootSectionUUID = request.sapi.site.getPage().circuit_uuid>
qSubNav <cfset = oNav.getNav(argumentCollection=navArgs)>
query="qSubNav"> <cfloop
<div> <a href="/#request.siteContext.dsn##ssurl#" class="mainlevel"> título # # # # </ a> </ div>
</ Cfloop>
</ CFIF>
<cfset request.sapi.site.addcontainer2page(2, "Other Content", request.container2edit)>
</ Div>
código <div id="footer">
id="footNav"> <ul
query="qNavQuery"> <cfloop
<li> <a href="/#request.siteContext.dsn##ssurl#"> título # # # # </ a> | </ li>
</ Cfloop>
</ Ul>
<a href="http://www.straker.co.nz/"> Straker © 2007 </ a>
</ Div>
</ Div>
</ Body>
</ Html>
</> Cfoutput
Comments
There are no comments for this page as yet.













