在这部分,我们要完成的工作有: 1:将购物车内的商品变成真正的订单: 2:理解 父子及一对多关系: 3:写一个针对 Event Bus 的扩展点: 4:实现一个针对该扩展点的模拟的 支付服务: 一:创建订单 Views/Checkout.Summary.cshtml: @using Orchard.ContentManagement@using TMinji.Shop.Models@{    Style.Require("TMinji.Shop.Checkout.Summary"); …
在<http://www.cnblogs.com/luminji/p/3831281.html>中简单介绍了 Orchard 的模块开发,接下来,我们需要做个更复杂的例子,Orchard 版本的商场: 一:创建模块 可以使用 orchard 命令行的方式来创建新的模块,当然也就可以直接手工生成这样的模块. 直接在 Modules 文件夹下新建 类库项目 Tminji.Shop,当然,你得把项目路径放置到类似: D:\src\Orchard.Web\Modules 并且,修改 build 的 o…
后台默认提供了 Content 的管理,但是,所有的内容类型揉杂在一起,而我们需要更深度的定制一些功能,比如,我们只想管理订单,又比如,我们需要对注册用户进行管理.本篇的内容包括: 1:自定义 admin menu: 2:使用 content query: 3:使用 paging utilities: 4:创建 list 与 edit: 一:扩展 Admin Menu 首先我们必须要实现 INavigationProvider 接口,我们创建 AdminMenu.cs: using Orchar…
在这一部分,我们继续完善我们的购物车,我们要做以下一些事情: 1:完成 shoppingcart.cshtml: 2:让用户可以更新数量及从购物车删除商品: 3:创建一个 widget,在上面可以看到商品数量,并且能链接到购物车: 同时,我们会接触到以下技术点: 1:熟悉 IContentManager.GetItemMetadata: 2:通过 IResourceManifestProvider 来包含 resources: 3:使用 KnockoutJS and jQuery,并且应用 MV…
这里,我们需要做一些事情,这些事情意味着深度改造前台: 1:为商品增加 添加到购物车 按钮,点击后功能实现: 2:商品排序: 3:购物车预览,以及添加 结算 按钮: 4:一个显式 购物车中有*个 商品 的widget: 一:添加到购物车 按钮 修改 Views/Parts/Product.cshtml: @{    var price = (decimal)Model.Price;    var sku = (string)Model.Sku;}<article>    Price: @pri…
一:分类用现有技术怎么实现? 实际就是创建 Query 和 Projection,如果不知道怎么做,参考:Orchard之在前台显式一个属于自己的列表(在这篇里,还进行了稍稍拓展),当然,基础的知道,我们可以参考 Orchard 相关文档,不难. 1.1 当前这种模式的缺点 这种模式的缺点就是,你要么查询 Book ,要么查询 DVD, 不能查询全部的 Product,这样一来,我们又要自己写代码了. 二:更新 Module.txt 因为我们的模块依赖一个特性, Orchard.Projecti…
一:创建 Part 1:项目引用 Orchard.Framework: 2:创建 Models 文件夹: 3:在 Models 文件夹下创建类 ProductPartRecord,如下: public class ProductPartRecord : ContentPartRecord{    public virtual decimal UnitPrice { get; set; }    public virtual string Sku { get; set; } } 注意,为 virt…
我们都知道 Orchard 的用户注册相当简单,现在,我们需要一个自定义的用户注册,现在,开始吧. 一:定义实体 Models/CustomerPartRecord.cs: public class CustomerPartRecord : ContentPartRecord{    public virtual string FirstName { get; set; }    public virtual string LastName { get; set; }    public vir…
创建模块 首先,打开Bin目录下的Orchard.exe 等到出现orchard>后, 看看命令列表中是否存在 codegen module 如果不存在,则需要先执行:feature enable  Orchard.Codegeneration 然后执行codegen module [要新建的模块名] 比如Codegen module News 新建News模块 Orchard会在Orchard.Web/Modules下新建工程News, 启动VS源码,把它加载到Modules 解决方案文件夹.…
构建Odoo模块 模块组成 业务对象 业务对象声明为Python类, 由Odoo自己主动加载. 数据文件 XML或CSV文件格式, 在当中声明了元数据(视图或工作流).配置数据(模块參数).演示数据等. Web控制器 处理Web浏览器发来的requests. 静态web数据 Web用到的图像, CSS或JavaScript文件. 模块结构 一个Odoo模块也是一个Python模块, 存放在一个文件夹中, 包括一个__init__.py文件, 用于导入其它Python模块. from . impo…