⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mychannel_edit.php

📁 这是matlab的一个小程序
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php
require_once(dirname(__FILE__)."/config.php");
CheckPurview('c_Edit');
require_once(DEDEINC."/dedetag.class.php");
require_once(DEDEINC."/oxwindow.class.php");
if(empty($dopost))
{
	$dopost="";
}
$id = isset($id) && is_numeric($id) ? $id : 0;

/*----------------
function __ShowHide()
-----------------*/
if($dopost=="show")
{
	$dsql->ExecuteNoneQuery("update `#@__channeltype` set isshow=1 where id='$id' ");
	ShowMsg("操作成功!","mychannel_main.php");
	exit();
}
else if($dopost=="hide")
{
	$dsql->ExecuteNoneQuery("update `#@__channeltype` set isshow=0 where id='$id'");
	ShowMsg("操作成功!","mychannel_main.php");
	exit();
}
/*----------------
function __CopyStart()
-----------------*/
else if($dopost=="copystart")
{
	if($id==-1)
	{
		ShowMsg("专题模型不支持复制!","-1");
		exit();
	}
	$row = $dsql->GetOne("Select * From `#@__channeltype` where id='$id'");
	if($row['id']>-1)
	{
		$nrow = $dsql->GetOne("Select max(id) as id From `#@__channeltype` limit 0,1 ");
		$newid = $nrow['id']+1;
		if($newid<10)
		{
			$newid = $newid+10;
		}
		$idname = $newid;
	}
	else
	{
		$nrow = $dsql->GetOne("Select min(id) as id From `#@__channeltype` limit 0,1 ");
		$newid = $nrow['id']-1;
		if($newid<-10)
		{
			$newid = $newid-10;
		}
		$idname = 'w'.($newid * -1);
	}
	$row = $dsql->GetOne("Select * From `#@__channeltype` where id='$id'");
	$wintitle = "频道管理-模型复制";
	$wecome_info = "<a href='mychannel_main.php'>频道管理</a> - 模型复制";
	$win = new OxWindow();
	$win->Init("mychannel_edit.php","js/blank.js","post");
	$win->AddTitle("被复制频道: [<font color='red'>".$row['typename']."</font>]");
	$win->AddHidden("cid",$id);
	$win->AddHidden("id",$id);
	$win->AddHidden("dopost",'copysave');
	$msg = "
		<table width='460' border='0' cellspacing='0' cellpadding='0'>
		<tr>
		<td width='170' height='24' align='center'>新频道id:</td>
		<td width='230'><input name='newid' type='text' id='newid' size='6' value='{$newid}' /></td>
		</tr>
		<tr>
		<td height='24' align='center'>新频道名称:</td>
		<td><input name='newtypename' type='text' id='newtypename' value='{$row['typename']}{$idname}' style='width:250px' /></td>
		</tr>
		<tr>
		<td height='24' align='center'>新频道标识:</td>
		<td><input name='newnid' type='text' id='newnid' value='{$row['nid']}{$idname}' style='width:250px' /></td>
		</tr>
		<tr>
		<td height='24' align='center'>新附加表:</td>
		<td><input name='newaddtable' type='text' id='newaddtable' value='{$row['addtable']}{$idname}' style='width:250px' /></td>
		</tr>
		<tr>
		<td height='24' align='center'>复制模板:</td>
		<td>
		<input name='copytemplet' type='radio' id='copytemplet' value='1' class='np' checked='checked' /> 复制
		&nbsp;
		<input name='copytemplet' type='radio' id='copytemplet' class='np' value='0' /> 不复制
		</td>
		</tr>
		</table>
		";
	$win->AddMsgItem("<div style='padding:20px;line-height:300%'>$msg</div>");
	$winform = $win->GetWindow("ok","");
	$win->Display();
	exit();
}
/*----------------
function __Export()
-----------------*/
else if($dopost=="export")
{
	if($id==-1)
	{
		ShowMsg("专题模型不支持导出!","-1");
		exit();
	}
	$row = $dsql->GetOne("Select * From `#@__channeltype` where id='$id' ");
	$channelconfig = '';
	$row['maintable'] = ereg_replace('dede_','#@__',$row['maintable']);
	$row['addtable'] = ereg_replace('dede_','#@__',$row['addtable']);
	foreach($row as $k=>$v)
	{
		if($k=='fieldset') $v = "\r\n$v\r\n";
		$channelconfig .= "<channel:{$k}>$v</channel:{$k}>\r\n";
	}
	$wintitle = "导出内容模型规则";
	$wecome_info = "<a href='mychannel_main.php'><u>内容模型管理</u></a>::导出内容模型规则";
	$win = new OxWindow();
	$win->Init();
	$win->AddTitle("以下为规则 [{$row['typename']}] 的模型规则,你可以共享给你的朋友:");
	$winform = $win->GetWindow("hand","<textarea name='config' style='width:100%;height:450px;word-wrap: break-word;word-break:break-all;'>".$channelconfig."</textarea>");
	$win->Display();
	exit();
}
/*----------------
function __ExportIn()
-----------------*/
else if($dopost=="exportin")
{
	$wintitle = "导入内容模型规则";
	$wecome_info = "<a href='mychannel_main.php'>内容模型管理</a>::导入内容模型规则";
	$win = new OxWindow();
	$win->Init("mychannel_edit.php","js/blank.js","post");
	$win->AddHidden("dopost","exportinok");
	$win->AddTitle("输入规则内容:(导入模型会和原有模型冲突,不过可以在导入后修改)");
	$win->AddMsgItem("<textarea name='exconfig' style='width:100%;height:450px;word-wrap: break-word;word-break:break-all;'></textarea>");
	$winform = $win->GetWindow("ok");
	$win->Display();
	exit();
}
/*----------------
function __ExportInOk()
-----------------*/
else if($dopost=="exportinok")
{
	require_once(DEDEADMIN."/inc/inc_admin_channel.php");
	function GotoStaMsg($msg)
	{
		global $wintitle,$wecome_info,$winform;
		$wintitle = "导入内容模型规则";
		$wecome_info = "<a href='mychannel_main.php'>内容模型管理</a>::导入内容模型规则";
		$win = new OxWindow();
		$win->Init();
		$win->AddTitle("操作状态提示:");
		$win->AddMsgItem($msg);
		$winform = $win->GetWindow("hand");
		$win->Display();
		exit();
	}
	
	$msg = "无信息";
	$exconfig = stripslashes($exconfig);
	
	$dtp = new DedeTagParse();
	$dtp->SetNameSpace('channel','<','>');
	$dtp->LoadSource($exconfig);
	
	if(!is_array($dtp->CTags))
	{
		GotoStaMsg("模型规则不是合法的Dede模型规则!");
	}
	
	$fields = array();
	foreach($dtp->CTags as $ctag)
	{
		$fname = $ctag->GetName('name');
		$fields[$fname] = trim($ctag->GetInnerText());
	}
	
	if(!isset($fields['nid']) || !isset($fields['fieldset']))
	{
		GotoStaMsg("模型规则不是合法的Dede模型规则!");
	}
	
	//正常的导入过程
	
	$mysql_version = $dsql->GetVersion(true);
	
	$row = $dsql->GetOne("Select * From `#@__channeltype` where nid='{$fields['nid']}' ");
	if(is_array($row))
	{
		GotoStaMsg("系统中已经存在相同标识 {$fields['nid']} 的规则!");
	}
	
	//创建表
	if($fields['issystem'] != -1)
	{
			$tabsql = "CREATE TABLE IF NOT EXISTS `{$fields['addtable']}`(
	                  `aid` int(11) NOT NULL default '0',
                    `typeid` int(11) NOT NULL default '0',
                    `redirecturl` varchar(255) NOT NULL default '',
                    `templet` varchar(30) NOT NULL default '',
                    `userip` char(15) NOT NULL default '',
      ";
	}
	else
	{
			 $tabsql = "CREATE TABLE IF NOT EXISTS `{$fields['addtable']}`(
	                  `aid` int(11) NOT NULL default '0',
                    `typeid` int(11) NOT NULL default '0',
                    `channel` SMALLINT NOT NULL DEFAULT '0',
                    `arcrank` SMALLINT NOT NULL DEFAULT '0',
                    `mid` MEDIUMINT( 8 ) UNSIGNED NOT NULL DEFAULT '0',
                    `click` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0',
                    `title` varchar(60) NOT NULL default '',
                    `senddate` int(11) NOT NULL default '0',
                    `flag` set('c','h','p','f','s','j','a','b') default NULL,
       ";
	}
	if($mysql_version < 4.1)
	{
			$tabsql .= "    PRIMARY KEY  (`aid`), KEY `typeid` (`typeid`)\r\n) TYPE=MyISAM; ";
	}
	else
	{
			$tabsql .= "    PRIMARY KEY  (`aid`), KEY `typeid` (`typeid`)\r\n) ENGINE=MyISAM DEFAULT CHARSET=".$cfg_db_language."; ";
	}
	$rs = $dsql->ExecuteNoneQuery($tabsql);
	if(!$rs)
	{
		GotoStaMsg("创建表失败!".$dsql->GetError());
		exit();
	}
	
	if($fields['issystem']==1)
	{
		$fields['issystem'] = 0;
	}

	if($fields['issystem'] == 0) 
	{
		$row = $dsql->GetOne("Select id From `#@__channeltype` order by id desc ");
		$fields['newid'] = $row['id'] + 1;
	}
	else
	{
		$row = $dsql->GetOne("Select id From `#@__channeltype` order by id asc ");
		$fields['newid'] = $row['id'] - 1;
	}
	
	$fieldset = $fields['fieldset'];
	$fields['fieldset'] = addslashes($fields['fieldset']);
	
	$inquery = " INSERT INTO `#@__channeltype`(`id` , `nid` , `typename` , `addtable` , `addcon` ,
	 `mancon` , `editcon` , `useraddcon` , `usermancon` , `usereditcon` ,
	  `fieldset` , `listfields` , `issystem` , `isshow` , `issend` ,
	   `arcsta`,`usertype` , `sendrank` )
    VALUES('{$fields['newid']}' , '{$fields['nid']}' , '{$fields['typename']}' , '{$fields['addtable']}' , '{$fields['addcon']}' ,
     '{$fields['mancon']}' , '{$fields['editcon']}' , '{$fields['useraddcon']}' , '{$fields['usermancon']}' , '{$fields['usereditcon']}' ,
      '{$fields['fieldset']}' , '{$fields['listfields']}' , '{$fields['issystem']}' , '{$fields['isshow']}' , '{$fields['issend']}' ,
       '{$fields['arcsta']}' , '{$fields['usertype']}' , '{$fields['sendrank']}' ); ";
	
	$rs = $dsql->ExecuteNoneQuery($inquery);

	if(!$rs)
	{
		GotoStaMsg("导入模型时发生错误!".$dsql->GetError());
	}

	$dtp = new DedeTagParse();
	$dtp->SetNameSpace("field","<",">");
	$dtp->LoadSource($fieldset);	  	
	$allfields = '';
	if(is_array($dtp->CTags))
	{
		foreach($dtp->CTags as $ctag)
		{
			//检测被修改的字段类型
			$dtype = $ctag->GetAtt('type');
			$fieldname = $ctag->GetName();
			$dfvalue = $ctag->GetAtt('default');
			$islist = $ctag->GetAtt('islist');
			$mxlen = $ctag->GetAtt('maxlength');
			$fieldinfos = GetFieldMake($dtype,$fieldname,$dfvalue,$mxlen);
			$ntabsql = $fieldinfos[0];
			$buideType = $fieldinfos[1];
			if($islist!='')
			{
				$allfields .= ($allfields=='' ? $fieldname : ','.$fieldname);
			}
			$dsql->ExecuteNoneQuery(" ALTER TABLE `{$fields['addtable']}` ADD  $ntabsql ");
		}
	}

	if($allfields!='')
	{
		$dsql->ExecuteNoneQuery("Update `#@__channeltype` set listfields='$allfields' where id='{$fields['newid']}' ");
	}

	GotoStaMsg("成功导入一个模型!");
	
}
/*----------------
function __SaveCopy()
-----------------*/
else if($dopost=="copysave")
{
	$cid = intval($cid);
	$row = $dsql->GetOne("Select * From `#@__channeltype` where id='$cid' ", MYSQL_ASSOC);
	foreach($row as $k=>$v)
	{
		${strtolower($k)} = addslashes($v);
	}
	$inquery = " INSERT INTO `#@__channeltype`(`id` , `nid` , `typename` , `addtable` , `addcon` ,
                `mancon` , `editcon` , `useraddcon` , `usermancon` , `usereditcon` , `fieldset` , `listfields` ,
                 `issystem` , `isshow` , `issend` , `arcsta`,`usertype` , `sendrank` )
              VALUES('$newid' , '$newnid' , '$newtypename' , '$newaddtable' , '$addcon' ,
               '$mancon' , '$editcon' , '$useraddcon' , '$usermancon' , '$usereditcon' , '$fieldset' , '$listfields' ,
               '$issystem' , '$isshow' , '$issend' , '$arcsta','$usertype' , '$sendrank' );
  ";
	$mysql_version = $dsql->GetVersion(true);
	if(!$dsql->IsTable($newaddtable))
	{
		$dsql->Execute('me',"SHOW CREATE TABLE {$dsql->dbName}.{$addtable}");
		$row = $dsql->GetArray('me', MYSQL_BOTH);
		$tableStruct = $row[1];
		$tb = str_replace('#@__',$cfg_dbprefix,$addtable);
		$tableStruct = preg_replace("/CREATE TABLE `$addtable`/iU","CREATE TABLE `$newaddtable`",$tableStruct);
		$dsql->ExecuteNoneQuery($tableStruct);
	}
	if($copytemplet==1)
	{
		$tmpletdir = $cfg_basedir.$cfg_templets_dir.'/'.$cfg_df_style;
		copy("{$tmpletdir}/{$nid}_article.htm","{$tmpletdir}/{$newnid}_article.htm");
		copy("{$tmpletdir}/list_{$nid}.htm","{$tmpletdir}/{$newnid}_list.htm");
		copy("{$tmpletdir}/index_{$nid}.htm","{$tmpletdir}/{$newnid}_index.htm");
	}
	$rs = $dsql->ExecuteNoneQuery($inquery);
	if($rs)
	{
		ShowMsg("成功复制模型,现转到详细参数页... ","mychannel_edit.php?id={$newid}&dopost=edit");
		exit();
	}
	else
	{
		$errv = $dsql->GetError();
		ShowMsg("系统出错,请把错误代码发送到官方论坛,以检查原因!<br /> 错误代码:mychannel_edit.php?dopost=savecopy $errv","javascript:;");
		exit();
	}
}
/*------------
function __SaveEdit()
------------*/
else if($dopost=="save")
{
	
	$fieldset = ereg_replace("[\r\n]{1,}","\r\n",$fieldset);
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -