【PukiWiki】PukiWikiにGUI編集プラグインEasyEditを導入する

PukiWiki

この記事を書いた頃より2年前ぐらい、PukiWiki Plus!のリポジトリに入っていたguieditを修正してeasyeditをつくってみました。
ただ、当時は私の技術もあまりなかったためにバグも酷く、ページのレイアウトが崩れてしまうことがありました。
はいふんさんがPHP8へ対応させてくださいました。
ただ、2022年現在もう一度修正してみたら、ほぼきちんと動作するようになりました。

そして、この方がKCFinderと一緒に使ってくださっているみたいなので本体に組み込んでみました。
https://uura.site/pukiwiki-wysiwyg/

私が管理しているWikiChree.COMにEasyEditを配置してますので試してもらって構いません。
https://wikichree.com/TrialWiki/?cmd=easyedit&page=SandBox/2

EasyEditの詳細は以下のリンクで確認してください。
https://pkom.ml/?%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3/easyedit.inc.php

動作環境

  • PukiWiki 1.5.4
  • PHP8.0.1

前提条件

  • PukiWiki 1.5系
  • PHP7~PHP8.x

もしかしたら1.4系、PHP4, 5でも動くかもしれませんが、その時はコメントで伝えてくださるとありがたいです^^

導入

1. ダウンロード&設置

自作プラグイン/easyedit.inc.php - PukiWiki-official

1. 上記のURLからeasyeditのzipファイルをダウンロードする

2. easyedit, image, pluginのフォルダをPukiWikiのルート(pukiwiki.ini.phpが入っているフォルダ)へ放り込み

2. ナビゲーションバーのリンク追加 (方法①)

こちらの方法は1つのPHPファイルを修正するだけなのでお手軽ですね。

<?php global $vars;echo '<a href="./?cmd=easyedit&page='.$vars['page'].'">編集(GUI)</a>'; ?> |

skin/pukiwiki.skin.phpの「<?php _navigator(‘edit’) ?> |」の行の次に上記のコードを追加してください。

3. ナビゲーションバーのリンク追加 (方法②)

<?php echo '<a href="' . $script . '?cmd=easyedit&page=' . $r_page . '">' . $lang['easyedit'] . '</a>' ?> |

1. skin/pukiwiki.skin.phpの「<?php _navigator(‘edit’) ?> |」の行の次に上記のコードを追加してください。

2. ja.lng.phpの「$_LANG[‘skin’][‘edit’]      = ‘編集’;」の次に以下のコードを追記してください。
文字列については好みに変更しても構いません。

$_LANG['skin']['easyedit']   = '編集(GUI)';

カスタマイズ

見出し編集

v1.11から見出し編集を追加してみました。
seceditが入っている場合は、seceditを自動で利用できるようにしています。

以下の関数(コード)をclass Heading…に追加します。

// 見出し編集
function wrap($string, $tag, $param = '', $canomit = TRUE) {
  if (exist_plugin("easyedit"))
    $string = plugin_easyedit_heading_add_link($string, $this->id);
  if (exist_plugin("secedit")) {
    $secedit = plugin_secedit_wrap($string, $tag, $param, $this->id);
    return $secedit ? $secedit : parent::wrap($string, $tag, $param, $canomit);
    }
  return parent::wrap($string, $tag, $param, $canomit);
}

KCFinder削除

KCFinderを使わない場合は、easyedit内のkcfinderをフォルダごと削除した方がいいと思います。
そしてplugin/easyedit.inc.phpの定数PLUGIN_EASYEDIT_ENABLE_KCFINDERをFALSEにします。

タイトルとURLをコピーしました