예제 #1
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            ArticleTypeWidget currentWidget = widget as ArticleTypeWidget;
            var         types       = _articleTypeService.Get(m => m.ParentID == currentWidget.ArticleTypeID);
            int         ac          = actionContext.RouteData.GetCategory();
            ArticleType articleType = null;

            if (ac > 0)
            {
                articleType = _articleTypeService.Get(ac);
            }
            if (actionContext.RouteData.GetCategoryUrl().IsNullOrEmpty() && articleType != null)
            {
                if (articleType.Url.IsNotNullAndWhiteSpace())
                {
                    actionContext.RedirectTo($"{actionContext.RouteData.GetPath()}/{articleType.Url}", true);
                }
            }
            if (articleType != null)
            {
                var layout = actionContext.HttpContext.GetLayout();
                if (layout != null && layout.Page != null)
                {
                    layout.Page.Title           = articleType.SEOTitle ?? articleType.Title;
                    layout.Page.MetaKeyWorlds   = articleType.SEOKeyWord;
                    layout.Page.MetaDescription = articleType.SEODescription;
                }
            }
            return(widget.ToWidgetViewModelPart(new ArticleTypeWidgetViewModel
            {
                ArticleTypes = types,
                ArticleTypeID = ac
            }));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            var currentWidget = widget as NavigationWidget;
            var navs          = _navigationService.GetAll()
                                .Where(m => m.Status == (int)RecordStatus.Active).OrderBy(m => m.DisplayOrder).ToList();
            string           path    = "~" + actionContext.RouteData.GetPath();
            NavigationEntity current = null;
            int length = 0;

            foreach (var navigationEntity in navs)
            {
                if (navigationEntity.Url.IsNotNullAndWhiteSpace() &&
                    path.StartsWith(navigationEntity.Url.ToLower()) &&
                    length < navigationEntity.Url.Length)
                {
                    current = navigationEntity;
                    length  = navigationEntity.Url.Length;
                }
            }
            if (current != null)
            {
                current.IsCurrent = true;
            }

            if (currentWidget.RootID.IsNullOrEmpty() || currentWidget.RootID == "root")
            {
                currentWidget.RootID = "#";
            }
            return(widget.ToWidgetViewModelPart(new NavigationWidgetViewModel(navs, currentWidget)));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            var currentWidget = widget as NavigationWidget;
            var navs          = _navigationService.Get()
                                .Where(m => m.Status == (int)RecordStatus.Active).OrderBy(m => m.DisplayOrder).ToList();

            if (actionContext is ActionExecutedContext)
            {
                string           path    = actionContext.HttpContext.Request.Path.Value.ToLower();
                NavigationEntity current = null;
                int        length        = 0;
                IUrlHelper urlHelper     = ((actionContext as ActionExecutedContext).Controller as Controller).Url;
                foreach (var navigationEntity in navs)
                {
                    if (navigationEntity.Url.IsNotNullAndWhiteSpace() &&
                        path.StartsWith(urlHelper.PathContent(navigationEntity.Url).ToLower()) &&
                        length < navigationEntity.Url.Length)
                    {
                        current = navigationEntity;
                        length  = navigationEntity.Url.Length;
                    }
                }
                if (current != null)
                {
                    current.IsCurrent = true;
                }
            }


            if (currentWidget.RootID.IsNullOrEmpty() || currentWidget.RootID == "root")
            {
                currentWidget.RootID = "#";
            }
            return(widget.ToWidgetViewModelPart(new NavigationWidgetViewModel(navs, currentWidget)));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            var           viewModel     = new ArticleDetailViewModel();
            var           articleWidget = widget as ArticleSpecialDetailWidget;
            ArticleEntity article       = null;
            int           articleId     = articleWidget.ArticleId ?? 0;

            if (articleId > 0)
            {
                article = _articleService.Get(articleId);
            }
            else if (articleWidget.ArticleName.IsNotNullAndWhiteSpace())
            {
                article = _articleService.GetByUrl(articleWidget.ArticleName);
            }
            if (article == null)
            {
                actionContext.NotFoundResult();
            }
            else
            {
                _articleService.IncreaseCount(article);
                var layout = actionContext.HttpContext.GetLayout();
                if (layout != null && layout.Page != null)
                {
                    layout.Page.MetaKeyWorlds   = article.MetaKeyWords;
                    layout.Page.MetaDescription = article.MetaDescription;
                    layout.Page.Title           = article.Title;
                }
            }
            viewModel.Current = article;

            return(widget.ToWidgetViewModelPart(viewModel));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            int articleId = actionContext.RouteData.GetPost();
            var viewModel = new ArticleDetailViewModel
            {
                Current = _articleService.Get(articleId)
            };

            if (viewModel.Current == null)
            {
                viewModel.Current = new ArticleEntity
                {
                    Title          = "文章明细组件使用说明",
                    ImageUrl       = "~/Plugins/ZKEACMS.Article/Content/Image/Example.png",
                    ArticleContent = "<p>如上图所示,该组件需要一个<code>文章列表组件</code>组合使用,您需要在其它页面添加一个文章列表组件并链接过来,然后点击文章列表中的文章,该组件就可正常显示文章的内容</p>",
                    CreatebyName   = "ZKEASOFT"
                };
            }
            var layout = actionContext.HttpContext.GetLayout();

            layout.Page.MetaKeyWorlds   = viewModel.Current.MetaKeyWords;
            layout.Page.MetaDescription = viewModel.Current.MetaDescription;
            layout.Page.Title           = viewModel.Current.Title;
            return(widget.ToWidgetViewModelPart(viewModel));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            ProductCategoryWidget currentWidget = widget as ProductCategoryWidget;
            int             cate            = actionContext.RouteData.GetCategory();
            ProductCategory productCategory = null;

            if (cate > 0)
            {
                productCategory = _productCategoryService.Get(cate);
            }
            if (actionContext.RouteData.GetCategoryUrl().IsNullOrEmpty() && productCategory != null)
            {
                if (productCategory.Url.IsNotNullAndWhiteSpace())
                {
                    actionContext.RedirectTo($"{actionContext.RouteData.GetPath()}/{productCategory.Url}", true);
                }
            }
            if (productCategory != null)
            {
                var layout = actionContext.HttpContext.GetLayout();
                if (layout != null && layout.Page != null)
                {
                    layout.Page.Title           = productCategory.SEOTitle ?? productCategory.Title;
                    layout.Page.MetaKeyWorlds   = productCategory.SEOKeyWord;
                    layout.Page.MetaDescription = productCategory.SEODescription;
                }
            }
            return(widget.ToWidgetViewModelPart(new ProductCategoryWidgetViewModel
            {
                Categorys = _productCategoryService.Get(m => m.ParentID == currentWidget.ProductCategoryID),
                CurrentCategory = cate
            }));
        }
