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

📄 ad_stylesets.php

📁 泛微协同办公系统标准版E-office V5.5的源代码内含泛微办公系统V5.5自动注册文件。
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php

class ad_settings
{

	var $base_url;

	function ad_settings( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		$tmp_in = array_merge( $_GET, $_POST, $_COOKIE );
		foreach ( $tmp_in as $k => $v )
		{
		}
		switch ( $IN['code'] )
		{
		case "wrapper" :
			$this->list_wrappers( );
			break;
		case "add" :
			$this->do_form( "add" );
			break;
		case "edit" :
			$this->do_form( "edit" );
			break;
		case "doadd" :
			$this->save_skin( "add" );
			break;
		case "doedit" :
			$this->save_skin( "edit" );
			break;
		case "remove" :
			$this->remove( );
			break;
		case "memskins" :
			$this->mem_skins( );
			break;
		case "export" :
			$this->export( );
			break;
		default :
			$this->list_sets( );
			break;
		}
	}

	function export( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		if ( $IN['id'] == "" )
		{
			$ADMIN->error( "你必须指定一个存在的主题界面文件ID,请返回后重试!" );
		}
		$DB->query( "SELECT * from ibf_skins WHERE uid='".$IN['id']."'" );
		if ( !( $row = $DB->fetch_row( ) ) )
		{
			$ADMIN->error( "无法在数据库中找到相关数据" );
		}
		$DB->query( "SELECT * from ibf_macro_name WHERE set_id='".$row['macro_id']."'" );
		if ( !( $macro_name = $DB->fetch_row( ) ) )
		{
			$ADMIN->error( "无法在数据库中找到相关数据" );
		}
		$DB->query( "SELECT * from ibf_css WHERE cssid='".$row['css_id']."'" );
		if ( !( $css = $DB->fetch_row( ) ) )
		{
			$ADMIN->error( "无法在数据库中找到相关数据" );
		}
		$DB->query( "SELECT * from ibf_tmpl_names WHERE skid='".$row['set_id']."'" );
		if ( !( $tmpl = $DB->fetch_row( ) ) )
		{
			$ADMIN->error( "无法在数据库中找到相关数据" );
		}
		$DB->query( "SELECT * from ibf_templates WHERE tmid='".$row['tmpl_id']."'" );
		if ( !( $wrap = $DB->fetch_row( ) ) )
		{
			$ADMIN->error( "无法在数据库中找到相关数据" );
		}
		if ( $INFO['base_dir'] == "./" )
		{
			$INFO['base_dir'] = str_replace( "\\", "/", getcwd( ) )."/";
		}
		$archive_dir = $INFO['base_dir']."archive_out";
		$images_dir = $INFO['base_dir']."style_images/".$row['img_dir'];
		require( ROOT_PATH."sources/lib/tar.php" );
		if ( !is_dir( $archive_dir ) )
		{
			$ADMIN->error( "无法找到目录 {$archive_dir}, 请检查目录是否存在?" );
		}
		if ( !is_writeable( $archive_dir ) )
		{
			$ADMIN->error( "无法写入 {$archive_dir}, 请检查目录属性(CHMOD 777)。" );
		}
		if ( !is_dir( $images_dir ) )
		{
			$ADMIN->error( "无法找到目录 {$images_dir}, 请检查目录是否存在?" );
		}
		$css_name = "stylesheet.css";
		$wrap_name = "wrapper.html";
		$macro_name = "macro.txt";
		$template_name = "templates.html";
		$img_dir = "images";
		$pack_name = preg_replace( "/\\s{1,}/", "_", $row['sname'] );
		$new_dir = "set-".$pack_name;
		if ( !mkdir( $archive_dir."/".$new_dir, 511 ) )
		{
			$ADMIN->error( "目录建立失败,无法导出主题界面文件,请检查文件目录属性 'archive_out'" );
		}
		if ( !mkdir( $archive_dir."/".$new_dir."/".$img_dir, 511 ) )
		{
			$ADMIN->error( "目录建立失败,无法导出主题界面文件,请检查文件目录属性 'archive_out'" );
		}
		$wrap['template'] = preg_replace( "/\r/", "\n", $wrap['template'] );
		$FH = fopen( $archive_dir."/".$new_dir."/".$wrap_name, "w" );
		fwrite( $FH, $wrap['template'], strlen( $wrap['template'] ) );
		fclose( $FH );
		@chmod( $archive_dir."/".$new_dir."/".$wrap_name, 511 );
		$FH = fopen( $archive_dir."/".$new_dir."/".$css_name, "w" );
		fwrite( $FH, $css['css_text'], strlen( $css['css_text'] ) );
		fclose( $FH );
		@chmod( $archive_dir."/".$new_dir."/".$css_name, 511 );
		if ( !$ADMIN->copy_dir( $images_dir, $archive_dir."/".$new_dir."/".$img_dir ) )
		{
			$ADMIN->error( $ADMIN->errors );
		}
		$file_content = "";
		$DB->query( "SELECT macro_replace, macro_value FROM ibf_macro WHERE macro_set='".$row['macro_id']."'" );
		while ( $mrow = $DB->fetch_row( ) )
		{
			if ( $mrow['macro_replace'] == "" )
			{
				$mrow['macro_replace'] = "*UNASSIGNED*";
			}
			$file_content .= $mrow['macro_value']."~=~".$mrow['macro_replace']."\n";
		}
		$FH = fopen( $archive_dir."/".$new_dir."/".$macro_name, "w" );
		fwrite( $FH, $file_content, strlen( $file_content ) );
		fclose( $FH );
		@chmod( $archive_dir."/".$new_dir."/".$macro_name, 511 );
		$output = "";
		$groups = $DB->query( "SELECT DISTINCT(group_name) FROM ibf_skin_templates WHERE set_id='".$row['set_id']."'" );
		if ( !$DB->get_num_rows( $groups ) )
		{
			$ADMIN->rm_dir( $archive_dir );
			$ADMIN->error( "导出失败:无法在数据库中找到相关数据。" );
		}
		$output .= "<!--TEMPLATE_SET|internal,internal,internal,internal-->\n\n";
		while ( $trow = $DB->fetch_row( $groups ) )
		{
			$aq = $DB->query( "SELECT * FROM ibf_skin_templates WHERE set_id='".$row['set_id']."' AND group_name='".$trow['group_name']."'" );
			if ( !$DB->get_num_rows( $aq ) )
			{
				$ADMIN->rm_dir( $archive_dir );
				$ADMIN->error( "无法在数据库中找到相关数据。" );
			}
			$output .= "<!-- PLEASE LEAVE ALL 'IBF' COMMENTS IN PLACE, DO NOT REMOVE THEM! -->\n<!--IBF_GROUP_START:{$trow['group_name']}-->\n\n";
			while ( $next_row = $DB->fetch_row( $aq ) )
			{
				$text = $this->convert_tags( $next_row['section_content'] );
				$text = str_replace( "\r\n", "\n", $text );
				$text = str_replace( "\n\n", "\n", $text );
				$output .= "<!--IBF_START_FUNC|{$next_row['func_name']}|{$next_row['func_data']}-->\n\n";
				$output .= $text."\n";
				$output .= "<!--IBF_END_FUNC|{$next_row['func_name']}-->\n\n";
			}
			$output .= "\n<!--IBF_GROUP_END:{$trow['group_name']}-->\n";
		}
		$FH = fopen( $archive_dir."/".$new_dir."/".$template_name, "w" );
		fwrite( $FH, $output, strlen( $output ) );
		fclose( $FH );
		@chmod( $archive_dir."/".$new_dir."/".$template_name, 511 );
		$file_content = "<?php\n\n\$config=array('author' => \"".addslashes( $tmpl['author'] )."\", "."'email'=>\"".addslashes( $tmpl['email'] )."\", "."'url'=>\"".addslashes( $tmpl['url'] )."\")\n\n?".">";
		$FH = fopen( $archive_dir."/".$new_dir."/"."templates_conf.inc", "w" );
		fwrite( $FH, $file_content, strlen( $file_content ) );
		fclose( $FH );
		@chmod( $archive_dir."/".$new_dir."/"."templates_conf.inc", 511 );
		$tar = new tar( );
		$tar->new_tar( $archive_dir, $new_dir.".tar" );
		$tar->add_directory( $archive_dir."/".$new_dir );
		$tar->write_tar( );
		if ( $tar->error != "" )
		{
			$ADMIN->rm_dir( $archive_dir );
			$ADMIN->error( $tar->error );
		}
		$ADMIN->rm_dir( $archive_dir."/".$new_dir );
		$ADMIN->done_screen( "主题界面已经导出<br><br>你现在可以[<a href='archive_out/{$new_dir}.tar' target='_blank'>按此下载</a>] tar 文件。", "主题界面管理", "act=sets" );
	}

	function convert_tags( $t = "" )
	{
		if ( $t == "" )
		{
			return "";
		}
		$t = preg_replace( "/{?\\\$ibforums->base_url}?/", "{ibf.script_url}", $t );
		$t = preg_replace( "/{?\\\$ibforums->session_id}?/", "{ibf.session_id}", $t );
		$t = preg_replace( "/{?\\\$ibforums->skin\\['?(\\w+)'?\\]}?/", "{ibf.skin.\\1}", $t );
		$t = preg_replace( "/{?\\\$ibforums->lang\\['?(\\w+)'?\\]}?/", "{ibf.lang.\\1}", $t );
		$t = preg_replace( "/{?\\\$ibforums->vars\\['?(\\w+)'?\\]}?/", "{ibf.vars.\\1}", $t );
		$t = preg_replace( "/{?\\\$ibforums->member\\['?(\\w+)'?\\]}?/", "{ibf.member.\\1}", $t );
		return $t;
	}

	function mem_skins( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		global $HTTP_POST_VARS;
		$DB->query( "SELECT sid FROM ibf_skins WHERE uid='".$IN['oid']."'" );
		$old = $DB->fetch_row( );
		if ( $IN['nid'] == "n" )
		{
			$DB->query( "UPDATE ibf_members SET skin=NULL WHERE skin='".$old['sid']."'" );
		}
		else
		{
			$DB->query( "SELECT sid FROM ibf_skins WHERE uid='".$IN['nid']."'" );
			$new = $DB->fetch_row( );
			$DB->query( "UPDATE ibf_members SET skin='".$new['sid']."' WHERE skin='".$old['sid']."'" );
		}
		$ADMIN->done_screen( "用户主题界面已经更新", "主题界面管理", "act=sets" );
	}

	function remove( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		global $HTTP_POST_VARS;
		if ( $IN['id'] == "" )
		{
			$ADMIN->error( "你必须指定一个存在的主题界面文件ID,请返回后重试!" );
		}
		$DB->query( "SELECT * FROM ibf_skins WHERE uid='".$IN['id']."'" );
		if ( !( $skin = $DB->fetch_row( ) ) )
		{
			$ADMIN->error( "无法在数据库中找到相关主题界面信息" );
		}
		if ( $skin['default_set'] == 1 )
		{
			$ADMIN->error( "你可以删除这个默认的主题界面文件,并且设置其它的主题界面文件为默认主题界面。" );
		}
		$DB->query( "UPDATE ibf_members SET skin='' WHERE skin='".$skin['sid']."'" );
		$DB->query( "SELECT id FROM ibf_forums WHERE skin_id='".$skin['sid']."'" );
		if ( $DB->get_num_rows( ) )
		{
			$arr = array( );
			while ( $i = $DB->fetch_row( ) )
			{
				$arr["forum_skin_".$i['id']] = "";
			}
			$DB->query( "UPDATE ibf_forums SET skin_id='' WHERE skin_id='".$skin['sid']."'" );
			$ADMIN->rebuild_config( $arr );
		}
		$DB->query( "DELETE FROM ibf_skins WHERE uid='".$IN['id']."'" );
		$std->boink_it( $SKIN->base_url."&act=sets" );
		exit( );
	}

	function save_skin( $type = "add" )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		global $HTTP_POST_VARS;
		if ( $type == "edit" && $IN['id'] == "" )
		{
			$ADMIN->error( "你必须指定一个存在的主题界面文件ID,请返回后重试!" );
		}
		if ( $IN['sname'] == "" )
		{
			$ADMIN->error( "你必须为这个主题界面ID指定名称" );
		}
		$barney = array(
			"sname" => stripslashes( $HTTP_POST_VARS['sname'] ),
			"set_id" => $IN['template'],
			"tmpl_id" => $IN['wrapper'],
			"img_dir" => $IN['img_dir'],
			"css_id" => $IN['css'],
			"hidden" => $IN['hidden'],
			"default_set" => $IN['default_set'],
			"macro_id" => $IN['macro_id']
		);
		if ( $type == "add" )
		{
			$DB->query( "SELECT MAX(sid) as new_id FROM ibf_skins" );
			$row = $DB->fetch_row( );

⌨️ 快捷键说明

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