本文整理汇总了PHP中wiki_class_load函数的典型用法代码示例。如果您正苦于以下问题:PHP wiki_class_load函数的具体用法?PHP wiki_class_load怎么用?PHP wiki_class_load使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了wiki_class_load函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: on_write_head
/**
*
* 문서 등록/수정 시 처리
*
* @param array $params {@link NarinEvent} 에서 전달하는 파라미터
*/
public function on_write_head($params) {
$wr_content = $params['write']['wr_content'];
$member = $this->member;
$setting = $this->plugin_info->getPluginSetting();
$allow_level = $setting['allow_level']['value'];
$allow_iframe_level = $setting['allow_iframe_level']['value'];
$allow_script_level = $setting['allow_script_level']['value'];
if($allow_level > $member['mb_level'])
{
if(preg_match("/<html>/i", $wr_content)) {
$wikiControl =& wiki_class_load("Control");
$wikiControl->error("권한 없음", "접근할 수 없는 내용을 가지고 있습니다. (html)");
}
}
if($allow_iframe_level > $member['mb_level'])
{
if(preg_match("/<iframe([^\>]*)/i", $wr_content)) {
$wikiControl =& wiki_class_load("Control");
$wikiControl->error("권한 없음", "접근할 수 없는 내용을 가지고 있습니다. (iframe)");
}
}
if($allow_script_level > $member['mb_level'])
{
if(preg_match("/<script([^\>]*)/i", $wr_content)) {
$wikiControl =& wiki_class_load("Control");
$wikiControl->error("권한 없음", "접근할 수 없는 내용을 가지고 있습니다. (script)");
exit;
}
}
}
示例2: on_write_update_tail
/**
*
* 문서 등록/수정 시 처리
*
* @param array $params {@link NarinEvent} 에서 전달하는 파라미터
*/
public function on_write_update_tail($params) {
$wr_id = $params['wr_id'];
$wr_content = $params['write']['wr_content'];
$member = $this->member;
$setting = $this->plugin_info->getPluginSetting();
$allow_level = $setting['dataentry_allow_level']['value'];
if($allow_level > $member['mb_level'])
{
$patternB = '/---- dataentry (.*?)----/s';
$patternI = '/{{dataentry=(.*?)\?(.*?)}}/s';
if(preg_match($patternB, $wr_content) || preg_match($patternI, $wr_content)) {
$wikiControl =& wiki_class_load("Control");
$wikiControl->error("권한 없음", "사용할 수 없는 내용이 있습니다. (dataentry)");
}
}
//TODO: wiki parsing
// ignore pre, nowiki, code, html
$wr_content = preg_replace('/<pre>(.*?)<\/pre>/si', '', $wr_content);
$wr_content = preg_replace('/<pre>(.*?)<\/pre>/si', '', $wr_content);
$wr_content = preg_replace('/<nowiki>(.*?)<\/nowiki>/si', '', $wr_content);
$wr_content = preg_replace('/<nowiki>(.*?)<\/nowiki>/si', '', $wr_content);
$wr_content = preg_replace('/<code>(.*?)<\/code>/si', '', $wr_content);
$wr_content = preg_replace('/<code>(.*?)<\/code>/si', '', $wr_content);
$wr_content = preg_replace('/<html>(.*?)<\/html>/si', '', $wr_content);
$wr_content = preg_replace('/<html>(.*?)<\/html>/si', '', $wr_content);
// clear the previous one: for now no easy way to find updated dataentry.. so delete every dataentry on this page
$sql_clear = "DELETE FROM ".$this->db_table." WHERE bo_table = '".$this->wiki['bo_table']."' AND wr_id=".$wr_id;
sql_query($sql_clear);
// find block dataentry
$pattern = '/---- dataentry (.*?)----(.*?)----/s';
preg_match_all($pattern, $wr_content, $matches_all, PREG_SET_ORDER);
foreach ($matches_all as $matches) {
$keyword = trim($matches[1]);
$options = preg_split( '/\r\n|\r|\n/', $matches[2]);
$this->insert_dataentry($wr_id, $keyword, $options);
}
// find inline dataentry
$pattern = '/{{dataentry=(.*?)\?(.*?)}}/s';
preg_match_all($pattern, $wr_content, $matches_all, PREG_SET_ORDER);
foreach ($matches_all as $matches) {
$keyword = trim($matches[1]);
$matches[2] = str_replace('=', ":", $matches[2]);
$options = explode("&", str_replace("&", "&", $matches[2]));
$this->insert_dataentry($wr_id, $keyword, $options);
}
}
示例3: get
/**
*
* 해당 글에 대한 캐시 반환
*
* @param int $wr_id 글 id
* @return string parsing 되어 저장된 cache
*/
public function get($wr_id) {
$row = sql_fetch("SELECT content FROM ".$this->wiki['cache_table']."
WHERE bo_table = '".$this->wiki['bo_table']."' AND wr_id = $wr_id");
// @todo 동작 확인해야 함
// cache 된 내용이 없으면 parsing 수행
if(!$row) {
$write = sql_fetch(" select * from ".$this->wiki['write_table']." where wr_id = '$wr_id' ");
$wikiParser =& wiki_class_load("Parser");
$content = mysql_real_escape_string($wikiParser->parse($write));
sql_query("INSERT INTO ".$this->wiki['cache_table']." VALUES ('', '".$this->wiki['bo_table']."', $wr_id, '$content')");
return $content;
}
return $row['content'];
}
示例4: wiki_json_encode
$ns = $media->getNS($loc);
if(!$ns) {
echo wiki_json_encode(array('code'=>-101, 'msg'=>'존재하지 않는 폴더입니다 : ' . $loc));
exit;
}
// 권한 검사
if($ns['ns_access_level'] > $member['mb_level']) {
$ret = array('code'=>'-1', 'msg'=>'권한 없음');
echo wiki_json_encode($ret);
exit;
}
$thumb =& wiki_class_load("Thumb");
$thumb_width = 30;
$thumb_height = 30;
$files = $media->getList($loc);
foreach($files as $k=>$file) {
if($file['img_width'] > 0) {
$thumb_path = $thumb->getMediaThumb($loc, $filename=$file['source'], $thumb_width, $thumb_height, $quality=90, $crop=true);
$files[$k]['thumb'] = $thumb_path;
} else $files[$k]['thumb'] = "";
preg_match("/\.([a-zA-Z0-9]{2,4})$/", $file['source'], $m);
if($m[1] && file_exists(WIKI_PATH.'/imgs/media_manager/ext/'.strtolower($m[1]).'.png')) {
$files[$k]['ext_icon'] = $wiki['url'].'/imgs/media_manager/ext/'.strtolower($m[1]).'.png';
} else $files[$k]['ext_icon'] = $wiki['url'].'/imgs/media_manager/ext/_blank.png';
$files[$k]['filesize'] = wiki_file_size($file['filesize']);
$files[$k]['bytes'] = $file['filesize'];
}
示例5: wiki_ajax_data
* 미디어 폴더 zip
*
* @package narinwiki
* @subpackage pages
* @license GPL2 (http://narinwiki.org/license)
* @author byfun (http://byfun.com)
* @filesource
*/
if(!defined("__NARIN_API__")) wiki_not_found_page();
if(!$loc || !$is_wiki_admin) wiki_ajax_error();
$loc = wiki_ajax_data($loc);
$media =& wiki_class_load("Media");
$files = $media->getList($loc);
if(empty($files)) {
echo wiki_json_encode(array('code'=>-1, 'msg'=>'빈 폴더입니다.'));
exit;
}
if(!class_exists('ZipArchive')) {
echo wiki_json_encode(array('code'=>-1, 'msg'=>'PHP 에서 ZipArchive 를 지원하지 않습니다.'));
exit;
}
$zip = new ZipArchive();
$name = md5(time());
$zipFile = WIKI_PATH.'/data/'.$bo_table.'/'.$name.'.zip';
示例6: on_ajax_call
/**
*
* AJAX 콜에 대한 응답
*
* ajax로 문서 lock 갱신
*
* @param array $params {@link NarinEvent) 에서 넘겨주는 파라미터
*/
public function on_ajax_call($params) {
$member = $this->member;
$get = $params['get'];
// 크롭 사용?
$crop = (isset($get['nocrop']) ? false : true);
// 썸네일 품질
$quality= (isset($get['q']) && is_int($get['q']) ? $get['q'] : 90);
// 패턴 처리
$add_where = "";
foreach($params['get'] as $k => $v) {
if(strpos($k, '*')) {
// *.jpg => %.jpg
// image_* => image_%
// image_*.jpg => image%.jpg
$add_where = ' AND m.source LIKE "' . addslashes(str_replace('*', '%', $k)) . '"';
break;
}
}
// 페이징 처리
$paging = $get['paging'];
$page = $get['page'];
if($paging > 0 && $page > 0) {
$arg_paging = array('page'=>$page, 'page_rows'=>$paging);
} else $arg_paging = array();
// 너비, 높이 처리
$width = (isset($get['width']) ? $get['width'] : $this->width);
$height = (isset($get['height']) ? $get['height'] : $this->height);
if(isset($get['width']) && !isset($get['height'])) {
$height = -1;
}
if(isset($get['height']) && !isset($get['width'])) {
$width = -1;
}
// 정렬 처리
$sort = $get['sort'];
$possible_ordering = array('name'=>'source', 'date'=>'reg_date', 'filesize'=>'filesize', 'width'=>'img_width', 'height'=>'img_height', 'random'=>'random');
if(isset($possible_ordering[$sort])) {
$order = ( isset($get['reverse']) ? 'ASC' : 'DESC' );
$arg_ordering = array('by'=>$possible_ordering[$sort], 'order'=>$order);
} else $arg_ordering = array('by'=>'reg_date', 'order'=>'DESC');
// 이미지 목록 가져오기
$path = wiki_ajax_data($get['path']);
$wikiMedia =& wiki_class_load('Media');
$ns = $wikiMedia->getNS($path);
if($ns['ns_access_level'] > $member['mb_level']) {
echo wiki_json_encode(array('code'=>-1, 'msg'=>'권한이 없어 이미지를 표시할 수 없습니다.'));
exit;
}
list($total, $from_record, $page_rows, $files) = $this->get_media_list($path, $add_where, $arg_paging, $arg_ordering);
// 목록 정리
$images = array();
$wikiThumb =& wiki_class_load('Thumb');
foreach($files as $k=>$f) {
if(!$f['img_width']) continue;
list($w, $h) = $this->get_size($width, $height, $f['img_width'], $f['img_height']);
$thumb = $wikiThumb->getMediaThumb($f['ns'], $f['source'], $w, $h, $quality, $crop);
array_push($images, array('name'=>$f['source'],
'thumb'=>$thumb,
'href'=>$f['imgsrc'],
'thumb_width'=>$w,
'thumb_height'=>$h,
'width'=>$f['img_width'],
'height'=>$f['img_height'],
'filesize'=>wiki_file_size($f['filesize']),
'filesize_byte'=>$f['filesize'],
'user'=>$f['mb_id'],
'date'=>$f['reg_date']
));
}
$more = 0;
if(!empty($images) && !empty($arg_paging)) {
if(count($images) >= $page_rows && $total != $from_record + $page_rows) $more = 1;
}
echo wiki_json_encode(array('code'=>1, 'files'=>$images, 'more'=>$more));
//.........这里部分代码省略.........
示例7: wiki_class_load
* @license GPL2 (http://narinwiki.org/license)
* @author byfun (http://byfun.com)
* @filesource
*/
$use_minify = true;
if($use_minify) ob_start();
include_once "_common.php";
@mkdir(WIKI_PATH.'/data/'.$bo_table, 0707);
@mkdir(WIKI_PATH.'/data/'.$bo_table.'/files', 0707);
@mkdir(WIKI_PATH.'/data/'.$bo_table.'/thumb', 0707);
$g4['title'] = '나린위키 미디어 관리자';
$wikiConfig =& wiki_class_load("Config");
$media_setting = $wikiConfig->media_setting;
$is_admin_mode = false;
$colspan = 5;
if($is_wiki_admin && $md == 'admin') {
$is_admin_mode = true;
$colspan++;
}
$no_layout = true;
include_once "head.php";
?>
<style>
html, body { background-color:#fff; }
#media_manager_wrapper { padding:10px; background-color:#fff;}
示例8: wiki_ajax_data
* @filesource
*/
include_once "_common.php";
$doc = wiki_ajax_data($doc);
$content = wiki_ajax_data($content);
list($ns, $doc, $path) = wiki_page_name(stripslashes($doc));
$wr = array('mb_id'=>$member['mb_id'],
'mb_level'=>$member['mb_level'],
'mb_name'=>$member['mb_name'],
'mb_nick'=>$member['mb_nick'],
'wr_subject'=>$doc,
'wr_content'=>stripslashes($content)
);
$parser =& wiki_class_load("Parser");
$html = $parser->parse($wr);
$no_layout = true;
ob_start();
include_once WIKI_PATH."/head.php";
echo $html;
include_once WIKI_PATH."/tail.php";
$content = ob_get_contents();
ob_clean();
echo $content;
?>
示例9: _updateNamespace
/**
*
* 폴더 이름 변경
*
* 실제 이름 변경 매소드이다.
* 폴더 이름을 변경하고 폴더이름 변경의 영향을 받는 백링크들을 모두 업데이트한다.
* 백링크 업데이트 후 문서 이력으로 남긴다.
*
* @param WikiArticle $wikiArticle {@link NarinArticle} 객체
* @param string $srcNS 변경전 이름
* @param string $toNS 변경후 이름
*/
function _updateNamespace($wikiArticle, $srcNS, $toNS)
{
$wikiHistory =& wiki_class_load("History");
// $srcNS 에 포함된 documents 목록을 읽어온다.
$list = $this->getList($srcNS, $withArticle = true);
$escapedSrcNS = mysql_real_escape_string($srcNS);
$escapedToNS = mysql_real_escape_string($toNS);
// $srcNS / $document[] 에 대한 백 링크들을 업데이트한다.
for($i=0; $i<count($list); $i++) {
if($list[$i][type] == 'folder') continue;
$wikiArticle->fromDoc = $fromDoc = $list[$i][path];
$wikiArticle->toDoc = preg_replace("/^(".preg_quote($srcNS, "/").")(.*?)/", $toNS, $fromDoc);
// 백링크 업데이트
$backLinks = $wikiArticle->getBackLinks($fromDoc, $includeSelf=true);
for($k=0; $k<count($backLinks); $k++) {
$content = mysql_real_escape_string(preg_replace_callback('/(\[\[)(.*?)(\]\])/', array(&$wikiArticle, 'wikiLinkReplace'), $backLinks[$k]['wr_content']));
// 문서 이력에 백업
$wikiHistory->update($backLinks[$k]['wr_id'], stripcslashes($content), $this->member['mb_id'], "폴더명 변경에 따른 자동 업데이트");
$wikiArticle->shouldUpdateCache($backLinks[$k]['wr_id'], 1);
sql_query("UPDATE ".$this->wiki['write_table']." SET wr_content = '$content' WHERE wr_id = ".$backLinks[$k]['wr_id']."");
}
}
sql_query("UPDATE ".$this->wiki['ns_table']." SET ns = '$escapedToNS'
WHERE bo_table = '".$this->wiki['bo_table']."' AND ns = '$escapedSrcNS'", false);
sql_query("UPDATE ".$this->wiki['nsboard_table']." SET ns = '$escapedToNS'
WHERE bo_table = '".$this->wiki['bo_table']."' AND ns = '$escapedSrcNS'", false);
$this->addNamespace($toNS);
$this->checkAndRemove($srcNS);
$wikiChanges =& wiki_class_load("Changes");
$wikiChanges->update("FOLDER", $srcNS, "폴더명변경 (이전)", $this->member['mb_id']);
$wikiChanges->update("FOLDER", $toNS, "폴더명변경 (이후)", $this->member['mb_id']);
}
示例10: wiki_class_load
<?
/**
*
* 문서 관리 실행 스크립트
*
* @package narinwiki
* @subpackage pages
* @license GPL2 (http://narinwiki.org/license)
* @author byfun (http://byfun.com)
* @filesource
*/
include_once "./_common.php";
$wikiArticle =& wiki_class_load("Article");
$write = &$wikiArticle->getArticle($ns, $docname);
if(!$write) {
alert("존재하지 않는 문서입니다.");
exit;
}
if( !$is_wiki_admin && ($member['mb_id'] && $member['mb_id'] != $write['mb_id']) )
{
alert("권한이 없습니다");
exit;
}
if(!$w || !$doc || !$wiki_folder_switch || !$wiki_doc ||!$write || !$wiki_access_level || (!$is_wiki_admin && $member['mb_id'] != $write['mb_id']))
{
alert("잘못된 접근입니다.");
exit;
}
示例11: wiki_class_load
if($url) {
header("location:$url");
}
$wiki_path = $g4['path'] . "/" . $board['bo_1'];
$wiki_config = $wiki_path."/narin.config.php";
// 위키 설정 & 라이브러리 로드
if(file_exists($wiki_config)) {
define("__NARINWIKI__", TRUE);
include_once $wiki_config;
include_once $wiki_path . "/lib/narin.wiki.lib.php";
$wikiControl =& wiki_class_load("Control");
// 스킨 경로 변경
$board_skin_path = $wiki['inc_skin_path'];
// 게시판 스킨 & 헤더-테일 변경
$board['bo_include_head'] = WIKI_PATH . "/head.php";
$board['bo_include_tail'] = WIKI_PATH . "/tail.php";
// 위키를 전체 검색에 노출 안되도록 함
// 위키 자체 권한, 파싱 문제 등...
$board['bo_use_search'] = 0;
$wikiControl->board($scriptFile);
} // if wiki_config
示例12: clear
/**
*
* 모든변경내역 삭제
*/
function clear()
{
sql_query("DELETE FROM ".$this->wiki['changes_table']."
WHERE bo_table = '".$this->wiki['bo_table']."'");
$wikiEvent =& wiki_class_load("Event");
$wikiEvent->trigger("CHANGES_DELETE_ALL", array());
}
示例13: header
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// Settings
$targetDir = WIKI_PATH . '/data/' . $bo_table . '/files/';
// 5 minutes execution time
@set_time_limit(5 * 60);
// Get parameters
$chunk = isset($_REQUEST["chunk"]) ? $_REQUEST["chunk"] : 0;
$chunks = isset($_REQUEST["chunks"]) ? $_REQUEST["chunks"] : 0;
$fileName = isset($_REQUEST["name"]) ? $_REQUEST["name"] : '';
if (!$loc || !trim($filename)) {
die('{"jsonrpc" : "2.0", "error" : {"code": 901, "message": "잘못된 요청"}, "id" : "id"}');
}
$loc = wiki_ajax_data($loc);
$filename = wiki_ajax_data($filename);
$media =& wiki_class_load('Media');
$reg_file = $media->getFile(stripslashes($loc), stripslashes($filename));
if ($reg_file['id']) {
die('{"jsonrpc" : "2.0", "error" : {"code": 902, "message": "' . $filename . ' : 같은 이름의 파일이 있습니다"}, "id" : "id"}');
}
// Clean the fileName for security reasons
$fileName = preg_replace('/[^\\w\\._]+/', '', $fileName);
// Make sure the fileName is unique but only if chunking is disabled
if ($chunks < 2 && file_exists($targetDir . DIRECTORY_SEPARATOR . $fileName)) {
$ext = strrpos($fileName, '.');
$fileName_a = substr($fileName, 0, $ext);
$fileName_b = substr($fileName, $ext);
$count = 1;
while (file_exists($targetDir . DIRECTORY_SEPARATOR . $fileName_a . '_' . $count . $fileName_b)) {
$count++;
}
示例14: wiki_doc_from_write
/**
*
* 문서 제목 문자열 반환
*
* 'write.skin.php' 에서 문서 제목을 설정하기 위함
*/
function wiki_doc_from_write($doc, $wr_id)
{
$wikiArticle =& wiki_class_load("Article");
if(!$doc) {
$write = &$wikiArticle->getArticleById($wr_id);
$doc = ($write[ns] == "/" ? "" : $write[ns]) . "/" . $write[wr_subject];
}
list($ns, $doc, $full) = wiki_page_name($doc);
return array(get_text($doc), get_text($full));
}
示例15: update_level
/**
*
* AJAX 모듈 : 권한 설정 실행
*
* @param $params /adm/admin.plugin.php 에서 넘겨주는 파라미터로 array('get'=>$_GET, 'post'=>$_POST) 임
*/
public function update_level($params) {
$update_list = wiki_ajax_data($params['get']['update_list']);
$recursive = (wiki_ajax_data($params['get']['recursive']) == 'true');
if(!$update_list) {
echo wiki_json_encode(array('code'=>-1, 'msg'=>'잘못된 파라미터'));
exit;
}
$wikiArticle =& wiki_class_load('Article');
$wikiNS =& wiki_class_load('Namespace');
foreach($update_list as $k => $item) {
if($item['type'] == 'doc') $wikiArticle->updateLevel(stripcslashes($item['path']), $item['access_level'], $item['edit_level']);
else $wikiNS->updateAccessLevel(stripcslashes($item['path']), $item['access_level'], $recursive);
}
echo wiki_json_encode(array('code'=>1));
}