www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/admina/mtpls.inc.php

    <?
(!defined('M_COM') || !defined('M_ADMIN')) && exit('No Permission');
aheader();
!checkapermission($sid ? 143 : 79) && amessage(lang('no_apermission'));
load_cache('cotypes,bnames');
load_cache('mtpls',$sid);

include_once M_ROOT."./include/template.fun.php";
$tpclasses = array(
	'index' => lang('index'),
	'cindex' => lang('catas index'),
	'list' => lang('catas list'),
	'archive' => lang('archive content'),
	'freeinfo' => lang('freeinfo content'),
	'commu' => lang('commu record'),
	'search' => lang('search page0'),
	'other' => lang('isolute page0'),
	'mindex' => lang('( space0 ) index'),
	'mcindex' => lang('( space0 ) catas index'),
	'mlist' => lang('( space0 ) catas list'),
);
$true_tpldir = M_ROOT."./template/$templatedir";
mmkdir($true_tpldir);
if($action == 'mtpladd'){
	if(!submitcheck('bmtpladd') && !submitcheck('bmtplsave')){
		if(submitcheck('bmtplsearch')){
			$mtplstmp = findfiles($true_tpldir);
			$enamearr = array_keys($mtpls);
			foreach($mtplstmp as $k => $tplname){
				if(in_array($tplname,$enamearr)) unset($mtplstmp[$k]);
			}
			empty($mtplstmp) && amessage(lang('mtplsearchnone'), "?entry=mtpls&action=mtpladd$param_suffix");
			$in_search = 1;
		}
		a_guide('mtpladd');
		tabheader(lang('add normal template')."&nbsp;&nbsp;&nbsp;&nbsp;<input class=\"button\" type=\"submit\" name=\"bmtplsearch\" value=\"".lang('auto search')."\">",'mtpladd',"?entry=mtpls&action=mtpladd$param_suffix");
		trbasic(lang('template cname'),'mtpladd[cname]');
		trbasic(lang('template type'),'mtpladd[tpclass]',makeoption($tpclasses),'select');
		trbasic(lang('template file'),'mtpladd[tplname]');
		tabfooter('bmtpladd',lang('add'));
		if(!empty($in_search)){
			tabheader(lang('normal template add putin'),'mtplsave',"?entry=mtpls&action=mtpladd$param_suffix",'4');
			trcategory(array('<input class="checkbox" type="checkbox" name="chkall" onclick="checkall(this.form)">'.lang('selectall'),lang('template file'),lang('setting template cname'),lang('setting template type')));
			foreach($mtplstmp as $tplname){
				echo "<tr>".
					"<td class=\"item1\" width=\"45\" align=\"center\"><input class=\"checkbox\" type=\"checkbox\" name=\"selectid[$tplname]\" value=\"$tplname\">\n".
					"<td class=\"item2\">$tplname</td>\n".
					"<td class=\"item1\" align=\"center\"><input type=\"text\" size=\"30\" name=\"mtplsnew[$tplname][cname]\" value=\"\"></td>\n".
					"<td class=\"item2\" width=\"150\" align=\"center\"><select style=\"vertical-align: middle;\" name=\"mtplsnew[$tplname][tpclass]\">".makeoption($tpclasses)."</select></td></tr>";
			}
			tabfooter('bmtplsave',lang('putin'));
		}
	}elseif(submitcheck('bmtpladd')){
		if(empty($mtpladd['cname']) || empty($mtpladd['tplname'])) amessage(lang('data missing'),M_REFERER);
		if(preg_match("/[^a-z_A-Z0-9\.]+/",$mtpladd['tplname'])) amessage(lang('template cname illegal'),M_REFERER);
		$enamearr = array_keys($mtpls);
		if(in_array($mtpladd['tplname'], $enamearr)) amessage(lang('page template repeat define'),M_REFERER);
		if(!is_file($true_tpldir.'/'.$mtpladd['tplname'])){
			if(@!touch($true_tpldir.'/'.$mtpladd['tplname'])) amessage(lang('template file add failed !'),M_REFERER);
		}
		$mtpls[$mtpladd['tplname']] = array('cname' => stripslashes($mtpladd['cname']),'tpclass' => $mtpladd['tpclass']);
		cache2file($mtpls,'mtpls','mtpls',$sid);
		adminlog(lang('add normal template'));
		amessage(lang('template add finish'),"?entry=mtpls&action=mtplsedit$param_suffix");
	}elseif(submitcheck('bmtplsave')){
		if(!empty($selectid)){
			foreach($selectid as $tplname){
				if(!empty($mtplsnew[$tplname]['cname']) && !empty($mtplsnew[$tplname]['tpclass'])){
					$cname = $mtplsnew[$tplname]['cname'];
					$tpclass = $mtplsnew[$tplname]['tpclass'];
					$mtpls[$tplname] = array('cname' => stripslashes($mtplsnew[$tplname]['cname']),'tpclass' => $mtplsnew[$tplname]['tpclass']);
				}
			}
		}
		cache2file($mtpls,'mtpls','mtpls',$sid);
		adminlog(lang('add normal template'));
		amessage(lang('template putin finish'),"?entry=mtpls&action=mtplsedit$param_suffix");
	}
}
elseif($action == 'mtplsedit'){
	$ftpclass = empty($ftpclass) ? '' : $ftpclass;
	if(!submitcheck('bmtplsedit')) {
		a_guide('mtplsedit');
		$ftpclassarr = array('' => lang('nolimit type')) + $tpclasses;
		$filterbox = lang('filter0 template').'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;';
		$filterbox .= "<select style=\"vertical-align: middle;\" name=\"ftpclass\" onchange=\"redirect('?entry=mtpls&action=mtplsedit$param_suffix&ftpclass=' + this.options[this.selectedIndex].value);\">";
		foreach($ftpclassarr as $k => $v){
			$filterbox .= "<option value=\"$k\"".($ftpclass == $k ? ' selected' : '').">$v</option>";
		}
		$filterbox .= "</select>";
		tabheader($filterbox);
		tabfooter();

		tabheader(lang('normal page template admin')."&nbsp;&nbsp;&nbsp;&nbsp;[<a href=\"?entry=mtpls&action=mtpladd$param_suffix\">".lang('add').'</a>]','mtplsedit',"?entry=mtpls&action=mtplsedit$param_suffix&ftpclass=$ftpclass",'9');
		trcategory(array('<input class="checkbox" type="checkbox" name="chkall" onclick="checkall(this.form)">'.lang('del'),lang('template cname'),lang('type'),lang('template file'),lang('copy'),lang('content')));
		foreach($mtpls as $k => $v){
			if(empty($ftpclass) || $ftpclass == $v['tpclass']){
				echo "<tr>".
					"<td class=\"item1\" width=\"40\" align=\"center\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$k]\" value=\"$k\">\n".
					"<td class=\"item2\"><input type=\"text\" size=\"25\" name=\"mtplsnew[$k][cname]\" value=\"".mhtmlspecialchars($v['cname'])."\"></td>\n".
					"<td class=\"item1\" width=\"150\" align=\"center\">".$tpclasses[$v['tpclass']]."</td>\n".
					"<td class=\"item2\">$k</td>\n".
					"<td class=\"item1\" width=\"30\" align=\"center\"><a href=\"?entry=mtpls&action=mtplcopy&tplname=$k$param_suffix\">".lang('copy')."</a></td>\n".
					"<td class=\"item2\" width=\"30\" align=\"center\"><a href=\"?entry=mtpls&action=mtpldetail&tplname=$k$param_suffix\">".lang('edit')."</a></td></tr>\n";
			}
		}
		tabfooter('bmtplsedit',lang('modify'));
	}else{
		if(!empty($delete)){
			foreach($delete as $k){
				unset($mtplsnew[$k],$mtpls[$k]);
			}
		}
		if(!empty($mtplsnew)){
			foreach($mtplsnew as $k => $v){
				$v['cname'] = empty($v['cname']) ? $mtpls[$k]['cname'] : $v['cname'];
				if($v['cname'] != $mtpls[$k]['cname']) $mtpls[$k]['cname'] = stripslashes($v['cname']);
			}
		}
		cache2file($mtpls,'mtpls','mtpls',$sid);
		adminlog(lang('edit normal template manager list'));
		amessage(lang('template modify finish'), "?entry=mtpls&action=mtplsedit$param_suffix&ftpclass=$ftpclass");
	}
}
elseif($action == 'mtpldetail' && $tplname){
	$mtpl = $mtpls[$tplname];
	$forward = empty($forward) ? M_REFERER : $forward;
	$forwardstr = '&forward='.rawurlencode($forward);
	if(!submitcheck('bmtpldetail')){
		$template = load_tpl($tplname,0);
		a_guide('mtpldetail');
		tabheader("$mtpl[cname]".lang('setting'),'mtpldetail',"?entry=mtpls&action=mtpldetail&tplname=$tplname$param_suffix$forwardstr");
		trbasic(lang('template cname'),'mtplnew[cname]',$mtpl['cname']);
		trbasic(lang('template class'),'mtplnew[tpclass]',makeoption($tpclasses,$mtpl['tpclass']),'select');
		templatebox(lang('page template'),'templatenew',$template,30,140);
		tabfooter('bmtpldetail');
	}
	else{
		if(empty($mtplnew['cname']) || empty($mtplnew['tpclass'])){
			amessage(lang('template data missing'),M_REFERER);
		}
		@str2file(stripslashes($templatenew),$true_tpldir.'/'.$tplname);
		$mtpls[$tplname]['cname'] = stripslashes($mtplnew['cname']);
		$mtpls[$tplname]['tpclass'] = $mtpl['tpclass'] = $mtplnew['tpclass'];
		cache2file($mtpls,'mtpls','mtpls',$sid);
		adminlog(lang('detail0 modify normal template'));
		amessage(lang('template modify finish'),$forward);
	}
}
elseif($action == 'mtplcopy' && $tplname){
	$mtpl = $mtpls[$tplname];
	if(!submitcheck('bmtplcopy')){
		!is_file($true_tpldir.'/'.$tplname) && amessage(lang('pointed soc template file noexist'));
		a_guide('mtplcopy');
		tabheader(lang('copy normal page template'),'mtplcopy',"?entry=mtpls&action=mtplcopy$param_suffix&tplname=$tplname");
		trbasic(lang('template cname'),'mtpladd[cname]');
		trbasic(lang('template class'),'mtpladd[tpclass]',makeoption($tpclasses,$mtpl['tpclass']),'select');
		trbasic(lang('soc template file'),'',$tplname,'');
		trbasic(lang('template file saveas'),'mtpladd[tplname]');
		tabfooter('bmtplcopy');
	}else{
		(!$mtpladd['cname'] || !$mtpladd['tplname']) && amessage(lang('data missing'),M_REFERER);
		$mtplsnew = findfiles($true_tpldir);
		in_array($mtpladd['tplname'],$mtplsnew) && amessage(lang('pointed template file cname repeat'),M_REFERER);
		(!copy($true_tpldir.'/'.$tplname,$true_tpldir.'/'.$mtpladd['tplname'])) && amessage(lang('template copy failed'),M_REFERER);

		$mtpls[$mtpladd['tplname']] = array('cname' => stripslashes($mtpladd['cname']),'tpclass' => $mtpladd['tpclass']);
		cache2file($mtpls,'mtpls','mtpls',$sid);
		adminlog(lang('copy normal template'));
		amessage(lang('template copy finish'),"?entry=mtpls&action=mtplsedit$param_suffix");
	}
}
elseif($action == 'mtplsmap' && $tplname){
	$mtpl = $mtpls[$tplname];
	$forward = empty($forward) ? M_REFERER : $forward;
	$forwardstr = '&forward='.rawurlencode($forward);
	load_cache('ctags,utags,ptags,rtags',$sid);
	$tagsarr = m_tagsmap($tplname);
	a_guide('mtplsmap');
	tabheader(lang('tag map')."&nbsp;-&nbsp;$mtpl[cname]",'','','6');
	trcategory(array(lang('sn'),lang('tag style'),lang('tag cname'),lang('tag type'),lang('modify'),lang('ref')));
	$no = 0;
	foreach($tagsarr as $tpltag){
		$no ++;
		$tpltag['jsstr'] = $tpltag['updatestr'] = '';
		if($tpltag['tmode'] == 'b'){
			$tpltag['tmode'] = lang('init data1');
			$tpltag['cname'] = !$tpltag['error'] ? $bnames[$tpltag['tname']] : '-';
			$tpltag['error'] = !$tpltag['error'] ? '-' : 'x';
			$tpltag['detail'] = "-";
			$tpltag['tname'] = "{\$$tpltag[tname]}";
		}elseif($tpltag['tmode'] == 'u'){
			$tpltag['tmode'] = lang('ut field');
			$tag = read_cache('utag',$tpltag['tname'],'',$sid);
			$tpltag['cname'] = !$tpltag['error'] ? $tag['cname'] : '-';
			$tpltag['error'] = !$tpltag['error'] ? '-' : 'x';
			$tpltag['detail'] = "<a href=\"?entry=mtags&action=mtagsdetail&ttype=utag&tname=$tpltag[tname]$param_suffix\">".lang('modify')."</a>";
			$tpltag['tname'] = "<b>{u\$$tpltag[tname]}</b>";
		}elseif($tpltag['tmode'] == 'c'){
			$tpltag['tmode'] = lang('ct tag');
			$tag = read_cache('ctag',$tpltag['tname'],'',$sid);
			$tpltag['cname'] = !$tpltag['error'] ? $tag['cname'] : '-';
			$tpltag['error'] = !$tpltag['error'] ? '-' : 'x';
			$tpltag['detail'] = "<a href=\"?entry=mtags&action=mtagsdetail&ttype=ctag&tname=$tpltag[tname]$param_suffix\">".lang('modify')."</a>";
			$tpltag['tname'] = "<b>{c\$$tpltag[tname]}</b>";
		}elseif($tpltag['tmode'] == 'p'){
			$tpltag['tmode'] = lang('pt tag');
			$tag = read_cache('ptag',$tpltag['tname'],'',$sid);
			$tpltag['cname'] = !$tpltag['error'] ? $tag['cname'] : '-';
			$tpltag['error'] = !$tpltag['error'] ? '-' : 'x';
			$tpltag['detail'] = "<a href=\"?entry=mtags&action=mtagsdetail&ttype=ptag&tname=$tpltag[tname]$param_suffix\">".lang('modify')."</a>";
			$tpltag['tname'] = "<b>{p\$$tpltag[tname]}</b>";
		}elseif($tpltag['tmode'] == 'tpl'){
			$tpltag['tmode'] = lang('rt');
			$tag = read_cache('rtag',$tpltag['tname'],'',$sid);
			$tpltag['cname'] = !$tpltag['error'] ? $tag['cname'] : '-';
			$tpltag['error'] = !$tpltag['error'] ? '-' : 'x';
			$tpltag['detail'] = "<a href=\"?entry=mtags&action=mtagsdetail&ttype=rtag&tname=$tpltag[tname]$param_suffix\">".lang('modify')."</a>";
			$tpltag['tname'] = "<b>{tpl\$$tpltag[tname]}</b>";
		}
		$space = "- - - - &nbsp; ";
		for($i = 0; $i < $tpltag['level']; $i++){
			$tpltag['tname'] = $space.$tpltag['tname'];
		}
		echo "<tr>".
			"<td class=\"item1\" width=\"30\" align=\"center\">$no</td>\n".
			"<td class=\"item2\">$tpltag[tname]</td>\n".
			"<td class=\"item1\" width=\"200\">$tpltag[cname]</td>\n".
			"<td class=\"item2\" width=\"60\" align=\"center\">$tpltag[tmode]</td>\n".
			"<td class=\"item1\" width=\"30\" align=\"center\">$tpltag[detail]</td>\n".
			"<td class=\"item2\" width=\"30\" align=\"center\">$tpltag[error]</td></tr>\n";
	}
	tabfooter();
	echo "<input class=\"button\" type=\"submit\" name=\"\" value=\"".lang('goback')."\" onclick=\"history.go(-1);\">\n";	
}elseif($action == 'mtagcode'){
	if(empty($createrange)) amessage(lang('please point tag source !'));
	if(preg_match("/\{(u|c|p)\\$(.+?)\s+/is",$createrange,$matches)){
		$ttype = $matches[1].'tag';
		$tname = $matches[2];
		$url = "?entry=mtags&action=mtagsdetail&ttype=$ttype$param_suffix&tname=$tname";
		mheader("location:$url");
	}elseif(preg_match("/\{tpl\\$(.+?)\}/is",$createrange,$matches)){
		$tname = $matches[1];
		$url = "?entry=mtags&action=mtagsdetail&ttype=rtag$param_suffix&tname=$tname";
		mheader("location:$url");
	}
	amessage(lang('please point tag source !'));


}
?>