앞으로 생길 최신버전의 모니위키를 적용할 때마다, 수정되어야 할 부분을 정리했다. 이후 업데이트 시에 유용하게 사용될 것이다.

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)]]권
  • computer/os/moniwiki_설치하기_-_제2판.txt
  • Last modified: 3 years ago
  • by likewind