Discuz! 7.0 模块调用脚本范例程序 - 模板
2009-01-01 18:35
609 查看
<?php
/*
Discuz! 7.0 模块调用脚本范例程序 - 模板
*/
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
if($requestrun) {
/*
模块脚本运行代码
脚本中的设置参数在数组 $settings 中
脚本中不能有输出语句,所有输出结果赋值给变量 $writedata
脚本输出结果自动缓存,缓存时间根据数据调用模块设置而定,如不缓存,可令 $nocache = 1
*/
/**
* 用于存储模板中替换标记数组
* 在Discuz!中,所有的变量在使用前都应该设置初始值
*/
$search = array();
/**
* 用于存储模板中替换内容数组
* 在Discuz!中,所有的变量在使用前都应该设置初始值
*/
$replace = array();
/**
* 替换标记{title}
*/
$search[] = '{title}';
/**
* 对应于替换标记{title}的替换内容
* $settings['title']的值是$request_settings['title']声明的参数的值
* 使用strval函数强制转换成字符串
* 使用stripslashes函数获取用户提交的字符串
* 使用htmlspecialchars函数对HTML标记转义
*/
$replace[] = htmlspecialchars(stripslashes(strval($settings['title'])));
/**
* 替换标记{content}
*/
$search[] = '{content}';
/**
* 对应于替换标记{content}的替换内容
* $settings['content']的值是$request_settings['content']声明的参数的值
* 使用strval函数强制转换成字符串
* 使用stripslashes函数获取用户提交的字符串
*/
$replace[] = stripslashes(strval($settings['content']));
/**
* 调用str_replace函数将模板中的替换标记替换成相对应的内容
* $settings['template']的值是$request_settings['template']声明的参数的值
* 使用strval函数强制转换成字符串
* 使用stripslashes函数获取用户提交的字符串
*/
$writedata = str_replace($search, $replace, stripslashes(strval($settings['template'])));
} else {
/*
模块脚本设置参数
版本 $request_version
名称 $request_name
描述 $request_description
版权 $request_copyright
参数 $request_settings
变量名 => array(变量含义, 备注说明, 类型, 选项数组, 默认值)
类型:
text 单行文本
textarea 多行文本
radio 单选(是/否)
mradio 自定义单选
mcheckbox 多选
select 单选下拉
mselect 多选下拉
*/
$request_version = '1.0';
$request_name = '模块调用脚本范例';
$request_description = '模板,您可以参照本脚本 ./include/request/'.basename(__FILE__).' 中的说明编写模块脚本';
$request_copyright = '©';
/**
* <div class="extcredits">是Discuz!中模板中插入标记的样式
* <a>是每个插入标记的HTML标记
* 每个代表插入标记的<a>标记都包含onclick事件
* onclick事件中调用Discuz!中定义的insertunit脚本函数
* insertunit脚本函数的第一个参数是插入的内容,通常和<a>标记的内容相同
* insertunit脚本函数的第二个参数是插入的位置,应当是parameter[settings][],在第二个方括号中输入变量名
*/
$request_settings['template'] = array('模板', <<<DESCRIPTION
<div class="extcredits">
<a href="###" onclick="insertunit('{title}', 'parameter[settings][template]')">{title}</a>代表 标题
<a href="###" onclick="insertunit('{content}', 'parameter[settings][template]')">{content}</a>代表 正文
</div>
DESCRIPTION
, 'textarea', array(), '<fieldset><legend>{title}</legend>{content}</fieldset>');
}
$request_settings['title'] = array('标题', '替换模板中的{title}标记,不支持HTML标记。', 'text', array(), '标题');
$request_settings['content'] = array('正文', '替换模板中的{content}标记,可以使用HTML标记。', 'textarea', array(), '<p>正文</p>');
?>
Discuz! 6.1 多语言翻译工作范围
Discuz! 6.1 兼容问题
Discuz! 6.1 发送HTML格式电子邮件
Discuz! 6.1~7.0 安装SupeSite后导致安全漏洞
Discuz! 6.1 不修改模板在贴子上增加收藏按钮
Discuz! 6.1 cpmsg函数在IE下和Firefox下表现不一致
Discuz! 6.1~7.0 升级后request缓存文件名不兼容
Discuz! 6.1~7.0升级后request路径不兼容以及相应修改方案
Discuz! 7.0 模块脚本文件名
模块调用脚本范例程序 - 模板
/*
Discuz! 7.0 模块调用脚本范例程序 - 模板
*/
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
if($requestrun) {
/*
模块脚本运行代码
脚本中的设置参数在数组 $settings 中
脚本中不能有输出语句,所有输出结果赋值给变量 $writedata
脚本输出结果自动缓存,缓存时间根据数据调用模块设置而定,如不缓存,可令 $nocache = 1
*/
/**
* 用于存储模板中替换标记数组
* 在Discuz!中,所有的变量在使用前都应该设置初始值
*/
$search = array();
/**
* 用于存储模板中替换内容数组
* 在Discuz!中,所有的变量在使用前都应该设置初始值
*/
$replace = array();
/**
* 替换标记{title}
*/
$search[] = '{title}';
/**
* 对应于替换标记{title}的替换内容
* $settings['title']的值是$request_settings['title']声明的参数的值
* 使用strval函数强制转换成字符串
* 使用stripslashes函数获取用户提交的字符串
* 使用htmlspecialchars函数对HTML标记转义
*/
$replace[] = htmlspecialchars(stripslashes(strval($settings['title'])));
/**
* 替换标记{content}
*/
$search[] = '{content}';
/**
* 对应于替换标记{content}的替换内容
* $settings['content']的值是$request_settings['content']声明的参数的值
* 使用strval函数强制转换成字符串
* 使用stripslashes函数获取用户提交的字符串
*/
$replace[] = stripslashes(strval($settings['content']));
/**
* 调用str_replace函数将模板中的替换标记替换成相对应的内容
* $settings['template']的值是$request_settings['template']声明的参数的值
* 使用strval函数强制转换成字符串
* 使用stripslashes函数获取用户提交的字符串
*/
$writedata = str_replace($search, $replace, stripslashes(strval($settings['template'])));
} else {
/*
模块脚本设置参数
版本 $request_version
名称 $request_name
描述 $request_description
版权 $request_copyright
参数 $request_settings
变量名 => array(变量含义, 备注说明, 类型, 选项数组, 默认值)
类型:
text 单行文本
textarea 多行文本
radio 单选(是/否)
mradio 自定义单选
mcheckbox 多选
select 单选下拉
mselect 多选下拉
*/
$request_version = '1.0';
$request_name = '模块调用脚本范例';
$request_description = '模板,您可以参照本脚本 ./include/request/'.basename(__FILE__).' 中的说明编写模块脚本';
$request_copyright = '©';
/**
* <div class="extcredits">是Discuz!中模板中插入标记的样式
* <a>是每个插入标记的HTML标记
* 每个代表插入标记的<a>标记都包含onclick事件
* onclick事件中调用Discuz!中定义的insertunit脚本函数
* insertunit脚本函数的第一个参数是插入的内容,通常和<a>标记的内容相同
* insertunit脚本函数的第二个参数是插入的位置,应当是parameter[settings][],在第二个方括号中输入变量名
*/
$request_settings['template'] = array('模板', <<<DESCRIPTION
<div class="extcredits">
<a href="###" onclick="insertunit('{title}', 'parameter[settings][template]')">{title}</a>代表 标题
<a href="###" onclick="insertunit('{content}', 'parameter[settings][template]')">{content}</a>代表 正文
</div>
DESCRIPTION
, 'textarea', array(), '<fieldset><legend>{title}</legend>{content}</fieldset>');
}
$request_settings['title'] = array('标题', '替换模板中的{title}标记,不支持HTML标记。', 'text', array(), '标题');
$request_settings['content'] = array('正文', '替换模板中的{content}标记,可以使用HTML标记。', 'textarea', array(), '<p>正文</p>');
?>
[Discuz! - 官方网站]
http://www.discuz.net/[Discuz! - 常见问题]
Discuz! 6.1 从GBK编码转为UTF-8编码Discuz! 6.1 多语言翻译工作范围
Discuz! 6.1 兼容问题
Discuz! 6.1 发送HTML格式电子邮件
Discuz! 6.1~7.0 安装SupeSite后导致安全漏洞
Discuz! 6.1 不修改模板在贴子上增加收藏按钮
Discuz! 6.1 cpmsg函数在IE下和Firefox下表现不一致
Discuz! 6.1~7.0 升级后request缓存文件名不兼容
Discuz! 6.1~7.0升级后request路径不兼容以及相应修改方案
Discuz! 7.0 模块脚本文件名
模块调用脚本范例程序 - 模板
相关文章推荐
- Discuz! 7.0 模块调用脚本范例程序 - 多选下拉的缺陷以及使用方法
- Discuz! 7.0 模块调用脚本范例程序 - 数组
- Discuz! 7.0 模块调用脚本范例程序 - 主题
- Discuz! 7.0 模块脚本文件名
- Linux中,shell脚本调用java程序模板
- Linux中,shell脚本调用java程序模板
- shell 脚本调用java程序 实例
- 【Linux】Linux下调用Python程序脚本
- Android: 通过Runtime.getRuntime().exec调用底层Linux下的程序或脚本
- 如何在java程序中调用linux命令或者shell脚本
- ASP网页模板的应用: 让程序和界面分离,让ASP脚本更清晰,更换界面更容易
- 通过程序(C# C/S)调用Sato Label Gallery标签模板 打印
- linux里编写java程序定时调用shell脚本
- 【VS外接程序】利用T4模板生成模块代码
- kernel module编程(九):通过用户程序的strace检查内核模块调用情况
- 利用OllyDebug查看程序调用的dll模块
- java工具(一)----如何在java程序中调用linux命令或者shell脚本及 画图
- 织梦CMS让模块支持调用主站的模板
- 【8.17】建立一个用来实现求3个数和的类模板(将成员函数定义在类模板的内部),并写出调用此类模板的完整程序。
- Python subprocess子进程(程序调用)模块