4 Star 0 Fork 2

jhin / bbc_doc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
09.ONex B2B2C 二次开发之模板级挂件.md 5.52 KB
一键复制 编辑 原始数据 按行查看 历史
jhin 提交于 2016-10-14 09:13 . qb 用法

ONex B2B2C 二次开发之模板级挂件

创建模板级挂件

创建一个模板级挂件的必备文件结构

1. 配置页(_config.html)
配置页是在可视化编辑时用到的配置表单。

2. 配置页拦截器(theme_widget_cfg_widgetname.php)[可选]
配置页拦截器用于向配置页输出系统数据,例如输出一个系统当前的商品排序方式数组。供页面<select>填充选择。
[如果配置页不需要从系统内取得数据,则此拦截器无需制作。]

3. 挂件拦截器(theme_widget_widgetname.php)
挂件拦截器,用于向挂件模板供应后端数据

4. 挂件描述文件(widgets.php)
用于描述挂件基本信息,挂件模板文件、名称对应关系。

5. 挂件渲染模板(widgettpl1.html....... widgettplN.html)
一个或多个挂件模板,需要在挂件描述文件中被描述,以便可视化编辑时选择挂件使用的模板。

6. 可视化编辑占位模板(_preview.html)[可选]
此页面用于在可视化编辑时占位,例如广告挂件由许多效果和图片资源加载,在可视化编辑时影响效率,可以用此页面来代替挂件的渲染,但是挂件拦截器同样会把数据抛向此页面,你可以只取得一些尺寸信息,用边框和文字代替挂件。[如果挂件不需要在可视化编辑模式重定义,则无需制作此页]

创建一个模板级挂件-long_area

long_area挂件的目的是实现一个根据管理员的配置在前台显示一组文章信息。

1.	在模板目录建立 widgets文件夹
2.	在widgets文件夹内创建long_area文件夹,并进入文件夹
3.	创建挂件描述文件widgets.php

例如:(widgets.php)

<?php
/**
 * 根据管理员配置在前台显示一组文章信息
 *
 * @author Jhin  
 */
<?php
/*
* 常驻地区挂件
* @author Jhin 
* @create_at 20160825
*/
$setting['author'] = 'Jhin';
$setting['version'] = 'v1.0';
$setting['name'] = '常住地区挂件';
$setting['stime'] = '2016-08';
$setting['catalog'] = 'Jhin';
$setting['description'] = '根据ip选择所在城市';
$setting['tag'] = 'auto';
$setting['template'] = array(
                            'default.html'=>app::get('b2c')->_('默认')
                        );

$setting 数字说明 |- author 作者 |- version 版本,默认形式 v1.0 |- name 挂件名称 |- stime 创建时间 |- catalog 挂件中心左侧导航栏名称 |- descript 关键描述 |- tag 挂件标签(未看到效果) |- template 指定挂件板块所用的模板(前端显示的样式等,可以不设置)

创建挂件配置页 _config.html(命名规则定死_config.html)

<div class="tableform">
	<table border="0" cellpadding="0" cellspacing="0">
		<tr>
			<th><em><font color="red">*</font></em>设置名称</th>
			<td>
				<{input type="text" name="names" vtype="required" value=$setting.names|default:"5"}>
			</td>
		</tr>
	</table>
</div>

_config.html 说明 |- 用途 板块中心配置页,显示效果 |- vtype:required 必填项 |- default: "5" 设置默认值为5

创建挂件拦截器 (theme_widget_long_area.php)(命名应于内部代码函数名保持一致)

<?php
/*
* 常驻地区挂件拦截器
* @author Jhin 
* @create_at 20160825
*/
function theme_widget_long_area(&$setting){
	return $setting['namejhin'] = jhin;
}

theme_widget_long_area.php 说明 |- 可以为空 |- 可以直接返回变量在 default.html 使用

创建挂件模板(default.html) (命名规则应与widget.php挂件描述文件中 $setting['template'] 保持一致)

<div class="long-area-widgets">
	<div class="long-area-widgets-header">
		<h3><{$setting.names}></h3>
		<h3><{$setting.namejhin}></h3>
	</div>
</div>

default.html 说明

挂件模板同挂件配置模板页一样,都是一个代码片段,无需加入body\title\等html标签。
挂件模板中的<style></style>中定义将会合并到一个css文件中被引入到<head>头部
(例如一个模板布局页面同时挂了两个mywidget)。
挂件模板中的‘image/‘将会被替换为绝对路径,你可以在挂件包中创建一个images文件夹用来存放挂件相关的资源。例如<style>#<{widgets_id}>_mywidge{ background:url(‘images/bg.png’)} </style>,在渲染到前台时,系统将自动替换images/为绝对路径。

|- 可以调用拦截器中返回的数据 |- 但是不能调用widgets.php 中的设置。例如使用<{$setting.name}> 没有任何显示效果。

创建可视化编辑占位模板 _preview.html (命名规则定死_preview)

<div class="note">
我的第一个挂件
</div>

_preview.html 说明 这个文件只用于模板可视化编辑时,如某些情况不方便直接将挂件呈现于可视化编辑视图。 则可以创建此文件在可视化编辑中代替挂件真实显示

模板级挂件绑定到模板

当创建好一个模板级挂件。可以在管理后台通过模板列表上面的 “维护” 按钮绑定挂件到模板。

测试挂件

_config.html正式挂件版块配置时的一部分,在挂入到模板挂件区域时,你还可以包装挂件所使用的边框,挂件版块所使用的挂件模板等信息。

补充

20160905

模板的变量的加载顺序

widgets.php -> _config.html -> theme_widget_xxx.php -> default.html

首先是从 模板的 widgets.php中定义变量,这里的变量可以在_config.html中使用,而在_config.html中定义的变量可以在 theme_widgets_xxx.php中使用,最后在default.html页面上调用.

PHP
1
https://gitee.com/jhin/bbc_doc.git
git@gitee.com:jhin/bbc_doc.git
jhin
bbc_doc
bbc_doc
master

搜索帮助