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

📄 editpage.php

📁 一款基于PHP的网络日记程序。WikyBlog支持:多用户的 BLOG
💻 PHP
字号:
<?php//$lang checkeddefined('WikyBlog') or die("Not an entry point...");if( empty($_SESSION['textareaY']) ){	$_SESSION['textareaY'] = 20;}function mysqlSetToArray($string){	$array = array();		$string = wbStr_replace('set(','',$string);	$string = wbStr_replace(')','',$string);	$string = wbStr_replace('\'','',$string);		$temp = array();	$temp = wbExplode(',',$string);		foreach($temp as $value){		$array[$value] = $value;	}		return $array;	}function toEditArea(&$text,$toolbar=false,$textarea=false){	$temp = '<div class="WBeditArea1">';		if( $toolbar && $textarea ){			$temp .= getToolbar($textarea);		}				//$temp .= '<table class="WBeditArea2"><tr><td>';		$temp .= '<div class="WBeditArea2">';		if($textarea){						$temp .= '<textarea class="WBtextarea" onblur="setScroll(this)" wrap="soft" rows="'.$_SESSION['textareaY'].'" name="'.$textarea.'" cols="80" onchange="wbEdit.set(true)"';			$temp .= '>';			$temp .= htmlspecialchars($text);			$temp .= '</textarea>';					}else{			$temp .= $text;		}		$temp .= '</div>';		//$temp .= '</td></td></table>';	$temp .= '</div>';	return $temp;}function getToolbar($textarea){	global $page,$pageOwner,$lang;				$text = '<div class="WBeditToolbar">';		$text .= '<a href="javascript:void(0)" onclick="insertWiki(\''.$textarea.'\', \'\\\'\\\'\\\'\', \'\\\'\\\'\\\'\', \''.$lang['bold_text'].'\');"><img src="'.wbLinks::getDir('/imgs/button_bold.gif').'" alt="'.$lang['bold_text'].'" title="'.$lang['bold_text'].'" width="18" height="18" /></a>';	$text .= '<a href="javascript:void(0)" onclick="insertWiki(\''.$textarea.'\', \'\\\'\\\'\', \'\\\'\\\'\', \''.$lang['italic_text'].'\');"><img src="'.wbLinks::getDir('/imgs/button_italic.gif').'" alt="'.$lang['italic_text'].'" title="'.$lang['italic_text'].'" width="18" height="18" /></a>';	$text .= '<a href="javascript:void(0)" onclick="insertWiki(\''.$textarea.'\', \'\n== \', \' ==\n\', \''.$lang['headline_text'].'\');"><img src="'.wbLinks::getDir('/imgs/button_header.gif').'" alt="'.$lang['headline_text'].'" title="'.$lang['headline_text'].'" width="20" height="18" /></a>';		$text .= '<a href="javascript:void(0)" onclick="insertWiki(\''.$textarea.'\', \'\n*\', \'\', \''.$lang['unordered_list'].'\');"><img src="'.wbLinks::getDir('/imgs/icons/text_list_bullets.gif').'" alt="'.$lang['headline_text'].'" title="'.$lang['headline_text'].'" width="20" height="18" /></a>';	$text .= '<a href="javascript:void(0)" onclick="insertWiki(\''.$textarea.'\', \'\n#\', \'\', \''.$lang['ordered_list'].'\');"><img src="'.wbLinks::getDir('/imgs/icons/text_list_numbers.gif').'" alt="'.$lang['headline_text'].'" title="'.$lang['headline_text'].'" width="20" height="18" /></a>';			$text .= '<img src="'.wbLinks::getDir('/imgs/button_spacer.gif').'" />';	$link = '/'.$pageOwner['username'].'/'.$lang['page'].'|'.$lang['title'];	$text .= '<a href="javascript:void(0)" onclick="insertWiki(\''.$textarea.'\', \'[[\', \']]\', \''.$link.'\');"><img src="'.wbLinks::getDir('/imgs/button_link.gif').'" alt="'.$lang['link'].'" title="'.$lang['internal_link'].'" width="20" height="18" /></a>';	$text .= '<a href="javascript:void(0)" onclick="insertWiki(\''.$textarea.'\', \'[\', \']\', \'http://www.example.com link title\');"><img src="'.wbLinks::getDir('/imgs/button_extlink.gif').'" alt="'.$lang['external_link'].'" title="'.$lang['external_link'].'" width="25" height="18" /></a>';		$text .= '<img src="'.wbLinks::getDir('/imgs/button_spacer.gif').'" />';		//$text .= '<img src="'.wbLinks::getDir('/imgs/button_spacer.gif').'" />';	//$text .= '<a href="javascript:void(0)" onclick="insertWiki(\''.$textarea.'\', \'\n----\n\', \'\', \'\');"><img src="'.wbLinks::getDir('/imgs/button_hr.gif').'" alt="Line" title="Horizontal Line" width="18" height="18" /></a>';	$text .= '<a href="javascript:void(0)" onclick="insertWiki(\''.$textarea.'\', \'<nowiki>\', \'</nowiki>\', \''.$lang['NOWIKI_TEXT'].'\');"><img src="'.wbLinks::getDir('/imgs/button_nowiki.gif').'" alt="'.$lang['nowiki'].'" title="'.$lang['NOWIKI_TEXT'].'" height="18" width="50" /></a>';	$text .= '<a href="javascript:void(0)" onclick="insertWiki(\''.$textarea.'\', \'\', \'\', \'~~~\');"><img src="'.wbLinks::getDir('/imgs/button_sig.gif').'" alt="'.$lang['signature'].'" title="'.$lang['SIGNATURE_TEXT'].'" height="18" width="20" /></a>';		//$text .= '<a href="javascript:void(0)" onclick="insertWiki(\''.$textarea.'\', \'\\t\', \'\', \'\');"><img src="'.wbLinks::getDir('/imgs/button_tab.gif').'" alt="Tab" title="Insert Tab" height="18" width="50" /></a>';		//$text .= '<img src="'.wbLinks::getDir('/imgs/button_spacer.gif').'" />';		///// images		$text .= '<span onmouseover="showSelect(\'wbImgs\')" onmouseout="showSelect(\'wbImgs\',1)">';			$text .= '<img src="'.wbLinks::getDir('/imgs/button_image.gif').'" alt="'.$lang['image'].'" title="'.$lang['embed_image'].'" width="22" height="18" />';			//$text .= '<input type="image" src="'.wbLinks::getDir('/imgs/button_image.gif').'" name="wbImg" align="top" onclick="return false">';			$text .= '<select onchange="embedMarkup(\''.$textarea.'\',this)" name="wbImgs" style="display:none" title="'.$lang['embed_image'].'">';			//$text .= '<select onchange="embedImg(\''.$textarea.'\',this)" name="wbImgs" style="visibility:hidden" title="'.$lang['embed_image'].'">';						$text .= '<option value=""></option>';			$text .= '<optgroup label="'.$lang['embed_image'].'" title="'.$lang['embed_image'].'">';						if( isset($pageOwner['imgs']) && is_array($pageOwner['imgs']) ){				foreach($pageOwner['imgs'] as $file => $size){					if( $size ){						$text .= '<option value="[[Image:'.htmlspecialchars($file).']]" >'.htmlspecialchars($file).'</option>';					}				}			}else{				$text .= '<option value="">'.$lang['NO_IMAGES'].'</option>';			}			$text .= '<option value=""></option>';			$text .= '</optgroup>';			$text .= '</select>';			$text .= ' &nbsp; ';			$text .= '</span>';		///// smiles		$text .= '<span onmouseover="showSelect(\'wbEmoticons\')" onmouseout="showSelect(\'wbEmoticons\',1)">';			$text .= '<img src="'.wbLinks::getDir('/imgs/smiles/icon_biggrin.gif').'" alt="'.$lang['insert_emoticons'].'" title="'.$lang['insert_emoticons'].'" width="15" height="15" /> ';			$text .= '<select onchange="embedMarkup(\''.$textarea.'\',this)" name="wbEmoticons" style="display:none" title="'.$lang['insert_emoticons'].'">';			$text .= '<option value=""></option>';			$text .= '<optgroup label="'.$lang['insert_emoticons'].'" title="'.$lang['insert_emoticons'].'">';				foreach($lang['smiles'] as $markup => $txt){				$text .= '<option value=" '.htmlspecialchars($markup).' " >'.htmlspecialchars($txt).'</option>';			}			$text .= '</optgroup>';			$text .= '</select>';			$text .= ' &nbsp; ';		$text .= '</span>';			$text .= '</div>';		return $text;}function saveBar($keywords=true,$prev=true,$save=true,$reset=true,$changes=true){	global $page, $pageOwner, $dbObject, $localHost, $lang;	$text = '';		$text .= '<!--[if lt IE 6]><style>.WBtoolbar{width:auto !important}</style><![endif]-->';	$text .= '<table class="WBtoolbar"><tr>';	//	Save	if( $save ){		$text .= '<td rowspan=2>';		if( is_string($save) ){			$text .= $save;		}else{			$text .= '<input name="cmd" value="'.$lang['save'].'" class="WBbutton" type="submit" accesskey="s" title="'.$lang['SAVE_TEXT'].'" onclick="wbEdit.set(false)" />';			//$text .= '<input name="cmd" value="Save" class="WBbutton" type="submit" accesskey="s" title="Save your changes [alt-s]" />';		}		$text .= '</td>';	}		//	Preview	if( $prev ){		$text .= '<td rowspan=2>';		if(is_string($prev)){			$text .= $prev;		}else{			$text .= '<input name="cmd" value="'.$lang['preview'].'" class="WBbutton" type="submit" accesskey="p" title="'.$lang['PREVIEW_TEXT'].'" />';		}		$text .= '</td>';	}		//	changes	if( $changes ){		$text .= '<td rowspan=2>';		if( is_string($changes) ){			$text .= $changes;		}else{			$text .= '<input type="submit" name="cmd" value="'.$lang['changes'].'" class="WBbutton" accesskey="d" title="'.$lang['CHANGES_TEXT'].'" />';		}		$text .= '</td>';	}		//	Reset	if( $reset ){		$text .= '<td rowspan=2>';		if( is_string($reset) ){			$text .= $reset;		}else{			$text .= '<input type="reset" name="cmd" value="'.$lang['reset'].'" class="WBbutton" accesskey="c" title="'.$lang['RESET_TEXT'].'" onclick="wbEdit.set(false)" />';		}		$text .= '</td>';	}				////	KEYWORDS	//		$keyword because of Events which has a different way of defining keywords	//	//		changing keywords changes the $pageOwner variable	if( $keywords ){			$keyArray = array();		//default message		if(empty( $dbObject->keywords ) ){			$temp = '('.htmlspecialchars($lang['DEFAULT_KEYWORD_FIELD']).')';		}else{			$temp = wbStr_replace(',',', ',$dbObject->keywords).',';//put a comma on the end for the javascript		}				//auto-complete keywords		if( !empty($pageOwner['keywords']) ){			foreach($pageOwner['keywords'] as $key => $num){				$keyArray[] = $key;			}		}		$text .= '<td style="text-align:right" class="sm">';		$text .= $lang['tags'];		$text .= '</td><td style="text-align:left;overflow:hidden;">';			$text .= '<input type="hidden" name="keyList" value="'.str_replace(array('<','>'),array('&lt;','&gt;'),implode(',',$keyArray)).'" />';			$text .= ':&nbsp;<input onfocus="tagFocus(this,\''.htmlspecialchars($pageOwner['username']).'\')" onkeyup="tagChange()" onblur="tagBlur()" type="text" size="50" title="('.htmlspecialchars($lang['DEFAULT_KEYWORD_FIELD']).')" class="WBinputText" maxlength="200" name="keywords" value="'.$temp.'" />';		$text .= '</td></tr><tr>';	}		if(isset($_POST['summary'])){		$summary =& $_POST['summary'];	}else{ 		$summary = '';	}	$text .= '<td style="text-align:right" class="sm">';	$text .= $lang['edit_summary'];	$text .= '</td><td style="text-align:left;overflow:hidden;">';	$text .= ':&nbsp;<input type="text" size="50" class="WBinputText" maxlength="200" name="summary" value="'. htmlspecialchars($summary) .'" />';	$text .= '</td>';				$text .= '</tr></table>';	//	I'd  like to show the editor when an include is being used..	//		but the parser is not run for editing so the includes array is not populated...	//		// if( count($dbObject->includes) > 0){	// 	$text .= '<p>includes</p>';	// }		return $text;}// SESSION Editing Array//	- makes sure users don't overwrite simultaneous editsfunction initiateEdit(){	global $page,$dbObject;		//	$_SESSION['editPage'] tells toolSavePage if the user is editing the current version or not	//	truncate length of list to 6	if( isset($_SESSION['editPage']) ){		while( count($_SESSION['editPage']) > 6){			array_shift($_SESSION['editPage']);		}	}else{		$_SESSION['editPage'] = array();	}		unset($_SESSION['editPage'][$dbObject->uniqStorage]);	// add current page... array length of 7	$_SESSION['editPage'][$dbObject->uniqStorage] = $dbObject->modified;	}////					FUNCTIONS//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 					FLOW AND DISPLAY//global $page, $dbObject, $lang, $wbParser;if( !cookies() ){	message('COOKIES_REQUIRED');	return;}$xmlHttpOverride = false;switch( $page->userCmd ){	case 'preview':	case wbStrtolower($lang['preview']):		message('PREVIEW_WARN');				// won't be inside form		// $saveButton = '<input name="cmd" value="'.$lang['save'].'" class="WBbutton" type="submit" accesskey="s" title="'.$lang['SAVE_TEXT'].'" onclick="wbEdit.set(false)" />';		// message('Save: '.$saveButton);				$dbObject->setFromPost();		$dbObject->checkData(false);		$field = $dbObject->outputObj(true);		$dbObject->addFooter($field);	break;		//toolSavePage.php include this script sometimes..	//	if it does we don't want the default edit case to happen	case 'save'://maps don't use $lang['save']	case wbStrtolower($lang['save']):		$xmlHttpOverride = true;	break;		case 'append':	case 'appenddata':		$data = '';		if( !empty($_POST['appendContent']) ){			$data = $_POST['appendContent'];					}elseif( !empty($_GET['appendContent']) ){			$data = $_GET['appendContent'];		}		if($dbObject->exists){			$dbObject->content .= "\n\n". $data;		}else{			$dbObject->content = $data;		}		case 'edit':	default:		$xmlHttpOverride = true;		initiateEdit();				//for editErrors		if( strpos($dbObject->flags,'safe') === false){			$dbObject->checkData();	//version 0.10... after a while, should just be able to rely completely on the "safe" flag									//and not have to checkData() here again..		}			break;}////		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////		The Edit Box!////	3)	Edit Valuesif( !isset($_GET['wb']) || $xmlHttpOverride ){	$page->contentShowId = $dbObject->editLabel;	if( !empty($dbObject->links[$dbObject->editLabel])){		$page->formAction = $dbObject->links[$dbObject->editLabel];	}		$details = $dbObject->editValues();}

⌨️ 快捷键说明

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