问题标签 [orchardcms-1.10]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
88 浏览

javascript - Orchard CMS 1.10.2 TinyMCE 配置更改

在将 Orchard CMS 从 1.8 升级到 1.10.2(以及随后升级到 TinyMCE4)之后,我正在尝试重新配置 TinyMCE 以应用一些自定义配置选项。

但是,对 Modules\TinyMCE\Scripts\orchard-tinymce.js 所做的任何更改都不会反映在 Orchard 界面的 TinyMCE 编辑器中。我尝试在更改后重新启动 IIS 站点,但没有运气。

您是否需要明确地做任何其他事情来让 TinyMCE 读取配置更改?

0 投票
0 回答
68 浏览

orchardcms - 如何将多复选框列表添加到基于表单的元素的编辑器中?

我正在尝试构建一个自定义的Typeahead表单元素。我已经预定义了多个数据集来从中提取自动完成建议。当用户将我的字段添加到表单时,我希望他们能够通过复选框选择这些数据集中的一个或多个。

Orchard 似乎没有开箱即用的任何形状。通过查看中的其他表单元素Orchard.DynamicForms和中定义的 SelectList 形状Orchard.Forms.Shapes.EditorShapes.cs,我能够将驱动程序的工作代码拼凑在一起:

这成功地为我的目的呈现了一个多选字段和某种作品,但我无法完全取消选择每个选项,因为被选中的选项不断被发布。出于这个原因和一般的易用性,我宁愿呈现一个复选框列表,但我不知道如何继续。

0 投票
1 回答
84 浏览

orchardcms - 获取内容编辑 URL 作为不带 UrlHelpers 或 Orchard 令牌的字符串

我正在尝试从后端获取内容的编辑 URL 作为字符串,但问题是我在工作流活动中,所以我不能使用 Url.Action... 或 Url.ItemEditLink... 或其他UrlHelpers 就好像它是一个控制器或视图。此外,虽然我在工作流中,但我需要它的内容不是工作流上下文或活动上下文的一部分,所以我也不能使用这些或令牌。

一个解决方案可能是获取内容元数据和站点 baseUrl 并尝试手动构建它,但我认为这种方式容易出错。

谢谢。

0 投票
1 回答
40 浏览

orchardcms - 从外部数据库加载目录并将它们链接到 ContentParts 作为 ContentRecords

示例:我有一个国家目录存储在另一个数据库中,我需要将它用作某些 ContentParts 中的属性。我正在尝试在不干扰 Orchard 布线的情况下建立连接。

CountryRecords 和 MovieParts 之间的关系将在 Orchard 数据库中,但 CountryRecord 数据在另一个数据库中。我只需要读取访问权限,但我不知道哪个以及如何覆盖处理程序以使用其他源。

我是否需要创建一个 ContentHandler 并覆盖所有方法,并创建另一个使用新存储库和外部源的 StorageFilter?我如何将新的 repo 注入到处理程序中?

更新:

在这个Using External Data with Orchard(大约第 25 分钟)视频中,他似乎正在用这段代码做我需要的事情:

但是在我的代码中它找不到“加载器”功能,即使我也有视频中的所有引用,所以也许 ProductField 是一个自定义类型?

0 投票
1 回答
32 浏览

orchardcms - 哪个控制器构建主页?

我需要阻止匿名进入该站点,但我找不到构建主页的控制器或重定向到那里的路由。

转到小部件管理员并取消发布/删除匿名层中的所有内容,只隐藏项目,但我需要重定向到登录页面,就像管理区域功能一样。

而且我不能只删除匿名角色,因为他们可以访问某些页面和内容,而不能访问主页。

0 投票
1 回答
251 浏览

orchardcms - 如何拦截请求以获取站点本地化的原始 URL?

我的网站是这样工作的:

  1. 所有内容都有 {culture/slug} URL 的自动路由
  2. 用户可以选择网站文化,以便一切都以他们选择的语言呈现

我正在尝试实现此功能:

  1. 用户选择英文网站。
  2. 用户转到“site.com/es/content”,这是一个西班牙语内容。
  3. 该站点必须自动将文化更改为西班牙语并返回请求的内容。

我认为我需要的是拦截请求,解析 URL 并获取文化以查看它是否与当前的相同。

我尝试使用 IHttpContextAccessor 在 Orchard.Core.Contents 的 ItemsController 中获取它,但它没有原始 URL。

我也尝试在 Orchard.Autoroute 和 Orchard.Alias 服务中捕获请求,但它们不是处理请求的。

任何指针将不胜感激。

0 投票
2 回答
178 浏览

orchardcms - 从内容选取器字段显示容器部件项目

我有一个名为 DayTile 的内容类型,我设置了一个内容选择器字段,该字段仅限于 HotelSection 类型。此类型是 Hotels 类型的容器。

当 DayTile 选择了该部分时,我想渲染 HotelSection 中的所有酒店。这可能吗?

从我到目前为止的尝试来看,HotelSection 包含的项目似乎无法作为内容选择器字段进行访问。

0 投票
0 回答
81 浏览

orchardcms - Orchard CMS 上的投票/明星

第一次在这里发帖,但我最近开始在我们公司的数字部门工作,我们使用 Orchard 作为网站的 CMS。我被要求查看网站上内容的评级,所以我很自然地一直在为 Orchard 寻找 Stars,但到目前为止成功率为零。

