📄 editpage.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 .= ' '; $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 .= ' '; $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('<','>'),implode(',',$keyArray)).'" />'; $text .= ': <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 .= ': <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 + -