Beispiel #1
0
        private static MvcHtmlString Action(HtmlHelper helper, CmsWidgetContext context, out bool error)
        {
            error = false;
            var controller = context.RouteData["controller"] as string;
            var action     = context.RouteData["action"] as string;

            MvcHtmlString result;

            try
            {
                result = helper.Action(action, controller, context.RouteData);
            }
            catch (CmsWidgetRenderException e)
            {
                error  = true;
                result = new MvcHtmlString(String.Format("<div class=\"qusion-cms-widget-error \">{0}</div>", e.Message));
            }
            catch (Exception e)
            {
                error  = true;
                result = new MvcHtmlString(String.Format("<div class=\"qusion-cms-widget-error\">{0}</div>", e.Message));
            }

            return(result);
        }
Beispiel #2
0
        public static MvcHtmlString RenderCmsWidget(this HtmlHelper helper, CmsWidgetContext context,
                                                    StringBuilder output)
        {
            if (context == null)
            {
                throw new CmsException();
            }

            // Render qusion cms widget containers only if edit mode (Page or Template)
            if (context.PageContext.Mode != CmsPageContextMode.View)
            {
                output.AppendFormat(
                    "\r<div class=\"qusion-cms-widget\" data-key=\"{0}\" data-scope=\"{1}\" data-title=\"{2}\">",
                    context.ID,
                    (context.IsTemplateWidget ? "template" : "page"), context.Title);
            }

            // Get action result string
            bool error;
            var  html = Action(helper, context, out error);

            // if error occures we display error only if not view
            if (error)
            {
                if (context.PageContext.Mode != CmsPageContextMode.View)
                {
                    output.Append(html);
                }
            }
            else
            {
                output.Append(html);
            }

            // Close widget container tag
            if (context.PageContext.Mode != CmsPageContextMode.View)
            {
                output.AppendLine("</div>");
            }

            return(MvcHtmlString.Create(output.ToString()));
        }