人気ブログランキング |
タグ:PukiWiki ( 5 ) タグの人気記事
PukiWikiのページをGUIで編集できるようにするguieditプラグイン
PukiWikiで情報共有サイトを作っても、エンドユーザには独特のWiki記法がネックになってしまうケースが多々あります。

ということで、WYSIWYG でページを編集できるものがないか探したところ、guieditというプラグインがありました。
(こちらのデモサイトで動作を確認できます。)
このプラグインは、オープンソースHTMLエディタである、FCKeditor をPukiwikiでも使えるようにしたもののようです。

ダウンロードは公式サイトから可能です。

インストール方法も上記サイトに書いてますが、一応メモしておきます。

まず、guiedit をダウンロードし、解凍します。
解凍後に、plugin\guiedit.inc.php を PukiWiki の plugin ディレクトリに配置します。
また、skin\guiedit ディレクトリを PukiWiki の skin ディレクトリに配置します。


FCKeditor を公式サイトからダウロードします。
解凍後に、fckeditor を Pukiwiki の skin ディレクトリに配置します。

skin/pukiwiki.skin.php の

<?php _navigator('edit') ?> |

の次行に以下を追加します。

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



ja.lng.php の
$_LANG['skin']['edit']      = '編集';

の次行に以下を追加します。
$_LANG['skin']['guiedit']   = '編集(GUI)';



pukiwiki.ini.php でPKWK_ALLOW_JAVASCRIPT を 1 にし、JavaScriptを有効にします。
define('PKWK_ALLOW_JAVASCRIPT', 1);



$pkwk_dtd を PKWK_DTD_XHTML_1_0_TRANSITIONAL か PKWK_DTD_HTML_4_01_TRANSITIONAL にします。
(PKWK_DTD_XHTML_1_0_TRANSITIONALにした場合)

//$pkwk_dtd = PKWK_DTD_XHTML_1_1; // Default
//$pkwk_dtd = PKWK_DTD_XHTML_1_0_STRICT;
$pkwk_dtd = PKWK_DTD_XHTML_1_0_TRANSITIONAL;
//$pkwk_dtd = PKWK_DTD_HTML_4_01_STRICT;
//$pkwk_dtd = PKWK_DTD_HTML_4_01_TRANSITIONAL;



lib/convert_html.php の
$anchor = ' &aname(' . $id . ',super,full){' . $_symbol_anchor . '};';

の次行に以下を追加します。

$fixed_heading_anchor = 1;
$fixed_heading_anchor_edit = 1;




ツールバーにリンクを追加するために、以下の設定を行います。

ja.lng.php の
$_LANG['skin']['edit']      = '編集';

の次行に以下を追加します。
$_LANG['skin']['guiedit']   = '編集(GUI)';



lib/html.php の
$_LINK['edit']     = "$script?cmd=edit&page=$r_page";

の次行に以下を追加します。
$_LINK['guiedit']  = "$script?cmd=guiedit&page=$r_page";



skin/pukiwiki.skin.php の
$_IMAGE['skin']['edit']     = 'edit.png';

の次行に以下を追加します。
$_IMAGE['skin']['guiedit']  = 'edit.png';



skin/pukiwiki.skin.php の
<?php _toolbar('edit') ?>

の次行に以下を追加します。
<?php _toolbar('guiedit') ?>





guieditを導入して気になったのが、編集画面の縦が小さいことです。
どうやら既定値は300pxのようです。これではちょっと不便なので、もっと縦を長くとってみました。


skin/guiedit/guiedit.js ファイルの
var oFCKeditor = new FCKeditor('msg', '100%', 300, 'Normal');

の 300 の所を任意の値にすると高さが変わるようです。


文章入力時に普通に改行すると、違う段落になってしまうようです。
同じ段落内での改行は Shift+Enter で改行しないといけないようですね。


リンクを張る場合、リンクを張る文字列を選択し、「リンク挿入/編集」ボタンを押します。URL へのリンクを張る場合はリンクタイプ:URL,プロトコル:httpを選びURLを、Wiki ページ名へのリンクを張る場合は、リンクタイプ:URL,プロトコルから<その他>を選択しURL欄にページ名を入力するようです。
by Jehoshaphat | 2012-11-26 23:00 | PHP開発
PukiWikiで最終更新したIPアドレスとユーザ名を表示したい
PukiWiki 1.4.7 で、HTTPベーシック認証をつかって特定のユーザにか編集させないようにしているんですが、各ページの最終更新者が誰であるかというのをページ最下部の Last-modified に表示できないかと思いました。

で、調査すると、質問箱3/408 - PukiWiki-officialに答えがありました。

まず、lib/file.php ファイルの page_write() 関数の、links_update($page);の下に下記を追加します。

$fh = fopen(CACHE_DIR.'lmb_'.encode($page),'w');
fwrite($fh,$_SERVER['PHP_AUTH_USER'].'('.$_SERVER['REMOTE_ADDR'].')');
fclose($fh);

