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

📄 misc.inc.php

📁 Discuz功能源码(开源)
💻 PHP
📖 第 1 页 / 共 4 页
字号:
					"<input type=\"checkbox\" class=\"checkbox\" name=\"delete[]\" value=\"$custom[id]\">",
					"<input type=\"text\" class=\"txt\" size=\"3\" name=\"displayordernew[$custom[id]]\" value=\"$custom[displayorder]\">",
					"<input type=\"text\" class=\"txt\" size=\"25\" name=\"titlenew[$custom[id]]\" value=\"".lang($custom['title'])."\"><input type=\"hidden\" name=\"langnew[$custom[id]]\" value=\"$custom[title]\">",
					"<input type=\"text\" class=\"txt\" size=\"40\" name=\"urlnew[$custom[id]]\" value=\"$custom[url]\">"
				), TRUE);
				$ajaxoptionlist .= '<li><a href="'.$custom['url'].'" target="'.(substr($custom['url'], 0, 19) == $BASESCRIPT.'?action=' ? 'main' : '_blank').'">'.lang($custom['title']).'</a></li>';
			}

			if($inajax) {
				ajaxshowheader();
				echo $ajaxoptionlist.'<li>'.$multipage.'</li><script reload="1">initCpMenus(\'custommenu\');parent.cmcache=true;</script>';
				ajaxshowfooter();
				exit;
			}

			echo <<<EOT
<script type="text/JavaScript">
	var rowtypedata = [
		[
			[1,'', 'td25'],
			[1,'<input type="text" class="txt" name="newdisplayorder[]" size="3">', 'td28'],
			[1,'<input type="text" class="txt" name="newtitle[]" size="25">'],
			[1,'<input type="text" class="txt" name="newurl[]" size="40">', 'td26']
		]
	];
