You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
183 lines
6.0 KiB
PHP
183 lines
6.0 KiB
PHP
<?php
|
|
|
|
namespace Admin\Controller;
|
|
use Com\Wechat;
|
|
use Com\WechatAuth;
|
|
/**
|
|
* 后台首页控制器
|
|
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
|
|
*/
|
|
class WechatController extends ThinkController {
|
|
private $template;
|
|
public function index($value='')
|
|
{
|
|
$this->BaseConfig("wechat");
|
|
//var_dump($this->template);
|
|
$this->assign("nav_data",$this->template);
|
|
$this->assign("wechat_url","http://".$_SERVER["HTTP_HOST"]."/sdk.php/Wechat/index");
|
|
$this->meta_title = "微信公众号设置";
|
|
|
|
$this->m_title = '微信公众号设置';
|
|
$url = 'Wechat/lists';
|
|
$this->m_url = $url;
|
|
$this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find());
|
|
|
|
|
|
$this->display();
|
|
}
|
|
|
|
/**
|
|
*保存设置
|
|
*/
|
|
public function saveTool($value='')
|
|
{
|
|
$name = $_POST['name'];
|
|
$config = I('config');
|
|
$data = array('config'=>json_encode($config),'template'=>json_encode($_POST['template']),'status'=>$_POST['status']);
|
|
$flag = M('Tool','tab_')->where("name='{$name}'")->setField($data);
|
|
if($flag !== false){
|
|
$config['status']=$_POST['status'];
|
|
$this->set_config($name,$config);
|
|
// $this->get_menu($_POST['template']['nav']);//手游不支持设置其他,只是保存公众号信息
|
|
$this->success('保存成功');
|
|
}else{
|
|
$this->error('保存失败');
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
*显示扩展设置信息
|
|
*/
|
|
protected function BaseConfig($name='')
|
|
{
|
|
$map['name'] = array('in',$name);
|
|
$tool = M('tool',"tab_")->where($map)->select();
|
|
if(empty($tool)){$this->error('没有此设置');}
|
|
foreach ($tool as $key => $val) {
|
|
$this->assign($tool[$key]['name'],json_decode($tool[$key]['config'],true));
|
|
$this->template = json_decode($tool[$key]['template'],true);
|
|
$this->assign($tool[$key]['name']."_tem",$this->template);
|
|
unset($tool[$key]['config']);
|
|
$this->assign($tool[$key]['name']."_data",$tool[$key]);
|
|
}
|
|
$data = $this->template['nav'];
|
|
foreach ($data[1] as $key => $value) {
|
|
foreach ($value as $k => $val) {
|
|
$data_n[$k][$key] = $val;
|
|
}
|
|
}
|
|
foreach ($data[2] as $key => $value) {
|
|
foreach ($value as $k => $val) {
|
|
$data_n1[$k][$key] = $val;
|
|
}
|
|
}
|
|
foreach ($data_n as $key => $value) {
|
|
foreach ($data_n1 as $k => $val) {
|
|
if($key == $val['pid']){
|
|
$data_n[$key]['child'][$k]=$val;
|
|
}
|
|
}
|
|
}
|
|
$this->template = $data_n;
|
|
}
|
|
|
|
/**
|
|
*设置config
|
|
*/
|
|
private function set_config($name="",$config=""){
|
|
$config_file ="./Application/Common/Conf/pay_config.php";
|
|
if(file_exists($config_file)){
|
|
$configs=include $config_file;
|
|
}else {
|
|
$configs=array();
|
|
}
|
|
#定义一个数组
|
|
$data = array();
|
|
#给数组赋值
|
|
$data[$name] = $config;
|
|
$configs=array_merge($configs,$data);
|
|
$result = file_put_contents($config_file, "<?php\treturn " . var_export($configs, true) . ";");
|
|
}
|
|
|
|
private function get_menu($data_n=""){
|
|
$appid = C('wechat.appid');
|
|
$appsecret = C('wechat.appsecret');
|
|
$token = session("token");
|
|
if($token){
|
|
$auth = new WechatAuth($appid, $appsecret, $token);
|
|
} else {
|
|
$auth = new WechatAuth($appid, $appsecret);
|
|
$token = $auth->getAccessToken();
|
|
session(array('expire' => $token['expires_in']));
|
|
session("token", $token['access_token']);
|
|
}
|
|
$newmenu = $this->set_menu($data_n);
|
|
file_put_contents(dirname(__FILE__).'/menu.json', json_encode($newmenu));
|
|
$data = $auth->menuCreate($newmenu);
|
|
}
|
|
|
|
private function set_menu($data){
|
|
foreach ($data[1] as $key => $value) {
|
|
foreach ($value as $k => $val) {
|
|
$data_n[$k][$key] = $val;
|
|
}
|
|
}
|
|
foreach ($data[2] as $key => $value) {
|
|
foreach ($value as $k => $val) {
|
|
$data_n1[$k][$key] = $val;
|
|
}
|
|
}
|
|
foreach ($data_n as $key => $value) {
|
|
foreach ($data_n1 as $k => $val) {
|
|
if($key == $val['pid']){
|
|
$data_n[$key]['child'][]=$val;
|
|
}
|
|
}
|
|
}
|
|
foreach ($data_n as $key => $value) {
|
|
if(empty($value["child"])){
|
|
$menu[$key]["type"] = "view";
|
|
$menu[$key]["name"] = $value["title"];
|
|
$menu[$key]["url"] = $value["url"];
|
|
}else{
|
|
$value['child']=$this->my_sort($value['child'],'marak');
|
|
foreach ($value["child"] as $k => $val) {
|
|
if($key == $val['pid']){
|
|
$menu[$key]["name"] = $value["title"];
|
|
$menu_child[$k] = array(
|
|
"type"=>"view",
|
|
"name"=>$val['title'],
|
|
"url" =>$val['url']
|
|
);
|
|
$menu[$key]["sub_button"] = $menu_child;
|
|
}
|
|
}
|
|
$menu_child = array();
|
|
}
|
|
}
|
|
if(count($menu) == 4){//不懂为什么是3
|
|
$new_menu = array(0=>$menu);
|
|
}
|
|
else{
|
|
$new_menu = $menu;
|
|
}
|
|
return $new_menu;
|
|
}
|
|
function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){
|
|
if(is_array($arrays)){
|
|
foreach ($arrays as $array){
|
|
if(is_array($array)){
|
|
$key_arrays[] = $array[$sort_key];
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
}else{
|
|
return false;
|
|
}
|
|
array_multisort($key_arrays,$sort_order,$sort_type,$arrays);
|
|
return $arrays;
|
|
}
|
|
}
|