Exemplo n.º 1
0
$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;

?>
Exemplo n.º 2
0
	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)));

?>
Exemplo n.º 3
0
 * @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;
?>
Exemplo n.º 4
0
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;
}		

?>
Exemplo n.º 5
0
	/**
	 * 
	 * 그누보드 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;			
		}						
	}
Exemplo n.º 6
0
// 폴더 정보 로드
$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))));
?>