[PukiWiki] Editor Bar

PukiWiki を WYSIWYG な感じで編集してみたい!!

http://pukiwiki.sourceforge.jp/?%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%2Fguiedit.inc.php なものもあるみたいです。

/lib/html.php の中に

<form action="$script" method="post" style="margin-bottom:0px;">
$template

 $addtag
 <input type="hidden" name="cmd"    value="edit" />
 <input type="hidden" name="page"   value="$s_page" />
 <input type="hidden" name="digest" value="$s_digest" />
 <textarea name="msg" id="_str" rows="$rows" cols="$cols">$s_postdata</textarea>
 <br />
 <div style="float:left;">
  <input type="submit" name="preview" value="$btn_preview" accesskey="p" />
  <input type="submit" name="write"   value="$_btn_update" accesskey="s" />
  $add_top
  $add_notimestamp
 </div>
 <textarea name="original" rows="1" cols="1" style="display:none">$s_original</textarea>
</form>
<form action="$script" method="post" style="margin-top:0px;">
 <input type="hidden" name="cmd"    value="edit" />
 <input type="hidden" name="page"   value="$s_page" />
 <input type="submit" name="cancel" value="$_btn_cancel" accesskey="c" />
</form>
</div>

ここで、 textarea に id=”_str” を追加し、 textareaの前に以下を追加する。

<div class="tools" style="width: 650px;background-image: url('tools/toolbg.png');background-repeat: repeat-x;">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('\*')">
<img src="tools/h2.png" alt="*" title="大見出し" width="24" height="24" />
</a>
</div>

これは、光沢のある灰色のツールーバーを配置して、そこに、h2の画像を置く。これをクリックすると、_str がIDである textareaのカーソルの位置に * が追加される。 insertAtCaret?()の中身を変えると、いろいろなものが追加される。

plugin/secedit.inc.php を使っている場合は、 同じ個所を修正する必要あり。

ツールバー作成例

