当前位置:首页 > 插件模块 > 正文

手把手教你制作牛叉内容管理系统(NiuXcms) 插件模块!

2014-01-17 14:20:32   来源:www.niuxsoft.com   编辑:牛叉软件

摘要:牛叉内容管理系统(NiuXcms)插件模块制作教程,通过一个简单的实例帮助你了解牛叉内容管理系统(NiuXcms)插件模块的自制过程。今天这个实例是一个简单的计数器插件模块:通过ajax工作的计数器,根据不同的Mark标记统计计数,并具有简单的防刷新功能。首先需要一个文本编辑器,...

牛叉内容管理系统(NiuXcms) 插件模块制作教程,通过一个简单的实例帮助你了解牛叉内容管理系统(NiuXcms) 插件模块的自制过程。

今天这个实例是一个简单的计数器插件模块:通过ajax工作的计数器,根据不同的Mark标记统计计数,并具有简单的防刷新功能。

首先需要一个文本编辑器,这里我们用Dreamweaver,然后根据牛叉内容管理系统(NiuXcms)插件模块制作规范文章。我们在niuxcms/plugins目录下新建一个目录count。打开Dreamweaver,新建一个php文件(注意要utf-8编码),根据规范,写入如下代码并保存为menu.php文件在count目录下。(复杂的菜单,只需要嵌套<li></li>就行,这里我们只需要一个菜单。)

<?php exit();?>
<li><a class="plugins" target="main" href="plugins/count/index.php">简单计数器</a></li>

然后我们刷新niuxcms系统,再看看左侧“插件模块”菜单下面就会出现我们刚刚制作的菜单了。如下图:

上图中菜单所指文件还没有,接下来,我们用Dreamweaver新建这个index.php文件。同样是utf-8编码。根据规范:1、包含公共文件即可自动包含公共函数,类库,普通用户验证。2、共享主题皮肤。3、包含头部模板和底部模板。

编写php代码如下:

<?php
require '../../common.php';//包含公共文件
$title = '简单计数器';//文件标题
require NIUXCMS_ROOT.'mo.head.php';//包含头部模板
?>
</head>
<body class="ui-widget-content" style="border:0">
<p class="cp">当前位置: <?php echo $title ?></p>
<?php require NIUXCMS_ROOT.'mo.foot.php';//包含底部模板 ?>

保存文件为index.php,我们再点击“简单计数器”菜单就能看到如下图所示:实现了我们的以上要求。

以上代码没有任何实际功能。我们再来分析inde.php的功能:1、判断计数器所用数据表是否存在,不存在就新建计数数据表。2、给出计数器的使用代码。

要实现上述功能,我们编写php代码如下:

<?php
require '../../common.php';//包含公共文件
$conn = new mysql();//载入mysql类库
$sql = "CREATE TABLE IF NOT EXISTS ${Pre}articlecount(
id int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
mark varchar(255),
lastip varchar(255),
num int(11)
)DEFAULT CHARACTER SET utf8";//sql语言:如果不存在则创建计数器表${Pre}articlecount,其中${Pre}是数据表前缀变量
$conn->query($sql);//执行sql语言。
$title = '简单计算器';//文件标题
require NIUXCMS_ROOT.'mo.head.php';//包含头部模板
?>
</head>
<body class="ui-widget-content" style="border:0">

<p class="cp">当前位置: <?php echo $title ?></p>

<div class="cc ui-widget-content ui-corner-all">
	<p class="tt ui-widget-header ui-corner-all">简单计数器使用代码</p>
	<p class="cp twoem">
    	简单计数器使用方法:<?php echo $cmsurl?>plugins/count/count.php?mark=变量标记<br />
        包含jquery库的ajax代码:<br />
    	<textarea name="count_dm" cols="130" rows="5"><span id="NXcount">
<script>$("#NXcount").load("<?php echo $cmsurl?>plugins/count/count.php?mark=变量标记");</script>
</span></textarea>
    </p>
</div>
<?php require NIUXCMS_ROOT.'mo.foot.php';//包含底部模板 ?>

保存index.php文件,点击“简单计数器”菜单,看到如下图所示:

使用phpMyAdmin查看niuxcms数据库看到生成计数器表

接下来我们来写count.php文件内容:1、访客有权限访问。2、要读取插入数据库。3、简单的防刷新。

根据要求我们编写代码如下:

<?php
define('NIUXCMS_LOGIN', true);//去掉身份认证
require '../../common.php';//包含公共文件
$mark = substr(insql($_GET['mark']),0,250);//获取mark参数,过滤掉sql特殊字符,并限制长度。
$ip = getip();//调用公共函数获取访客ip
$conn = new mysql();//载入mysql类库
$sql = "SELECT * FROM ${Pre}articlecount WHERE mark='{$mark}'";//sql查询mark标记的计数、最后ip
$result = $conn->query($sql);//执行sql语言并返回查询结果。
if( mysql_num_rows($result) != 1 ){//如果是首次计数
	$sql = "INSERT INTO ${Pre}articlecount (mark,lastip,num) VALUES ('$mark','$ip',1)";//sql语言:插入mark计数1、最后ip记录
	$conn->query($sql);//执行sql语言
	die('1');//输出 1,终止程序。
}
$row = mysql_fetch_array($result);
if( $row['lastip'] == $ip ){//如果是相同的ip,则直接输出计数。
	die($row['num']);//输出计数,终止程序。
}
$num = $row['num'] + 1;//数值加一
echo $num;//输出计数
$sql = "UPDATE ${Pre}articlecount SET lastip='$ip',num=$num WHERE mark='{$mark}'";//更新计数和最后ip
$conn->query($sql);//执行sql语言
?>

保存为count.php文件。这样count目录下就有3个文件,分别是:menu.php、index.php、count.php。并实现了一个简单计数器的功能。下面把这个计数器代码加到文章模板里给每个文章增加简单计数功能试试看吧!!!

打开“文章模板管理”菜单,选择一个模板编辑。

如果你是复制通用模板的,那我们已经包含了jquery库。你可以直接使用计数器代码:

<script language="JavaScript" type="text/javascript" src="{%cmsurl%}js/common.js"></script>//这就是最新的jquery库。

我们在文章模板的合适位置加入这个ajax计数器代码。并修改“变量标记”为:文章ID或文章文件名这类独有的标记。

&nbsp;&nbsp;文章阅读:<span id="NXcount"><script>$("#NXcount").load("{%cmsurl%}plugins/count/count.php?mark={%wzID%}");</script></span>

然后保存模板,再更新使用模板的文章。打开文章就可以看到计数器效果了。如下图所示:

至此一个简单的计数器插件就完成了。是不是超级简单呀!!!通过以上实例,希望你能掌握niuxcms的插件模块的自主制作方法,轻松扩展你需要的功能。

(责任编辑:牛叉软件)


^

 

客服中心 | 授权中心 | 购买授权 | 付款方式 | 广告合作 | 联系我们 | 关于我们

Copyright © 2013-2099 NiuXsoft.com All Rights Reserved. 湘ICP备11016562号-1

Powered by NiuXcms