앞으로 생길 최신버전의 모니위키를 적용할 때마다, 수정되어야 할 부분을 정리했다. 이후 업데이트 시에 유용하게 사용될 것이다.
config.php
<?php $sitename='Fat81 Wiki'; # site name $data_dir= './data'; $upload_dir= 'pds'; $text_dir= $data_dir.'/text'; $cache_dir= $data_dir.'/cache'; $intermap= $data_dir.'/intermap.txt'; $editlog_name= $data_dir.'/editlog'; $shared_metadb= $data_dir."/metadb"; $shared_intermap= $data_dir."/text/InterMap"; $url_prefix=""; $imgs_dir= $url_prefix.'/imgs'; $logo_img= $imgs_dir.'/moniwiki-logo.png'; $query_prefix= '/'; $css_url= $url_prefix.'/css/nlog.css'; $kbd_script= $url_prefix.'/css/kbd.js'; $logo_string= '<img src="'.$logo_img.'" alt="" border="0" align="middle" />'; $use_smileys= 1; #$smiley='wikismiley'; # you can also use SmileyMap too. $use_counter= 0; # counter $use_fakemtime=0; # dir mtime emulation for FAT filesytem. $use_hostname= 1; # use hostname or ip address $mask_hostname=1; # hide some part of hostnames or ip addresses $show_hosts=0; $edit_rows=16; # editer rows $iconset= 'moni2'; # moni, moni2 $inline_latex=0; # 0/1(on/off), mimetex, itex, etc. ... $lang='auto'; # check language automatically. $charset='utf-8'; # default character set. euc-kr etc. $auto_linebreak= 1; # NoSmoke style insert <br> automatically. $trail= 0; # use trailer (navagation list of some recently visited pages) #$origin=1; # show upper pages like as Language/Script/Perl => Language > Script > Perl #$arrow=' <img src="/wiki/imgs/moni-arrow.gif"/> '; $notify= 0; # enable email notification $use_referer= 0; # use some basic referer feature. $use_sistersites=1; # use sistersites/siterwiki feature. #$use_singlebracket=1; # $use_twinpages=1; $use_trackback=0; $vim_options='+"set expandtab" +"retab"'; # expand tabs in the Vim 6.x #$vim_options='+"set expandtab" +"retab" +"let g:html_use_css=0"'; # with vim7.1 but hang... why ? :( #$vim_options='+"set encoding=UTF-8"'; # for UTF-8 wikis $pds_allowed="png|jpg|jpeg|gif|mp3|zip|tgz|gz|txt|css|exe|hwp|pdf|flv"; # some allowed file extension to upload. $nonexists='fancy'; ... $security_class="mustlogin"; ... $menu=array('FrontPage'=>1,'FindPage'=>4,'TitleIndex'=>3,'RecentChanges'=>2,'UserPreferences'=>''); ... $path='/home/hosting_users/fat81/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin'; ... $theme='blog'; # set the theme $theme_css=1; # change css of theme or not $hr=''; # obsolute ... $metatags=<<<META <meta name="robots" content="noindex,nofollow" /> <link rel="Start" href="FrontPage" /> <link rel="Index" href="TitleIndex" /> <link rel="Help" href="HelpOnFormatting" /> <link rel="Copyright" href="FrontPage" /> <link rel="Search" href="FindPage" /> <link rel="Glossary" href="WordIndex" /> <link rel="Alternate History" title="Page History" href="?action=info" /> <link rel="Alternate" title="xml" type="application/rss+xml" href="?action=rss_rc" /> <link rel="Alternate" title="Wiki Markup" type="text/plain" href="?action=raw" /> META; ... $javascripts=array( 'js/i18n.js', 'Wikiwyg/lib/Wikiwyg.js', 'Wikiwyg/lib/Wikiwyg/Util.js', 'Wikiwyg/lib/Wikiwyg/Toolbar.js', 'Wikiwyg/lib/Wikiwyg/Wikitext.js', 'Wikiwyg/lib/Wikiwyg/Preview.js', 'Wikiwyg/lib/Wikiwyg/HTML.js', 'Wikiwyg/lib/Wikiwyg/Wysiwyg.js', 'ajax.js', 'moniwyg.js', 'ASCIIMathML.js'); ... $perma_icon='#'; ... $myprocessors=array('syntax'=>'vim','sh'=>'vim','csh'=>'vim', 'c'=>'vim','cpp'=>'vim','perl'=>'vim','lisp'=>'vim', 'asm'=>'vim','masm'=>'vim','make'=>'vim', 'java'=>'vim','ruby'=>'vim','haskell'=>'vim', 'awk'=>'vim','nosyntax'=>'vim','make'=>'vim', ); ... $use_resizer=2; ... $use_wikiwyg=1; # 1 for GUI button/ 2 to set as default behavior/ 3 to set always use GUI. #$wikiwyg_confirm=1; # always confirm $use_sectionedit=1; #$sectionedit_attr=1; # enable wikiwyg section editing $spam_filter='antispam'; $toc_options='simple,toggle'; ... $local_abbr='LocalDictionary'; $postfilters=''; #$postfilters=''; $use_forcemerge=1; $default_language='ko'; $use_alias=1; $aliaspage=$data_dir.'/text/AliasPageNames'; $use_easyalias=1; # direct linking to the dest page $css_friendly=1; #$css_friendly=1; # for more CSS friendly support $use_redirect_msg=0; #$use_redirect_msg=1; # for MoinMoin compatible #$use_safelogin=0; $url_mappings=array('http://faq.ktug.or.kr/mywiki'=>'http://faq.ktug.or.kr/faq'); $shared_url_mappings=''; #$shared_url_mappings=$data_dir.'/text/UrlMap'; # enable builtin fix url #$use_category=0; # on/off categories list in the edit mode #$use_textbrowsers=1; # check some textbased browsers $use_preview_uploads=1; #$use_camelcase=0; # turn off camelcase syntax by default #$mediawiki_style=0; # 0: wikiCreole style [[foo bar]]=>[[FooBar]], 1: mediawiki style preserve white spaces #$category_regex=urldecode('%EB%B6%84%EB%A5%98$'); # a category example for Korean #$use_backlinks=1; # set default fullsearch behavior as backlinks search $fullsearch_tooshort=2; # ... $use_errlog=1; ... $use_resume_download=1; #$control_read=1; # control read action also #$use_macro_as_action=0; # XXX warn #$isbn_img_download=1; # download isbn images to local cache dir. #$use_clipmacro=1; # use clip applet with AttachmentMacro $no_register=1; # do not allow to register anymore #$dot_fontsize=10; # dot font size for the VisualTour #$dot_fontname='Eunjin'; # webdot font name for graphviz 2.2.x #$dot_fontname='WEBDOTFONT'; # webdot fontname fot graphviz 1.8.x #$dot_options="size \"6,6\"\n"; # extra webdot options $use_save_refresh=2; $use_refresh=2; $cachetime=0; $cache_public_dir='./_cache'; # enhanced caching $cache_public_url=$url_prefix.'/_cache'; ... $use_jwmediaplayer=1; $jwmediaplayer_prefix='http://www.jeroenwijering.com/embed'; $flashupload='swfupload'; ... $robots='googlebot|yahoo'; $use_local_translation=0; $dba_type="db4"; $rcs_user="root"; $admin_passwd='xxxxxxxx';
theme/blog/css/default.css
기존의 파일을 덮어 쓰면 된다.
css/print.css
기존의 파일을 덮어 쓰면 된다.
theme/blog/css/footer.php
기존의 파일을 덮어 쓰면 된다.
theme/blog/css/header.php
기존의 파일을 덮어 쓰면 된다.
css/kbd.js
기존의 파일을 덮어 쓰면 된다.
wiki.php
아래와 같이 코드를 수정한다.
... function get_instructions(&$body) { global $Config; $pikeys=array('#redirect','#action','#title','#notitle','#keywords','#noindex', '#format','#filter','#postfilter','#twinpages','#notwins','#nocomment','#comment', '#language','#camelcase','#nocamelcase','#cache','#nocache', '#singlebracket','#nosinglebracket','#rating','#norating','#nodtd','#private'); // #private 추가 $pi=array(); ... $formatter->pi=$formatter->get_instructions($dum); if (!empty($DBInfo->body_attr)) $options['attr']=$DBInfo->body_attr; if ($formatter->pi['#private'] and !$DBInfo->security->is_allowed('read_private',$options)) { // 추가 do_invalid($formatter,$options); // 추가 return; // 추가 } // 추가 $ret = $formatter->send_header('', $options); ...
wikilib.php
목차를 사용할 때 표시하는 jpg 파일을 변경하기 위해서 아래와 같이 수정한다.
... $TOC_close=<<<EOS <script type="text/javascript"> /*<![CDATA[*/ if (window.showTocToggle) { showTocToggle('<img src="$DBInfo->imgs_dir/plugin/plus.jpg" width="10px" border="0" alt="[+]" title="[+]" />','<img src="$DBInfo->imgs_dir/plugin/minus.jpg" width="10px" border="0" alt="[-]" title="[-]" />'); } // plus, minus 수정 /*]]>*/ </script> EOS; ...
테이블의 외곽선 표시하기
해당 테마의 default.css 파일을 다음과 같이 수정한다.
table.wiki { border: 0px outset #000000; border-spacing: 0px; padding: 0px; border-collapse:collapse; } table.wiki tr { border: 0px inset #000000; background-color: #ECECEC; } table.wiki td { border: 1px inset #000000; background-color: #ECECEC; }
또한 print 시에 이를 적용하기 위해 print.css 파일에 동일하게 수정한다.
table.wiki { border: 0px outset #000000; border-spacing: 0px; padding: 0px; border-collapse:collapse; } table.wiki tr { border: 0px inset #000000; background-color: #ECECEC; } table.wiki td { border: 1px inset #000000; background-color: #ECECEC; }
플러그인 추가하기
날짜마다 목표 권수를 나타내기 위해 Book 라는 매크로 함수를 추가했다.
plugin/Book.php 라는 파일을 만들고, 아래처럼 추가한다.
<?php // Copyright 2003-2004 Won-Kyu Park <wkpark at kldp.org> // All rights reserved. Distributable under GPL see COPYING // DueDate plugin for the MoniWiki // // Usage: DueDate([[YYYY]MM]DD) // // $Id: Moniwiki_ec_84_a4_ec_b9_98_ed_95_98_ea_b8_b0_ec_a0_9c2_ed_8c_90,v 1.2 2013/06/06 01:35:53 root Exp root $ function macro_Book($formatter,$value) { $time= localtime(time(),true); $day= $time['tm_mday']; $month= $time['tm_mon']+1; $year= $time['tm_year']+1900; $now_val= strtotime($year.sprintf("%02d%02d",$month,$day)); $date_val=$value; if (strlen($value) == 2) { if ((int) $value < $time['tm_mday']) $month+=1; if ($month > 12) { $year+=1; $month=1; } $date_val=$year.sprintf("%02d%s",$month,$value); } else if (strlen($value) == 4) { if ($value < $month.$day) $year++; $date_val=$year.$value; } else if (strlen($value) != 8) { return "[[DueDate($value error!)]]"; } $time_val= strtotime($date_val); $time_diff= (int) (($time_val - $now_val)/86400); $date = gmdate("Y-m-d", $time_val + $formatter->tz_offset); if ($time_diff > 0) $msg=sprintf(_("%d day(s) left until %s."), $time_diff, $date); else if ($time_diff == 0) $msg=_("It's today."); else $msg=sprintf(_("%d"), (abs($time_diff))/7, $date); return $msg; // vim:et:sts=4: } ?>
이제 태그를 사용해서 제대로 동작하는지 확인하자.
[[BOOK(20130102)]]권