ScrewTurn.Wiki.Tools.GetIncludes C# (CSharp) Method

GetIncludes() public static method

Gets all the included files for the HTML Head, such as CSS, JavaScript and Icon pluginAssemblies, for a namespace.
public static GetIncludes ( string nspace ) : string
nspace string The namespace (null for the root).
return string
        public static string GetIncludes(string nspace)
        {
            string theme = Settings.GetTheme(nspace);
            string themePath = Settings.GetThemePath(nspace);

            StringBuilder result = new StringBuilder(300);

            string[] css = Directory.GetFiles(Settings.ThemesDirectory + theme, "*.css");
            string firstChunk;
            for(int i = 0; i < css.Length; i++) {
                if(Path.GetFileName(css[i]).IndexOf("_") != -1) {
                    firstChunk = Path.GetFileName(css[i]).Substring(0, Path.GetFileName(css[i]).IndexOf("_")).ToLower(CultureInfo.CurrentCulture);
                    if(firstChunk.Equals("screen") || firstChunk.Equals("print") || firstChunk.Equals("all") ||
                        firstChunk.Equals("aural") || firstChunk.Equals("braille") || firstChunk.Equals("embossed") ||
                        firstChunk.Equals("handheld") || firstChunk.Equals("projection") || firstChunk.Equals("tty") || firstChunk.Equals("tv")) {
                        result.Append(@"<link rel=""stylesheet"" media=""" + firstChunk + @""" href=""" + themePath + Path.GetFileName(css[i]) + @""" type=""text/css"" />" + "\n");
                    }
                    else {
                        result.Append(@"<link rel=""stylesheet"" href=""" + themePath + Path.GetFileName(css[i]) + @""" type=""text/css"" />" + "\n");
                    }
                }
                else {
                    result.Append(@"<link rel=""stylesheet"" href=""" + themePath + Path.GetFileName(css[i]) + @""" type=""text/css"" />" + "\n");
                }
            }

            string customEditorCss = Path.Combine(Settings.ThemesDirectory, theme);
            customEditorCss = Path.Combine(customEditorCss, "Editor.css");
            if(File.Exists(customEditorCss)) result.AppendFormat(@"<link rel=""stylesheet"" href=""Themes/{0}/Editor.css"" type=""text/css"" />" + "\n", theme);
            else result.Append(@"<link rel=""stylesheet"" href=""Themes/Editor.css"" type=""text/css"" />" + "\n");

            // OpenSearch
            result.AppendFormat(@"<link rel=""search"" href=""Search.aspx?OpenSearch=1"" type=""application/opensearchdescription+xml"" title=""{1}"" />",
                Settings.MainUrl, Settings.WikiTitle + " - Search");

            string[] js = Directory.GetFiles(Settings.ThemesDirectory + theme, "*.js");
            for(int i = 0; i < js.Length; i++) {
                result.Append(@"<script src=""" + themePath + Path.GetFileName(js[i]) + @""" type=""text/javascript""></script>" + "\n");
            }

            string[] icons = Directory.GetFiles(Settings.ThemesDirectory + theme, "Icon.*");
            if(icons.Length > 0) {
                result.Append(@"<link rel=""shortcut icon"" href=""" + themePath + Path.GetFileName(icons[0]) + @""" type=""");
                switch(Path.GetExtension(icons[0]).ToLowerInvariant()) {
                    case ".ico":
                        result.Append("image/x-icon");
                        break;
                    case ".gif":
                        result.Append("image/gif");
                        break;
                    case ".png":
                        result.Append("image/png");
                        break;
                }
                result.Append(@""" />" + "\n");
            }

            result.Append(GetJavaScriptIncludes());

            // Include HTML Head
            result.Append(Settings.Provider.GetMetaDataItem(MetaDataItem.HtmlHead, nspace));

            return result.ToString();
        }

Usage Example

示例#1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            currentWiki = DetectWiki();

            SetProvider();
            SetInputData();

            string currentUser = SessionFacade.GetCurrentUsername();

            string[] currentGroups = SessionFacade.GetCurrentGroupNames(currentWiki);
            string   dir           = Tools.GetDirectoryName(file);

            // Verify permissions
            AuthChecker authChecker = new AuthChecker(Collectors.CollectorsBox.GetSettingsProvider(currentWiki));
            bool        canUpload   = authChecker.CheckActionForDirectory(provider, dir,
                                                                          Actions.ForDirectories.UploadFiles, currentUser, currentGroups);
            bool canDeleteFiles = authChecker.CheckActionForDirectory(provider, dir,
                                                                      Actions.ForDirectories.DeleteFiles, currentUser, currentGroups);

            if (!canUpload || !canDeleteFiles)
            {
                UrlTools.Redirect("AccessDenied.aspx");
            }

            // Inject the proper stylesheet in page head
            Literal l = new Literal();

            l.Text = Tools.GetIncludes(currentWiki, DetectNamespace());
            Page.Header.Controls.Add(l);

            ResizeImage();
        }
All Usage Examples Of ScrewTurn.Wiki.Tools::GetIncludes