예제 #7
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            int           productId = actionContext.RouteData.GetPost();
            ProductEntity product   = null;

            if (productId != 0)
            {
                product = _productService.Get(productId);
            }
            if (product == null && ApplicationContext.IsAuthenticated)
            {
                foreach (var item in _productService.Get().AsQueryable().OrderByDescending(m => m.ID).Take(1))
                {
                    product = item;
                }
            }
            if (product == null)
            {
                actionContext.NotFoundResult();
            }
            if (product != null)
            {
                var layout = actionContext.HttpContext.GetLayout();
                if (layout != null && layout.Page != null)
                {
                    var page = layout.Page;
                    page.MetaDescription = product.SEODescription;
                    page.MetaKeyWorlds   = product.SEOKeyWord;
                    page.Title           = product.SEOTitle ?? product.Title;
                }
            }

            return(widget.ToWidgetViewModelPart(product ?? new ProductEntity()));
        }
예제 #8
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            List <PageEntity> ParentPages = new List <PageEntity>();

            GetParentPage(ParentPages, actionContext.HttpContext.GetLayout().Page);

            return(widget.ToWidgetViewModelPart(ParentPages));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            var currentWidget  = widget as ArticleListWidget;
            var categoryEntity = _articleTypeService.Get(currentWidget.ArticleTypeID);
            int pageIndex      = actionContext.RouteData.GetPage();
            int cate           = actionContext.RouteData.GetCategory();
            var pagin          = new Pagination
            {
                PageIndex         = pageIndex,
                PageSize          = currentWidget.PageSize ?? 20,
                OrderByDescending = "PublishDate"
            };
            IEnumerable <ArticleEntity> articles;

            Expression <Func <ArticleEntity, bool> > filter = null;

            if (cate != 0)
            {
                filter = m => m.IsPublish && m.ArticleTypeID == cate;
            }
            else
            {
                var ids = _articleTypeService.Get(m => m.ID == currentWidget.ArticleTypeID || m.ParentID == currentWidget.ArticleTypeID).Select(m => m.ID).ToList();
                if (ids.Any())
                {
                    filter = m => m.IsPublish && ids.Contains(m.ArticleTypeID ?? 0);
                }
                else
                {
                    filter = m => m.IsPublish && m.ArticleTypeID == currentWidget.ArticleTypeID;
                }
            }
            if (currentWidget.IsPageable)
            {
                articles = _articleService.Get(filter, pagin).ToList();
            }
            else
            {
                articles = _articleService.Get(filter).OrderByDescending(m => m.PublishDate).ToList();
            }

            var currentArticleType = _articleTypeService.Get(cate == 0 ? currentWidget.ArticleTypeID : cate);

            if (currentArticleType != null)
            {
                var page = actionContext.HttpContext.GetLayout().Page;
                page.Title = (page.Title ?? "") + " - " + currentArticleType.Title;
            }

            return(widget.ToWidgetViewModelPart(new ArticleListWidgetViewModel
            {
                Articles = articles,
                Widget = currentWidget,
                Pagin = pagin,
                CategoryTitle = categoryEntity == null ? "" : categoryEntity.Title,
                IsPageable = currentWidget.IsPageable
            }));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            ProductListWidget           currentWidget = widget as ProductListWidget;
            IEnumerable <ProductEntity> products      = null;
            int pageIndex = actionContext.RouteData.GetPage();
            int cate      = actionContext.RouteData.GetCategory();
            var pagin     = new Pagination
            {
                PageIndex        = pageIndex,
                PageSize         = currentWidget.PageSize ?? 20,
                OrderBy          = "OrderIndex",
                ThenByDescending = "ID"
            };

            Expression <Func <ProductEntity, bool> > filter = null;

            if (cate != 0)
            {
                filter = m => m.IsPublish && m.ProductCategoryID == cate;
            }
            else
            {
                var ids = _productCategoryService.Get(m => m.ID == currentWidget.ProductCategoryID || m.ParentID == currentWidget.ProductCategoryID).Select(m => m.ID).ToList();
                filter = m => m.IsPublish && ids.Contains(m.ProductCategoryID);
            }
            if (currentWidget.IsPageable)
            {
                products = _productService.Get(filter, pagin);
            }
            else
            {
                products = _productService.Get().Where(filter).OrderBy(m => m.OrderIndex).ThenByDescending(m => m.ID).ToList();
            }

            var currentCategory = _productCategoryService.Get(cate == 0 ? currentWidget.ProductCategoryID : cate);

            if (currentCategory != null)
            {
                var layout = actionContext.HttpContext.GetLayout();
                if (layout != null && layout.Page != null)
                {
                    var page = layout.Page;
                    //page.Title = (page.Title ?? "") + " - " + currentCategory.Title;
                    page.Title = page.Title.IsNullOrWhiteSpace() ? currentCategory.Title : $"{page.Title} - {currentCategory.Title}";
                }
            }

            return(widget.ToWidgetViewModelPart(new ProductListWidgetViewModel
            {
                Products = products,
                Page = pagin,
                IsPageable = currentWidget.IsPageable,
                Columns = currentWidget.Columns,
                DetailPageUrl = currentWidget.DetailPageUrl
            }));
        }
