PukiWiki/改造

ParaEdit

パラグラフ指向化プラグイン。
PukiWikiでパラグラフ単位の編集をできるようにするプラグインです。

インストール方法

Pukiwiki1.4.7へのインストール方法です(1.4.4~1.4.6でも動作確認済み)

lib/pukiwiki.php に追加

メイン処理(// Main)の直前に次の二行を追加

// 初期化: 設定ファイルの読み込み
require(LIB_DIR . 'init.php');

// ↓↓
include_once(PLUGIN_DIR . 'paraedit.inc.php');
$post['msg'] = _plugin_paraedit_parse_postmsg($post['msg_before'], $post['msg'], $post['msg_after']);
// ↑↑

/////////////////////////////////////////////////
// Main

skin (skin/pukiwiki.skin.ja.php) の書換え

<?php echo $body?>

を次の一行に置換(2箇所)

<?php include_once PLUGIN_DIR . 'paraedit.inc.php'; echo _plugin_paraedit_mkeditlink($body); ?>

実際には下記のように変更します。

<?php if (arg_check('read') && exist_plugin_convert('menu')) { ?>
<table border="0" style="width:100%">
 <tr>
  <td class="menubar">
   <div id="menubar"><?php echo do_plugin_convert('menu') ?></div>
  </td>
  <td valign="top">
   <div id="body"><?php include_once PLUGIN_DIR . 'paraedit.inc.php'; echo _plugin_paraedit_mkeditlink($body); ?></div>←ココ
  </td>
 </tr>
</table>
<?php } else { ?>
<div id="body"><?php include_once PLUGIN_DIR . 'paraedit.inc.php'; echo _plugin_paraedit_mkeditlink($body); ?></div>←ココ
<?php } ?>

paraedit.inc.php のコピー

ParaEdit(SxWiki)よりparaedit.inc.phpをダウンロードして、
pluginディレクトリ(./plugin)にparaedit.inc.phpをコピー

convert_html() の書換え

/lib/convert_html.php の編集

class Heading extends Element 内のfunction toString()にある、

return $this->msg_top . $this->wrap(parent::toString(),
    'h' . $this->level, " id="' . $this->id . '"');

上の2行を下の3行に置換

$paraedit_flag = (preg_match("/^content_1_/", $this->id)) ? ' paraedit_flag=on' : '';
return $this->msg_top . $this->wrap(parent::toString(),
    'h' . $this->level, ' id="' . $this->id . $paraedit_flag . '"');

エラーとなってしまう場合

Headers already sent at xxx/paraedit.inc.php line 285.

とエラーが出力されてしまう場合、paraedit.inc.phpの最終行の改行文字を削除してみてください。

カスタマイズ

"↑"と[edit]が2行に表示されるのが嫌なため、paraedit0.6aを見やすく改造で公開されているパッチを当てて、1行に表示されるよう変更しています。

106行目

define(_EDIT_LINK, '<div style="text-align: right; font-size: x-small; padding: 0px; "><a href="%s">[edit]</a></div>');

を次の1行に変更。

define(_EDIT_LINK, '<a href="%s">[edit]</a>');

243行目

$link = sprintf(_EDIT_LINK, $link);

を下記のように変更。

if(preg_match("/&uarr;/", $line)){
    $line = preg_replace("/<\/div>/", "", $line);
    $link = sprintf(_EDIT_LINK, $link) . "</div>";
}else{
    $link = "<div class=\"jumpmenu\">" . sprintf(_EDIT_LINK, $link) . "</div>";
}

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-03-23 (水) 20:19:48 (2223d)