Discuz! 7.0 模块调用脚本范例程序 – 主题

<?php/*Discuz! 7.0 模块调用脚本范例程序 – 主题*/if(!defined(‘IN_DISCUZ’)){exit(‘Access Denied’);}if($requestrun){/*模块脚本运行代码脚本中的设置参数在数组 $settings 中脚本中不能有输出语句,所有输出结果赋值给变量 $writedata脚本输出结果自动缓存,缓存时间根据数据调用模块设置而定,如不缓存,可令 $nocache = 1*//** * $settings[‘tid’]的值是$request_settings[‘tid’]声明的参数的值 * 使用intval函数把$settings[‘tid’]强制转换成整数 * $settings[‘subject’]的值是$request_settings[‘subject’]声明的参数的值 * 使用strval函数强制转换成字符串 * 使用stripslashes函数获取用户提交的字符串 * 使用htmlspecialchars函数对HTML标记转义 */$writedata='<h1><a href=”‘.$boardurl.’viewthread.php?tid=’.intval($settings[‘tid’]).'” target=”_blank”>’.htmlspecialchars(stripslashes(strval($settings[‘subject’]))).'</a></h1>’;/** * $settings[‘brief’]的值是$request_settings[‘brief’]声明的参数的值 * 使用strval函数强制转换成字符串 * 使用stripslashes函数获取用户提交的字符串 * 使用htmlspecialchars函数对HTML标记转义 */$writedata.='<p>’.htmlspecialchars(stripslashes(strval($settings[‘brief’]))).'</p>’;/** * $settings[‘attachment’]的值是$request_settings[‘attachment’]声明的参数的值 * 使用strval函数强制转换成字符串 * 使用stripslashes函数获取用户提交的字符串 */$writedata.='<img src=”‘.$GLOBALS[‘attachurl’].’/’.stripslashes(strval($settings[‘attachment’])).'”/>’;}else{/*模块脚本设置参数版本 $request_version名称 $request_name描述 $request_description版权 $request_copyright参数 $request_settings变量名 => array(变量含义, 备注说明, 类型, 选项数组, 默认值)类型:text单行文本textarea多行文本radio 单选(是/否)mradio自定义单选mcheckbox 多选select单选下拉mselect 多选下拉*//** * 为使用discuzcode函数,包含相应的文件 */require_onceDISCUZ_ROOT.’./include/discuzcode.func.php’;$request_version=’1.0′;$request_name=’模块调用脚本范例’;$request_description=’主题,您可以参照本脚本 ./include/request/’.basename(__FILE__).’中的说明编写模块脚本’;$request_copyright=’&copy;’;/** * $parameter[‘settings’][‘tid’]的值是前一次提交的$request_settings[‘tid’]参数的值 * 使用intval函数强制转换成整数 */$settings_tid_value=intval($parameter[‘settings’][‘tid’]);/** * 主题ID设置项的说明信息 */$settings_tid_description=’设置主题ID。’;/** * 由于负数和零无意义,所以判断前一次提交的值是否是正整数 */if(0>=$settings_tid_value){/** * 前一次提交的值不是正整数时,也就不可能获取正确的贴子信息 */$post=false;/** * 前一次提交的值不是正整数时,输出说明信息 */$settings_tid_description.=’主题ID应为正整数,修改后请单击<font color=”red”>预览</font>按钮后自动获取主题的标题及摘要。’;}else{/** * 前一次提交的值是正整数时,查询主题的楼主贴子信息 * subject字段是贴子的标题 * message字段是贴子的内容 * bbcodeoff字段是该贴子是否关闭bbcode * smileyoff字段是该贴子是否关闭了表情 * posts表是贴子表 * tid字段是贴子的主题ID * first字段指示贴子是否是主题的楼主 */$post=$db->fetch_first(‘SELECT subject, message, bbcodeoff, smileyoff FROM ‘.$tablepre.’posts WHERE tid = ‘.$settings_tid_value.’AND first = 1;’);/** * 判断是否获取了贴子的信息 */if(false===$post){/** * 没有获取贴子的信息时,输出说明信息 */$settings_tid_description.=’ID为’.$settings_tid_value.’的主题<font color=”red”>不存在</font>,请重新输入后单击<font color=”red”>预览</font>按钮自动获取主题的标题及摘要。’;}else{/** * 获取了贴子的信息时,查询主题的图片附件信息 * attachment字段是附件的路径信息 * attachments表是附件表 * tid是附件的主题ID * isimage字段指示附件是否为图片 */$attachments_query=$db->query(‘SELECT attachment FROM ‘.$tablepre.’attachments WHERE tid = ‘.$settings_tid_value.’AND isimage = 1;’);/** * 为附件信息变量赋初值 * Discuz!中,所有变量在使用前,均应该赋初值 */$attachments=array();/** * 循环获取所有的图片附件信息 */while(false!==($attachment_array=$db->fetch_array($attachments_query))){/** * 将每个图片附件信息都保存在数组中 */$attachments[]=$attachment_array;}/** * 判断是否包含图片附件 */if(0===count($attachments)){/** * 没有图片附件时,输出说明信息 */$settings_tid_description.=’ID为’.$settings_tid_value.’的主题不包含图片附件。修改后请单击<font color=”red”>预览</font>按钮后自动获取附件列表。’;}}}/** * 显示主题ID设置项 */$request_settings[‘tid’]=array(‘主题ID’, $settings_tid_description, ‘text’, array(), ”);/** * 判断是否获取了贴子的信息 */if(false!==$post){/** * 获取了贴子信息时,显示主题标题设置项 */$request_settings[‘subject’]=array(‘主题ID为’.$settings_tid_value.’的标题’, ‘主题ID为’.$settings_tid_value.’的标题为:’.htmlspecialchars($post[‘subject’]), ‘text’, array(), $post[‘subject’]);/** * 获取了贴子信息时,截取内容的前面一部分作为摘要 * discuzcode函数将贴子内容转换成HTML格式 * strip_tags函数将HTML格式的贴子内容转换为文本 * cutstr函数按一定长度截取文本 * cutstr + strip_tags + discuzcode函数比cutmessage函数在截取贴子内容时更准确 */$settings_brief_value=cutstr(strip_tags(discuzcode($post[‘message’], $post[‘smileyoff’], $post[‘bbcodeoff’])), 200);/** * 显示主题摘要设置项 */$request_settings[‘brief’]=array(‘主题ID为’.$settings_tid_value.’的摘要’, ‘主题ID为’.$settings_tid_value.’的摘要为:’.htmlspecialchars($settings_brief_value), ‘textarea’, array(), $settings_brief_value);/** * 判断是否包含图片附件 */if(0<count($attachments)){/** * 包含图片附件时,为附件选项变量赋初值 * Discuz!中,所有变量在使用前,均应该赋初值 */$attachment_options=array();/** * 循环设置附件选项变量 */foreach($attachmentsas$attachment){/** * 设置项类型为mradio的选项数组中,每一项都是一个数组 * 数组的第一项是选项的值,这里使用是附件的相对地址 * 数组的第二项是选项显示的内容,这里显示图片附件 */$attachment_options[]=array($attachment[‘attachment’], ‘<img src=”‘.$attachurl.’/’.$attachment[‘attachment’].'” />’);}/** * 显示主题附件设置项 */$request_settings[‘attachment’]=array(‘主题ID为’.$settings_tid_value.’的图片附件’, ‘主题ID为’.$settings_tid_value.’的图片附件’, ‘mradio’, $attachment_options, $attachments[0][‘attachment’]);}}}?>

[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 模块调用脚本范例程序 – 主题

相关文章:

你感兴趣的文章:

标签云: