自作プラグイン/s.inc.php
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
** s.inc.php [#ubf4e745]
|RIGHT:100|LEFT:360|c
|~サマリ|短縮URLプラグイン ページに短いURLでアクセスでき...
|~リビジョン|1.0|
|~対応バージョン|1.4.7|
|~投稿者|[[umorigu]]|
|~投稿日|&new{2011-03-10 (木) 02:46:04};|
**概要 [#za7c3d33]
ページにアクセス可能な、短いURLを生成するプラグインです。
***例 [#gfaff917]
「長い名前を持つページ」
www.example.com/pukiwiki/?%E9%95%B7%E3%81%84%E5%90%8D%E5...
に対して、
www.example.com/pukiwiki/?cmd=s&k=2dc9e012b6
というURLでアクセスできるようにします(k=の後は10文字(設定...
実際にはオリジナルのページへ302(301)リダイレクトされます。
mod_rewriteを併用することで
www.example.com/pukiwiki/?&2dc9e012b6
にまで短くなります。
**セットアップ [#gd9902d8]
*** s.inc.php配置 [#pb2b5443]
- https://github.com/umorigu/pukiwiki.urlshortener ...
- s.inc.php を plugin/ ディレクトリに配置する。
*** ディレクトリ作成 [#kcb2f5ed]
wiki/ や plugin/ と並列の位置に次の2つのディレクトリを作...
- shortener/
- shortener_counter/
パーミッションの設定
chmod -R 777 shortener shortener_counter
*** skin/pukiwiki.skin.php を編集 [#xf0bc721]
<?php if ($is_page) { ?>
<?php if(SKIN_DEFAULT_DISABLE_TOPICPATH) { ?>
<a href="<?php echo $link['reload'] ?>"><span class="...
<?php } else { ?>
<span class="small">
<?php require_once(PLUGIN_DIR . 'topicpath.inc.php');...
</span>
<?php } ?>
<?php } ?>
ここ↑の置き換え、または下あたりに↓を追加する。
<?php if ($is_page) { ?>
<br>
<span class="small">
<?php require_once(PLUGIN_DIR . 's.inc.php'); echo plug...
</span>
<?php } ?>
実際はどこか1箇所に書けばよい。
*** mod_rewriteを併用する場合 [#w7c55b90]
mod_rewrite用の.htaccessの例
RewriteEngine on
RewriteBase /var/www/html/pukiwiki
RewriteCond %{QUERY_STRING} ^&([0-9a-f]+)$
RewriteRule ^(.*)$ /pukiwiki/?cmd=s&k=%1
これで、
www.example.com/pukiwiki/?&2dc9e012b6
のような /?&xxxxxxxxxx 形式でアクセスできるようになる。
* 設定値 [#ie404457]
s.inc.php で設定する。
- define('PLUGIN_S_PAGEID_LENGTH', 10);
-- ページを表すキーを何文字にするか。最大32文字
- define('PLUGIN_S_COMMAND_STR', 'cmd=s&k=');
-- "/?" と キーの間の文字列。mod_rewrite が使える場合は、...
- define('PLUGIN_S_PAGENAME_MININUM_LENGTH', 20);
-- 「ここの数字より短いページ名URLの場合には短縮URLを表示...
* 仕組み [#a456e80f]
- ページ名(UTF-8)のmd5ハッシュ値の文字列表現の先頭10文字(...
-- キー文字列→ページ名 対応はshortener/ディレクトリに保存...
- アクセスされたら実際のページに301リダイレクトする。
- PukiWikiがEUC-JPで動作していてもページ名はUTF-8変換して...
**コメント [#j0cb2912]
- ソースを見ただけでほとんどテストをしてませんが、ツッコ...
-- plugin_s_inline_get_short_url関数で、
if (is_page($page) &&
PLUGIN_S_PAGENAME_MININUM_LENGTH < strlen(rawurlencode(...
の分岐がFalseになった場合は使われないにもかかわらず、必ず...
-- plugin_s_inline_get_short_url関数で、PKWK_UTF8_ENABLE...
if (defined('PKWK_UTF8_ENABLE'))
{
$utf8page = $page;
}
else
{
$utf8page = mb_convert_encoding(mb_convert_encoding($pa...
}
$encoded = encode($utf8page);
としてしまえばencode関数の実行が必ず1回で済みますし、key-...
- コメントありがとうございます。ご指摘のとおり無駄な処理...
- 関連: [[欲しいプラグイン/98]] -- &new{2011-04-26 (火) ...
- お詳しい方がいらっしゃいましたら教えて下さい。このプラ...
-- 確かに、URLだけ取得する関数をつけておけばよかったです...
- umoriguさま!お返事ありがとうございます。substrで文字列...
#comment
終了行:
** s.inc.php [#ubf4e745]
|RIGHT:100|LEFT:360|c
|~サマリ|短縮URLプラグイン ページに短いURLでアクセスでき...
|~リビジョン|1.0|
|~対応バージョン|1.4.7|
|~投稿者|[[umorigu]]|
|~投稿日|&new{2011-03-10 (木) 02:46:04};|
**概要 [#za7c3d33]
ページにアクセス可能な、短いURLを生成するプラグインです。
***例 [#gfaff917]
「長い名前を持つページ」
www.example.com/pukiwiki/?%E9%95%B7%E3%81%84%E5%90%8D%E5...
に対して、
www.example.com/pukiwiki/?cmd=s&k=2dc9e012b6
というURLでアクセスできるようにします(k=の後は10文字(設定...
実際にはオリジナルのページへ302(301)リダイレクトされます。
mod_rewriteを併用することで
www.example.com/pukiwiki/?&2dc9e012b6
にまで短くなります。
**セットアップ [#gd9902d8]
*** s.inc.php配置 [#pb2b5443]
- https://github.com/umorigu/pukiwiki.urlshortener ...
- s.inc.php を plugin/ ディレクトリに配置する。
*** ディレクトリ作成 [#kcb2f5ed]
wiki/ や plugin/ と並列の位置に次の2つのディレクトリを作...
- shortener/
- shortener_counter/
パーミッションの設定
chmod -R 777 shortener shortener_counter
*** skin/pukiwiki.skin.php を編集 [#xf0bc721]
<?php if ($is_page) { ?>
<?php if(SKIN_DEFAULT_DISABLE_TOPICPATH) { ?>
<a href="<?php echo $link['reload'] ?>"><span class="...
<?php } else { ?>
<span class="small">
<?php require_once(PLUGIN_DIR . 'topicpath.inc.php');...
</span>
<?php } ?>
<?php } ?>
ここ↑の置き換え、または下あたりに↓を追加する。
<?php if ($is_page) { ?>
<br>
<span class="small">
<?php require_once(PLUGIN_DIR . 's.inc.php'); echo plug...
</span>
<?php } ?>
実際はどこか1箇所に書けばよい。
*** mod_rewriteを併用する場合 [#w7c55b90]
mod_rewrite用の.htaccessの例
RewriteEngine on
RewriteBase /var/www/html/pukiwiki
RewriteCond %{QUERY_STRING} ^&([0-9a-f]+)$
RewriteRule ^(.*)$ /pukiwiki/?cmd=s&k=%1
これで、
www.example.com/pukiwiki/?&2dc9e012b6
のような /?&xxxxxxxxxx 形式でアクセスできるようになる。
* 設定値 [#ie404457]
s.inc.php で設定する。
- define('PLUGIN_S_PAGEID_LENGTH', 10);
-- ページを表すキーを何文字にするか。最大32文字
- define('PLUGIN_S_COMMAND_STR', 'cmd=s&k=');
-- "/?" と キーの間の文字列。mod_rewrite が使える場合は、...
- define('PLUGIN_S_PAGENAME_MININUM_LENGTH', 20);
-- 「ここの数字より短いページ名URLの場合には短縮URLを表示...
* 仕組み [#a456e80f]
- ページ名(UTF-8)のmd5ハッシュ値の文字列表現の先頭10文字(...
-- キー文字列→ページ名 対応はshortener/ディレクトリに保存...
- アクセスされたら実際のページに301リダイレクトする。
- PukiWikiがEUC-JPで動作していてもページ名はUTF-8変換して...
**コメント [#j0cb2912]
- ソースを見ただけでほとんどテストをしてませんが、ツッコ...
-- plugin_s_inline_get_short_url関数で、
if (is_page($page) &&
PLUGIN_S_PAGENAME_MININUM_LENGTH < strlen(rawurlencode(...
の分岐がFalseになった場合は使われないにもかかわらず、必ず...
-- plugin_s_inline_get_short_url関数で、PKWK_UTF8_ENABLE...
if (defined('PKWK_UTF8_ENABLE'))
{
$utf8page = $page;
}
else
{
$utf8page = mb_convert_encoding(mb_convert_encoding($pa...
}
$encoded = encode($utf8page);
としてしまえばencode関数の実行が必ず1回で済みますし、key-...
- コメントありがとうございます。ご指摘のとおり無駄な処理...
- 関連: [[欲しいプラグイン/98]] -- &new{2011-04-26 (火) ...
- お詳しい方がいらっしゃいましたら教えて下さい。このプラ...
-- 確かに、URLだけ取得する関数をつけておけばよかったです...
- umoriguさま!お返事ありがとうございます。substrで文字列...
#comment
ページ名: