- 广告类
脚本位置:source/class/adv/adv_name.php
语言包位置:source/language/adv/lang_name.php
<?php
class adv_name {
var $version = '1.0';//脚本版本号
var $name = 'name';//广告类型名称 (可填写语言包项目)
var $description = 'desc';//广告类型说明 (可填写语言包项目)
var $copyright = 'Comsenz Inc.';//版权 (可填写语言包项目)
var $targets = array('portal', 'home', 'member', 'forum', 'group', 'userapp', 'plugin', 'custom');//广告类型适用的投放范围
var $imagesizes = array('120x60', '120x240');//图片广告推荐大小
function getsetting() {//返回设置项目
$settings = array(
'text' => array(
'title' => 'text_title',//设置项目名称 (可填写语言项目)
'type' => 'mradio',//项目类型
'value' => array(),//项目选项
'default' => 0,//项目默认值
)
);
return $settings;
}
function setsetting(&$advnew, &$parameters) {//保存设置项目
}
function evalcode() {//广告显示时的运行代码
return array(
//检测广告是否投放时的代码
'check' => '
if(condition) {
$checked = false;
}',
//广告显示时的代码 (随机调用投放的广告)
'create' => '$adcode = $codes[$adids[array_rand($adids)]];',
);
}
}
?>
|
- DIY 模块类
脚本位置:source/class/block/[模块分类目录]/block_name.php
语言包位置(非必需):source/language/block/lang_name.php
<?php
class block_name {
/**
* 必须!
* 返回本数据调用类的显示名称(显示在创建模块时选择“模块数据”的下拉列表里)
* @return <type>
*/
function name() {
return '示例数据类';
}
/**
* 必须!
* 返回一个数组: 第一个值为本数据类所在的模块分类;第二个值为模块分类显示的名称(显示在 DIY 模块面板)
* @return <type>
*/
function blockclass() {
return array('sample', '示例分类');
}
/**
* 必须!
* 返回数据类中可供“模块样式”使用的字段。
* 格式见示例:
* name 为该字段的显示名称
* formtype 决定编辑单条数据时该字段的显示方式: 类型有: text, textarea, date, title, summary, pic; 详见 portalcp_block.htm 模板(搜 $field[formtype] )
* datatype 决定该字段的数据展示,类型有: string, int, date, title, summary, pic; 详见 function_block.php 中 block_template 函数
* @return <type>
*/
function fields() {
return array(
'field1' => array('name' => '示例字段1', 'formtype' => 'text', 'datatype' => 'string'),
'field2' => array('name' => '示例字段2', 'formtype' => 'title', 'datatype' => 'title'),
);
}
/**
* 必须!
* 返回使用本数据类调用数据时的设置项
* 格式见示例:
* title 为显示的名称
* type 为表单类型, 有: text, password, number, textarea, radio, select, mselect, mradio, mcheckbox, calendar; 详见 function_block.php 中 block_makeform() 函数
* @return <type>
*/
function getsetting() {
return array(
'param1' => array(
'title' => '数据调用参数1',
'type' => 'text',
'default' => ''
),
'param2' => array(
'title' => '数据调用参数2',
'type' => 'mcheckbox',
'value' => array(
array('1', '选项1'),
array('2', '选项2'),
),
'default' => '1'
),
);
}
/**
* 必须!
* 处理设置参数,返回数据
* 返回数据有两种:
* 一种是返回 html,放到模块 summary 字段,直接显示; 返回格式为: array('html'=>'返回内容', 'data'=>null)
* 一种是返回 data,通过模块样式渲染后展示,返回的数据应该包含 fields() 函数中指定的所有字段; 返回格式为: array('html'=>'', 'data'=>array(array('title'=>'value1'), array('title'=>'value2')))
* 特别的:
* parameter 参数包含 getsetting() 提交后的内容; 并附加了字段:
* items ,为用户指定显示的模块数据条数;
* bannedids ,为用户选择屏蔽某数据时记录在模块中的该数据 id。 应该在获取数据时屏蔽该数据;
*
* 如果返回的数据给 data, 那么应该包含 fields() 函数指定的所有字段。并附加以下字段:
* id 标志该数据的 id,如果用户屏蔽某数据时,会将该数据的 id 添加到 parameter[bannedids] 里
* idtype 标志该数据的 idtype
*
* @param <type> $style 模块样式(见 common_block_style 表)。 可以根据模块样式中用到的字段来选择性的获取/不获取某些数据
* @param <type> $parameter 用户对 getsetting() 给出的表单提交后的内容。
* @return <type>
*/
function getdata($style, $parameter) {
// 返回summary
return array('html' => '<p>这是一个演示模块数据类</p>', 'data' => null);
// 返回数据
// 需要注意: 除 id,idtype, title, url, pic, picflag, summary 几个字段外,其它字段需要放到 fields 数组里。 可以参考系统内置模块类 source/class/block/block_thread.php
return array('html'=>'', 'data' => array(
array(
'id' => '1',
'idtype' => 'sampleid',
'title' => 'title1',
'url' => '#',
'pic' => 'nophoto.gif',
'picflag' => '1',
'summary' => '',
'fields' => array(
'field1' => 'value1'
)
)
));
}
}
?>
|
- 道具类
脚本位置:source/class/magic/magic_name.php
语言包位置:source/language/magic/lang_name.php
<?php
class magic_name {
var $version = '1.0';//脚本版本号
var $name = 'name';//道具名称 (可填写语言包项目)
var $description = 'desc';//道具说明 (可填写语言包项目)
var $price = '10';//道具默认价格
var $weight = '10';//道具默认重量
var $copyright = 'Comsenz Inc.';//版权 (可填写语言包项目)
function getsetting() {//返回设置项目
$settings = array(
'text' => array(
'title' => 'text_title',//设置项目名称 (可填写语言项目)
'type' => 'mradio',//项目类型
'value' => array(),//项目选项
'default' => 0,//项目默认值
)
);
return $settings;
}
function setsetting(&$advnew, &$parameters) {//保存设置项目
}
function usesubmit($magic, $parameters) {//道具使用
}
function show($magic) {//道具显示
}
}
?>
|
- 任务类
脚本位置:source/class/task/task_name.php
语言包位置:source/language/task/lang_name.php
<?php
class task_name {
var $version = '1.0';//脚本版本号
var $name = 'name';//任务名称 (可填写语言包项目)
var $description = 'desc';//任务说明 (可填写语言包项目)
var $copyright = 'Comsenz Inc.';//版权 (可填写语言包项目)
var $icon = '';//默认图标
var $period = '';//默认任务间隔周期
var $periodtype = 0;//默认任务间隔周期单位
var $conditions = array(//任务附加条件
'text' => array(
'title' => 'text_title',//设置项目名称 (可填写语言项目)
'type' => 'mradio',//项目类型
'value' => array(),//项目选项
'default' => 0,//项目默认值
'sort' => 'complete',//条件类型 (apply:申请任务条件 complete:完成任务条件)
),
);
function preprocess($task) {//申请任务成功后的附加处理
}
function csc($task = array()) {//判断任务是否完成 (返回 TRUE:成功 FALSE:失败 0:任务进行中进度未知或尚未开始 大于0的正数:任务进行中返回任务进度)
}
function sufprocess($task) {//完成任务后的附加处理
}
function view($task, $taskvars) {//任务显示
}
function install() {//任务安装的附加处理
}
function uninstall() {//任务卸载的附加处理
}
function upgrade() {//任务升级的附加处理
}
}
?>
|
- 验证问答类
脚本位置:source/class/secqaa/secqaa_name.php
语言包位置:source/language/secqaa/lang_name.php
<?php
class secqaa_name {
var $version = '1.0';//脚本版本号
var $name = 'name';//验证问答名称 (可填写语言包项目)
var $description = 'desc';//验证问答说明 (可填写语言包项目)
var $copyright = 'Comsenz Inc.';//版权 (可填写语言包项目)
function make(&$question) {//返回安全问答的答案和问题 ($question 为问题,函数返回值为答案)
}
}
?>
|
|