예제 #11
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            List <PageEntity> ParentPages = new List <PageEntity>();
            var layout = actionContext.HttpContext.GetLayout();

            if (layout != null && layout.Page != null)
            {
                GetParentPage(ParentPages, layout.Page);
            }
            return(widget.ToWidgetViewModelPart(ParentPages));
        }
예제 #12
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            ProductCategoryWidget currentWidget = widget as ProductCategoryWidget;
            int cate = actionContext.RouteData.GetCategory();

            return(widget.ToWidgetViewModelPart(new ProductCategoryWidgetViewModel
            {
                Categorys = _productCategoryService.Get(m => m.ParentID == currentWidget.ProductCategoryID),
                CurrentCategory = cate
            }));
        }
예제 #13
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            var currentWidget = widget as ArticleTopWidget;
            var viewModel     = new ArticleTopWidgetViewModel
            {
                Widget = currentWidget
            };
            var categoryIds = _articleTypeService.Get(m => m.ID == currentWidget.ArticleTypeID || m.ParentID == currentWidget.ArticleTypeID).Select(m => m.ID);

            viewModel.Articles = _articleService.Get(m => m.IsPublish && categoryIds.Any(cate => cate == m.ArticleTypeID)).OrderByDescending(m => m.PublishDate).Take(currentWidget.Tops ?? 10);
            return(widget.ToWidgetViewModelPart(viewModel));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            ProductCategoryWidget currentWidget = widget as ProductCategoryWidget;
            int cate = actionContext.RouteData.GetCategory();

            return(widget.ToWidgetViewModelPart(new ProductCategoryWidgetViewModel
            {
                Categorys = _productCategoryService.Get(m => m.ParentID == currentWidget.ProductCategoryID),
                CurrentCategory = cate,
                TargetPage = currentWidget.TargetPage.IsNullOrEmpty() ? actionContext.HttpContext.Request.Path.ToString().ToLower() : currentWidget.TargetPage
            }));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            ArticleTypeWidget currentWidget = widget as ArticleTypeWidget;
            var types = _articleTypeService.Get(m => m.ParentID == currentWidget.ArticleTypeID);
            int ac    = actionContext.RouteData.GetCategory();


            return(widget.ToWidgetViewModelPart(new ArticleTypeWidgetViewModel
            {
                ArticleTypes = types,
                ArticleTypeID = ac
            }));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            ArticleTypeWidget currentWidget = widget as ArticleTypeWidget;
            var types = _articleTypeService.Get(m => m.ParentID == currentWidget.ArticleTypeID);
            int ac    = actionContext.RouteData.GetCategory();

            return(widget.ToWidgetViewModelPart(new ArticleTypeWidgetViewModel
            {
                ArticleTypes = types,
                CurrentType = _articleTypeService.Get(currentWidget.ArticleTypeID),
                TargetPage = currentWidget.TargetPage.IsNullOrEmpty() ? actionContext.HttpContext.Request.Path.ToString().ToLower() : currentWidget.TargetPage,
                ArticleTypeID = ac
            }));
        }
예제 #17
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            var currentWidget  = widget as ArticleListWidget;
            var categoryEntity = _articleTypeService.Get(currentWidget.ArticleTypeID);
            int pageIndex      = actionContext.RouteData.GetPage();
            int cate           = actionContext.RouteData.GetCategory();
            var page           = new Pagination {
                PageIndex = pageIndex, PageSize = currentWidget.PageSize ?? 20
            };
            IEnumerable <ArticleEntity> articles;

            Expression <Func <ArticleEntity, bool> > filter = null;

            if (cate != 0)
            {
                filter = m => m.IsPublish && m.ArticleTypeID == cate;
            }
            else
            {
                var ids = _articleTypeService.Get(m => m.ID == currentWidget.ArticleTypeID || m.ParentID == currentWidget.ArticleTypeID).Select(m => m.ID);
                if (ids.Any())
                {
                    filter = m => m.IsPublish && ids.Any(id => id == m.ArticleTypeID);
                }
                else
                {
                    filter = m => m.IsPublish && m.ArticleTypeID == currentWidget.ArticleTypeID;
                }
            }
            if (currentWidget.IsPageable)
            {
                page.RecordCount = _articleService.Count(filter);
                articles         = _articleService.Get(filter).OrderByDescending(m => m.ID).Skip(page.PageIndex * page.PageSize).Take(page.PageSize);;
            }
            else
            {
                articles = _articleService.Get(filter).OrderByDescending(m => m.ID);
            }


            return(widget.ToWidgetViewModelPart(new ArticleListWidgetViewModel
            {
                Articles = articles,
                Widget = currentWidget,
                Pagin = page,
                CategoryTitle = categoryEntity == null ? "" : categoryEntity.Title,
                IsPageable = currentWidget.IsPageable
            }));
        }
예제 #18
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            var currentWidget = widget as ArticleTopWidget;
            var page          = new Pagination
            {
                PageIndex = 0,
                PageSize  = currentWidget.Tops ?? 20
            };
            var viewModel = new ArticleTopWidgetViewModel
            {
                Widget = currentWidget
            };

            viewModel.Articles = _articleService.Get(m => m.IsPublish && m.ArticleTypeID == currentWidget.ArticleTypeID).OrderByDescending(m => m.PublishDate);
            return(widget.ToWidgetViewModelPart(viewModel));
        }
예제 #19
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            ProductListWidget           pwidget  = widget as ProductListWidget;
            IEnumerable <ProductEntity> products = null;
            int pageIndex = actionContext.RouteData.GetPage();
            int cate      = actionContext.RouteData.GetCategory();
            var page      = new Pagination {
                PageIndex = pageIndex, PageSize = pwidget.PageSize ?? 20
            };

            Expression <Func <ProductEntity, bool> > filter = null;

            if (cate != 0)
            {
                filter = m => m.IsPublish && m.ProductCategoryID == cate;
            }
            else
            {
                var ids = _productCategoryService.Get(m => m.ID == pwidget.ProductCategoryID || m.ParentID == pwidget.ProductCategoryID).Select(m => m.ID);
                if (ids.Any())
                {
                    filter = m => m.IsPublish && ids.Any(id => id == m.ProductCategoryID);
                }
                else
                {
                    filter = m => m.IsPublish && m.ProductCategoryID == pwidget.ProductCategoryID;
                }
            }
            if (pwidget.IsPageable)
            {
                page.RecordCount = _productService.Count(filter);
                products         = _productService.Get(filter).OrderBy(m => m.OrderIndex).ThenByDescending(m => m.ID).Skip(page.PageIndex * page.PageSize).Take(page.PageSize);
            }
            else
            {
                products = _productService.Get(filter).OrderBy(m => m.OrderIndex).ThenByDescending(m => m.ID);
            }

            return(widget.ToWidgetViewModelPart(new ProductListWidgetViewModel
            {
                Products = products,
                Page = page,
                IsPageable = pwidget.IsPageable,
                Columns = pwidget.Columns,
                DetailPageUrl = pwidget.DetailPageUrl
            }));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            var currentWidget = widget as NavigationWidget;
            var navs          = _navigationService.Get()
                                .Where(m => m.Status == (int)RecordStatus.Active).OrderBy(m => m.DisplayOrder).ToList();

            string path = null;

            if (ApplicationContext.As <CMSApplicationContext>().IsDesignMode)
            {
                var layout = actionContext.HttpContext.GetLayout();
                if (layout != null && layout.Page != null)
                {
                    path = layout.Page.Url.Replace("~/", "/");
                }
            }
            else if (actionContext is ActionExecutedContext)
            {
                path = (actionContext as ActionExecutedContext).RouteData.GetPath();
            }
            if (path != null)
            {
                NavigationEntity current = null;
                int length = 0;
                foreach (var navigationEntity in navs)
                {
                    if (navigationEntity.Url.IsNotNullAndWhiteSpace() &&
                        path.IndexOf((navigationEntity.Url ?? "").Replace("~/", "/").Replace(".html", string.Empty), StringComparison.OrdinalIgnoreCase) == 0 &&
                        length < navigationEntity.Url.Length)
                    {
                        current = navigationEntity;
                        length  = navigationEntity.Url.Length;
                    }
                }
                if (current != null)
                {
                    current.IsCurrent = true;
                }
            }


            if (currentWidget.RootID.IsNullOrEmpty() || currentWidget.RootID == "root")
            {
                currentWidget.RootID = "#";
            }
            return(widget.ToWidgetViewModelPart(new NavigationWidgetViewModel(navs, currentWidget)));
        }
예제 #21
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            int articleId = actionContext.RouteData.GetPost();
            var viewModel = new ArticleDetailViewModel();

            if (articleId != 0)
            {
                viewModel.Current = actionContext.RouteData.GetArticle(articleId) ?? _articleService.Get(articleId);
                if (viewModel.Current != null)
                {
                    _articleService.IncreaseCount(viewModel.Current);
                    viewModel.Prev = _articleService.GetPrev(viewModel.Current);
                    viewModel.Next = _articleService.GetNext(viewModel.Current);
                    if (viewModel.Current.Url.IsNotNullAndWhiteSpace() && actionContext.RouteData.GetArticleUrl().IsNullOrWhiteSpace())
                    {
                        actionContext.RedirectTo($"{actionContext.RouteData.GetPath()}/{viewModel.Current.Url}.html", true);
                    }
                }
            }
            if (viewModel.Current == null && ApplicationContext.IsAuthenticated)
            {
                foreach (var item in _articleService.Get().AsQueryable().OrderByDescending(m => m.ID).Take(1))
                {
                    viewModel.Current = item;
                }
            }
            if (viewModel.Current == null)
            {
                actionContext.NotFoundResult();
            }
            else
            {
                var layout = actionContext.HttpContext.GetLayout();
                if (layout != null && layout.Page != null)
                {
                    layout.Page.MetaKeyWorlds   = viewModel.Current.MetaKeyWords;
                    layout.Page.MetaDescription = viewModel.Current.MetaDescription;
                    layout.Page.Title           = viewModel.Current.Title;
                }
            }


            return(widget.ToWidgetViewModelPart(viewModel));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            int articleId = actionContext.RouteData.GetPost();
            var viewModel = new ArticleDetailViewModel();

            if (articleId != 0)
            {
                viewModel.Current = _articleService.Get(articleId);
                if (viewModel.Current != null)
                {
                    viewModel.Current.Counter = (viewModel.Current.Counter ?? 0) + 1;
                    _articleService.Update(viewModel.Current);
                    viewModel.Prev = _articleService.GetPrev(viewModel.Current);
                    viewModel.Next = _articleService.GetNext(viewModel.Current);
                }
            }
            if (viewModel.Current == null)
            {
                foreach (var item in _articleService.Get().AsQueryable().OrderByDescending(m => m.ID).Take(1))
                {
                    viewModel.Current = item;
                }
            }
            if (viewModel.Current == null)
            {
                viewModel.Current = new ArticleEntity
                {
                    Title          = "文章明细组件使用说明",
                    ImageUrl       = "~/Plugins/ZKEACMS.Article/Content/Image/Example.png",
                    ArticleContent = "<p>如上图所示,该组件需要一个<code>文章列表组件</code>组合使用,您需要在其它页面添加一个文章列表组件并链接过来,然后点击文章列表中的文章,该组件就可正常显示文章的内容</p>",
                    CreatebyName   = "ZKEASOFT"
                };
            }
            var layout = actionContext.HttpContext.GetLayout();

            if (layout != null && layout.Page != null)
            {
                layout.Page.MetaKeyWorlds   = viewModel.Current.MetaKeyWords;
                layout.Page.MetaDescription = viewModel.Current.MetaDescription;
                layout.Page.Title           = viewModel.Current.Title;
            }

            return(widget.ToWidgetViewModelPart(viewModel));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            ProductCategoryWidget currentWidget = widget as ProductCategoryWidget;
            int cate = actionContext.RouteData.GetCategory();

            if (actionContext.RouteData.GetCategoryUrl().IsNullOrEmpty() && cate > 0)
            {
                var productCategory = _productCategoryService.Get(cate);
                if (productCategory != null && productCategory.Url.IsNotNullAndWhiteSpace())
                {
                    actionContext.RedirectTo($"{actionContext.RouteData.GetPath()}/{productCategory.Url}", true);
                }
            }
            return(widget.ToWidgetViewModelPart(new ProductCategoryWidgetViewModel
            {
                Categorys = _productCategoryService.Get(m => m.ParentID == currentWidget.ProductCategoryID),
                CurrentCategory = cate
            }));
        }
예제 #24
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            int productId = actionContext.RouteData.GetPost();
            var product   = _productService.Get(productId) ?? new ProductEntity
            {
                Title          = "产品明细组件使用说明",
                ImageUrl       = "~/Plugins/ZKEACMS.Product/Content/Image/Example.png",
                ProductContent = "<p>如上图所示,该组件需要一个<code>产品列表组件</code>组合使用,您需要在其它页面添加一个产品列表组件并链接过来,然后点击产品列表中的产品,该组件就可正常显示产品的内容</p>",
                CreatebyName   = "ZKEASOFT"
            };

            var page = actionContext.HttpContext.GetLayout().Page;

            page.MetaDescription = product.SEODescription;
            page.MetaKeyWorlds   = product.SEOKeyWord;
            page.Title           = product.SEOTitle ?? product.Title;

            return(widget.ToWidgetViewModelPart(product));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            int articleId = actionContext.RouteData.GetPost();
            var viewModel = new ArticleDetailViewModel();

            if (articleId != 0)
            {
                viewModel.Current = _articleService.Get(articleId);
                if (viewModel.Current != null)
                {
                    viewModel.Current.Counter = (viewModel.Current.Counter ?? 0) + 1;
                    _articleService.Update(viewModel.Current);
                    viewModel.Prev = _articleService.GetPrev(viewModel.Current);
                    viewModel.Next = _articleService.GetNext(viewModel.Current);
                }
            }
            if (viewModel.Current == null && ApplicationContext.IsAuthenticated)
            {
                foreach (var item in _articleService.Get().AsQueryable().OrderByDescending(m => m.ID).Take(1))
                {
                    viewModel.Current = item;
                }
            }
            if (viewModel.Current == null)
            {
                actionContext.NotFoundResult();
            }
            else
            {
                var layout = actionContext.HttpContext.GetLayout();
                if (layout != null && layout.Page != null)
                {
                    layout.Page.MetaKeyWorlds   = viewModel.Current.MetaKeyWords;
                    layout.Page.MetaDescription = viewModel.Current.MetaDescription;
                    layout.Page.Title           = viewModel.Current.Title;
                }
            }


            return(widget.ToWidgetViewModelPart(viewModel));
        }
예제 #26
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            ArticleTypeWidget currentWidget = widget as ArticleTypeWidget;
            var types = _articleTypeService.Get(m => m.ParentID == currentWidget.ArticleTypeID);
            int ac    = actionContext.RouteData.GetCategory();

            if (actionContext.RouteData.GetCategoryUrl().IsNullOrEmpty() && ac > 0)
            {
                var articleType = _articleTypeService.Get(ac);
                if (articleType != null && articleType.Url.IsNotNullAndWhiteSpace())
                {
                    actionContext.RedirectTo($"{actionContext.RouteData.GetPath()}/{articleType.Url}", true);
                }
            }

            return(widget.ToWidgetViewModelPart(new ArticleTypeWidgetViewModel
            {
                ArticleTypes = types,
                ArticleTypeID = ac
            }));
        }
예제 #27
0
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            int           productId = actionContext.RouteData.GetPost();
            ProductEntity product   = null;

            if (productId != 0)
            {
                product = actionContext.RouteData.GetProduct(productId) ?? _productService.Get(productId);
                if (product != null && product.Url.IsNotNullAndWhiteSpace() && actionContext.RouteData.GetProductUrl().IsNullOrWhiteSpace())
                {
                    actionContext.RedirectTo($"{actionContext.RouteData.GetPath()}/{product.Url}.html", true);
                }
            }
            if (product == null && ApplicationContext.IsAuthenticated)
            {
                product = _productService.Get().OrderByDescending(m => m.ID).FirstOrDefault();
                if (product != null)
                {
                    product = _productService.Get(product.ID);
                }
            }
            if (product == null)
            {
                actionContext.NotFoundResult();
            }
            if (product != null)
            {
                var layout = actionContext.HttpContext.GetLayout();
                if (layout != null && layout.Page != null)
                {
                    var page = layout.Page;
                    page.MetaDescription = product.SEODescription;
                    page.MetaKeyWorlds   = product.SEOKeyWord;
                    page.Title           = product.SEOTitle ?? product.Title;
                }
            }

            return(widget.ToWidgetViewModelPart(product ?? new ProductEntity()));
        }
        public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
        {
            int           productId = actionContext.RouteData.GetPost();
            ProductEntity product   = null;

            if (productId != 0)
            {
                product = _productService.Get(productId);
            }
            if (product == null)
            {
                foreach (var item in _productService.Get().AsQueryable().OrderByDescending(m => m.ID).Take(1))
                {
                    product = item;
                }
            }
            if (product == null)
            {
                product = new ProductEntity
                {
                    Title          = "产品明细组件使用说明",
                    ImageUrl       = "~/Plugins/ZKEACMS.Product/Content/Image/Example.png",
                    ProductContent = "<p>如上图所示,该组件需要一个<code>产品列表组件</code>组合使用,您需要在其它页面添加一个产品列表组件并链接过来,然后点击产品列表中的产品,该组件就可正常显示产品的内容</p>",
                    CreatebyName   = "ZKEASOFT"
                };
            }


            var page = actionContext.HttpContext.GetLayout().Page;

            page.MetaDescription = product.SEODescription;
            page.MetaKeyWorlds   = product.SEOKeyWord;
            page.Title           = product.SEOTitle ?? product.Title;

            return(widget.ToWidgetViewModelPart(product));
        }
예제 #29
0
 public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
 {
     return(widget.ToWidgetViewModelPart(_commentsService.Get(m => m.PagePath == actionContext.HttpContext.Request.Path.Value && m.Status == (int)RecordStatus.Active)));
 }
예제 #30
0
 public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
 {
     return(widget.ToWidgetViewModelPart(new MessageEntity()));
 }