예제 #1
0
        /// <summary>
        /// page
        /// </summary>
        /// <param name="e"></param>
        public void OnPagePreRenderCompleteEventHandler(IPagePreRenderCompleteEvent e)
        {
            ILogiszConfigManager _logiszConfigManager = LogiszDependencyContainer.Resolve <ILogiszConfigManager>();

            if (!_logiszConfigManager.GetConfig().Modules.Shortcoder.Active)
            {
                return;
            }

            if (!e.PageSiteNode.IsBackend)
            {
                if (!Path.HasExtension(e.Page.Request.Url.AbsolutePath) ||
                    (Path.HasExtension(e.Page.Request.Url.AbsolutePath) && _tokenize.Contains(Path.GetExtension(e.Page.Request.Url.AbsolutePath).ToLower())))
                {
                    e.Page.Response.Filter = new TokenizedStream(e.Page.Response.Filter);
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Appends a value with the company name
        /// </summary>
        /// <param name="title">The title</param>
        /// <returns>string</returns>
        public static string AppendTitleWithCompanyName(string title)
        {
            LogiszConfig config = LogiszDependencyContainer.Resolve <ILogiszConfigManager>().GetConfig();

            if (!config.Modules.PageTitleHandler.Active)
            {
                return(title);
            }


            string companyName = config.CompanyName;
            string format      = config.Modules.PageTitleHandler.Format;

            if (!title.Contains(companyName))
            {
                title = String.Format(format, title, companyName);
            }

            return(title);
        }
예제 #3
0
        public override void Write(byte[] buffer, int offset, int count)
        {
            bool isDeveloper = LogiszDependencyContainer.Resolve <ILogiszUserManager>().GetLoggedOnUser().IsDeveloper;

            Encoding encoding = HttpContext.Current.Response.ContentEncoding;
            string   output   = encoding.GetString(buffer);

            var tokens = new List <string>();

            string seperatorOpeningTag = config.Modules.Shortcoder.SeperatorOpeningTag;
            string seperatorCloseTag   = config.Modules.Shortcoder.SeperatorCloseTag;

            //Match paterns to find out with tokens are used
            Regex regex = new Regex(@"" + seperatorOpeningTag + "(.+?)" + seperatorCloseTag);

            foreach (Match match in regex.Matches(output))
            {
                tokens.Add(match.Groups[0].Value);
            }

            if (tokens.Count > 0)
            {
                var modified = false;

                for (var i = 0; i < tokens.Count; i++)
                {
                    //Get manager & Type
                    DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager();
                    Type type = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.Shortcoder.Shortcode");

                    //Replace brackets
                    string token = tokens[i];
                    token = token.Replace(seperatorOpeningTag, string.Empty);
                    token = token.Replace(seperatorCloseTag, string.Empty);

                    //Get token based on token key
                    DynamicContent dynamicModuleToken = dynamicModuleManager.GetDataItems(type).FirstOrDefault(t => t.GetValue <string>("key") == token);


                    if (dynamicModuleToken != null)
                    {
                        string value = dynamicModuleToken.GetValue <Lstring>("value");

                        if (config.Modules.Shortcoder.Debug && isDeveloper)
                        {
                            value = DebugValue(value, token);
                        }


                        output   = output.Replace(tokens[i], value);
                        modified = true;
                    }
                }

                //Change buffer
                if (modified)
                {
                    buffer = Encoding.ASCII.GetBytes(output);
                }
            }

            this.output += output;
            _stream.Write(buffer, offset, buffer.Length);
        }
예제 #4
0
 public TokenizedStream(Stream stream)
 {
     this._logiszConfigManager = LogiszDependencyContainer.Resolve <ILogiszConfigManager>();
     this.config = _logiszConfigManager.GetConfig();
     _stream     = stream;
 }