120 lines
4.2 KiB
PHP
120 lines
4.2 KiB
PHP
<?php namespace Phpcmf\Controllers\Admin;
|
|
|
|
// 优速贡献代码
|
|
class Sendtpl extends \Phpcmf\App
|
|
{
|
|
|
|
// 来自cms的群发
|
|
public function show_add() {
|
|
|
|
$id = (int)\Phpcmf\Service::L('Input')->get('id');
|
|
$mid = dr_safe_filename(\Phpcmf\Service::L('Input')->get('mid'));
|
|
if (!$id || !$mid) {
|
|
$this->_json(0, '参数不能为空');
|
|
}
|
|
|
|
$this->_module_init($mid);
|
|
$data = $this->content_model->get_data($id);
|
|
if (!$data) {
|
|
$this->_json(0, '内容不存在');
|
|
}
|
|
|
|
$file = WRITEPATH.'config/weixin_sendtpl.php';
|
|
$config = [];
|
|
if (is_file($file)) {
|
|
$config = require $file;
|
|
}
|
|
|
|
if (!isset($config[$mid])) {
|
|
$this->_json(0, '微信插件-内容模板群发设置-没有设置本模块参数');
|
|
} elseif (!isset($config[$mid]['use']) || !$config[$mid]['use']) {
|
|
$this->_json(0, '微信插件-内容模板群发设置-没有开启本模块');
|
|
} elseif (!isset($config[$mid]['id']) || !$config[$mid]['id']) {
|
|
$this->_json(0, '微信插件-内容模板群发设置-没有设置本模块参数');
|
|
} elseif (!isset($config[$mid]['content']) || !$config[$mid]['content']) {
|
|
$this->_json(0, '微信插件-内容模板群发设置-没有设置本模块参数');
|
|
}
|
|
|
|
|
|
$cache = \Phpcmf\Service::M()->table(weixin_wxtable('user'))->getAll();
|
|
if (!$cache) {
|
|
$this->_json(0, dr_lang('没有可用粉丝'));
|
|
}
|
|
|
|
// 生成模板
|
|
$template = [];
|
|
foreach ($config[$mid]['content'] as $t) {
|
|
if ($t['name']) {
|
|
$value = $t['value'];
|
|
$tpl = $this->replace($data, $value);
|
|
$template[$t['name']] = [
|
|
'value' => $tpl ? $tpl : $value,
|
|
'color' => $t['color'],
|
|
];
|
|
}
|
|
}
|
|
if (!$template) {
|
|
$this->_json(0, dr_lang('模板内容解析后不存在'));
|
|
}
|
|
|
|
$data['template'] = $config[$mid]['id'];
|
|
$data['color'] = $config[$mid]['color'];
|
|
$data['url'] = dr_url_prefix($data['url'], $mid);
|
|
|
|
// 存储文件
|
|
\Phpcmf\Service::L('cache')->set_auth_data('app-weixin-template-send', [
|
|
'data' => $data,
|
|
'template' => $template,
|
|
'users' => dr_save_bfb_data($cache)
|
|
]);
|
|
|
|
$this->_json(1, 'ok', ['url' => dr_url('weixin/template/show_index', ['counts'=> count($cache)])]);
|
|
}
|
|
|
|
// 查看列表
|
|
public function index() {
|
|
|
|
$file = WRITEPATH.'config/weixin_sendtpl.php';
|
|
$module = \Phpcmf\Service::L('cache')->get('module-'.SITE_ID.'-content');
|
|
|
|
if (IS_POST) {
|
|
$post = \Phpcmf\Service::L('input')->post('data');
|
|
\Phpcmf\Service::L('Config')->file($file, '微信模板群发', 32)->to_require($post);
|
|
$this->_json(1, '操作成功');
|
|
}
|
|
|
|
$one = reset($module);
|
|
$page = \Phpcmf\Service::L('input')->get('page');
|
|
if (!$page) {
|
|
$page = $one['dirname'];
|
|
}
|
|
|
|
\Phpcmf\Service::V()->assign([
|
|
'page' => $page,
|
|
'data' => is_file($file) ? require $file : [],
|
|
'form' => dr_form_hidden(),
|
|
'menu' => \Phpcmf\Service::M('auth')->_admin_menu(
|
|
[
|
|
WEIXIN_MORE_NAME.'模块内容群发' => [APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/index', 'fa fa-edit'],
|
|
'help' => [1127],
|
|
]),
|
|
'module' => $module,
|
|
]);
|
|
\Phpcmf\Service::V()->display('sendtpl.html');
|
|
}
|
|
|
|
|
|
// 替换全部
|
|
private function replace($data, $value) {
|
|
|
|
$rep = new \php5replace($data);
|
|
$value = preg_replace_callback('#{([A-Z_]+)}#U', array($rep, 'php55_replace_var'), $value);
|
|
$value = preg_replace_callback('#{([a-z_0-9]+)}#U', array($rep, 'php55_replace_data'), $value);
|
|
$value = preg_replace_callback('#{\$([a-z_0-9]+)}#U', array($rep, 'php55_replace_data'), $value);
|
|
$value = preg_replace_callback('#{([a-z_0-9]+)\((.*)\)}#Ui', array($rep, 'php55_replace_function'), $value);
|
|
|
|
return $value;
|
|
}
|
|
|
|
}
|