Exemple #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);
        }
Exemple #2
0
        /// <summary>
        ///		Obtiene las variables de página superior, anterior y siguiente
        /// </summary>
        private VariablesCollection GetVariablesIndex(Pages.FilesIndexComposition filesIndex)
        {
            VariablesCollection variables = new VariablesCollection();

            // Crea un objeto de índice vacío si no existía ninguno
            if (filesIndex == null)
            {
                filesIndex = new Pages.FilesIndexComposition();
            }
            // Añade las variables de índice
            AddVariablesPageIndex(variables, TitleTopPage, UrlTopPage, filesIndex.PageTop);
            AddVariablesPageIndex(variables, TitlePreviousPage, UrlPreviousPage, filesIndex.PagePrevious);
            AddVariablesPageIndex(variables, TitleNextPage, UrlNextPage, filesIndex.PageNext);
            // Devuelve la colección de variables
            return(variables);
        }
Exemple #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));
        }
Exemple #4
0
        /// <summary>
        ///		Obtiene las variables necesarias para crear el BreadCrumb
        /// </summary>
        private VariablesCollection GetVariablesBreadCrumb(Pages.FilesIndexComposition fileIndex)
        {
            VariablesCollection variables = new VariablesCollection();

            // Añade las variables
            if (fileIndex != null && fileIndex.FilesBreadCrumb != null)
            {
                for (int pageIndex = 0; pageIndex < fileIndex.FilesBreadCrumb.Count; pageIndex++)
                {
                    Variable variable = new Variable(VariablePageBreadCrumb, ValueBase.GetInstance(""), pageIndex + 1);

                    // Añade los miembros
                    variable.Members.Add(VariableTitle, ValueBase.GetInstance(fileIndex.FilesBreadCrumb [pageIndex].Title));
                    variable.Members.Add(VariableUrl, ValueBase.GetInstance(fileIndex.FilesBreadCrumb [pageIndex].DocumentFileName));
                    // Añade la variable a la colección
                    variables.Add(variable);
                }
            }
            // Devuelve la colección de variables
            return(variables);
        }
Exemple #5
0
        /// <summary>
        ///		Obtiene las variables con las páginas relacionadas
        /// </summary>
        private VariablesCollection GetVariablesPagesRelated(Pages.FilesIndexComposition fileIndex)
        {
            VariablesCollection variables = new VariablesCollection();

            // Recorre la colección de páginas relacionadas
            if (fileIndex != null && fileIndex.PagesRelated != null)
            {
                for (int pageIndex = 0; pageIndex < fileIndex.PagesRelated.Count; pageIndex++)
                {
                    Pages.DocumentTargetModel page = fileIndex.PagesRelated [pageIndex];
                    Variable variable = new Variable(VariablePageRelated, ValueBase.GetInstance(""), pageIndex + 1);

                    // Añade los miembros
                    variable.Members.Add(VariableTitle, ValueBase.GetInstance(page.Document.Title));
                    variable.Members.Add(VariableUrl, ValueBase.GetInstance(page.GetUrlSource()));
                    variable.Members.Add(VariableUrlImage, ValueBase.GetInstance(page.Document.URLImageSummary));
                    variable.Members.Add(VariableUrlThumb, ValueBase.GetInstance(page.Document.URLThumbImageSummary));
                    // Añade la variable a la colección
                    variables.Add(variable);
                }
            }
            // Devuelve la colección de variables
            return(variables);
        }