今回は、ベーシック認証時のユーザ名とIPアドレスを記録するようにしました。
スーパーグローバル変数を使って、サーバから取れる任意の情報を記録します。(詳しくはPHP: $_SERVER - Manualを参考)
上記コードにより、キャッシュフォルダに "lmb_ページ名" のファイルが作成されます。
(なのでキャッシュをクリアしちゃうと最終更新者情報が消えちゃいます。)

あとは表示側の設定です。

skin/pukiwiki.skin.php ファイルで、Last-modified の部分を下記のように修正します。
<div id="lastmodified">Last-modified: <?php echo $lastmodified.' by '.file_get_contents(CACHE_DIR.'lmb_'.encode($vars['page']));?></div>


これで、ページ編集後に Last-modified: の部分が下記のように最終更新者が表示されるようになりました。

Last-modified: 2011-07-01 (金) 10:00:0 (0m) by hoge(10.0.0.10)

by Jehoshaphat | 2012-04-25 00:51 | Webがらみ
PukiWikiのサーバ移行
PukiWikiを別サーバに移行しました。
移行元と移行先環境は下記のとおりです。

WindowsXP
Apache 2.0.52
PHP 5.0.2.2

CentOS 5.5(カーネル2.6.18)
Apache 2.2.3
PHP 5.1.6

作業としては、pukiwikiのフォルダをコピーするだけでOKでした。
特に凝ったプラグインもいれてなかったので、移行は非常にスムーズでしたね。

ただ注意するのはディレクトリのアクセス権(パーミッション)ですね。

どのディレクトリをどういうパーミッションにしないといけないかはPukiWiki/Install/インストール方法に載ってます。
が、下記のシェルスクリプトで自動的にやってしまうのが楽かもしれません。

#!/bin/sh
chown apache:apache -R ./*
chmod 777 attach/ backup/ cache/ counter/ diff/ trackback/ wiki/
chmod 666 cache/*.dat
chmod 666 wiki/*.txt
chmod 755 *.php
chmod 755 lib/*.php
chmod 755 plugin/*.php
chmod 755 skin/*.php


参考:
pukiwikiの移行 - ととちの日記
by Jehoshaphat | 2011-09-23 22:46 | 豆知識
PukiWikiで表組み全体を左寄せしたい
PukiWikiで普通に表組み(テーブル)を作成すると、中央寄せ(センタリング)の状態で表示されます。

1行の内容が多ければ見栄えはいいのですが、少ないと見栄えが悪くなります。(特にワイド画面でブラウザを最大化している時)

ということで、左寄せする方法です。
Wiki記法では対応できないので、スタイルシートを直接編集しないといけません。

下記のファイルの .style_table のスタイルを変更します。

/skin/pukiwiki.css.php

.style_table {
padding:0px;
border:0px;
/*margin:auto; ←を削る*/
margin:1em auto 1em 0; /*←を追加*/
text-align:left;
color:inherit;
background-color:#ccd5dd;
}



(PukiWikiでIEだと問題ないのにFirefoxだとCSSが効かないの対策で、スタイルシートファイルを分けた場合は、そのスタイルシートファイルに上記を反映します。)

参考:
質問箱4/13
PukiWiki/1.4/ちょっと便利に/テーブルの中央寄せor右寄せ
by Jehoshaphat | 2011-09-21 23:37 | Webがらみ
PukiWikiでIEだと問題ないのにFirefoxだとCSSが効かない

会社で入れたPukiWikiなんですが、IE8だときれいに表示されるのに、Firefoxで見ると表示が崩れて見えます。
どうやらCSSが読み込まれていないような感じです。

で、ググるとどんぴしゃな情報をFirefoxのみでpukiwikiの表示が崩れる(スタイルシートが読み込まれない)で見つけました。
動的にCSSを生成している部分で問題があるようですね。

上記ページで対応策が書かれてますが、こちらにも書いときます。

まず、スタイルシートのアドレスを取得し、CSSファイルとして保存します。
(仮に mycss.css として保存)

アドレスは大抵こんな感じになろうかと。。
http://192.168.0.100/wikitest/skin/pukiwiki.css.php?charset=Shift_JIS

この保存したCSSをサーバに配置(仮にskin/mycss.cssとして配置)し、PukiWikiのスキンから動的ではなく、静的にリンクするようにします。
そのために、skin/pukiwiki.skin.php を下記のように修正します。


<link rel="stylesheet" type="text/css" media="screen" href="skin/pukiwiki.css.php?charset=<?php echo $css_charset ?>" charset="<?php echo $css_charset ?>" />
 ↓
<link rel="stylesheet" type="text/css" media="screen" href="skin/mycss.css" />

(media="screen" てのが画面表示用のCSSで、media="print"が印刷用のCSSのようです。)

これできちんと表示されるようになりました。
by jehoshaphat | 2010-09-16 20:07 | 豆知識