Server : nginx/1.22.1
System : Linux iZwz9daxib3w3i063fw434Z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64
User : www ( 1000)
PHP Version : 5.6.40
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/www.jkmold.com/caches/caches_model/caches_data/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/www.jkmold.com/caches/caches_model/caches_data/content_output.class.php
<?php

class content_output {

	var $fields;

	var $data;



	function __construct($modelid,$catid = 0,$categorys = array()) {

		$this->modelid = $modelid;

		$this->catid = $catid;

		$this->categorys = $categorys;

		$this->fields = getcache('model_field_'.$modelid,'model');

    }

	function get($data) {

		$this->data = $data;

		$this->id = $data['id'];

		$info = array();

		foreach($this->fields as $field=>$v) {

			if(!isset($data[$field])) continue;

			$func = $v['formtype'];

			$value = $data[$field];

			$result = method_exists($this, $func) ? $this->$func($field, $data[$field]) : $data[$field];

			if($result !== false) $info[$field] = $result;

		}

		return $info;

	}

	function editor($field, $value) {

		$setting = string2array($this->fields[$field]['setting']);

		if($setting['enablekeylink']) {

			$value = $this->_keylinks($value, $setting['replacenum'],$setting['link_mode']);

		}

		return $value;

	}

	function _base64_encode($matches) {

		return $matches[1]."\"".base64_encode($matches[2])."\"";

	}

	function _base64_decode($matches) {

		return $matches[1]."\"".base64_decode($matches[2])."\"";

	}

	function _keylinks($txt, $replacenum = '',$link_mode = 1) {

		$search = "/(alt\s*=\s*|title\s*=\s*)[\"|\'](.+?)[\"|\']/is";

		$txt = preg_replace_callback($search, array($this, '_base64_encode'), $txt);

		$keywords = $this->data['keywords'];

		if($keywords) $keywords = strpos(',',$keywords) === false ? explode(' ',$keywords) : explode(',',$keywords);

		if($link_mode && !empty($keywords)) {

			foreach($keywords as $keyword) {

				$linkdatas[] = $keyword;

			}

		} else {

			$linkdatas = getcache('keylink','commons');

		}

		if($linkdatas) {

			$word = $replacement = array();

			foreach($linkdatas as $v) {

				if($link_mode && $keywords) {

					$word1[] = '/(?!(<a.*?))' . preg_quote($v, '/') . '(?!.*<\/a>)/s';

					$word2[] = $v;

					$replacement[] = '<a href="javascript:;" onclick="show_ajax(this)" class="keylink">'.$v.'</a>';

				} else {

					$word1[] = '/(?!(<a.*?))' . preg_quote($v[0], '/') . '(?!.*<\/a>)/s';

					$word2[] = $v[0];					

					$replacement[] = '<a href="'.$v[1].'" target="_blank" class="keylink">'.$v[0].'</a>';

				}

			}

			if($replacenum != '') {

				$txt = preg_replace($word1, $replacement, $txt, $replacenum);

			} else {

				$txt = str_replace($word2, $replacement, $txt);

			}

		}

		$txt = preg_replace_callback($search, array($this, '_base64_decode'), $txt);

		return $txt;

	}

	function title($field, $value) {

		$value = new_html_special_chars($value);

		return $value;

	}

	function box($field, $value) {

		extract(string2array($this->fields[$field]['setting']));

		if($outputtype) {

			return $value;

		} else {

			$options = explode("\n",$this->fields[$field]['options']);

			foreach($options as $_k) {

				$v = explode("|",$_k);

				$k = trim($v[1]);

				$option[$k] = $v[0];

			}

			$string = '';

			switch($this->fields[$field]['boxtype']) {

				case 'radio':

					$string = $option[$value];

				break;



				case 'checkbox':

					$value_arr = explode(',',$value);

					foreach($value_arr as $_v) {

						if($_v) $string .= $option[$_v].' 、';

					}

				break;



				case 'select':

					$string = $option[$value];

				break;



				case 'multiple':

					$value_arr = explode(',',$value);

					foreach($value_arr as $_v) {

						if($_v) $string .= $option[$_v].' 、';

					}

				break;

			}

			return $string;

		}

	}

	function images($field, $value) {

		return string2array($value);

	}

	function datetime($field, $value) {

		$setting = string2array($this->fields[$field]['setting']);

		extract($setting);

		if($fieldtype=='date' || $fieldtype=='datetime') {

			return $value;

		} else {

			$format_txt = $format;

		}

		if(strlen($format_txt)<6) {

			$isdatetime = 0;

		} else {

			$isdatetime = 1;

		}

		if(!$value) $value = SYS_TIME;

		$value = date($format_txt,$value);

		return $value;

	}

	function keyword($field, $value) {

	    if($value == '') return '';

		$v = '';

		if(strpos($value, ',')===false) {

			$tags = explode(' ', $value);

		} else {

			$tags = explode(',', $value);

		}

		return $tags;

	}

	function copyfrom($field, $value) {

		static $copyfrom_array;

		if(!$copyform_array) $copyfrom_array = getcache('copyfrom','admin');

		if($value && strpos($value,'|')!==false) {

			$arr = explode('|',$value);

			$value = $arr[0];

			$value_data = $arr[1];

		}

		if($value_data) {

			$copyfrom_link = $copyfrom_array[$value_data];

			if(!empty($copyfrom_array)) {

				$imgstr = '';

				if($value=='') $value = $copyfrom_link['siteurl'];

				if($copyfrom_link['thumb']) $imgstr = "<a href='{$copyfrom_link[siteurl]}' target='_blank'><img src='{$copyfrom_link[thumb]}' height='15'></a> ";

				return $imgstr."<a href='$value' target='_blank' style='color:#AAA'>{$copyfrom_link[sitename]}</a>";

			}

		} else {

			return $value;

		}

	}

	function groupid($field, $value) {

		if($value) $value = explode(',',$value);

		return $value;

	}

	function linkage($field, $value) {

		$setting = string2array($this->fields[$field]['setting']);

		$datas = getcache($setting['linkageid'],'linkage');

		$infos = $datas['data'];

		if($setting['showtype']==1 || $setting['showtype']==3) {

			$result = get_linkage($value, $setting['linkageid'], $setting['space'], $setting['showtype']);

		} elseif($setting['showtype']==2) {

			$result = $value;

		} else {

			$result = get_linkage($value, $setting['linkageid'], $setting['space'], 2);

		}

		return $result;

	}



	function downfile($field, $value) {

		extract(string2array($this->fields[$field]['setting']));

		$list_str = array();

		if($value){

			$value_arr = explode('|',$value);

			$fileurl = $value_arr['0'];

			if($fileurl) {

				$sel_server = $value_arr['1'] ? explode(',',$value_arr['1']) : '';

				$server_list = getcache('downservers','commons');

				if(is_array($server_list)) {

					foreach($server_list as $_k=>$_v) {

						if($value && is_array($sel_server) && in_array($_k,$sel_server)) {

							$downloadurl = $_v[siteurl].$fileurl;

							if($downloadlink) {

								$a_k = urlencode(sys_auth("i=$this->id&s=$_v[siteurl]&m=1&f=$fileurl&d=$downloadtype&modelid=$this->modelid&catid=$this->catid", 'ENCODE', md5(PC_PATH.'down').pc_base::load_config('system','auth_key')));

								$list_str[] = "<a href='".APP_PATH."index.php?m=content&c=down&a_k={$a_k}' target='_blank'>{$_v[sitename]}</a>";

							} else {

								$list_str[] = "<a href='{$downloadurl}' target='_blank'>{$_v[sitename]}</a>";

							}

						}

					}

				}	

				return $list_str;

			}

		} 

	}