<?php
<div class="edit_form">
$template$addtag
<div class="tools" style="width: 650px;background-image: url('tools/toolbg.png');background-repeat: repeat-x;">a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('\*')">img src="tools/h2.png" alt="*" title="大見出し" width="24" height="24" />
</a>
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('**')">
<img src="tools/h3.png" alt="**" title="中見出し" width="24" height="24" />
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('***')">
<img src="tools/h4.png" alt="***" title="小見出し" width="24" height="24" />
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('\'\'\'\)">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('\'\'\'\'\'\)">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('-')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('+')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?(':')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('>')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('left:')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('center:')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('right:')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?(' ')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('サイト名:http://')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('|セル|セル|h\\n|セル|セル|')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?(' [添付]')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('#amazon2(electronics-jp または books-jp,キーワード)')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?(' [heart]')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?('\&\s\m\i\l\e\;')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?(' [huh]')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?(' [wink]')">
<a href="javascript:void(0)" onclick="$('#_str').insertAtCaret?(' [worried]')">
<a href="?FormattingRules" target="_blank"">
</div>
 <textarea name="msg" id="_str" rows="$rows" cols="$cols">$s_postdata</textarea>
 <br />
 <div style="float:left;">
  <input type="submit" name="preview" value="$btn_preview" accesskey="p" />
  <input type="submit" name="write"   value="$_btn_update" accesskey="s" />
  $add_top
  $add_notimestamp
 </div>
 <textarea name="original" rows="1" cols="1" style="display:none">$s_original</textarea>
</form>
<form action="$script" method="post" style="margin-top:0px;">
 <input type="hidden" name="cmd"    value="edit" />
 <input type="hidden" name="page"   value="$s_page" />
 <input type="submit" name="cancel" value="$_btn_cancel" accesskey="c" />
</form>
</div>

[PukiWiki] PukiWiki便利なプラグイン

atacherefプラグイン

添付ファイルを伴う編集作業の時に、いちいち、 編集-添付-編集 としなければならいのを 編集-添付 ですんでしまう。 ダウンロード

設定

  • 管理者設定
    // 管理者だけが添付ファイルをアップロードできるようにする
    define('ATTACHREF_UPLOAD_ADMIN_ONLY',TRUE); // FALSE or TRUE
    // アップロード/削除時にパスワードを要求する(ADMIN_ONLYが優先)
    define('ATTACHREF_PASSWORD_REQUIRE',TURE); // FALSE or TRUE
  • ファイルサイズの変更
    // max file size for upload on script of PukiWiki(default 1MB)
    define('MAX_FILESIZE',2000000);
  • MD5の変更(SHAを使っているので)
    $pass = array_key_exists('pass',$vars) ? $vars['pass'] : NULL;

seceditプラグイン

見出しごとに分割して編集が可能なプラグイン http://pukibook.sourceforge.jp/?secedit.inc.php

[PukiWiki] PukiWikiの設定

basic 認証が通らない

借りているCore serverの設定が変わったらしい。 http://blog.rtwiki.net/pukiwiki/fastcgi_auth/

.htaccess に以下を追加する

SetEnvIfNoCase Authorization "^(Basic .*)$" HTTP_AUTHORIZATION=$1

pukiwiki.ini.phpの設定

  • index.phpを表示しない
    // Shorten $script: Cut its file name (default: not cut)
    $script_directory_index = 'index.php';
  • このサイトの管理者名
    // Site admin's name (CHANGE THIS)
    $modifier = 'Mamoru Imanishi';
  • 管理者のウェブサイト
    // Site admin's Web page (CHANGE THIS)
    $modifierlink = 'http://www.okomeda.net/';
  • トップページ名 (必ず変更すること)
    $defaultpage  = 'TopPage';     // Top / Default page
  • WikiNameの自動リンク解除 (HogeHogeというページに?(はてな、クエスチョン)を自動で表示させない)
    // _Disable_ WikiName auto-linking
    $nowikiname = 1;
  • 管理者パスワード(ここを参照 http://pukiwiki.sourceforge.jp/dev/?BugTrack%2F709 )
    // Default: always fail
    $adminpass = '{x-php-md5}!';
  • 編集の権限を与えるユーザー名とそのパスワードの設定
    // User definition
    $auth_users = array(
      // Username => password
      'foo'	=> 'foo_passwd', // Cleartext
      'bar'	=> '{x-php-md5}f53ae779077e987718cc285b14dfbe86', // PHP md5() 'bar_passwd'
      'hoge'	=> '{SMD5}OzJo/boHwM4q5R+g7LCOx2xGMkFKRVEx',      // LDAP SMD5 'hoge_passwd'
    );
  • 編集を制限するページ(ここではすべてのページ)
    // Edit auth (0:Disable, 1:Enable)
    $edit_auth = 1;
    $edit_auth_pages = array(
      // Regex		   Username
      '/^.*$/'		=> 'bar',
    );
  • 最近の20件などで無視するページ
    // Ignore list
    
    // Regex of ignore pages
    $non_list = '^(\:|InterWiki|MenuBar|Recent|TopPage)';
    
    // Search ignored pages
    $search_non_list = 0; //検索結果にも無視したい場合
  • 改行コードを自動で<br />に変換する
    // Convert linebreaks into <br />
    $line_break = 1;

defult.ini.php の設定

  • 添付ファイルを表示しない
    $attach_link = 0;
  • 関連リンクを表示しない
    $related_link = 0;
    

topicpath.inc.php

  • パスをホームに変更する
    //	$topic_path[] = make_pagelink($defaultpage, PLUGIN_TOPICPATH_TOP_LABEL);
    $topic_path[] = '<a href="' . $script . '" title="Home">ホーム</a>';
    

添付ファイルアップロー時に管理者パスワードを要求しない

attach.inc.phpにおいて、※管理者しか編集できない時に限る。 XSS対策でデフォルトがTRUEになっていますが、これをFALSEに変更

// 管理者だけが添付ファイルをアップロードできるようにする
define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', FALSE); // FALSE or TRUE }}