Esempio n. 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);
        }
Esempio n. 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));
        }
Esempio n. 3
0
        /// <summary>
        ///		Obtiene las variables de un documento para introducirlas en una categoría
        /// </summary>
        internal VariablesCollection GetVariablesPage(Model.Documents.DocumentModel document, DateTime createdAt, int?pageIndex)
        {
            VariablesCollection variables = new VariablesCollection();

            // Añade las variables de las páginas para la categoría
            if (document != null)
            {
                // Añade las variables de la página
                variables.Add(GetVariable(VariableTitle, document.Title, pageIndex));
                variables.Add(GetVariable(VariableKeyWords, document.KeyWords, pageIndex));
                variables.Add(GetVariable(VariableDescription, document.Description, pageIndex));
                variables.Add(GetVariable(VariableUrlImage, document.URLImageSummary, pageIndex));
                if (!document.URLImageSummary.IsEmpty() &&
                    System.IO.File.Exists(System.IO.Path.Combine(Processor.Project.File.Path,
                                                                 document.URLThumbImageSummary)))
                {
                    variables.Add(GetVariable(VariableUrlThumb, document.URLThumbImageSummary, pageIndex));
                }
                else
                {
                    variables.Add(GetVariable(VariableUrlThumb, "", pageIndex));
                }
                variables.Add(GetVariable(VariableDate, string.Format("{0:dd-MM-yyyy}", createdAt), pageIndex));
                variables.Add(GetVariable(VariableDay, createdAt.Day.ToString(), pageIndex));
                variables.Add(GetVariable(VariableMonth, createdAt.Month.ToString(), pageIndex));
                variables.Add(GetVariable(VariableMonthName,
                                          System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(createdAt.Month).ToUpperFirstLetter(),
                                          pageIndex));
                variables.Add(GetVariable(VariableYear, createdAt.Year.ToString(), pageIndex));
                // Añade las variables con el nombre completo de la página
                if (Processor.Project.AddWebTitle && !Processor.Project.Title.IsEmpty())
                {
                    variables.Add(GetVariable(VariableFullTitle,
                                              $"{document.Title} - {Processor.Project.Title}",
                                              pageIndex));
                }
                else
                {
                    variables.Add(GetVariable(VariableFullTitle, document.Title, pageIndex));
                }
                // Añade las variables de las etiquetas
                variables.AddRange(GetVariablesTag(document, pageIndex));
            }
            // Devuelve la colección de variables
            return(variables);
        }
Esempio n. 4
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));
        }
Esempio n. 5
0
        /// <summary>
        ///		Obtiene las variables de etiqueta
        /// </summary>
        private VariablesCollection GetVariablesTag(Model.Documents.DocumentModel document, int?pageIndex)
        {
            VariablesCollection variables = new VariablesCollection();
            int tagIndex = 0;

            // Añade las variables de la etiqueta
            if (pageIndex == null)
            {
                foreach (Model.Solutions.FileModel tag in document.Tags)
                {
                    Variable variable = GetVariable(Tags, "", tagIndex);

                    // Añade los miembros de la variable
                    variable.Members.Add(VariableTitle, tag.Title);
                    variable.Members.Add(VariableUrl, tag.IDFileName);
                    // Añade la variable a la colección
                    variables.Add(variable);
                    // Incrementa el índice de la etiqueta
                    tagIndex++;
                }
            }
            else
            {
                Variable variable = GetVariable(Tags, "", pageIndex);

                // Añade los miembros de la etiqueta
                foreach (Model.Solutions.FileModel tag in document.Tags)
                {
                    // Añade los miembros de la variable
                    variable.Members.Add(VariableTitle, tag.Title, tagIndex + 1);
                    variable.Members.Add(VariableUrl, tag.IDFileName, tagIndex + 1);
                    // Incrementa el índice de la etiqueta
                    tagIndex++;
                }
                // Añade la variable a la colección
                variables.Add(variable);
            }
            // Devuelve la colección de variables
            return(variables);
        }
Esempio n. 6
0
 /// <summary>
 ///		Compila un documento
 /// </summary>
 internal string Compile(Model.Documents.DocumentModel document, VariablesCollection variables, int maxInstructions)
 {
     return(Compile(document.File.DocumentFileName, document.Content, variables, maxInstructions));
 }