	function downfiles($field, $value) {

		extract(string2array($this->fields[$field]['setting']));

		$list_str = array();

		$file_list = string2array($value);

		if(is_array($file_list)) {

			foreach($file_list as $_k=>$_v) {	

				if($_v[fileurl]){

					$filename = $_v[filename] ? $_v[filename] : L('click_to_down');

					if($downloadlink) {

						$a_k = urlencode(sys_auth("i=$this->id&s=&m=1&f=$_v[fileurl]&d=$downloadtype&modelid=$this->modelid&catid=$this->catid", 'ENCODE', md5(PC_PATH.'down').pc_base::load_config('system','auth_key')));

						$list_str[] = "<a href='".APP_PATH."index.php?m=content&c=down&a_k={$a_k}' target='_blank'>{$filename}</a>";

					} else {

						$list_str[] = "<a href='{$_v[fileurl]}' target='_blank'>{$filename}</a>";

					}

				}

			}

		}

		return $list_str;		

	}

	function map($field, $value) {

		$str = '';

		$setting = string2array($this->fields[$field]['setting']);

		$setting[width] = $setting[width] ? $setting[width] : '600';

		$setting[height] = $setting[height] ? $setting[height] : '400';

		list($lngX, $latY,$zoom) = explode('|', $value);

		if($setting['maptype']==1) {

			$str = "<script src='http://app.mapabc.com/apis?&t=flashmap&v=2.4&key=$setting[api_key]&hl=zh-CN' type='text/javascript'></script>";

		} elseif($setting['maptype']==2) {

			$str = "<script type='text/javascript' src='http://api.map.baidu.com/api?v=1.2&key=$setting[api_key]'></script>";

		}

		$str .= '<div id="mapObj" class="view" style="width: '.$setting[width].'px; height:'.$setting[height].'px"></div>';

		$str .='<script type="text/javascript">';

		if($setting['maptype']==1) {

		$str .='

		var mapObj=null;

		lngX = "'.$lngX.'";

		latY = "'.$latY.'";

		zoom = "'.$zoom.'";

		var mapOptions = new MMapOptions();

		mapOptions.toolbar = MConstants.MINI;

		mapOptions.scale = new MPoint(20,20);  

		mapOptions.zoom = zoom;

		mapOptions.mapComButton = MConstants.SHOW_NO

		mapOptions.center = new MLngLat(lngX,latY);

		var mapObj = new MMap("mapObj", mapOptions);

		var  maptools = new MMapTools(mapObj);

		drawPoints();

		';

		$str .='

		function drawPoints(){

			var markerOption = new MMarkerOptions();

			var tipOption=new MTipOptions();//添加信息窗口 

			var address = "'.$address.'";

			tipOption.tipType = MConstants.HTML_BUBBLE_TIP;//信息窗口标题  

			tipOption.title = address;//信息窗口标题  

			tipOption.content = address;//信息窗口内容     

			var markerOption = new MMarkerOptions(); 		

			markerOption.imageUrl="'.IMG_PATH.'icon/mak.png";		

			markerOption.picAgent=false;   

			markerOption.imageAlign=MConstants.BOTTOM_CENTER; 	   

			markerOption.tipOption = tipOption; 		  

			markerOption.canShowTip= address ? true : false; 	  	

			markerOption.dimorphicColor="0x00A0FF"; 			 			

			Mmarker = new MMarker(new MLngLat(lngX,latY),markerOption);

			Mmarker.id="mark101";

			mapObj.addOverlay(Mmarker,true) 

		}';

		} elseif($setting['maptype']==2) {

			$str .='

			var mapObj=null;

			lngX = "'.$lngX.'";

			latY = "'.$latY.'";

			zoom = "'.$zoom.'";		

			var mapObj = new BMap.Map("mapObj");

			var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});

			mapObj.addControl(ctrl_nav);

			mapObj.enableDragging();

			mapObj.enableScrollWheelZoom();

			mapObj.enableDoubleClickZoom();

			mapObj.enableKeyboard();//启用键盘上下左右键移动地图

			mapObj.centerAndZoom(new BMap.Point(lngX,latY),zoom);

			drawPoints();

			';

			$str .='

