예제 #1
0
        /// <summary>
        ///		Compila una página
        /// </summary>
        internal string Compile(Model.Documents.DocumentModel document, DateTime createdAt,
                                Pages.SectionSourceModel template, Pages.FilesIndexComposition pageIndex)
        {
            VariablesCollection variables = new VariablesCollection();
            string content;

            // Obtiene las variables de proyecto
            variables.AddRange(GetProjectVariables());
            variables.AddRange(GetSectionVariables(Model.Documents.DocumentModel.ScopeType.Web));
            variables.AddRange(GetSectionVariables(Model.Documents.DocumentModel.ScopeType.News));
            variables.AddRange(GetVariablesPage(document, createdAt, null));
            variables.AddRange(GetVariablesIndex(pageIndex));
            // Añade las páginas relacionadas
            variables.AddRange(GetVariablesPagesRelated(pageIndex));
            // Añade las variables de breadCrumb
            variables.AddRange(GetVariablesBreadCrumb(pageIndex));
            // Añade las variables de sección asociadas a la página
            variables.AddRange(GetVariablesSectionPerPage(variables));
            // Compila la página y añade el contenido a la variable
            content = Compile(document.File.DocumentFileName, document.Content, variables, 0);
            variables.Remove(VariableContent);
            variables.Add(VariableContent, content);
            // Compila el contenido del archivo con la plantilla
            if (template != null)
            {
                content = Compile(document.File.DocumentFileName, template.Source.Content, variables, 0);
            }
            else                     // Añade el error y deja el contenido como estaba
            {
                Processor.Errors.Add(document.File.DocumentFileName, "No se encuentra ninguna plantilla");
            }
            // Devuelve el valor compilado
            return(content);
        }
예제 #2
0
        /// <summary>
        ///		Compila una categoría
        /// </summary>
        internal string CompileCategory(Model.Documents.DocumentModel category, DateTime createdAt,
                                        string strContentHeader, string strContentItems,
                                        Pages.SectionSourceModel templateMain)
        {
            VariablesCollection variables = new VariablesCollection();

            // Obtiene las variables de proyecto
            variables.AddRange(GetProjectVariables());
            variables.AddRange(GetSectionVariables(Model.Documents.DocumentModel.ScopeType.Web));
            variables.AddRange(GetSectionVariables(Model.Documents.DocumentModel.ScopeType.News));
            // Obtiene las variables de la página
            variables.AddRange(GetVariablesPage(category, createdAt, null));
            // Quita la variable de contenido
            for (int index = variables.Count - 1; index >= 0; index--)
            {
                if (variables [index].Name.EqualsIgnoreCase(VariableContent))
                {
                    variables.RemoveAt(index);
                }
            }
            // Añade las variables de contenido y contenido adicional
            variables.Add(GetVariable(VariableContent, strContentHeader, null));
            variables.Add(GetVariable(VariableAdditionalContent, strContentItems, null));
            // Compila
            return(Compile(category.File.FullFileName, templateMain.Source.Content, variables, 0));
        }
예제 #3
0
        /// <summary>
        ///		Compila los elementos de una categoría
        /// </summary>
        internal string CompileItemsCategory(Model.Documents.DocumentModel category, Pages.SectionSourceModel template,
                                             Pages.FileTargetModelCollection childs,
                                             Pages.FilesIndexComposition fileIndex)
        {
            VariablesCollection variables = new VariablesCollection();

            // Obtiene las variables de las páginas
            variables.AddRange(GetVariablesDocumentForCategory(childs));
            // Obtiene las varialbes de proyecto
            variables.AddRange(GetProjectVariables());
            variables.AddRange(GetSectionVariables(Model.Documents.DocumentModel.ScopeType.Web));
            variables.AddRange(GetSectionVariables(Model.Documents.DocumentModel.ScopeType.News));
            variables.AddRange(GetVariablesDocumentForCategory(childs));
            // Obtiene las variables del índice
            variables.AddRange(GetVariablesIndex(fileIndex));
            // Añade las variables de sección para la página
            variables.AddRange(GetVariablesSectionPerPage(variables));
            // Compila el archivo
            return(Compile(category.File.DocumentFileName, template.Source.Content, variables, 0));
        }
예제 #4
0
 /// <summary>
 ///		Compila una cadena
 /// </summary>
 internal string Compile(Pages.SectionSourceModel document, VariablesCollection variables, int maxInstructions)
 {
     return(Compile(document.Source.File.DocumentFileName, document.Source.Content, variables, maxInstructions));
 }