www.gusucode.com > baigo CMS PHP开源网站管理系统 v1.2.2源码程序 > baigocms_v1.2.2/bg_core/control/api/article.class.php
<?php /*----------------------------------------------------------------- !!!!警告!!!! 以下为系统文件,请勿修改 -----------------------------------------------------------------*/ //不能非法包含或直接执行 if(!defined("IN_BAIGO")) { exit("Access Denied"); } include_once(BG_PATH_CLASS . "api.class.php"); //载入模板类 include_once(BG_PATH_MODEL . "app.class.php"); //载入后台用户类 include_once(BG_PATH_MODEL . "cate.class.php"); //载入后台用户类 include_once(BG_PATH_MODEL . "articlePub.class.php"); //载入后台用户类 include_once(BG_PATH_MODEL . "tag.class.php"); //载入后台用户类 include_once(BG_PATH_MODEL . "thumb.class.php"); //载入后台用户类 include_once(BG_PATH_MODEL . "attach.class.php"); //载入后台用户类 include_once(BG_PATH_MODEL . "articleCustom.class.php"); //载入后台用户类 /*-------------文章类-------------*/ class API_ARTICLE { private $obj_api; private $mdl_app; private $mdl_cate; private $mdl_articlePub; private $mdl_tag; private $mdl_attach; private $mdl_thumb; private $cateCache function __construct() { //构造函数 $this->obj_api = new CLASS_API(); $this->obj_api->chk_install(); $this->mdl_app = new MODEL_APP(); //设置管理组模型 $this->mdl_cate = new MODEL_CATE(); //设置文章对象 $this->mdl_articlePub = new MODEL_ARTICLE_PUB(); //设置文章对象 $this->mdl_tag = new MODEL_TAG(); $this->mdl_thumb = new MODEL_THUMB(); //设置上传信息对象 $this->mdl_attach = new MODEL_ATTACH(); //设置文章对象 } /** * api_list function. * * @access public * @return void */ function api_read() { $this->app_check("get"); $_num_articleId = fn_getSafe(fn_get("article_id"), "int", 0); if ($_num_articleId < 1) { $_arr_return = array( "alert" => "x120212", ); $this->obj_api->halt_re($_arr_return); } $_arr_articleRow = $this->mdl_articlePub->mdl_read($_num_articleId); if ($_arr_articleRow["alert"] != "y120102") { $this->obj_api->halt_re($_arr_articleRow); } unset($_arr_articleRow["article_url"]); $_arr_cateRow = $this->mdl_cate->mdl_cache(false, $_arr_articleRow["article_cate_id"]); if ($_arr_cateRow["alert"] != "y110102") { $this->obj_api->halt_re($_arr_cateRow); } if ($_arr_cateRow["cate_status"] == "show") { $_arr_return = array( "alert" => "x110102", ); $this->obj_api->halt_re($_arr_return); } unset($_arr_cateRow["urlRow"]); if ($_arr_cateRow["cate_type"] == "link" && $_arr_cateRow["cate_link"]) { $_arr_return = array( "alert" => "x110218", "cate_link" => $_arr_cateRow["cate_link"], ); $this->obj_api->halt_re($_arr_return); } $_arr_articleRow["cateRow"] = $_arr_cateRow; if (strlen($_arr_articleRow["article_title"]) < 1 || $_arr_articleRow["article_status"] != "pub" || $_arr_articleRow["article_box"] != "normal" || $_arr_articleRow["article_time_pub"] > time()) { $_arr_return = array( "alert" => "x120102", ); $this->obj_api->halt_re($_arr_return); } if ($_arr_articleRow["article_link"]) { $_arr_return = array( "alert" => "x120213", "article_link" => $_arr_articleRow["article_link"], ); $this->obj_api->halt_re($_arr_return); } $_arr_searchTag = array( "status" => "show", "article_id" => $_arr_articleRow["article_id"], ); $_arr_articleRow["tagRows"] = $this->mdl_tag->mdl_list(10, 0, $_arr_searchTag); if ($_arr_articleRow["article_attach_id"] > 0) { $_arr_attachRow = $this->mdl_attach->mdl_url($_arr_articleRow["article_attach_id"]); if ($_arr_attachRow["alert"] == "y070102") { if ($_arr_attachRow["attach_box"] != "normal") { $_arr_attachRow = array( "alert" => "x070102", ); } } $_arr_articleRow["attachRow"] = $_arr_attachRow; } $this->obj_api->halt_re($_arr_articleRow, true); } function api_list() { $this->app_check("get"); $_str_markIds = fn_getSafe(fn_get("mark_ids"), "txt", ""); $_str_tagIds = fn_getSafe(fn_get("tag_ids"), "txt", ""); $_str_customs = fn_getSafe(fn_get("customs"), "txt", ""); $_num_cateId = fn_getSafe(fn_get("cate_id"), "int", 0); $_num_perPage = fn_getSafe(fn_get("per_page"), "int", BG_SITE_PERPAGE); $_arr_markIds = array(); $_arr_tagIds = array(); $_arr_customs = array(); if ($_str_markIds) { if (stristr($_str_markIds, "|")) { $_arr_markIds = explode("|", $_str_markIds); } else { $_arr_markIds = array($_str_markIds); } } if ($_str_tagIds) { if (stristr($_str_tagIds, "|")) { $_arr_tagIds = explode("|", $_str_tagIds); } } $_str_customs = urldecode($_str_customs); $_str_customs = base64_decode($_str_customs); $_str_customs = urldecode($_str_customs); if (stristr($_str_customs, "&")) { $_arr_customs = explode("&", $_str_customs); } else { $_arr_customs = array($_str_customs); } $_arr_customSearch = array(); if ($_arr_customs) { foreach ($_arr_customs as $_key=>$_value) { $_arr_customRow = explode("=", $_value); $_arr_customSearch[$_arr_customRow[0]] = $_arr_customRow[1]; } } $_arr_cateRow = $this->mdl_cate->mdl_cache(false, $_num_cateId); if ($_num_cateId > 0) { if ($_arr_cateRow["alert"] == "y110102" && $_arr_cateRow["cate_status"] == "show") { $_arr_cateIds = $_arr_cateRow["cate_ids"]; } } $_arr_search = array( "key" => fn_getSafe(fn_get("key"), "txt", ""), "year" => fn_getSafe(fn_get("year"), "txt", ""), "month" => fn_getSafe(fn_get("month"), "txt", ""), "spec_id" => fn_getSafe(fn_get("spec_id"), "int", 0), "cate_ids" => $_arr_cateIds, "mark_ids" => $_arr_markIds, "tag_ids" => $_arr_tagIds, "custom_rows" => $_arr_customSearch, ); $_num_articleCount = $this->mdl_articlePub->mdl_count($_arr_search); $_arr_page = fn_page($_num_articleCount, $_num_perPage); //取得分页数据 $_arr_articleRows = $this->mdl_articlePub->mdl_list($_num_perPage, $_arr_page["except"], $_arr_search); foreach ($_arr_articleRows as $_key=>$_value) { unset($_arr_articleRows[$_key]["article_url"]); $_arr_cateRow = $this->mdl_cate->mdl_cache(false, $_value["article_cate_id"]); if ($_arr_cateRow["alert"] == "y110102") { unset($_arr_cateRow["urlRow"]); } $_arr_searchTag = array( "status" => "show", "article_id" => $_arr_articleRow["article_id"], ); $_arr_articleRows[$_key]["tagRows"] = $this->mdl_tag->mdl_list(10, 0, $_arr_searchTag); if ($_value["article_attach_id"] > 0) { $_arr_attachRow = $this->mdl_attach->mdl_url($_value["article_attach_id"]); if ($_arr_attachRow["alert"] == "y070102") { if ($_arr_attachRow["attach_box"] != "normal") { $_arr_attachRow = array( "alert" => "x070102", ); } } $_arr_articleRows[$_key]["attachRow"] = $_arr_attachRow; } $_arr_articleRows[$_key]["cateRow"] = $_arr_cateRow; } $_arr_return = array( "pageRow" => $_arr_page, "articleRows" => $_arr_articleRows, ); //print_r($_arr_return); $this->obj_api->halt_re($_arr_return, true); } /** * app_check function. * * @access private * @param mixed $num_appId * @param string $str_method (default: "get") * @return void */ private function app_check($str_method = "get") { $this->appGet = $this->obj_api->app_get($str_method); if ($this->appGet["alert"] != "ok") { $this->obj_api->halt_re($this->appGet); } $_arr_appRow = $this->mdl_app->mdl_read($this->appGet["app_id"]); if ($_arr_appRow["alert"] != "y190102") { $this->obj_api->halt_re($_arr_appRow); } $this->appAllow = $_arr_appRow["app_allow"]; $_arr_appChk = $this->obj_api->app_chk($this->appGet, $_arr_appRow); if ($_arr_appChk["alert"] != "ok") { $this->obj_api->halt_re($_arr_appChk); } $this->mdl_attach->thumbRows = $this->mdl_thumb->mdl_cache();; } }