			function drawPoints(){

				var myIcon = new BMap.Icon("'.IMG_PATH.'icon/mak.png", new BMap.Size(27, 45));

				var center = mapObj.getCenter();

				var point = new BMap.Point(lngX,latY);

				var marker = new BMap.Marker(point, {icon: myIcon});

				mapObj.addOverlay(marker);

			}';	

		}

		$str .='</script>';

		return $str;

	}



	function video($field, $value) {

		$video_content_db = pc_base::load_model('video_content_model');

		$video_store_db = pc_base::load_model('video_store_model');

		//先获取目前contentid下面的videoid

		$videos = $video_content_db->select(array('contentid'=>$this->id, 'modelid'=>$this->modelid), 'videoid', '', '`listorder` ASC', '', 'videoid');

		if (is_array($videos) && !empty($videos)) {

			$videoids = '';

			foreach ($videos as $_vid => $r) {

				$videoids .= $_vid.',';

			}

			$videoids = substr($videoids, 0, -1);

			$result = $video_store_db->select("`videoid` IN($videoids) AND `status`=21", '*', '', '', '', 'videoid');

			$pagenumber = count($result);

			$return_data = array();

			if ($pagenumber>0) {

				if (is_array($result) && !empty($result)) {

					//首先对$result按照$videos的videoid排序

					foreach ($videos as $_vid => $v) {

						if ($result[$_vid]) $new_result[] = $result[$_vid];

					}

					unset($result, $_vid, $v);

				}



				$this->url = pc_base::load_app_class('url', 'content');

				for($i=1; $i<=$pagenumber; $i++) {

					$pageurls[$i] = $this->url->show($this->id, $i, $this->data['catid'], $this->data['inputtime']);

				}

				//构建返回数组

				foreach ($pageurls as $page =>$urls) {

					$_k = $page - 1;

					if ($_k==0) $arr = reset($new_result);

					else $arr = next($new_result);

					$return_data['data'][$page]['title'] = $arr['title'] ? new_html_special_chars($arr['title']) : new_html_special_chars($this->data['title']);

					$return_data['data'][$page]['url'] = $urls[0];

					$return_data['vid'] = $arr['vid'];

					$return_data['channelid'] = $arr['channelid'];

				}



				$category_db = pc_base::load_model('category_model');

				$r = $category_db->get_one(array('catid'=>$this->data['catid']), 'modelid, setting, siteid');

				$setting = string2array($r['setting']);

				$siteid = intval($r['siteid']);

				if ($setting['content_ishtml']) {

					if (!function_exists('content_pages')) {

						pc_base::load_app_func('util', 'content');

					}

					$modelid = intval($r['modelid']);

					

					$data = $this->data;

					unset($data[$field]);

					$output_data = $this->get($data);

					extract($output_data);

					$id = $this->id;

					//SEO

					$seo_keywords = '';

					if(!empty($keywords)) $seo_keywords = implode(',',$keywords);

					$SEO = seo($siteid, $catid, $title, $description, $seo_keywords);



					$this->html_root = pc_base::load_config('system','html_root');

					$this->sitelist = getcache('sitelist','commons');

					$this->queue = pc_base::load_model('queue_model');

					$template = $this->data['template'] ? $this->data['template'] : $setting['show_template'];

					foreach ($pageurls as $page => $urls) {

						$_k = $page - 1;

						if ($_k==0) {

							$arr = $first = reset($new_result);

						} else {

							$arr = next($new_result);

						}

						$return_data['vid'] = $arr['vid'];

						${$field} = $return_data;

						$pagefile = $urls[1];

						if($siteid!=1) {

							$site_dir = $this->sitelist[$siteid]['dirname'];

							$pagefile = $this->html_root.'/'.$site_dir.$pagefile;

						}

						$this->queue->add_queue('add',$pagefile,$siteid);

						$pagefile = PHPCMS_PATH.$pagefile;

						ob_start();

						include template('content', $template);

						$data = ob_get_contents();

						ob_clean();

						$dir = dirname($pagefile);

						if(!is_dir($dir)) {

							mkdir($dir, 0777,1);

						}

						$strlen = file_put_contents($pagefile, $data);

						@chmod($file,0777);

					}

					$return_data['vid'] = $first['vid'];

					unset($new_result);

				}

				return $return_data;

			} else {

				return array();

			}

		}

	}
 } 
?>