没有任何提供的文档,我很难看出我哪里出错了。我已经下载了模块并安装了它们,我已经启用了它们,并且我在内容定义中的投票下选择了星星。我可以看到添加任何类型的投票的唯一选项是小部件的形式,但是没有任何提供的模块文档,我很难让它工作。谁能告诉我这个?我对果园很陌生,所以如果这很简单,我很抱歉。

0 投票
1 回答
149 浏览

orchardcms - Alternate shape for EditorTemplate of Field is not being recognized

I need an alternate for the EditorTemplate of an Enumerator Field that's used when the Field has a particular name (PublishingMethod).

Based on the docs, I created a view with the pattern [ShapeType__FieldName] in the same folder as the original shape:

Alternate Template

This is not working and still uses the original. I've thought of changing the Editor method in the Driver, but I think that defeats the purpose of alternates, which is that Orchard automatically detects the correct shape as I understand from the docs:

The Orchard framework automatically creates many alternates that you can use in your application. However, you can create templates for these alternate shapes.

Note: I can't use the Shape Tracing module, it never worked even with a clean Orchard install.

0 投票
0 回答
41 浏览

orchardcms-1.9 - 果园 IRepository.Create 错误

我正在研究 http://www.ideliverable.com/blog/writing-an-orchard-webshop-module-from-scratch-part-9

我的果园版本是1.9

订单记录.cs

没有额外的内容部分类,因为我需要使用 id 并且方法在同一个类中定义。不需要创建表的字段设置器被定义为私有。TotalNumber

迁移.cs

使用这些字段正确创建的表但是当我想使用 IRepository.Create (T Entity) 方法在 OrderService.cs 中创建 OrderRecord 时,它会发送未绑定到表的字段。TotalNumber

订单服务.cs

最后一行抛出错误是错误日志:

2018-04-20 18:37:15,871 [16] Orchard.Exceptions.DefaultExceptionPolicy - 默认 - 捕获到意外异常 [ http://localhost:64607/Orchard.WebShop/Order/Create] NHibernate.Exceptions.GenericADOException: 可以不插入:[Orchard.Webshop.Models.OrderRecord][SQL: INSERT INTO Orchard_Webshop_OrderRecord (CustomerId, CreatedAt, SubTotal, Vat, Status, PaymentServiceProviderResponse, PaymentReference, PaidAt, CompletedAt, CancelledAt, Total, Number) 值 (?, ?, ? , ?, ?, ?, ?, ?, ?, ?, ?, ?); 选择 SCOPE_IDENTITY()] ---> System.Data.SqlClient.SqlException:列名“总计”无效。列名“数字”无效。无法准备报表。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔 breakConnection,操作1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject state&Obj, Boolean dataReady) 在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() 在 System.Data.SqlClient.SqlDataReader.get_MetaData() 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption) 在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream,布尔异步、Int32 超时、任务和任务、布尔异步写入、布尔 inRetry、SqlDataReader ds、布尔 describeParameterEncryptionRequest)在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior runBehavior、布尔 returnStream、字符串方法、TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
at NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd)
at NHibernate.Id.IdentityGenerator.InsertSelectDelegate.ExecuteAndExtract(IDbCommand insert, ISessionImplementor session) at NHibernate.Id.Insert.AbstractReturningDelegate.PerformInsert(SqlCommandInfo insertSQL, ISessionImplementor session, IBinder binder) --- End of inner exception stack trace --- at NHibernate.Id.Insert.AbstractReturningDelegate.PerformInsert(SqlCommandInfo insertSQL, ISessionImplementor session, IBinder binder) at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object[] fields, Boolean[] notNull, SqlCommandInfo sql, Object obj, ISessionImplementor session) at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object[] fields, Object obj, ISessionImplementor session) at NHibernate.Action.EntityIdentityInsertAction.Execute() at NHibernate.Engine.ActionQueue.Execute(IExecutable executable) at NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object entity, EntityKey key, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) at NHibernate.Event.Default.AbstractSaveEventListener.PerformSave(Object entity, Object id, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) at NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event) at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent event) at NHibernate.Event.Default.DefaultSaveEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent event) at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event) at NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent event) at NHibernate.Impl.SessionImpl.Save(Object obj) at Orchard.Data.Repository
1.在 C:\Users\Selman\Orchard-dev\src\Orchard\Data\Repository.cs 中创建(T 实体):
Orchard.Data.Repository 的第 93 行1 项)在 C:\Users\Selman\Orchard- dev\src\Orchard.Web\Modules\Orchard.Webshop\Services\OrderService.cs:C:\Users\Selman\Orchard-dev\src\Orchard 中 Orchard.Webshop.Controllers.OrderController.Create() 的第 46 行。 Web\Modules\Orchard.Webshop\Controllers\OrderController.cs:第 48 行,位于 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase 控制器,Object[] 参数) 的 lambda_method(Closure , ControllerBase , Object[] ) 在 System.Web .Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary1.Orchard.Data.IRepository<T>.Create(T entity) in C:\Users\Selman\Orchard-dev\src\Orchard\Data\Repository.cs:line 33
at Orchard.Webshop.Services.OrderService.CreateOrder(Int32 customerId, IEnumerable
2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 个参数)在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult 的 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult 的 System.Web.Mvc.Async.AsyncControllerActionInvoker.b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) 2.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase1.End() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker。 EndInvokeActionMethod(IAsyncResult asyncResult) 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3d() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f() 在 System.Web.Mvc.Async。 AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f()

解决方案

我暂时找到了解决方案。我把TotalNumber领域变成了方法public virtual decimal Total()public virtual string Number()。它现在可以工作。