关于NOP的@Html.Widget(“home_page_top”)的说明

以首页幻灯片为例子,首页幻灯片是在插件Nop.Plugin.Widgets.NivoSlider里面实现的

  1. 首页视图位置
  2. 这里其实是加载插件里面的视图内容,具体实现在插件实现
  3. 这个是扩展方法,就是执行Nop.Web 下面的WidgetController控制器里面的子动作WidgetsByZone

这个WidgetByZone就是查找当前已使用的@Html.Widget(“xxx”)并返回相应的控制器名字,方法名和路由值

  1. Widget控制器位置
  2. LoadActiveWidgetsByWidgetZone此方法是加载活动的@Html.Widget(“xxx”)的方法,具体实现大家可在相应实现类找到,注意它的返回对象是IWidgetPlugin接口
  3. 这个方法根据参数名就知道是通过@Html.Widget(“xxx”)里面的xxx作为参数找到实现@Html.Widget(“xxx”)这个的插件,具体实现在方法里面有

这里面是那个IWidgetService的实现类,这里的3方法后面跟着的是模糊查询,所以会根据页面有@Html.Widget(“xxx”)的xxx找到具体实现的插件

  1. 实现类的具体位置
  2. 加载已活动的@Html.Widget(“xxx”)实现方法
  3. 这个方法是定定义在插件里头的,它被定义在IWidgetPlugin接口下,所有有需要实现@Html.Widget(“xxx”)的插件都必须实现该接口

1. 幻灯片插件的位置

2. 实现IWidgetPlugin接口

3. 实现IWidgetPlugin接口下面的GetWidgetZones方法并在IWidgetService接口下的实现类被调用实现

--鱼头鱼尾

这就是我对nop里面的@Html.Widget(“xxx”)的理解,个人拙见,还望各位看官多多包涵。其它有什么细节的事可以在群里发问或者私聊我,我会的就帮忙。(群号: 75272942)

个人联系QQ:875755898

备注:

本人开发有微信扫码登录,新浪微博登录等外部授权插件,微信扫码(模式二)支付、银联在线支付的支付插件,(可在线测试预览)

因生活所迫需要卖插件并提供插件的后续服务,更新(依赖nop的版本)及技术指导(购买插件者)

外部授权插件:只要是基于Oauth2.0授权协议的都可以代开发,开发需客户提供相关资料(如商户号,密钥等等关于授权所需要用得到的资料,并承诺对该客户的资料保密)。

插件价格:私聊详谈。

插件版本支持3.1及高于3.1版本,后续会跟着nop版本更新。

后续我会尽可能出一套插件的视频开发教程,时间条件充裕的话。

购买插件者需尊重我的个人知识产权。

谢谢!!!

时间: 2024-11-05 13:17:26

关于NOP的@Html.Widget(“home_page_top”)的说明的相关文章

nopcommerce里面的@Html.Widget("home_page_top") 是什么?

很多朋友在修改模板的时候看到很多类似@Html.Widget("xxx")的东西,这里简单介绍一下流程: 比如@Html.Widget("home_page_top"),首先要知道Html.Widget是什么,这是Html的一个扩展方法,位于Nop.Web.Framework\HtmlExtensions.cs public static MvcHtmlString Widget(this HtmlHelper helper, string widgetZone)

NopCommerce Html扩展方法Html.Widget

在Nop中有一个Html扩展的类叫HtmlExtensions,主要源码: public static class HtmlExtensions { #region Admin area extensions public static MvcHtmlString Hint(this HtmlHelper helper, string value) { // Create tag builder var builder = new TagBuilder("img"); // Add a

nop 配置阿里cdn 联通4g 页面显示不全 查看源代码发现被截断

开发中遇见特别诡异的问题, 项目使用nop框架,pavilion主题,之后配置阿里cdn,然后在联通4g的情况下苹果手机网页显示不完全,nop首页和产品详情页都是如此,排查过程: 1.阿里cdn设置了源站,同样环境下访问源站是没有问题的,所以一直以为是阿里的问题,之后联系阿里的技术支持,并没得到确切结果,在给调dns的情况下,好了一下. 2.之后怀疑是dns 的问题,dns事关服务器,大动干戈没有必要 3.开始研究代码,发现,截断的第一处发生在\Themes\Pavilion\Views\Sha

QT的父子Widget之间消息的传递(如果子类没有accept或ignore该事件,则该事件会被传递给其父亲)

以前我一直以为:在父widget上摆一个子widget后,当click子widget时:只会进入到子widget的相关事件处理函数中,比如进入到mousePressEvent()中, 而不会进入到父widget的对应事件处理函数中.毕竟:click的是子widget,其遮挡住了父widget,从而父widget接收不到这个事件.然而事实真的是这个样子吗? 我做了一个测试: 在一个QWidget上建了一个QLabel.而后实现父QWidget的mousePressEvent(), 然后跟一下发现:

third application :Directions widget

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"> <

Orchard 之:Widget,兼看 Layer 在权限控制中的作用

一:Widget 可以理解为控件,可以直接被页面所引用.行为类似与分部页面,比如,我们可以创建一个 商品列表 Widget,然后这个 Widget 就可以被很多页面所引用. 理解 Widget 这个概念,我们不得不理解另外两个概念: 1:Layer Orchard 默认有这么几个层,Default.Authenticated.Anonymous.Disabled.TheHomepage.Layer 用于承载什么时候 Widget 将会被展现,这么讲大家一定觉得很抽象,其实 Layer 存在的意义

解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题

解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题http://blog.csdn.net/u012336923/article/details/48289485 /路径/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.1/res/values-v23/v

Yii2 时间控件之把layDate做成widget

实现效果如下 1.把layDate封装成Yii2的widget,存在 "\common\widgets"目录下,命名为DycLayDate,具体引用查看代码. 2.对应的model的rules方法加上: [['cms_publish_date'], 'date', 'format'=>'yyyy-MM-dd HH:mm:ss' , 'message' => '{attribute}格式不正确', 'on' => ['createDo', 'updateDo'] ] 其

QT模态对话框用法(在UI文件中设置Widget背景图,这个图是一个带阴影边框的图片——酷)

QT弹出模态对话框做法: 1.新建UI文件时,一定要选择基类是QDialog的,我的选择是:Dialog without Buttons(),如下图: 2.然后在使用的时候: MyDialog dlg(this); dlg.exec(); 如果不加this,则会在任务管理器里面产生一个新的EXE. 3.如果对话框的标题是自定义,不想使用系统的标题,这时候需要在代码中加入: setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint ); setAttr