* 変更点 [#Top]
#contents

** インストール [#Install]
- パーミッション設定 _setmod.sh
#code(bash){{
#!/bin/bash
for d in attach backup cache counter diff trackback wiki log/browse log/check log/download log/update
do
  echo $d
  chmod 777 $d
  chmod 666 $d/*
done
for d in doc extend image init lib locale plugin skin tools
do
  echo $d
  find $d -type d | xargs chmod 755
  find $d -type f | xargs chmod 644
done
find . -name "*.php" | xargs chmod 644
find . -name "index.html" | xargs chmod 755
find . -name ".htaccess" | xargs chmod 755
}}
- wiki のディレクトリに SELinux の書き込み許可を与える。
 chcon -R -t httpd_cache_t attach backup cache counter diff trackback wiki

** Digest 認証設定 [#DigestAuth]
- [[Digest認証の使い方>みこ:Documents/How to use Digest Authentication]]

+ Digest 認証使用フラグをセットする。(auth_api.ini.php)
 (省略)
 $auth_api = array(
 	// Basic or Digest
 	'plus'	=> array(
 		'use'		=> 1,
 		'displayname'	=> 'Normal',
 	),
 (省略)
+ passwd プラグインを adminpass パラメータ付きで呼び出し、管理用パスワードのハッシュを生成する。(auth.ini.php)
-- $adminpass
 (自分のサイトのURL)?plugin=passwd&adminpass
|~パスワード|管理者用パスワード|
|~暗号鍵|任意の文字列|
|~Calculate|MD5を選択|
-- $auth_type
 // Authentication Type
 // 1: basic
 // 2: digest
 $auth_type = 2;
-- $realm
 // Authentication Parameter REALM
 $realm = '(サイト固有の名前)';
+ passwd プラグインを呼び出し、暫定管理者(admin)用パスワードのハッシュを生成する。(auth_users.ini.php)
 (自分のサイトのURL)?plugin=passwd
|~ユーザ名|admin(固定)|
|~パスワード|一時作業用パスワード|
|~暗号鍵|任意の文字列|
|~Calculate|MD5(固定)|
 <?php
 $auth_users = array(
   'admin' => array( '(計算結果をコピー&ペースト)', 2 ),
 );
 ?>
+ 暫定管理者(admin)としてログイン
 (自分のサイトのURL)?plugin=login
|~ユーザ名|admin(固定)|
|~パスワード|一時作業用パスワード|
+ ユーザ追加作業のため、init/passwd.ini.php を新規作成。
 <?php
   define('USE_PKWK_WRITE_FUNC', TRUE);
 ?>
+ auth_users.ini.php に書き込めるように権限変更。
 chown apache:apache auth_users.ini.php
 chmod 664 auth_users.ini.php
+ 追加ユーザを作成する。
 (自分のサイトのURL)?plugin=passwd
|~ユーザ名|ユーザ名, 任意|
|~パスワード|このユーザ用パスワード|
|~暗号鍵|管理用パスワード(一時作業用パスワードではない)|
|~役割|認証者/コンテンツ管理者/サイト管理者から選択|
|~Calculate|MD5(固定)|
+ ユーザ追加作業が終わったら init/passwd.ini.php を修正し追加できないようにする。
 <?php
   define('USE_PKWK_WRITE_FUNC', FALSE);
 ?>
+ auth_users.ini.php の admin をコメントアウト。

** pukiwiki.ini.php [#PukiWiki_ini]
|~変更項目|~変更前|~変更後|h
|~$page_title|PukiWiki|Take's Wiki|
|~$script|//$script = '&#x68;ttp://example.com/pukiwiki/';&br;//$script = './';|//$script = '&#x68;ttp://example.com/pukiwiki/';&br;$script = './';|
|~$modifier|anonymous|take|
//|~$modifierlink|&#x68;ttp://pukiwiki.example.com/|&#x68;ttp://www02.so-net.ne.jp/~shintan/|
|~$nowikiname|0|1|
|~$notimeupdate|1|0|
|~$lastmod|0|1|

** auth.ini.php [#Auth_ini]
|~変更項目|~変更前|~変更後|h
|~$adminpass|XXXX|xxxx|
|~$auth_method_type|contents|pagename|
|~$edit_auth|0|1|
|~$edit_auth_pages|XXXX|#^.*$#|

** default.css [#Default_css]
|~変更項目|~変更前|~変更後|h
|~td|font-size: 84%;|font-size: 100%;|
|~h1|font-size: 20px;|font-size: 144%;|
|~h1.title|font-size: 30px;|font-size: 160%;|

** pukiwiki.css.php [#PukiWiki_css]
|~変更項目|~変更前|~変更後|h
|~URIからテーマパス名, テーマ名を得る|// Default CSS&br;&br;// Send header|// Default CSS&br;&br;$theme_path = dirname( $_SERVER['SCRIPT_NAME'] );&br;$theme_name = basename( $theme_path );&br;&br;// Send header|
|~body|font-size: 90%;|font-size: 100%;&br;background-image: url("<?php echo $theme_path ?>/back.png");&br;background-repeat: no-repeat;&br;background-position: center;|
|~td.menubar|width: 9em;|width: 12em;|
|~div#menubar|width: 9em;|width: 12em;|
|~span.noexists|background-color:#FFFACC;|background-color:#FFEEAA;|

** pukiwiki.skin.php [#j129d2c7]
|~変更項目|~変更前|~変更後|~参照|h
|~メニューを常に表示|&lt;?php if (arg_check('read') &amp;&amp; exist_plugin_convert('menu')) { ?&gt;|&lt;?php if (exist_plugin_convert('menu')) { ?&gt;|[[pukiwiki:FAQ/43]]|
|~タイトルの下にURLではなくトピックパスを表示|define( 'SKIN_DEFAULT_DISABLE_TOPICPATH', 1 );|define( 'SKIN_DEFAULT_DISABLE_TOPICPATH', 0 );|[[pukiwiki:質問箱3/257]]|

** default.skin.php [#b0723d6d]
|~変更項目|~変更前|~変更後|~参照|h
|~トピックパスの場所を変更|<div id="header">&br; <a href="<?php echo $modifierlink ?>"><img id="logo" src="<?php echo IMAGE_URI; ?>TakeAsh.png" width="80" height="80" alt="[TakeAsh.net]" title="[TakeAsh.net]" /></a>&br; <h1 class="title"><?php echo(($newtitle!='' && $is_read)?$newtitle:$page) ?></h1>&br;</div>|<div id="header">&br; <a href="<?php echo $modifierlink ?>"><img id="logo" src="<?php echo IMAGE_URI; ?>TakeAsh.png" width="80" height="80" alt="[TakeAsh.net]" title="[TakeAsh.net]" /></a>&br; <h1 class="title"><?php echo( ($newtitle!='' && $is_read)?$newtitle:$page) ?></h1>&br;   <?php if ($is_page and exist_plugin_convert('topicpath')) { echo do_plugin_convert('topicpath'); } ?>&br;</div>|[[みこ:質問箱/253]]|
|~|  <td class="ctable" valign="top">&br;   <?php if ($is_page and exist_plugin_convert('topicpath')) { echo do_plugin_convert('topicpath'); } ?>&br;   <div id="body"><?php echo $body ?></div>&br;  </td>|  <td class="ctable" valign="top">&br;   <div id="body"><?php echo $body ?></div>&br;  </td>|~|

** make_link.php [#q660433f]
|~変更項目|~変更前|~変更後|h
|~?plugin=から始まるリンクもURLとみなす|(?:(?:https?&#x7c;ftp&#x7c;news):\/\/&#x7c;&#x6d;ailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+|(?:(?:https?&#x7c;ftp&#x7c;news):\/\/&#x7c;&#x6d;ailto:&#x7c;\&#x3f;plugin=)[\w\/\@\$()!?&%#:;.,~'=*+-]+|

** plugin.php [#plugin_php]
|~変更項目|~変更前|~変更後|h
|~プラグイン呼び出し回数制限|define('PKWK_PLUGIN_CALL_TIME_LIMIT', 768);|define('PKWK_PLUGIN_CALL_TIME_LIMIT', 1000);|

** attach.inc.php [#h9341be6]
|~変更項目|~変更前|~変更後|~参照|h
|~アップロードできるファイルの最大値を増やす|define( "MAX_FILESIZE", 1024 * 1024);|define( "MAX_FILESIZE", 50 * 1024 * 1024);|[[pukiwiki:Q&A/プラグイン/attachプラグイン]]&br;PHP自体の設定変更も必要|
|~zipがtgzに再圧縮されないようにする|'zip' => 0, // zip|'zip' => 0, // zip&br;'x-zip' => 0, // zip||

** calendar_viewer.inc.php [#nb226c4c]
|~変更項目|~変更前|~変更後|~参照|h
|~見出しを<h1>から<h2>に変更|$head   = '<h1>' . $link . '</h1>' . "\n";|$head   = '<h2>' . $link . '</h2>' . "\n";|[[pukiwiki:欲しいプラグイン/107]]|

** new.inc.php [#s0a075f1]
|~変更項目|~変更前|~変更後|~参照|h
|~PHP-5.1 以降で、new プラグインが正常動作しない。|||[[pukiwiki.dev:BugTrack2/120]]|

** tracker.inc.php [#f64a5c40]
|~変更項目|~参照|h
|~ページの文字数が多くなると、その項目のリスト表示に失敗する|[[pukiwiki:Q&A/プラグイン/trackerプラグイン#i0999b0d]]&br;[[trackerプラグインで「/page」の内容が長すぎると#tracker_listの表示に失敗する:http://dex.qp.land.to/pukiwiki/index.php?Memo/Wiki%A5%E1%A5%E2#b22c069c]]&br;[[cvs:plugin/tracker.inc.php:http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/pukiwiki/pukiwiki/plugin/tracker.inc.php]]|
|~ソートが働かない|[[PHP 5.3 でエラーが出るようになった>pukiwiki.dev:BugTrack2/324]]|
tracker.inc.php, v1.34
 	function Tracker_list($page,$refer,&$config,$list)
 		...
 		$pattern = join('',plugin_tracker_get_source($config->page.'/page'));
 
 +		// "/page"の内容が長すぎるとpreg_match()が失敗するバグ(?)があるので
 +		// "//////////"までをマッチ対象とさせる
 +		$pattern_endpos = strpos($pattern, "//////////");
 +		if($pattern_endpos > 0){
 +			$pattern = substr($pattern, 0, $pattern_endpos);
 +		}
 
 		// ブロックプラグインをフィールドに置換

 	function add($page,$name)
 		...
 		$source = join('',preg_replace('/^(\*{1,3}.*)\[#[A-Za-z][\w-]+\](.*)$/','$1$2',$source));
 
 +		// "/page"の内容が長すぎるとpreg_match()が失敗するバグ(?)があるので
 +		// "//////////"までをマッチ対象とさせる
 +		$pattern_endpos = strpos($source, "//////////");
 +		if($pattern_endpos > 0){
 +			$source = substr($source, 0, $pattern_endpos);
 +		}
 
 		// デフォルト値

*** フォームからページを作成する際にプロキシページを自動作成 [#tracker_createProxy]
- tracker プラグインの第3引数にページ名として使用する項目を指定する。
 #tracker(User/form,User,linkname)
- linkname = 'UserA' だったとすると、'UserA' というページが自動的に作成され、作成されたページが include される。
 #include(User/1,notitle)
- tracker.inc.php 1.123.13 用
 --- tracker.inc.2010-10-07.php  2010-10-07 01:27:45 +0900
 +++ tracker.inc.php     2015-08-26 13:34:38 +0900
 @@ -24,7 +24,7 @@
  // ----
  // Basic interface and strategy
 
 -define('PLUGIN_TRACKER_USAGE',      '#tracker([config[/form][,basepage]])');
 +define('PLUGIN_TRACKER_USAGE',      '#tracker([config[/form][,basepage[,createProxy]]])');
  define('PLUGIN_TRACKER_LIST_USAGE', '#tracker_list([config[/list]][[,base][,field:sort[;field:sort ...][,limit]]])');
 
  // $refer  : Where the plugin had been set / Where to return back to
 @@ -70,14 +70,18 @@
 
         $args = func_get_args();
         $argc = count($args);
 -       if ($argc > 2) return PLUGIN_TRACKER_USAGE . '<br />';
 +       if ($argc > 3) return PLUGIN_TRACKER_USAGE . '<br />';
 
         $base   = isset($vars['page']) ? $vars['page'] : '';
         $refer  = '';
         $config = '';
         $form   = '';
         $rel    = '';
 +       $createProxy = '';
         switch ($argc) {
 +       case 3:
 +               $createProxy = $args[2];
 +               /*FALLTHROUGH*/
         case 2:
                 $rel = $args[1];
                 /*FALLTHROUGH*/
 @@ -92,7 +96,7 @@
         unset($args, $argc, $arg);
 
         $tracker_form = & new Tracker_form();
 -       if (! $tracker_form->init($base, $refer, $config, $rel)) {
 +       if (! $tracker_form->init($base, $refer, $config, $rel, $createProxy)) {
                 return '#tracker: ' . htmlspecialchars($tracker_form->error) . '<br />';
         }
 
 @@ -151,6 +155,7 @@
 
         $base  = isset($post['_base'])  ? $post['_base']  : '';
         $refer = isset($post['_refer']) ? $post['_refer'] : '';
 +       $createProxy = isset($post['_createProxy']) ? $post['_createProxy'] : '';
 
         // $page name to add will be decided here
         $num  = 0;
 @@ -168,6 +173,7 @@
         }
 
         $config = isset($post['_config']) ? $post['_config'] : '';
 +       $createProxy = isset($post['_createProxy']) ? $post['_createProxy'] : '';
 
         // Petit SPAM Check (Client(Browser)-Server Ticket Check)
         $spam = FALSE;
 @@ -277,6 +283,11 @@
         // Write $template, without touch
         page_write($page, join('', $template));
 
 +       // Create proxy page
 +       if ($createProxy && ($proxyPage = isset($_post[$createProxy]) ? $_post[$createProxy] : '')) {
 +               page_write($proxyPage, '#include(' . $page . ',notitle)');
 +       }
 +
         pkwk_headers_sent();
         header('Location: ' . get_page_location_uri($page));
         exit;
 @@ -294,13 +305,16 @@
         var $raw_fields;
         var $fields = array();
 
 +       var $createProxy;
 +
         var $error  = '';       // Error message
 
 -       function init($base, $refer = '', $config = NULL, $relative = '')
 +       function init($base, $refer = '', $config = NULL, $relative = '', $createProxy = '')
         {
                 $base     = trim($base);
                 $refer    = trim($refer);
                 $relative = trim($relative);
 +               $createProxy = trim($createProxy);
 
                 if ($refer  == '') $refer  = $base;
                 if ($base   == '') $base   = $refer;    // Compat
 @@ -318,6 +332,7 @@
 
                 $this->base  = $base;
                 $this->refer = $refer;
 +               $this->createProxy = $createProxy;
 
                 if ($config !== NULL && ! $this->loadConfig($config)) {
                         return FALSE;
 @@ -856,6 +871,7 @@
                 $s_base   = htmlspecialchars($form->base);
                 $s_refer  = htmlspecialchars($form->refer);
                 $s_config = htmlspecialchars($form->config_name);
 +               $s_createProxy = htmlspecialchars($form->createProxy);
 
                 return <<<EOD
  <input type="submit" value="$s_title" />
 @@ -863,6 +879,7 @@
  <input type="hidden" name="_refer"  value="$s_refer" />
  <input type="hidden" name="_base"   value="$s_base" />
  <input type="hidden" name="_config" value="$s_config" />
 +<input type="hidden" name="_createProxy" value="$s_createProxy" />
  EOD;
         }
  }

** replace_tak.inc.php [#gf38b9df]
- 指定のページに対して正規表現を使った置換を行う。
- &ref(replace_tak.inc.php.txt);
- ネタ元
-- [[pukiwiki:質問箱4/83]] 全ファイルを一度に更新
-- [[teanan:自作プラグイン/replace.inc.php]]
-- [[みこ:Plugin/replace.inc.php]]

** commnet.inc.php / pcomment.inc.php [#r2be97bd]
- [[pukiwiki.dev:PukiWiki/1.4/ちょっと便利に/指定単語を含むメッセージを制限する/commentプラグイン]]
- [[teanan:自作プラグイン/comment.inc.php#rc51d0ed]]

** amazon.inc.php [#l6857c99]
- [[amazon.inc.phpのProduct Advertising API対応>pukiwiki.dev:BugTrack2/323]]

** codehighlight.inc.php [#ibef9c43]
- &ref(keyword.apache.zip);
- [[SQLEditorシリーズ用強調ファイル:http://www.yokkasoft.net/Fountain/]] @ [[YokkaSoft webpage:http://www.yokkasoft.net/]]

** auth.cls.php [#m9c5e385]
- function http_digest_parse() 内の正規表現から「+」外してるのは何故なんだろう?&br;
半角空白がマッチしないせいで、AND/OR検索ができなくなると思うんだけど…。
- 同じ正規表現でも半角空白受け付ける場合もあるな。環境依存は面倒だな。

** :config/plugin/attach/mime-type [#l1947e38]
|~変更項目|~変更前|~変更後|h
|~hqxをアップロードできるようにする|&#x7c;application/x-stuffit&#x7c;sit&#x7c;stuff it 圧縮ファイル&#x7c;|&#x7c;application/x-stuffit&#x7c;sit hqx&#x7c;stuff it 圧縮ファイル&#x7c;|
|~jsをアップロードできるようにする|(新規追加)|&#x7c;application/x-javascript&#x7c;js&#x7c;JavaScript ファイル&#x7c;|
#br
** スキン自作 [#MySkin]
- &ref(TakeAsh.skin.zip);
- スキン名の指定 (index.php)
 define('PLUS_THEME', 'MySkin');
- ファイルは下記フォルダに専用ディレクトリを作成し配置する。
 extend/skin/theme/MySkin/MySkin.skin.php
 extend/skin/theme/MySkin/MySkin.css.php
 image/site/MySkin/
- extend/.htaccess を編集し、アクセスを許可する。
 #Order allow,deny
 #Deny from all

&approve(Test);


リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS