public override void Inject(Kooboo.Web.Mvc.Menu.MenuItem menu, System.Web.Mvc.ControllerContext controllerContext) { // 只有在未选中某个实例时才显示全局菜单 if (CommerceInstance.Current != null) { return; } menu.Items.Add(new CommerceMenuItem { Name = "Instances", Text = "Instances", Controller = "Instance", Action = "Index", Initializer = new GlobalMenuItemInitializer() }); menu.Items.Add(new CommerceMenuItem { Name = "Add-ins", Text = "Add-ins", Controller = "AddInManagement", Action = "Index", Initializer = new GlobalMenuItemInitializer() }); }
protected override string RenderInput(Kooboo.CMS.Form.IColumn column) { var sb = new StringBuilder(); var input = string.Format("<input id=\"{0}\" name=\"{0}\" readonly=\"readonly\" type=\"{1}\" value=\"@(Model.{0} ==null ? \"\" : Model.{0}.ToLocalTime().ToString())\" {2}/>", column.Name, this.Type, ValidationExtensions.GetUnobtrusiveValidationAttributeString(column)); sb.Append(@"@if ((bool?)ViewContext.Controller.ViewData[""WebResourceUrl.Rendered""] != true) { ViewContext.Controller.ViewData[""WebResourceUrl.Rendered""] = true;"); const string script = @" <script src=""@Kooboo.CMS.Toolkit.Controls.ControlsScript.GetWebResourceUrl()"" type=""text/javascript"" ></script>"; const string css = @" <link href=""@Kooboo.CMS.Toolkit.Controls.ControlsScript.GetDatetimeResourceUrl()"" type=""text/css"" rel=""stylesheet"" />"; sb.Append(css); sb.Append(script); sb.Append("\t\t\t}"); var func = String.Format(@" <script type='text/javascript'> $(function() {{ $('input[name=""{0}""]').datetimepicker({{ showSecond: true, timeFormat: 'HH:mm:ss' }}); }}); </script>", column.Name); sb.Append(func); sb.Append(input); return sb.ToString(); }
protected override bool GetIsVisible(Kooboo.Web.Mvc.Menu.MenuItem menuItem, System.Web.Mvc.ControllerContext controllerContext) { if (string.IsNullOrEmpty(controllerContext.RequestContext.GetRequestValue("siteName"))) { return false; } return base.GetIsVisible(menuItem, controllerContext); }
protected override bool GetIsVisible(Kooboo.Web.Mvc.Menu.MenuItem menuItem, System.Web.Mvc.ControllerContext controllerContext) { if (Site.Current != null) { return Site.Current.ShowSitemap.HasValue ? Site.Current.ShowSitemap.Value : true; } return false; }
//#region .ctor //TextFolderManager _textFolderManager; //public NavigationService(TextFolderManager textFolderManager) //{ // _textFolderManager = textFolderManager; //} //#endregion #region GetChildren private static cmisObjectInFolderType ToPathedCmisObject(Kooboo.CMS.Content.Models.TextFolder textFolder) { cmisObjectInFolderType pathedCmisObject = new cmisObjectInFolderType(); pathedCmisObject.pathSegment = textFolder.FullName; var cmisObject = ToCmisObject(textFolder); pathedCmisObject.@object = cmisObject; return pathedCmisObject; }
public static void RequestAuthentication(Kooboo.CMS.Membership.Models.Membership membership, string connectName, HttpContextBase httpContext, string returnUrl) { var client = GetAuthClient(membership, connectName); OpenAuthSecurityManager manager = new OpenAuthSecurityManager(httpContext, client.GetOpenAuthClient(), new MembershipOpenAuthDataProvider()); manager.RequestAuthentication(returnUrl); //client.RequestAuthentication(httpContext, new Uri(returnUrl)); }
public override Kooboo.Web.Mvc.Menu.MenuItem Initialize(Kooboo.Web.Mvc.Menu.MenuItem menuItem, System.Web.Mvc.ControllerContext controllerContext) { var site = Site.Current; if (site != null) { menuItem.RouteValues["repositoryName"] = site.AsActual().Repository; } return base.Initialize(menuItem, controllerContext); }
void IMenuInjection.Inject(Kooboo.Web.Mvc.Menu.Menu menu, System.Web.Mvc.ControllerContext controllerContext) { if (menu.Name == "AreasMenu" || menu.Name == "Sites") { var commerce = menu.Items.FirstOrDefault(it => it.Name == "Commerce"); if (commerce != null) { Inject(commerce, controllerContext); PrepareItems(commerce.Items, new CommerceMenuItemInitializer()); } } }
public void Inject(Kooboo.Web.Mvc.Menu.Menu menu, System.Web.Mvc.ControllerContext controllerContext) { if (menu.Name == "AreasMenu" || menu.Name == "Sites") { menu.Items.Add(new MenuItem { Name = "Commerce", Text = "Commerce", Initializer = new AuthorizeMenuItemInitializer(), RouteValues = new System.Web.Routing.RouteValueDictionary() }); } }
public static NameValueCollection ApplySubmissionSettings(SubmissionSetting submissionSetting, NameValueCollection defaultValues, Kooboo.CMS.Common.Formula.IValueProvider valueProvider) { IFormulaParser formulaParser = Kooboo.CMS.Common.Runtime.EngineContext.Current.Resolve<IFormulaParser>(); if (submissionSetting.Settings != null) { foreach (var item in submissionSetting.Settings) { defaultValues[item.Key] = formulaParser.Populate(item.Value, valueProvider); } } return defaultValues; }
public LocalPriceAPI( Kooboo.Commerce.Orders.Services.IOrderService orderService, Kooboo.Commerce.ShoppingCarts.Services.IShoppingCartService cartService, Kooboo.Commerce.Payments.Services.IPaymentMethodService paymentMethodService, Kooboo.Commerce.Customers.Services.ICustomerService customerService, Kooboo.Commerce.Products.Services.IProductService productService) { _orderService = orderService; _cartService = cartService; _paymentMethodService = paymentMethodService; _customerService = customerService; _productService = productService; }
public ActionResult Create(Kooboo.CMS.Membership.Models.Membership membership, string @return) { JsonResultData data = new JsonResultData(ModelState); if (ModelState.IsValid) { data.RunWithTry((resultData) => { _manager.Add(membership); resultData.RedirectUrl = @return; }); } return Json(data); }
private static IAuthClient GetAuthClient(Kooboo.CMS.Membership.Models.Membership membership, string connectName) { var membershipConnect = new MembershipConnect() { Membership = membership, Name = connectName }.AsActual(); if (membershipConnect == null) { throw new ArgumentException("Invalid membership connect."); } var authClient = Kooboo.CMS.Common.Runtime.EngineContext.Current.Resolve<IAuthClient>(membershipConnect.Name.ToLower()); authClient.MembershipConnect = membershipConnect; return authClient; }
public string Generate(Kooboo.CMS.Content.Models.Repository repository, Models.DataRuleSetting dataRule, bool inlineEdit) { if (dataRule.DataRule is DataRuleBase) { var dataRuleBase = (DataRuleBase)dataRule.DataRule; var schema = (dataRuleBase.GetSchema(repository)).AsActual(); string html = @" #foreach($item in $ViewBag.{0}) #each <li{2}>{1}</li> #before #after #between #odd #even #nodata #beforeall <ul class=""list""> #afterall </ul> #end"; var titleField = schema.GetSummarizeColumn(); var editItem = ""; var linkHtml = string.Format("<a class='title' href='$Url.FrontUrl().PageUrl(\"{1}/detail\",\"%{{UserKey = $item.UserKey}}\")'>$item.{0}</a>", titleField.Name, schema.Name); if (inlineEdit) { editItem = " $ViewHelper.Edit($item)"; linkHtml = string.Format("<a class='title' href='$Url.FrontUrl().PageUrl(\"{1}/detail\",\"%{{UserKey = $item.UserKey}}\")' $ViewHelper.Edit($item,\"{0}\")>$item.{0}</a>", titleField.Name, schema.Name); } var snippet = string.Format(html, dataRule.DataName, linkHtml, editItem); if (dataRule.DataRule.EnablePaging.Value) { snippet += Environment.NewLine + string.Format(@" <div class=""pager""> $Html.FrontHtml().Pager($ViewBag.{0}) </div>", dataRule.DataName); } return snippet; } return string.Empty; }
public MembershipAuthentication(Site site, Kooboo.CMS.Membership.Models.Membership membership, HttpContextBase httpContextBase) { if (site == null) { throw new ArgumentNullException("site"); } if (httpContextBase == null) { throw new ArgumentNullException("httpContextBase"); } this._site = site; this._membership = membership; this._httpContext = httpContextBase; }
public override void Inject(Kooboo.Web.Mvc.Menu.MenuItem menu, System.Web.Mvc.ControllerContext controllerContext) { if (CommerceInstance.Current == null) { return; } menu.Items.Add(Start()); menu.Items.Add(Catalog()); menu.Items.Add(Orders()); menu.Items.Add(BusinessRules()); menu.Items.Add(Shop()); menu.Items.Add(Customers()); menu.Items.Add(System()); }
public virtual string EncodePassword(Kooboo.CMS.Membership.Models.Membership membership, string pass, string salt) { HashAlgorithm hashAlgorithm = this.GetHashAlgorithm(membership.HashAlgorithmType); if (hashAlgorithm == null) { return pass; } else { byte[] bytes = Encoding.Unicode.GetBytes(pass); byte[] src = Convert.FromBase64String(salt); byte[] inArray = null; if (hashAlgorithm is KeyedHashAlgorithm) { KeyedHashAlgorithm algorithm2 = (KeyedHashAlgorithm)hashAlgorithm; if (algorithm2.Key.Length == src.Length) { algorithm2.Key = src; } else if (algorithm2.Key.Length < src.Length) { byte[] dst = new byte[algorithm2.Key.Length]; Buffer.BlockCopy(src, 0, dst, 0, dst.Length); algorithm2.Key = dst; } else { int num2; byte[] buffer5 = new byte[algorithm2.Key.Length]; for (int i = 0; i < buffer5.Length; i += num2) { num2 = Math.Min(src.Length, buffer5.Length - i); Buffer.BlockCopy(src, 0, buffer5, i, num2); } algorithm2.Key = buffer5; } inArray = algorithm2.ComputeHash(bytes); } else { byte[] buffer6 = new byte[src.Length + bytes.Length]; Buffer.BlockCopy(src, 0, buffer6, 0, src.Length); Buffer.BlockCopy(bytes, 0, buffer6, src.Length, bytes.Length); inArray = hashAlgorithm.ComputeHash(buffer6); } return Convert.ToBase64String(inArray); } }
protected override string RenderInput(Kooboo.CMS.Form.IColumn column) { string input = base.RenderInput(column); string foldername = "slike"; column.CustomSettings.TryGetValue("folderName", out foldername); string SingleChoice = "false"; column.CustomSettings.TryGetValue("SingleChoice", out SingleChoice); // <%:Url.Action("Selection", "MediaContent", ViewContext.RequestContext.AllRouteValues())%> /*string mediaLibraryUrl = @"<%:Url.Action(""Selection"", ""MediaContent"", new { repositoryName = Kooboo.CMS.Sites.Models.Site.Current.Repository, siteName = Kooboo.CMS.Sites.Models.Site.Current.Name })%>";*/ string mediaLibraryUrl = @"@Url.Action(""SelectCategories"", ""TextContent"", new { repositoryName = Kooboo.CMS.Sites.Models.Site.Current.Repository, siteName = Kooboo.CMS.Sites.Models.Site.Current.FullName, folderName = ""#folderName#"", SingleChoice = ""#singlechoice#"", TextContentMode = ""true"" })"; mediaLibraryUrl = mediaLibraryUrl.Replace("#folderName#", foldername); mediaLibraryUrl = mediaLibraryUrl.Replace("#singlechoice#", SingleChoice); input = String.Format(@" <div id='textcontentpicker_{0}' class='textcontentpicker category-list clearfix' data-folderName='{2}'> <ul data-bind='sortable: data'> <li class='category-item-data'> <!-- ko if: thumb --> <img data-bind='attr:{{src: thumb}}' /> <!-- /ko --> <span class='text left' data-bind='{{text:Text}}'></span> <a class='remove right' data-bind='{{click: $parent.removeItem}}'>@Html.IconImage(""minus small"")</a> </li> </ul> <input type='hidden' id='{0}' name='{0}' data-bind='{{value:postValue}}' value='@(Model.{0} ?? """")'/> <a columnName='{0}' id=""textcontentpicker_btn_{0}"" href='{1}' class='action textcontentpickerButton'>@Html.IconImage(""plus small"")</a> </div> <script> $(function(){{ textcontentpicker('#textcontentpicker_{0}') }}) </script> ", column.Name, mediaLibraryUrl, foldername, column.DefaultValue); return input; }
public virtual ActionResult Delete(Kooboo.CMS.Membership.Models.Membership[] model, string @return) { ModelState.Clear(); var data = new JsonResultData(ModelState); data.RunWithTry((resultData) => { if (model != null) { foreach (var item in model) { _manager.Delete(item); } resultData.RedirectUrl = @return; } }); return Json(data); }
internal static AuthResult VerifyAuthenticationCore(Kooboo.CMS.Membership.Models.Membership membership, HttpContextBase context, string returnUrl) { IAuthClient client; string providerName = OpenAuthSecurityManager.GetProviderName(context); if (string.IsNullOrEmpty(providerName)) { return AuthResult.Failed; } client = GetAuthClient(membership, providerName); if (client == null) { throw new InvalidOperationException("Invalid membership connect."); } OpenAuthSecurityManager manager = new OpenAuthSecurityManager(context, client.GetOpenAuthClient(), new MembershipOpenAuthDataProvider()); var result = manager.VerifyAuthentication(returnUrl); return new AuthResult(result); }
protected override bool GetIsActive(Kooboo.Web.Mvc.Menu.MenuItem menuItem, System.Web.Mvc.ControllerContext controllerContext) { var controller = controllerContext.RouteData.Values["controller"] as string; var action = controllerContext.RouteData.Values["action"] as string; if (!controller.Equals("Rule", StringComparison.OrdinalIgnoreCase)) { return false; } if (action.Equals("List", StringComparison.OrdinalIgnoreCase)) { var eventName = controllerContext.RequestContext.GetRequestValue("eventName"); return !String.IsNullOrEmpty(eventName) && eventName.Equals(menuItem.RouteValues["eventName"].ToString(), StringComparison.OrdinalIgnoreCase); } return false; }
protected override string RenderInput(Kooboo.CMS.Form.IColumn column) { var sb = new StringBuilder(); sb.AppendFormat("<div id='{0}_Container' class='mediafile'>", column.Name); var input = @"<input id=""{0}"" name=""{0}"" type=""{1}"" value=""@(Model.{0} ?? """")"" data-bind=""value: fieldValue""/>"; const string script = "<script src=\"@Kooboo.CMS.Toolkit.Controls.ControlsScript.GetWebResourceUrl()\" type=\"text/javascript\" ></script>"; string options = @"{ allowMultipleFiles: " + AllowMultipleFiles.ToString().ToLower() + @", validation: " + Validation + @", validationErrorMessage: '" + ValidationErrorMessage + @"', value: '@(Model." + column.Name + @")' }"; var ul = @" <ul class=""clearfix"" data-bind=""foreach: data""> <!-- ko if: isImage --> <li class=""img""> <span class=""preview""></span> <a class=""action"" data-bind=""click: $parent.removeItem"">@Html.IconImage(""minus small"")</a> <img data-bind=""attr:{src:Url}"" height=""100"" width=""100""> </li> <!-- /ko --> <!-- ko ifnot: isImage --> <li> <span class=""left"" data-bind=""{text:FileName}""></span> <a class=""action right"" data-bind=""click: $parent.removeItem"">@Html.IconImage(""minus small"")</a> </li> <!-- /ko --> </ul>"; var mediaLibraryUrl = String.Format(@"@Url.Action(""Selection"", ViewContext.RequestContext.AllRouteValues().Merge(""Controller"", ""MediaContent"").Merge(""FolderName"", null){0})""", AllowMultipleFiles ? "" : @".Merge(""SingleChoice"", ""true"")"); var func = String.Format(@" {0} <a id='addMedia_{1}' columnName='{1}' href='{2}' class='action add'>@Html.IconImage(""plus small"")</a> <script type='text/javascript'> $('#{1}_Container').mediaControl({3}); </script> ", script, column.Name, mediaLibraryUrl, options); sb.AppendFormat(input, column.Name, Type, ValidationExtensions.GetUnobtrusiveValidationAttributeString(column)); sb.Append(ul); sb.Append(func); sb.Append("</div>"); return sb.ToString(); }
public override void Inject(Kooboo.Web.Mvc.Menu.MenuItem menu, System.Web.Mvc.ControllerContext controllerContext) { if (CommerceInstance.Current == null) { return; } var root = new MenuItem { Text = "Search" }; menu.Items.Add(root); root.Items.Add(new SearchMenuItem { Text = "Indexes", Controller = "Indexes" }); }
public override void Inject(Kooboo.Web.Mvc.Menu.MenuItem menu, System.Web.Mvc.ControllerContext controllerContext) { if (CommerceInstance.Current == null) { return; } var recommendations = new RecommendationMenuItem { Text = "Recommendations" }; menu.Items.Add(recommendations); recommendations.Items.Add(new RecommendationMenuItem { Text = "Settings", Controller = "Config", Action = "Behaviors" }); }
private cmisRepositoryInfoType ToRepositoryInfo(Kooboo.CMS.Sites.Models.Site site) { var repositoryInfo = new cmisRepositoryInfoType() { repositoryId = site.FullName, repositoryName = string.IsNullOrEmpty(site.DisplayName) ? site.Name : site.DisplayName, vendorName = "Kooboo", repositoryDescription = "", productName = "Kooboo CMS", productVersion = this.GetType().Assembly.GetName().Version.ToString(), rootFolderId = "/", latestChangeLogToken = "", capabilities = GetRepositoryCapabilities(site), aclCapability = null, //todo: Not very clear for acl now. cmisVersionSupported = "1.1", thinClientURI = null, changesIncomplete = false, changesOnType = new[] { enumBaseObjectTypeIds.cmisdocument }, principalAnonymous = null, principalAnyone = null }; return repositoryInfo; }
public static FolderType IdentifyFolderType(Kooboo.CMS.Content.Models.Repository repository, string folderId) { if (string.Compare(folderId, RootFolderName, true) == 0) { return FolderType.Root; } if (string.Compare(folderId, Content_Folder_Root, true) == 0) { return FolderType.Content_Folder_Root; } if (string.Compare(folderId, Media_Folder_Root, true) == 0) { return FolderType.Media_Folder_Root; } var folder = Parse(repository, folderId); if (folder is TextFolder) { return FolderType.Content_Folder; } else { return FolderType.Media_Folder; } }
public override bool CanExecute(Kooboo.Commerce.Products.Product product, CommerceInstance instance) { return product.IsPublished; }
public virtual ActionResult RevertTo(string folderName, string schemaName, string uuid, Kooboo.CMS.Content.Versioning.VersionInfo[] model, string @return) { var data = new JsonResultData(ModelState); data.RunWithTry((resultData) => { if (model.Length == 1) { TextContentManager.RevertTo(Repository, folderName, schemaName, uuid, model[0].Version, User.Identity.Name); resultData.RedirectUrl = @return; } }); return Json(data); }
public virtual ActionResult Export(Kooboo.CMS.Membership.Models.Membership[] model) { if (model != null || model.Length > 1) { string fileName = model.First().Name + ".zip"; Response.AttachmentHeader(fileName); var membership = model.First().AsActual(); if (membership != null) { _provider.Export(membership, Response.OutputStream); } } return null; }
public virtual ActionResult Edit(Kooboo.CMS.Membership.Models.Membership model, string @return) { JsonResultData data = new JsonResultData(ModelState); if (ModelState.IsValid) { data.RunWithTry((resultData) => { _manager.Update(model, model); resultData.RedirectUrl = @return; }); } return Json(data); }