Files
BESCMS/dayrui/App/Cms/Controllers/Admin/Api.php
T

195 lines
7.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php namespace Phpcmf\Controllers\Admin;
class Api extends \Phpcmf\Common
{
/**
* 初始化
*/
public function __construct($object = NULL)
{
parent::__construct();
if ($object) {
foreach ($object as $var => $value) {
$this->$var = $value;
}
}
}
// 统计
public function mtotal() {
$t1 = $t2 = $t3 = $t4 = $t5 = 0;
$dir = dr_safe_filename(\Phpcmf\Service::L('input')->get('dir'));
$prefix = dr_module_table_prefix($dir);
if (is_dir(dr_get_app_dir($dir))) {
$this->_module_init($dir);
$t1 = \Phpcmf\Service::M()->table($prefix)->where($this->content_model->get_admin_list_where($prefix))->where('DATEDIFF(from_unixtime(inputtime),now())=0')->counts();
$t2 = \Phpcmf\Service::M()->table($prefix)->where($this->content_model->get_admin_list_where($prefix))->counts();
$t3 = \Phpcmf\Service::M()->table($prefix.'_verify')->where($this->content_model->get_admin_list_verify_where($this->content_model->get_admin_list_where($prefix.'_verify')))->counts();
$t4 = \Phpcmf\Service::M()->table($prefix.'_recycle')->where($this->content_model->get_admin_list_where($prefix.'_recycle'))->counts();
$t5 = \Phpcmf\Service::M()->table($prefix.'_time')->where($this->content_model->get_admin_list_where($prefix.'_time'))->counts();
}
echo '$("#'.$dir.'_today").html('.$t1.');';
echo '$("#'.$dir.'_all").html('.$t2.');';
echo '$("#'.$dir.'_verify").html('.$t3.');';
echo '$("#'.$dir.'_recycle").html('.$t4.');';
echo '$("#'.$dir.'_timing").html('.$t5.');';
exit;
}
// 更新url
public function update_url() {
$mid = dr_safe_filename(\Phpcmf\Service::L('input')->get('mid'));
if (!$mid) {
$this->_html_msg(0, dr_lang('mid参数不能为空'));
}
$this->_module_init($mid);
$page = (int)\Phpcmf\Service::L('input')->get('page');
$total = (int)\Phpcmf\Service::L('input')->get('total');
if (!$page) {
// 计算数量
$total = \Phpcmf\Service::M()->db->table($this->content_model->mytable)->countAllResults();
if (!$total) {
$this->_html_msg(0, dr_lang('无可用内容更新'));
}
$url = dr_url('module/api/'.\Phpcmf\Service::L('Router')->method, ['mid' => $mid]);
$this->_html_msg(1, dr_lang('正在执行中...'), $url.'&total='.$total.'&page='.($page+1));
}
$psize = 300; // 每页处理的数量
if (isset($this->module['setting']['update_psize'])) {
$psize = max((int)$this->module['setting']['update_psize'], 100);
}
$tpage = ceil($total / $psize); // 总页数
// 更新完成
if ($page > $tpage) {
\Phpcmf\Service::M('cache')->update_data_cache();
$this->_html_msg(1, dr_lang('更新完成'));
}
$update = [];
$data = \Phpcmf\Service::M()->db->table($this->content_model->mytable)->limit($psize, $psize * ($page - 1))->orderBy('id DESC')->get()->getResultArray();
foreach ($data as $t) {
if ($t['link_id'] && $t['link_id'] >= 0) {
// 同步栏目的数据
$i = $t['id'];
$t = \Phpcmf\Service::M()->db->table($this->content_model->mytable)->where('id', (int)$t['link_id'])->get()->getRowArray();
if (!$t) {
continue;
}
$url = \Phpcmf\Service::L('Router')->show_url($this->module, $t);
$t['id'] = $i; // 替换成当前id
} else {
$url = \Phpcmf\Service::L('Router')->show_url($this->module, $t);
}
$t['url'] != $url && $update[] = [
'id' => (int)$t['id'],
'url'=> $url,
];
}
$update && \Phpcmf\Service::M()->table($this->content_model->mytable)->update_batch($update);
$this->_html_msg( 1, dr_lang('正在执行中【%s】...', "$tpage/$page"),
dr_url('module/api/'.\Phpcmf\Service::L('Router')->method, ['mid' => $mid,'total' => $total, 'page' => $page + 1])
);
}
// 统计栏目
public function ctotal() {
$rt = '';
if (IS_POST) {
$ids = dr_string2array(\Phpcmf\Service::L('input')->post('cid'));
if ($ids) {
foreach ($ids as $t) {
list($id, $mid) = explode('-', $t);
if ($id && $mid && dr_is_module($mid) ) {
$db = \Phpcmf\Service::M()->table(dr_module_table_prefix($mid).'_index');
$mod = $this->get_cache('module-'.SITE_ID.'-'.$mid);
if ($mod['category'][$id]['childids']) {
$db->where('catid in ('.$mod['category'][$id]['childids'].')');
} else {
$db->where('catid', $id);
}
$num = $db->where('status=9')->counts();
if ($num) {
$rt.= '$(".cat-total-'.$id.'").html("'.dr_lang('(约%s', $num).'");';
}
}
}
}
}
$this->_json(1, $rt);
}
// 更新栏目缓存配置
public function update_category_repair() {
$mid = dr_safe_filename(\Phpcmf\Service::L('input')->get('mid'));
if (!$mid) {
$cdir = 'share';
} else {
$cdir = $mid;
}
if (\Phpcmf\Service::M()->table(SITE_ID.'_'.$cdir.'_category')->counts() > MAX_CATEGORY) {
\Phpcmf\Service::M('module')->update_category_cache(SITE_ID, $cdir);
}
\Phpcmf\Service::M('cache')->sync_cache();
$this->_html_msg(1, dr_lang('操作成功'));
}
public function update_category_cache() {
$mid = dr_safe_filename(\Phpcmf\Service::L('input')->get('mid'));
if (!$mid) {
$cdir = 'share';
} else {
$cdir = $mid;
}
\Phpcmf\Service::M('module')->update_category_cache(SITE_ID, $cdir);
\Phpcmf\Service::M('cache')->sync_cache();
dr_dir_delete(WRITEPATH.'module/category-'.SITE_ID.'-'.$cdir.'-child');
dr_dir_delete(WRITEPATH.'module/category-'.SITE_ID.'-'.$cdir.'-data');
dr_dir_delete(WRITEPATH.'module/category-'.SITE_ID.'-'.$cdir.'-min');
dr_dir_delete(WRITEPATH.'module/category-'.SITE_ID.'-'.$cdir.'-main');
dr_dir_delete(WRITEPATH.'module/category-'.SITE_ID.'-'.$cdir.'-select');
dr_dir_delete(WRITEPATH.'module/category-'.SITE_ID.'-share-select');
$this->_json(1, dr_lang('操作成功'));
}
// 查看审核流程
public function verify() {
$id = intval(\Phpcmf\Service::L('input')->get('id'));
if (!$id) {
$this->_json(0, dr_lang('审核流程id不存在'));
}
$data = \Phpcmf\Service::M()->db->table('admin_verify')->where('id', $id)->get()->getRowArray();
if (!$data) {
$this->_json(0, dr_lang('数据#%s不存在', $id));
}
\Phpcmf\Service::V()->assign([
'role' => \Phpcmf\Service::M('Auth')->get_role_all(),
'value' => dr_string2array($data['verify']),
]);
\Phpcmf\Service::V()->display('verify_show.html');exit;
}
}