$wikiArticle =& wiki_class_load("Article"); $article = $delete_article; $doc = wiki_doc($article['ns'], $article['doc']); $backlinks = $wikiArticle->getBackLinks($doc, $includeSelf = false); for($i=0; $i<count($backlinks); $i++) { $wikiArticle->shouldUpdateCache($backlinks[$i]['wr_id'], 1); } $wikiArticle->deleteArticleById($wr_id); // 문서 이력 삭제 $wikiHistory =& wiki_class_load("History"); $wikiHistory->setUnlinked($wr_id, $doc); //$wikiHistory->clear($wr_id, $delete_all = true); // 캐시 삭제 $wikiCache =& wiki_class_load("Cache"); $wikiCache->delete($wr_id); // 최근 변경 내역 업데이트 $wikiChanges =& wiki_class_load("Changes"); $wikiChanges->update("DOC", $doc, "삭제", ($member['mb_id'] ? $member['mb_id'] : $write[wr_name])); wiki_goto_url(wiki_url()); exit; ?>
exit; } if($wiki_folder_switch == "wiki_folder_select") { $wiki_folder = $wiki_folder_select; } else { $wiki_folder = $wiki_folder_input; } $wiki_doc = stripcslashes($wiki_doc); $wiki_folder = stripcslashes($wiki_folder); // 문자열 끝에 '/' 가 있다면 '/' 삭제 $wiki_folder = preg_replace("/\/$/", "", $wiki_folder); // target folder 가 없다면 '/' 로 셋팅 $toDoc = ($wiki_folder == "" ? "/" : $wiki_folder."/") . $wiki_doc; // target folder 유효성 체크 wiki_validate_doc($toDoc); if($write[ns] != $wiki_folder || $write[doc] != $wiki_doc) { $wikiArticle->moveDoc($fulldoc, $toDoc, $write['wr_id']); } $wikiArticle->updateLevel($toDoc, $wiki_access_level, $wiki_edit_level); wiki_goto_url(wiki_url('read', array('doc'=>$toDoc))); ?>
* @subpackage event * @license GPL2 (http://narinwiki.org/license) * @author byfun (http://byfun.com) * @filesource */ if (!defined('_GNUBOARD_')) exit; // 위키문서 링크 수정 (/ 로 시작하지 않는 문서에 대해서) $util =& wiki_class_load("Util"); $content = $util->wiki_fix_internal_link($wr_content); if($content != $wr_content) { $content = mysql_real_escape_string($content); sql_query("UPDATE ".$this->wiki['write_table']." SET wr_content = '$content' WHERE wr_id = $comment_id"); } // 최근 변경 내역 업데이트 if($w == 'c' || $w == 'cu') { list($ns, $docname, $doc) = wiki_page_name($wr_doc); $wikiChanges =& wiki_class_load("Changes"); if($w == 'c') $status = "댓글 작성"; else $status = "댓글 편집"; $wikiChanges->update("DOC", $doc, $status, ($member['mb_id'] ? $member['mb_id'] : $wr_name)); } wiki_goto_url(wiki_url('read', array('doc'=>$doc.'#c_'.$comment_id))); exit; ?>
for ($i=count($wr_id_array)-1; $i>=0; $i--) { $write = sql_fetch(" select wr_id from ".$this->wiki['write_table']." where wr_id = '".$wr_id_array[$i]."' "); if(!$write) { $wikiArticle->deleteArticleById($wr_id_array[$i]); $wikiCache->delete($wr_id_array[$i]); $d_doc = $delete_all_docs[$wr_id_array[$i]]; $wikiHistory->setUnlinked($wr_id_array[$i], $d_doc); $backlinks = $wikiArticle->getBackLinks($d_doc, $includeSelf = false); $wikiChanges->update("DOC", $d_doc, "삭제", $member['mb_id']); for($k=0; $k<count($backlinks); $k++) { $wikiArticle->shouldUpdateCache($backlinks[$k]['wr_id'], 1); } } } if($folder) { $bo_table = $wiki['bo_table']; $ns = $wikiNS->get($folder); if(!$ns) wiki_goto_url(wiki_url()); else wiki_goto_url(wiki_url('folder', array('loc'=>$folder))); exit; } ?>
/** * * 그누보드 extend 처리 * * <g4>/extends/narin.wiki.extend.php 에서 호출하며, * 요청되는 스크립트 파일에 따라 위키에서 필요한 처리를 수행 * * @param string $scriptFile 스크립트 파일 (write.php, board.php, write_update.php ...) */ function board($scriptFile) { global $wiki, $bo_table, $wr_id, $board, $doc; // view if($scriptFile == "board.php" && $wr_id) { $wikiArticle =& wiki_class_load("Article"); $view = & $wikiArticle->getArticleById($wr_id); $doc = ($view[ns] == "/" ? "" : $view[ns]."/") . $view[doc]; wiki_goto_url(wiki_url('read', array('doc'=>$doc))); exit; } // list if($scriptFile == "board.php" && !$wr_id) { header("location:".wiki_url()); exit; } // 에디터에게 글 작성 권한을 주기 위해... if($wr_id && $this->member['mb_id'] && $this->member['mb_id'] != $this->write['mb_id']) { $wikiArticle =& wiki_class_load("Article"); $wikiConfig =& wiki_class_load("Config"); $default_edit_level = $wikiConfig->setting['edit_level']; $article = & $wikiArticle->getArticleById($wr_id); $edit_level = ( $article['edit_level'] ? $article['edit_level'] : $default_edit_level); $is_doc_editor = ($this->member['mb_level'] >= $edit_level ); if($scriptFile == "write.php" || $scriptFile == "write_update.php") { if($is_doc_editor) { $this->write['mb_id'] = $this->member['mb_id']; $this->write['is_editor'] = true; } } } else if($wr_id && $this->member['mb_id'] && $this->member['mb_id'] == $this->write['mb_id']) { $this->write['is_owner'] = true; } // write if($scriptFile == "write.php" && !$doc && !$wr_id ) { header("location:".wiki_url()); exit; } }
// 폴더 정보 로드 $ns = $wikiNS->get($loc); // 권한 검사 if($w != 'u' || !$loc || !$wiki_loc || !$ns || !$wiki_access_level || !$is_wiki_admin) { alert("권한이 없습니다"); exit; } // 문자열 끝에 '/' 가 있다면 '/' 삭제 $loc = preg_replace("/\/$/", "", $loc); $wiki_loc = preg_replace("/\/$/", "", $wiki_loc); if(!$wiki_loc) $wiki_loc = "/"; // 폴더 업데이트 (이동) if($ns['ns'] != "/" && $wiki_loc != "/" && $ns['ns'] != $wiki_loc) { $wikiNS->updateNamespace($loc, $wiki_loc); } // 템플릿 설정 $wikiNS->setTemplate($wiki_loc, $wiki_template); // 권한 설정 $wikiNS->updateAccessLevel($wiki_loc, $wiki_access_level); // 리다이렉트 wiki_goto_url(wiki_url('folder', array('loc'=>stripcslashes($wiki_loc)))); ?>