zblog开发常用的系统函数介绍
本文介绍一下zblog的常用函数,让新人开发也能少走弯路。
其实zblog很多功能系统都封装好,只需要简单调用一下就可以完成操作,当然一种操作可能会有很多种调用方法,这里我只介绍我认为最简单的方法。
文章相关
获取、修改文章
GetPost 函数
$aritcle = GetPost((int)2); //获得文章对象,传入文章ID,必须用(int)转换为整数
echo '文章浏览数量'.$article->ViewNums; //获得文章浏览数量
//修改文章
$article->Title = '新标题'; //修改文章内容
$article->Metas->keywords = '内容'; //修改扩展内容
$article->Save(); //执行保存
如果是修改文章内容,一般只需要三行代码:
-
获取文章对象 $article = GetPost((int)2)
-
设置新内容 $article->Title = 'xxx';
-
保存 $article->Save()
如果只是获取一个文章标题,简写方法:GetPost((int)2)->Title
不推荐用法:如果还要要调用其它内容,千万不能用同样的方法,比如:
echo '标题:'.GetPost((int)2)->Title;
echo '正文:'.GetPost((int)2)->Content;
这样多写一次,数据库就会多查询一次。正确的做法应该是将对象赋值给一个变量,再操作。
正确做法:
$article = GetPost((int)2);
echo '标题:'.$article->Title;
echo '正文:'.$article->Content;
获取文章列表
GetList 函数
GetList(5,3); //获取ID为3的分类中的5篇文章
不传入任何参数,默认获取网站最新的10篇文章
函数返回的值是数组,每个数组的值就是一篇文章的对象。可以用foreach进行遍历获取
foreach (GetList(5,3) as $article){
echo '标题:'.$aricle->Title;
}
这里也可以直接赋值对象属性进行文章修改。
foreach (GetList(5,3) as $article){
echo '标题:'.$aricle->Title;
$article->Title = '新标题';
$article->Save();
}
这个函数功能远远不止这些,更多用法点这里GetList函数用法详解。
获取文章分类对象、作者对象、标签、相关文章
$aritcle = GetPost((int)2); //文章对象
echo $article->Category->Name; //文章分类名称
echo $article->Category->Url; //文章分类url
echo $article->Author->StaticName; //获取作者的昵称
echo $article->Author->Url; //获取用户页面url
echo $article->TagsName; //获取文章标签。形式:标签1,标签2,标签3
echo $article->Tags; //获取文章标签,返回的是数组,用foreach遍历可获得标签url
echo $article->TagsCount; //获取文章有多少个标签
$related = $article->RelatedList; //获取相关文章(相关关系:相同标签)返回的是数组,用foreach遍历
上面获取分类名称、Url和作者昵称、Url这样的写法结果都正常,但是不推荐这样写。这样会让后台多执行一次数据库查询,应该将$article->Category赋值给一个变量,再访问变量的属性。
删除文章
$_GET['id'] = 2; //设置文章ID
DelArticle(); //删除文章函数
很简单,就两行代码,就可以操作。
这上面的函数只能删除文章,不能删除页面。删除页面用函数:DelPage()
删除某个文章下的所有评论
DelArticle_Comments(2); //设置文章ID
直接传入文章ID就可以删除
分类相关
获得、修改分类
$cate = $zbp->GetCategoryByID(3); //根据分类ID
$cate = $zbp->GetCategoryByName('教程'); //根据分类名称
$cate = $zbp->GetCategoryByAlias('jiaocheng'); //根据分类别名
echo '分类名称'.$cate->Name;
echo '分类链接'.$cate->Url;
//修改分类名称
$cate->Name = '新名称';
$cate->Save(); //保存
获得子孙分类(获得向下的两层分类)
$cate = $zbp->GetCategoryByID(3); //传入文章ID
$array = $cate->ChildrenCategories; //获得子孙分类的数组对象
foreach ($array as $category){
echo 'ID:'.$category->ID;
echo '名称'.$category->Name;
}
如果ChildrenCategories获得的是一个空数组,必须在之前加载zbp对象。$zbp->Load();
获得父分类对象
$cate = $zbp->GetCategoryByID(3);
$parent = $cate->Parent;
echo '父分类名称:'.$parent->Name;
删除分类
$_GET['id'] = 3; //设置要删除的分类ID
DelCategory(); //执行删除函数
删除某个分类下的所有文章
DelCategory_Articles(3); //删除分类ID为3的下面所有文章
用户相关
获得用户对象、修改用户
$member = $zbp->GetMemberByID(5); //根据用户ID
$member = $zbp->GetMemberByName('admin'); //根据用户账号
$member = $zbp->GetMemberByNameOrAlias('花晨月夕'); //根据用户昵称
$member = $zbp->GetMemberByEmail('12345@qq.com'); //根据邮箱
$member->Email = '10000@qq.com'; //修改用户邮箱
$member->Save(); //保存
如果除了ID,如果传入的值,在表中包含多个,则只会返回其中一个。比如邮箱,如果多个用户是同一个邮箱,返回的只会是其中一个。
修改当前登录的用户数据
$zbp->user->Email = '23456@qq.com'; //修改邮箱
$zbp->user->Alias = '老王'; //修改昵称
$zbp->user->Save(); //保存修改
//模板里可以这样
$user->Email = '23456@qq.com'; //修改邮箱
$user->Alias = '老王'; //修改昵称
$user->Save(); //保存修改
删除用户
$_GET['id'] = 5; //设置要删除的用户ID
DelMember();
删除用户的数据
DelMember_AllData(5); //传入用户的ID
删除用户下所有数据(包括文章、评论、附件)
其它
获取访客IP
echo GetGuestIP(); //154.54.18.188
获取用户浏览器UA
echo GetGuestAgent(); //Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36
获取url页面内容
echo GetHttpContent('https://www.baidu.com'); //返回html纯文本内容
有人会说file_get_contents()函数不就可以吗,但是万一你要的页面出现404 500这些错误,后台直接就报错了,除非你在传入其它参数来阻止报错。这么费事还不如直接用zblog的函数。如果出现错误,则返回null
获得参数值
GetVars('name','POST'); //就相当于 $_POST('name');
GetVars('act','GET'); //就相当于 $_GET('name');
GetVars('token','COOKIE'); //就相当于 $_COOKIE('token');
GetVars('token','XXX'); //就相当于 $_XXX('token');
尽量不要用$_XXX这样的方式去获取数据,万一这个key不存在就报错了。而这个函数不对,会直接返回null
输出json
/**
* 以JSON形式输出错误信息.
*
* @param string $errorCode 错误编号
* @param string $errorString 错误内容
* @param object
*/
JsonError($errorCode, $errorString, $data);
JsonError(1,'上传成功',array('url'=>'https://abc.com/1.png'))
//输出json {"data":{"url":"https:\/\/abc.com\/1.png"},"err":{"code":1,"msg":"\u4e0a\u4f20\u6210\u529f","timestamp":1558428174}}
常用的也就是这些了。如果你还想了解什么,请在下面留言,我会回复并添加在文章中