#author("2016-08-04T22:12:31+09:00","","")
**[[質問箱3/135]] [#sa2f8255]
#author("2018-03-11T15:49:01+09:00;2016-08-04T22:12:32+09:00","","")
**[[質問箱/3135]] [#sa2f8255]
|RIGHT:70|LEFT:410|c
|~カテゴリ||
|~サマリ|雛形となるtemplateを絞りたい|
|~バージョン|1.4.5_1|
|~投稿者|[[アッカ]]|
|~状態|質問|
|~投稿日|&new{2005-07-11 (月) 20:09:03};|

***質問 [#h9a4d915]
普通に雛形を使ってページを作成しようとすると、
すべてのページがリストボックスに一覧表示され困っています。
雛形となるページを絞ることはできないんでしょうか?

***回答 [#d6e6acc0]
-「複製」から作成するのではなく、指定したページだけテンプレートに登録できるといいですね。 --  &new{2005-07-11 (月) 21:44:56};
-実は全てのページではありません。$non_listにマッチするものは除外されています。 --  &new{2005-07-11 (月) 21:48:05};
-この仕組みを少しいぢってみたらどうでしょう。
lib/html.phpを以下のように改造し、
 @@ -146,7 +146,7 @@
      global $script, $vars, $rows, $cols, $hr, $function_freeze;
      global $_btn_addtop, $_btn_preview, $_btn_repreview, $_btn_update, $_btn_cancel, $_msg_help, $_btn_notchangetimestamp;
 -    global $whatsnew, $_btn_template, $_btn_load, $non_list, $load_template_func;
 +    global $whatsnew, $_btn_template, $_btn_load, $template_list, $load_template_func;
  
      $refer = $template = $addtag = $add_top = '';
  
 @@ -164,9 +164,9 @@
  
      if($load_template_func && $b_template) {
          $pages  = array();
 -        $non_list_pattern = '/' . $non_list . '/';
 +        $template_list_pattern = '/' . $template_list . '/';
          foreach(get_existpages() as $_page) {
 -            if ($_page == $whatsnew || preg_match($non_list_pattern, $_page))
 +            if ($_page == $whatsnew || (!preg_match($template_list_pattern, $_page)))
                  continue;
              $s_page = htmlspecialchars($_page);
              $pages[$_page] = '   <option value="' . $s_page . '">' .
pukiwiki.ini.phpで、
 @@ -359,6 +359,7 @@
  $auto_template_rules = array(
         '((.+)\/([^\/]+))' => '\2/template'
  );
 +$template_list = 'template$';
  
  /////////////////////////////////////////////////
  // Automatically add fixed heading anchor
 
のように正規表現でリストするページを指定するとか。 --  &new{2005-07-11 (月) 22:13:39};
-詳しくなくて申し訳ない。たとえばtemplate~というページを正規表現で指定するにはどうしたらよいのでしょう? --  &new{2005-07-12 (火) 00:03:32};
--リンク先のリンク先をよーく読んでください。 --  &new{2005-07-12 (火) 01:00:34};

***編集してみた。 [#oce9b8a7]
 @@ -359,6 +359,7 @@
  $auto_template_rules = array(
         '((.+)\/([^\/]+))' => '\2/template'
  );
 +$template_list = 'template*';

先頭にtemplateとつくページを雛形としてリストアップします。
-…本当ですか? --  &new{2005-07-24 (日) 17:01:11};

***1.4.7 では? [#ed89cb9d]
- バージョン 1.4.7の場合はどこをなおせばいいのですか?できれば新規作成の-- 雛形とするページ --←これを消してFrontPageのみ雛形を読込できるようにしたいです。(できたら読込のときたくさんでる他のページの雛形は表示したくないです) -- [[peko]] &new{2007-04-13 (金) 16:29:04};
-- アッカさんの意図とは異なるかもしれませんが、 ツールバーに「手本」を加える(http&#x3a;//imo.la.coocan.jp/index.php?imo758%2F%BC%AB%BA%EE%A5%B9%A5%AD%A5%F3 ) はどうでしょうか。 -- [[imo758]] &new{2007-04-14 (土) 15:31:50};
-- やってみました。これはこれで参考になりましたが求めてるものとはちがうようです。 -- [[peko]] &new{2007-04-15 (日) 03:05:55};
-- 上のと大きく違う場所はここぐらい? --  &new{2008-06-04 (水) 20:02:51};
      if($load_template_func && $b_template) {
          $pages  = array();
 +        $template_list_pattern = '/' . $template_list . '/';
          foreach(get_existpages() as $_page) {
 -            if ($_page == $whatsnew || check_non_list($_page))
 +            if ($_page == $whatsnew || (! preg_match($template_list_pattern, $_page)))
                  continue;
              $s_page = htmlspecialchars($_page);
              $pages[$_page] = '   <option value="' . $s_page . '">' .
- この機能は、基本的にDIR化しないサイトでは重宝するので、本家に取り込んで欲しいですね。 -- [[KJM]] &new{2007-04-26 (木) 18:54:51};
- 後は、auto_template での、$1、$2、$3 に対応できればいいのですが。 -- [[KJM]] &new{2007-04-26 (木) 20:00:04};
- バージョン 1.4.7の場合、html.phpのソースがちょっと違うみたいです。if($load_template_func && $b_template) { -- [[cj]] &new{2008-06-04 (水) 18:29:15};
- 雛形を指定できたらいいですね…雛形にしたいページにプラグイン埋め込むとかはダメですかね… -- [[ignix]] &new{2014-12-01 (月) 02:57:45};

- URLが入っていて編集できなかったので該当URLを削除しました -- [[匿名]] &new{2016-08-03 (水) 12:46:40};
- リンクを解除して文字列でURLのコメを戻してみました(imo758/自作スキン のページだけじゃなく、imo.la.coocan.jp でも404 って言われるのは一時的なもの?それとも公開終了?) --  &new{2016-08-04 (木) 21:26:35};

***1.5.1 では? [#ed89cb9d]
- バージョン 1.5.1の場合はどこをなおせばいいのですか? -- [[匿名]] &new{2016-08-03 (水) 12:47:23};
- [[PukiWiki/Download/1.5.1#ddbd6725]]([[dev:BugTrack2/377]]) で編集開始時の雛型ページ一覧の機能に手が加えられていますが、さらに表示を絞りたいということでしょうか?  --  &new{2016-08-04 (木) 21:26:35};
-- その他のページの数を絞るだけならば、lib/html.php のedit_form() にある
	if($load_template_func && $b_template) {
		$tpage_names = array(); // Pages marked as template
		$template_page = ':config/Templates';
		$page_max = 100;
で、固定的な設定$page_max の数値を減らすだけです  --  &new{2016-08-04 (木) 21:33:41};
-- 他にも
--- template と名の付くページがリストに必ず表示されるのをやめたい、テンプレートとして自動的に追加されるページ名のルールを変えたい、といった場合は
			if (preg_match('/template/i', $_page)) {
				$tpage_names[] = $_page;
			} else {
のif 条件文を変更する
--- $page_max = 0; にはしたくないがその他として追加表示されるページをフィルタしたい場合は
			} else {
				if (count($page_names) >= $page_max) continue;
				$page_names[] = $_page;
			}
で、$page_names[] = $_page; と格納される前に continue で抜ける条件を追加する
--
などで、既定の動作を変更できると思います --  &new{2016-08-04 (木) 22:00:17};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.082 sec.

OSDN