| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511 | 
							- <?php
 
- namespace Cas\Controller\Admin\Activity;
 
- use Cas\Module\Lottery;
 
- use Cas\Dao\PlatformBulletin;
 
- use KIF\Core\Request;
 
- use Cas\Dao\LotteryEvents;
 
- use Cas\Controller\Admin\Controller;
 
- use Cas\Dao\Platform;
 
- use KIF\Core\Config;
 
- use Cas\Dao\LotteryPrize;
 
- /**
 
-  * ["活动相关" - "页面设置" ]
 
-  * 页面: 显示&修改 doPageShow
 
-  * 选择不同模板
 
-  * 	活动页面常规设置
 
-  *  显示&修改					 				doPageShow
 
-  * 	事件:修改常规   					doReqUpRoutine
 
-  * 	事件:修改或创建切屏专题   		doReqUpCutScreen
 
-  * 	事件:文章设置   							doReqUpArticle
 
-  * 	
 
-  */
 
- class SetPage extends Controller {
 
- 	private $objLottery; // 活动后端
 
- 	private $operatorData;
 
- 	private $showActivityTypeArr;
 
- 	
 
- 	/**
 
- 	 *  初始化
 
- 	 */
 
- 	public function __construct() {
 
- 		header ( "Content-Type: text/html; charset=utf-8" );
 
- 		$this->objLottery = new Lottery ();
 
- 		$this->operatorData = $this->getUser ();
 
- 		
 
- 		# 能在当前页面显示的活动
 
- 		$this->showActivityTypeArr = array(
 
- 			LotteryEvents::TYPE_EVENTS_TURNTABLE,
 
- 			LotteryEvents::TYPE_EVENTS_SCRATCH,
 
- 			LotteryEvents::TYPE_EVENTS_LETTERS,
 
- 			LotteryEvents::TYPE_EVENTS_TRY,
 
- 			LotteryEvents::TYPE_EVENTS_VOTE,
 
- 			LotteryEvents::TYPE_EVENTS_INVITATION,
 
- 			LotteryEvents::TYPE_EVENTS_CODE,
 
- 			LotteryEvents::TYPE_EVENTS_OTHER,
 
- 			LotteryEvents::TYPE_EVENTS_CUT_SCREEN,
 
- 			LotteryEvents::TYPE_EVENTS_ARTICLE
 
- 		);
 
- 		
 
- 		$events_id = isset($_REQUEST['events_id'])?$_REQUEST['events_id'] : null;
 
- 		if($events_id){
 
- 			$this->setNowUpPage($events_id, 'Page');
 
- 		}
 
- 		
 
- 		
 
- 	}
 
- 	
 
- 	/**
 
- 	 * 默认
 
- 	 */
 
- 	public function doDefault() {}
 
- 	
 
- 	/**
 
- 	 * 页面: 显示&修改
 
- 	 * 地址:http://cas.lishuy.com/?c=Admin_Activity_SetPage&a=PageShow&events_id=nnn
 
- 	 * 参数: events_id 活动ID
 
- 	 */
 
- 	public function doPageShow() {
 
- 		$events_id = Request::g ( 'events_id' );
 
- 		$events_Data = $this->objLottery->getOneLotteryEventsAndPrize ( $events_id );
 
- 		
 
- 		// 载入修改页面需要用到的配置
 
- 		$eventsShareButton = LotteryEvents::getShareButton (); // // [活动] 是否显示分享按钮
 
- 		$eventsDeliveryType = LotteryEvents::getDeliveryType (); // // [活动] 发货状态
 
- 		$eventsAuthorize = LotteryEvents::getAuthorize (); // [活动] 授权
 
- 		$eventsDisplayStatus = LotteryEvents::getDisplay (); // [活动] 是否显示
 
- 		$eventsTwoDimensionalCodeType = LotteryEvents::getTwoDimensionalCodeType (); // [领券活动] 是否是二维码输出 类型
 
- 		$eventsTypeData = LotteryEvents::getType (); // [活动] 类型
 
- 		$eventsBigTypeConfig = LotteryEvents::getBigTypeConfig (); // [活动] 大类
 
- 		$eventsFormRegular = $this->formRegular (); // [活动] 表单
 
- 		$prizeDisplay = LotteryPrize::getDisplay (); // [奖项] 显示状态
 
- 		$prizeExpress = LotteryPrize::getExpress (); // [奖项] 是否需要快递
 
- 		$prizeType = LotteryPrize::getType (); // [奖项] 类型
 
- 		
 
- 		$this->setOutput ( 'eventsShareButton', $eventsShareButton );
 
- 		$this->setOutput ( 'eventsDeliveryType', $eventsDeliveryType );
 
- 		$this->setOutput ( 'eventsAuthorize', $eventsAuthorize );
 
- 		$this->setOutput ( 'eventsDisplayStatus', $eventsDisplayStatus );
 
- 		$this->setOutput ( 'eventsTwoDimensionalCodeType', $eventsTwoDimensionalCodeType );
 
- 		$this->setOutput ( 'eventsTypeData', $eventsTypeData );
 
- 		$this->setOutput ( 'eventsBigTypeConfig', $eventsBigTypeConfig );
 
- 		$this->setOutput ( 'eventsFormRegular', $eventsFormRegular );
 
- 		$this->setOutput ( 'prizeDisplay', $prizeDisplay );
 
- 		$this->setOutput ( 'prizeExpress', $prizeExpress );
 
- 		$this->setOutput ( 'prizeType', $prizeType );
 
- 		
 
- 		$this->setOutput('events_Data', $events_Data);
 
- 		$this->setOutput('eventData', $events_Data['events']);
 
- 		$this->setOutput('typeData', $eventsTypeData);
 
- 		$this->setOutput('displayDesc', LotteryEvents::getDisplay());
 
- 		
 
- 		$pageDatas = $disData = array();
 
- 		if(isset($events_Data['events']['pageData'])){
 
- 			foreach ($events_Data['events']['pageData'] as $tmpKey => $tmpItem) {
 
- 				$pageDatas[] = json_encode($tmpItem);
 
- 				$disData[$tmpKey] = $tmpItem;
 
- 			}	
 
- 		}
 
- 		$this->setOutput('pageDatas', $pageDatas);
 
- 		$this->setOutput('pageData_json', $disData ? json_encode($disData) : '{}');
 
- 		$this->setOutput('count_num_page', count($disData));
 
- 		
 
- 		if ($events_Data['events']['pageData']) {
 
- 			$pageData = $this->getPageData($events_Data['events']['pageData'], 2.9);
 
- 		}
 
- 		
 
- 		$this->setOutput('pageData', $pageData);
 
- 		
 
- 		$navConfig = $this->getUpPageNav($events_id, 'Page');
 
- 		
 
- 		switch (LotteryEvents::getBigType($events_Data['events']['type'])) {
 
- 			case 'H5':
 
- 				$this->tpl = 'admin/activity/setPage_h5';
 
- 				break;
 
- 			case 'Event':
 
- 				$this->tpl = 'admin/activity/setPage_event';
 
- 				break;
 
- 			case 'Article':
 
- 				$this->tpl = 'admin/activity/setPage_article';
 
- 				break;
 
- 			default:
 
- 				$this->tpl = 'admin/activity/setPage_event';
 
- 		}
 
- 		
 
- 		$title = '页面制作';
 
- 		$this->setOutput('title', $title);
 
- 		$this->setOutput('menu_active', array('name' => 'mypublish', 'item' => '')); //激活菜单
 
- 		$this->addNavMenu('活动列表');
 
- 		$this->addNavMenu($title);
 
- 		$this->setOutput ( 'navConfig', $navConfig );// 导航 显示 URL 配置
 
- 		$this->setOutput('pagePublicData', $this->getPagePublicData($events_id)); // 后台管理相关数据
 
- 	}
 
- 	
 
- 	
 
- 	/**
 
- 	 * 活动页面常规设置
 
- 	 * 事件:修改常规页面
 
- 	 *  地址:http://cas.lishuy.com/?c=Admin_Activity_SetPage&a=ReqUpRoutine
 
- 	 *  参数:见方法内
 
- 	 */
 
- 	public function doReqUpRoutine(){
 
- 		$events_id = Request::p ( 'events_id' );
 
- 		$events_Data = $this->objLottery->getOneLotteryEventsAndPrize ( $events_id );
 
- 		
 
- 		// 正文介绍内容  events_tips
 
- 		// 活动规则  events_rules
 
- 		// 活动规则提示语  operationt_tips
 
- 		
 
- 		$info = array();
 
- 		$info['events_tips'] =  Request::p('events_tips', null);
 
- 		$info['events_hd_tips'] = Request::p('events_hd_tips', null); //互动提示语
 
- 		$info['share_button'] = Request::p('share_button', null); //是否显示分享按钮
 
- 		$info['events_rules'] =  Request::p('events_rules', null);
 
- 		$info['operationt_tips'] =  Request::p('operationt_tips', null);
 
- 		$info['display'] =  LotteryEvents::EVENT_DISPLAY_SHOW;
 
- 		$this->objLottery->upLotteryEvents ( $info, array ('id' => $events_id) );
 
- 		
 
- 		
 
- 		$this->ajax_success_exit();
 
- 		
 
- 	}
 
- 	/** 
 
- 	 * 修改或创建切屏专题
 
- 	 * 事件:http://cas.lishuy.com/?c=Admin_Activity_SetPage&a=ReqUpCutScreen
 
- 	 */
 
- 	public function doReqUpCutScreen(){
 
- 		$events_id = Request::p ( 'events_id' );
 
- 		$pageData = Request::p('p', null);
 
- 		
 
- 		foreach ($pageData as $key => $tmpData) {
 
- 			$pageData[$key] = json_decode($tmpData, true);
 
- 		}
 
- 		$events_Data = $this->objLottery->getOneLotteryEventsAndPrize ( $events_id );
 
- 		$info = array();
 
- 		
 
- 		$info['pageData'] = $pageData;
 
- 		
 
- 		// .............................
 
- 		// .............................
 
- 		if($events_Data['events']['display'] == LotteryEvents::EVENT_DISPLAY_UNFINISHED){
 
- 			$info['display'] = LotteryEvents::EVENT_DISPLAY_HIDE;
 
- 		}
 
- 		$events_id = $this->objLottery->upLotteryEvents ( $info, array ('id' => $events_id) );
 
- 		if (!$events_id) {
 
- 			$this->ajax_fail_exit('操作失败');
 
- 		}
 
- 		$this->ajax_success_exit();
 
- 	}
 
- 	
 
- 	/**
 
- 	 * 生成预览页面的二维码
 
- 	 */
 
- 	public function doReqUpPreview() {
 
- 		$pageData = Request::p('p', null);
 
- 		$events_id = Request::p('events_id');
 
- 		
 
- 		foreach ($pageData as $key => $tmpData) {
 
- 			$pageData[$key] = json_decode($tmpData, true);
 
- 		}
 
- 		
 
- 		$info = array(
 
- 			'events_id'	=> $events_id,
 
- 			'pageData' => $pageData,
 
- 		);
 
- 		
 
- 		$memkey = 'preview_cutscreen_'.time();
 
- 		$objMemcached = new \KIF\Cache\Memcached();
 
- 		$tmpResult = $objMemcached->add($memkey, $info, time() + 5*60*60);
 
- 		
 
- 		$preview_url = Request::schemeDomain() . '/?c=CutScreenPreview&key='.$memkey;
 
- 		$qr_url = $this->createImgCodeUrl($preview_url);
 
- 		$this->ajax_success_exit($qr_url);
 
- 	}
 
- 	
 
- 	
 
- 	/**
 
- 	 * 活动页文章页面
 
- 	 * 事件:修改 文章页面内容
 
- 	 *  地址:http://cas.lishuy.com/?c=Admin_Activity_SetPage&a=ReqUpArticle
 
- 	 *  参数:见方法内
 
- 	 */
 
- 	public function doReqUpArticle(){
 
- 		$events_id = Request::p ( 'events_id' );
 
- 		$events_Data = $this->objLottery->getOneLotteryEventsAndPrize ( $events_id );
 
- 		
 
- 		/*
 
- 		文章标题  article_title
 
- 		作者  article_author
 
- 		浏览量基数  article_pass_base_num
 
- 		赞基数  article_praise
 
- 		原文链接 article_original_url
 
- 		正文  article_text
 
- 		*/
 
- 		$info = array();
 
- 		$info['article_title'] = Request::p('article_title');
 
- 		$info['article_author'] = Request::p('article_author');
 
- 		$info['article_pass_base_num'] = Request::p('article_pass_base_num');
 
- 		$info['article_praise'] = Request::p('article_praise');
 
- 		$info['article_original_url'] = Request::p('article_original_url');
 
- 		$info['article_text'] = Request::p('article_text', null);
 
- 		
 
- 		if($events_Data['events']['display'] == LotteryEvents::EVENT_DISPLAY_UNFINISHED){
 
- 			$info['display'] = LotteryEvents::EVENT_DISPLAY_HIDE;
 
- 		}
 
- 		
 
- 		
 
- 		$events_id = $this->objLottery->upLotteryEvents ( $info, array ('id' => $events_id) );
 
- 		// TODO 跳转页面自定义 返回 信息自定义
 
- 		
 
- 		if (!$events_id) {
 
- 			$this->ajax_fail_exit('操作失败');
 
- 		}
 
- 		
 
- 		$this->ajax_success_exit();
 
- 	}
 
- 	
 
- 	
 
- 	
 
- 	
 
- 	
 
- 	/**
 
- 	 * 方法:图片上传
 
- 	 */
 
- 	public function loadImg($image_name = 'image') {
 
- 		$uploadConfig = Config::getInstance ()->get ( 'upload' );
 
- 		// 定义允许上传的文件扩展名
 
- 		$ext_arr = array (
 
- 				'image' => array (
 
- 						'gif',
 
- 						'jpg',
 
- 						'jpeg',
 
- 						'png',
 
- 						'bmp' 
 
- 				) 
 
- 		);
 
- 		if (! is_array ( $_FILES [$image_name] ['name'] )) {
 
- 			foreach ( $_FILES [$image_name] as $key => $data ) {
 
- 				unset ( $_FILES [$image_name] [$key] );
 
- 				$_FILES [$image_name] [$key] [] = $data;
 
- 			}
 
- 		}
 
- 		$file_url = array ();
 
- 		foreach ( $_FILES [$image_name] ['name'] as $key => $oneData ) {
 
- 			// 文件保存目录路径
 
- 			$save_path = $uploadConfig ['path'] . '/';
 
- 			$save_path = realpath ( $save_path ) . '/';
 
- 			
 
- 			// PHP上传失败
 
- 			if ($_FILES [$image_name] ['error'] [$key] != 0) {
 
- 				switch ($_FILES [$image_name] ['error'] [$key]) {
 
- 					case '1' :
 
- 						$error = '超过php.ini允许的大小。';
 
- 						break;
 
- 					case '2' :
 
- 						$error = '超过表单允许的大小。';
 
- 						break;
 
- 					case '3' :
 
- 						$error = '图片只有部分被上传。';
 
- 						break;
 
- 					case '4' :
 
- 						$error = '请选择图片。';
 
- 						break;
 
- 					case '6' :
 
- 						$error = '找不到临时目录。';
 
- 						break;
 
- 					case '7' :
 
- 						$error = '写文件到硬盘出错。';
 
- 						break;
 
- 					case '8' :
 
- 						$error = 'File upload stopped by extension。';
 
- 						break;
 
- 					case '999' :
 
- 					default :
 
- 						$error = '未知错误。';
 
- 				}
 
- 				return $error;
 
- 			}
 
- 			// 有上传文件时
 
- 			if (empty ( $_FILES ) === false) {
 
- 				// 原文件名
 
- 				$file_name = $_FILES [$image_name] ['name'] [$key];
 
- 				// 服务器上临时文件名
 
- 				$tmp_name = $_FILES [$image_name] ['tmp_name'] [$key];
 
- 				// 文件大小
 
- 				$file_size = $_FILES [$image_name] ['size'] [$key];
 
- 				// 检查文件名
 
- 				if (! $file_name) {
 
- 					return "请选择文件。";
 
- 				}
 
- 				// 检查目录
 
- 				if (@is_dir ( $save_path ) === false) {
 
- 					return "上传目录不存在。";
 
- 				}
 
- 				// 检查目录写权限
 
- 				if (@is_writable ( $save_path ) === false) {
 
- 					return "上传目录没有写权限。";
 
- 				}
 
- 				// 检查是否已上传
 
- 				if (@is_uploaded_file ( $tmp_name ) === false) {
 
- 					return "上传失败。";
 
- 				}
 
- 				// 检查目录名
 
- 				$dir_name = 'image';
 
- 				if (empty ( $ext_arr [$dir_name] )) {
 
- 					return "目录名不正确。";
 
- 				}
 
- 				// 获得文件扩展名
 
- 				$temp_arr = explode ( ".", $file_name );
 
- 				$file_ext = array_pop ( $temp_arr );
 
- 				$file_ext = trim ( $file_ext );
 
- 				$file_ext = strtolower ( $file_ext );
 
- 				// 检查扩展名
 
- 				if (in_array ( $file_ext, $ext_arr [$dir_name] ) === false) {
 
- 					return "上传文件扩展名是不允许的扩展名。\n只允许" . implode ( ",", $ext_arr [$dir_name] ) . "格式。";
 
- 				}
 
- 				// 创建文件夹
 
- 				$ymd = date ( "Ymd" );
 
- 				$ymd = date ( "Y" ) . '/' . date ( 'md' );
 
- 				// 文件保存目录URL
 
- 				$save_url = $uploadConfig ['url'] . '/';
 
- 				$new_file_name = '';
 
- 				$save_path .= $dir_name . "/" . $ymd . "/";
 
- 				
 
- 				$save_url .= $dir_name . "/" . $ymd . "/";
 
- 				if (! file_exists ( $save_path )) {
 
- 					if (! mkdir ( $save_path, 0775, true )) {
 
- 						return "创建目录失败:{$save_path}";
 
- 					}
 
- 				}
 
- 				// 新文件名
 
- 				$new_file_name = date ( "His" ) . '_' . rand ( 10000, 99999 ) . '.' . $file_ext;
 
- 				// 移动文件
 
- 				$file_path = $save_path . $new_file_name;
 
- 				// 原图上传
 
- 				if (move_uploaded_file ( $tmp_name, $file_path ) === false) {
 
- 					return "上传文件失败。";
 
- 				}
 
- 				error_reporting ( E_ALL );
 
- 				// 压缩65质量原图
 
- 				$this_basename = basename ( $file_path );
 
- 				$this_dirname = dirname ( $file_path );
 
- 				$z_file_path = $this_dirname . '/' . 'z.' . $this_basename;
 
- 				Image::transformFormat ( $file_path, $z_file_path, 'JPG' );
 
- 				@chmod ( $file_path, 0777 );
 
- 				$file_url [$key] = $save_url . 'z.' . $new_file_name;
 
- 			}
 
- 		}
 
- 		return array (
 
- 				'error' => 0,
 
- 				'url' => $file_url 
 
- 		);
 
- 	}
 
- 	
 
- 	/**
 
- 	 * 表单验证规则
 
- 	 *
 
- 	 * @return multitype:multitype:string
 
- 	 */
 
- 	public function formRegular() {
 
- 		return array (
 
- 				1 => array (
 
- 						'desc' => '手机验证',
 
- 						'regular' => '/^(1[0-9][0-9]|15[0-9]|18[02-9]|14[57])[0-9]{8}$/' 
 
- 				),
 
- 				2 => array (
 
- 						'desc' => '邮箱验证',
 
- 						'regular' => '/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/' 
 
- 				) 
 
- 		);
 
- 	}
 
- 	
 
- 	/**
 
- 	 * 获取单页面预览html
 
- 	 */
 
- 	public function doGetPreviewPage() {
 
- 		$singlePageData = json_decode(Request::p('pageData', null), true);
 
- 		
 
- 		if (isset($singlePageData['bgimage_isShow']) && $singlePageData['bgimage_isShow'] == false) {
 
- 			unset($singlePageData['bgimage_url']);
 
- 			unset($singlePageData['bgimage_isShow']);
 
- 		}
 
- 		
 
- 		foreach ($singlePageData['layers'] as $key => $tmpLayer) {
 
- 			if (isset($tmpLayer['isShow']) && $tmpLayer['isShow'] == false) {
 
- 				unset($singlePageData['layers'][$key]);
 
- 			}
 
- 		}
 
- 		$singlePageData = $this->getPageData(array($singlePageData), 2.9);
 
- 		
 
- 		$this->tpl = 'admin/activity/preview_single_page';
 
- 		$this->setOutput('pageData', $singlePageData);
 
- 		$html = $this->render(true);
 
- 		$this->ajax_success_exit($html);
 
- 	}
 
- 	
 
- 	/**
 
- 	 * 
 
- 	 * @param number $shrink 图片缩小倍数
 
- 	 */
 
- 	public function getPageData(array $pageData, $shrink = 2) {
 
- 		foreach ($pageData as $tmpkey => $tmpData) {
 
- 			$pageData[$tmpkey]['json'] = json_encode($tmpData);
 
- 			// 上层图片、按钮图片 宽高压缩一半。
 
- 			
 
- 			foreach ($tmpData['layers'] as $key => $tmpLayer) {
 
- 				$new_layer = $pageData[$tmpkey]['layers'][$key];
 
- 				
 
- 				if ($new_layer['url']) {
 
- 					$new_layer['width'] = $tmpLayer['width'] / $shrink;
 
- 					$new_layer['height'] = $tmpLayer['height'] / $shrink;
 
- 				}
 
- 				if ($new_layer['video_url']) {
 
- 					$new_layer['width'] = $new_layer['video_width'] =  $tmpLayer['video_width'] / ($shrink - 2);
 
- 					$new_layer['height'] = $new_layer['video_height'] = $tmpLayer['video_height'] / ($shrink - 2);
 
- 				}
 
- 				
 
- 				$style = '';
 
- 				switch ($tmpLayer['position']) {
 
- 					case 'center':
 
- 						$margin_left = $new_layer['width'] / 2;
 
- 						$margin_top = $new_layer['height'] / 2;
 
- 						$style = "left:50%;top:50%;margin-left:-{$margin_left}px;margin-top:-{$margin_top}px;";
 
- 						break;
 
- 					case 'up';
 
- 						$margin_left = $new_layer['width'] / 2;
 
- 						$style = "left:50%;top:0%;margin-left:-{$margin_left}px;";
 
- 						break;
 
- 					case 'down':
 
- 						$margin_left = $new_layer['width'] / 2;
 
- 						$style = "left:50%;bottom:6%;margin-left:-{$margin_left}px;";
 
- 						break;
 
- 					case 'leftup':
 
- 						$style = "left:0%;top:0%;";
 
- 						break;
 
- 					case 'leftdown':
 
- 						$style = "left:0%;bottom:0%;";
 
- 						break;
 
- 					case 'rightup':
 
- 						$style = "right:0%;top:0%;";
 
- 						break;
 
- 					case 'rightdown':
 
- 						$style = "right:0%;bottom:0%;";
 
- 						break;
 
- 				}
 
- 				$new_layer['style'] = $style;
 
- 				
 
- 				$pageData[$tmpkey]['layers'][$key] = $new_layer;
 
- 			}
 
- 		}
 
- 		
 
- 		return $pageData;
 
- 	}
 
- 	
 
- 	public function display() {
 
- 		return $this->render ();
 
- 	}
 
- }
 
- 	
 
 
  |