</script>
EOT;
			shownav('tools', 'nav_custommenu');
			showsubmenu('nav_custommenu');
			showformheader('misc&operation=custommenu');
			showtableheader();
			showsubtitle(array('', 'display_order', 'name', 'URL'));
			echo $optionlist;
			echo '<tr><td></td><td colspan="3"><div><a href="###" onclick="addrow(this, 0)" class="addtr">'.$lang['misc_custommenu_add'].'</a></div></td></tr>';
			showsubmit('optionsubmit', 'submit', 'del', '', $multipage);
			showtablefooter();
			showformfooter();

		} else {

			if($ids = implodeids($delete)) {
				$db->query("DELETE FROM {$tablepre}admincustom WHERE id IN ($ids) AND uid='$discuz_uid'");
			}

			if(is_array($titlenew)) {
				foreach($titlenew as $id => $title) {
					$title = dhtmlspecialchars($langnew[$id] && lang($langnew[$id], false) ? $langnew[$id] : $title);
					$db->query("UPDATE {$tablepre}admincustom SET title='$title', displayorder='$displayordernew[$id]', url='".dhtmlspecialchars($urlnew[$id])."' WHERE id='$id'");
				}
			}

			if(is_array($newtitle)) {
				foreach($newtitle as $k => $v) {
					$db->query("INSERT INTO {$tablepre}admincustom (title, displayorder, url, sort, uid) VALUES ('".dhtmlspecialchars($v)."', '".intval($newdisplayorder[$k])."', '".dhtmlspecialchars($newurl[$k])."', '1', '$discuz_uid')");
				}
			}

			cpmsg('custommenu_edit_succeed', $BASESCRIPT.'?action=misc&operation=custommenu', 'succeed', '<script type="text/JavaScript">parent.cmcache=false;</script>');

		}

	} elseif($do == 'add') {

		if($title && $url) {
			admincustom($title, dhtmlspecialchars($url), 1);
			cpmsg('custommenu_add_succeed', $BASESCRIPT.'?'.$url, 'succeed', '<script type="text/JavaScript">parent.cmcache=false;</script>');
		} else {
			cpmsg('undefined_action', '', 'error');
		}

	} elseif($do == 'clean') {

		if(!$confirmed) {
			cpmsg('custommenu_history_delete_confirm', "$BASESCRIPT?action=misc&operation=custommenu&do=clean", 'form');
		} else {
			$db->query("DELETE FROM {$tablepre}admincustom WHERE uid='$discuz_uid' AND sort='0'");
			cpmsg('custommenu_history_delete_succeed', '#', 'succeed', '<script type="text/JavaScript">setTimeout("parent.location.reload();", 2999);</script>');
		}

	} else {
		cpmsg('undefined_action');
	}

} elseif($operation == 'customnav') {

	if(!$do) {

		if(!submitcheck('submit')) {

			shownav('style', 'settings_styles');
			showsubmenu('settings_styles', array(
				array('nav_settings_global', 'settings&operation=styles&anchor=global', 0),
				array('nav_settings_index', 'settings&operation=styles&anchor=index', 0),
				array('nav_settings_forumdisplay', 'settings&operation=styles&anchor=forumdisplay', 0),
				array('nav_settings_viewthread', 'settings&operation=styles&anchor=viewthread', 0),
				array('nav_settings_member', 'settings&operation=styles&anchor=member', 0),
				array('nav_settings_customnav', 'misc&operation=customnav', 1),
				array(array('menu' => 'jswizard_infoside', 'submenu' => array(
					array('jswizard_infoside_global', 'jswizard&operation=infoside&from=style'),
					array('jswizard_infoside_2', 'jswizard&operation=infoside&sideid=2&from=style'),
					array('jswizard_infoside_0', 'jswizard&operation=infoside&sideid=0&from=style'),
				))),
				array('nav_settings_refresh', 'settings&operation=styles&anchor=refresh', 0),
				array('nav_settings_sitemessage', 'settings&operation=styles&anchor=sitemessage', 0)
			));
			showformheader('misc&operation=customnav');
			showtableheader();
			showsubtitle(array('', 'display_order', 'name', 'url', 'type', 'available', ''));

			$navlist = $subnavlist = array();
			$query = $db->query("SELECT * FROM {$tablepre}navs ORDER BY displayorder");
			while($nav = $db->fetch_array($query)) {
				if($nav['parentid']) {
					$subnavlist[$nav['parentid']][] = $nav;
				} else {
					$navlist[$nav['id']] = $nav;
				}
			}
			foreach($navlist as $nav) {
				showtablerow('', array('class="td25"', 'class="td25"', 'width="210"'), array(
					$nav['type'] == '0' ? '' : "<input class=\"checkbox\" type=\"checkbox\" name=\"delete[]\" value=\"$nav[id]\">",
					"<input type=\"text\" class=\"txt\" size=\"2\" name=\"displayordernew[$nav[id]]\" value=\"$nav[displayorder]\">",
					"<div><input type=\"text\" class=\"txt\" size=\"15\" name=\"namenew[$nav[id]]\" value=\"".dhtmlspecialchars($nav['name'])."\">".($nav['type'] == '1' ? "<a href=\"###\" onclick=\"addrowdirect=1;addrow(this, 1, $nav[id])\" class=\"addchildboard\">$lang[misc_nav_add_submenu]</a>" : '').'</div>',
					$nav['type'] == '0' ? $nav['url'] : "<input type=\"text\" class=\"txt\" size=\"15\" name=\"urlnew[$nav[id]]\" value=\"".dhtmlspecialchars($nav['url'])."\">",
					lang($nav['type'] == '0' ? 'inbuilt' : 'costom'),
					"<input class=\"checkbox\" type=\"checkbox\" name=\"availablenew[$nav[id]]\" value=\"1\" ".($nav['available'] ? 'checked' : '').">",
					"<a href=\"$BASESCRIPT?action=misc&operation=customnav&do=edit&id=$nav[id]\" class=\"act\">$lang[detail]</a>"
				));
				if(!empty($subnavlist[$nav['id']])) {
					$subnavnum = count($subnavlist[$nav['id']]);
					foreach($subnavlist[$nav['id']] as $sub) {
						$subnavnum--;
						showtablerow('', array('class="td25"', 'class="td25"'), array(
							$sub['type'] == '0' ? '' : "<input class=\"checkbox\" type=\"checkbox\" name=\"delete[]\" value=\"$sub[id]\">",
							"<input type=\"text\" class=\"txt\" size=\"2\" name=\"displayordernew[$sub[id]]\" value=\"$sub[displayorder]\">",
							"<div class=\"".($subnavnum ? 'board' : 'lastboard')."\"><input type=\"text\" class=\"txt\" size=\"15\" name=\"namenew[$sub[id]]\" value=\"".dhtmlspecialchars($sub['name'])."\"></div>",
							$sub['type'] == '0' ? $sub['url'] : "<input type=\"text\" class=\"txt\" size=\"15\" name=\"urlnew[$sub[id]]\" value=\"".dhtmlspecialchars($sub['url'])."\">",
							lang($sub['type'] == '0' ? 'inbuilt' : 'costom'),
							"<input class=\"checkbox\" type=\"checkbox\" name=\"availablenew[$sub[id]]\" value=\"1\" ".($sub['available'] ? 'checked' : '').">",
							"<a href=\"$BASESCRIPT?action=misc&operation=customnav&do=edit&id=$sub[id]\" class=\"act\">$lang[detail]</a>"
						));
					}
				}
			}
			echo '<tr><td colspan="2"></td><td colspan="5"><div><a href="###" onclick="addrow(this, 0, 0)" class="addtr">'.$lang['misc_nav_add_menu'].'</a></div></td></tr>';
			showsubmit('submit', 'submit', 'del');
			showtablefooter();
			showformfooter();

			require_once DISCUZ_ROOT.'./uc_client/client.php';
			$ucapparray = uc_app_ls();

			$applist = '';
			if(count($ucapparray) > 1) {
				$applist = $lang['misc_nav_add_ucenter'].'<select name="applist" onchange="app(this)"><option value=""></option>';
				foreach($ucapparray as $app) {
					if($app['appid'] != UC_APPID) {
						$applist .= "<option value=\"$app[url]\">$app[name]</option>";
					}
				}
				$applist .= '</select>';
			}

			echo <<<EOT
<script type="text/JavaScript">
	var rowtypedata = [
		[[1, '', 'td25'], [1,'<input name="newdisplayorder[]" value="" size="3" type="text" class="txt">', 'td28'], [1, '<input name="newname[]" value="" size="30" type="text" class="txt">'], [1, '<input name="newurl[]" value="" size="30" type="text" class="txt">', 'td29'], [3, '$applist <input type="hidden" name="newparentid[]" value="0" />']],
		[[1, '', 'td25'], [1,'<input name="newdisplayorder[]" value="" size="3" type="text" class="txt">', 'td28'], [1, '<div class=\"board\"><input name="newname[]" value="" size="30" type="text" class="txt"></div>'], [1, '<input name="newurl[]" value="" size="30" type="text" class="txt">', 'td29'], [3, '$applist <input type="hidden" name="newparentid[]" value="{1}" />']]
	];
	function app(obj) {
		var inputs = obj.parentNode.parentNode.getElementsByTagName('input');
		for(var i = 0; i < inputs.length; i++) {
			if(inputs[i].name == 'newname[]') {
				inputs[i].value = obj.options[obj.options.selectedIndex].innerHTML;
			} else if(inputs[i].name == 'newurl[]') {
				inputs[i].value = obj.value;
			}
		}
	}
</script>
EOT;

		} else {

			if($ids = implodeids($delete)) {
				$db->query("DELETE FROM {$tablepre}navs WHERE id IN ($ids)");
				$db->query("DELETE FROM {$tablepre}navs WHERE parentid IN ($ids)");
			}

			if(is_array($namenew)) {
				foreach($namenew as $id => $name) {
					$name = dhtmlspecialchars($name);
					$urladd = !empty($urlnew[$id]) ? ", url='".dhtmlspecialchars($urlnew[$id])."'" : '';
					$availablenew[$id] = $name && (!isset($urlnew[$id]) || $urlnew[$id]) && $availablenew[$id];
					$displayordernew[$id] = intval($displayordernew[$id]);
					$db->query("UPDATE {$tablepre}navs SET name='$name', displayorder='$displayordernew[$id]', available='$availablenew[$id]' $urladd WHERE id='$id'");
				}
			}

			if(is_array($newname)) {
				foreach($newname as $k => $v) {
					$v = dhtmlspecialchars(trim($v));
					if(!empty($v)) {
						$newavailable = $v && $newurl[$k];
						$newparentid[$k] = intval($newparentid[$k]);
						$newdisplayorder[$k] = intval($newdisplayorder[$k]);
						$newurl[$k] = dhtmlspecialchars($newurl[$k]);
						$db->query("INSERT INTO {$tablepre}navs (parentid, name, displayorder, url, type, available) VALUES ('$newparentid[$k]', '$v', '$newdisplayorder[$k]', '$newurl[$k]', '1', '$newavailable')");
					}
				}
			}

			updatecache('settings');
			cpmsg('nav_add_succeed', $BASESCRIPT.'?action=misc&operation=customnav', 'succeed');

		}

	} elseif($do == 'edit' && $id) {

		$nav = $db->fetch_first("SELECT * FROM {$tablepre}navs WHERE id='$id'");
		if(!$nav) {
			cpmsg('undefined_action', '', 'error');
		}

		if(!submitcheck('editsubmit')) {

			$string = sprintf('%02d', $nav['highlight']);

			shownav('global', 'misc_nav');
			showsubmenu('settings_styles', array(
				array('nav_settings_global', 'settings&operation=styles&anchor=global', 0),
				array('nav_settings_customnav', 'misc&operation=customnav', 1),
				array('nav_settings_index', 'settings&operation=styles&anchor=index', 0),
				array('nav_settings_forumdisplay', 'settings&operation=styles&anchor=forumdisplay', 0),
				array('nav_settings_viewthread', 'settings&operation=styles&anchor=viewthread', 0),
				array('nav_settings_member', 'settings&operation=styles&anchor=member', 0),
				array('nav_settings_refresh', 'settings&operation=styles&anchor=refresh', 0)
			));
			showformheader("misc&operation=customnav&do=edit&id=$id");
			showtableheader();
			showtitle('customnav');
			showsetting('customnav_name', 'namenew', $nav['name'], 'text');
			showsetting('customnav_title', 'titlenew', $nav['title'], 'text');
			showsetting('customnav_url', 'urlnew', $nav['url'], 'text', $nav['type'] == '0');
			showsetting('customnav_style', array('stylenew', array(lang('customnav_style_underline'), lang('customnav_style_italic'), lang('customnav_style_bold'))), $string[0], 'binmcheckbox');
			showsetting('customnav_style_color', array('colornew', array(
				array(0, '<span style="color: '.LINK.';">Default</span>'),
				array(1, '<span style="color: Red;">Red</span>'),
				array(2, '<span style="color: Orange;">Orange</span>'),
				array(3, '<span style="color: Yellow;">Yellow</span>'),
				array(4, '<span style="color: Green;">Green</span>'),
				array(5, '<span style="color: Cyan;">Cyan</span>'),
				array(6, '<span style="color: Blue;">Blue</span>'),
				array(7, '<span style="color: Purple;">Purple</span>'),
				array(8, '<span style="color: Gray;">Gray</span>'),
			)), $string[1], 'mradio');
			showsetting('customnav_url_open', array('targetnew', array(
				array(0, lang('customnav_url_open_default')),
				array(1, lang('customnav_url_open_blank'))
			), TRUE), $nav['target'], 'mradio');
			showsetting('plugins_edit_modules_adminid', array('levelnew', array(
				array(0, lang('nolimit')),
				array(1, lang('member')),
				array(2, lang('usergroups_system_3')),
				array(3, lang('usergroups_system_1')),
			)), $nav['level'], 'select');
			showsubmit('editsubmit');
			showtablefooter();
			showformfooter();

		} else {

			$namenew = dhtmlspecialchars(trim($namenew));
			$titlenew = dhtmlspecialchars(trim($titlenew));
			$urlnew = dhtmlspecialchars(trim($urlnew));
			$stylebin = '';
			for($i = 3; $i >= 1; $i--) {
				$stylebin .= empty($stylenew[$i]) ? '0' : '1';
			}
			$stylenew = bindec($stylebin);
			$targetnew = intval($targetnew) ? 1 : 0;
			$levelnew = intval($levelnew) && $levelnew > 0 && $levelnew < 4 ? intval($levelnew) : 0 ;

			$urladd = $nav['type'] == '1' && $urlnew ? ", url='".dhtmlspecialchars($urlnew)."'" : '';

			$db->query("UPDATE {$tablepre}navs SET name='$namenew', title='$titlenew', highlight='$stylenew$colornew', target='$targetnew', level='$levelnew' $urladd WHERE id='$id'");

			updatecache('settings');
			cpmsg('nav_add_succeed', $BASESCRIPT.'?action=misc&operation=customnav', 'succeed');

		}

	}

}

?>

⌨️ 快捷键说明

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