65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace addons\address\controller;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use think\addons\Controller;
							 | 
						||
| 
								 | 
							
								use think\Config;
							 | 
						||
| 
								 | 
							
								use think\Hook;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Index extends Controller
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 首页
							 | 
						||
| 
								 | 
							
								    public function index()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        // 语言检测
							 | 
						||
| 
								 | 
							
								        $lang = $this->request->langset();
							 | 
						||
| 
								 | 
							
								        $lang = preg_match("/^([a-zA-Z\-_]{2,10})\$/i", $lang) ? $lang : 'zh-cn';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $site = Config::get("site");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // 配置信息
							 | 
						||
| 
								 | 
							
								        $config = [
							 | 
						||
| 
								 | 
							
								            'site'           => array_intersect_key($site, array_flip(['name', 'cdnurl', 'version', 'timezone', 'languages'])),
							 | 
						||
| 
								 | 
							
								            'upload'         => null,
							 | 
						||
| 
								 | 
							
								            'modulename'     => 'addons',
							 | 
						||
| 
								 | 
							
								            'controllername' => 'index',
							 | 
						||
| 
								 | 
							
								            'actionname'     => 'index',
							 | 
						||
| 
								 | 
							
								            'jsname'         => 'addons/address',
							 | 
						||
| 
								 | 
							
								            'moduleurl'      => '',
							 | 
						||
| 
								 | 
							
								            'language'       => $lang
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								        $config = array_merge($config, Config::get("view_replace_str"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // 配置信息后
							 | 
						||
| 
								 | 
							
								        Hook::listen("config_init", $config);
							 | 
						||
| 
								 | 
							
								        // 加载当前控制器语言包
							 | 
						||
| 
								 | 
							
								        $this->view->assign('site', $site);
							 | 
						||
| 
								 | 
							
								        $this->view->assign('config', $config);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return $this->view->fetch();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 选择地址
							 | 
						||
| 
								 | 
							
								    public function select()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $config = get_addon_config('address');
							 | 
						||
| 
								 | 
							
								        $zoom = (int)$this->request->get('zoom', $config['zoom']);
							 | 
						||
| 
								 | 
							
								        $lng = (float)$this->request->get('lng');
							 | 
						||
| 
								 | 
							
								        $lat = (float)$this->request->get('lat');
							 | 
						||
| 
								 | 
							
								        $address = $this->request->get('address');
							 | 
						||
| 
								 | 
							
								        $lng = $lng ?: $config['lng'];
							 | 
						||
| 
								 | 
							
								        $lat = $lat ?: $config['lat'];
							 | 
						||
| 
								 | 
							
								        $this->view->assign('zoom', $zoom);
							 | 
						||
| 
								 | 
							
								        $this->view->assign('lng', $lng);
							 | 
						||
| 
								 | 
							
								        $this->view->assign('lat', $lat);
							 | 
						||
| 
								 | 
							
								        $this->view->assign('address', $address);
							 | 
						||
| 
								 | 
							
								        $maptype = $config['maptype'];
							 | 
						||
| 
								 | 
							
								        if (!isset($config[$maptype . 'key']) || !$config[$maptype . 'key']) {
							 | 
						||
| 
								 | 
							
								            $this->error("请在配置中配置对应类型地图的密钥");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return $this->view->fetch('index/' . $maptype);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |