picoでxpWikiへの外部Autoリンク
(080930変更) クエリパターンを、「(pico)/index.php?subject=ページタイトル」に変更しました。 参考:(XUGJ)picoでxpWikiへの外部Autoリンク(thx GIJOEさん) |
タイトルでリンク可能な特殊文字
タイトルに使っても大丈夫な文字 : $?\*+-/#@%~^ ()=|!{}[][[]]:;
その他、Σなどのマルチバイト文字も可能。
リンクされない文字 (xpWikiのAutoリンクの制約か) : &"'<>
以前より、とあるサイトでXwordsでxpWikiへの外部Autoリンクを便利に使っていました。
(参考:xpwikiからxwordsへのリンクはできないでしょうか?-XOOPSマニア)
今回、積層スピーカーの会で、スピーカーDBをcosmoDBからpico(1.71系extra-fields)に乗り換えて、外部Autoリンクに挑戦してみました。
Wrapモード=ON
(080930変更)Autoリンクの際のアクセスを、
「(xoops_URL)/modules/(pico)/index.php?subject=ABC」
に変更しました。 以下、WrapモードONは必須ではなくなりました。
Wrapモードにて、仮想パスでアクセス可能にします。
具体的には、記事タイトルが
「ABC」
であれば、
「/ABC.htm」
という仮想パスを設定することにより、
「(xoops_URL/modules/(pico)/index.php/ABC.htm)」
でアクセス可能になります。
main_content_form.html の編集
「(trust_path)/modules/pico/templates/main_content_form.html」の、33行目と46行目を以下のようにコメントアウトします。
(080930追記)仮想パスでなくてもAutoリンク可能になったので、この変更は必須ではありません。
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
entries_write.php
「trust/modules/pico/include/entries_write.php」というファイルを以下の内容で作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
|
pico本体ソースの変更
続いて、このソースをインクルードする部分の編集です。 なお、記事は自動承認される場合のみ、有効にしています。 承認が必要な場合は、別に承認処理のソースに手を入れる必要があります。
X2の場合はこのフックは必須です。
PicoControllerInsertContent.class.php の編集
「(trust)/modules/pico/class/PicoControllerInsertContent.class.php」に下記の76行目の追記。
75 76 77 78 79 80 81 82 83 84 85 |
|
PicoControllerUpdateContent.class.php の編集
「(trust)/modules/pico/class/PicoControllerUpdateContent.class.php」に下記の75行目の追記。
74 75 76 77 78 79 |
|
PicoUriMapper.class.php の編集 (080930追記)
(pico-ver1.73以降では、ハック不要。 pico一般設定の「URIマッピング処理クラス名」にサンプルで同梱されている「PicoUriMapperBySubject」を設定すればOKです。)
「(trust)/modules/pico/class/PicoUriMapper.class.php」の79行目あたり。下記79~91行目を追記。
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
|
以上、変更したソースをサーバーに上書きします。
XCLの場合
XCLではモジュールアップデートで上書きされる危険性を避けるために、PreloadとDeligateを使うことができますので、これでやってみます。
(thx GIJOEさん http://www.xugj.org/modules/QandA/index.php?post_id=6217)
PicoSubjectRegexHook.class.php
「(html)/preload」内に、「PicoSubjectRegxHook.class.php」として以下のソースを保存してアップするだけでOK!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
|
pico-1.72までの場合
この上のPicoUriMapper.class.php の編集修正も必要です。 1.73以上にアップすれば、pico一般設定の「URIマッピング処理クラス名」にサンプルで同梱されている「PicoUriMapperBySubject」を設定すればOKです。
ページ一覧ファイルの準備
X2,XCL共通
「(html)/uploads/(pico)/」ディレクトリを作成し、パーミッションを「707」「777」など書き込み権限を与えます。
そして、実際にコンテンツページ記事を作成して、「entry.php」の中身にページ名が正規表現で作成されているかを確認できればOKです。 これで準備は完了。 次はxpWiki側の設定です。
xpWikiで外部オートリンクを設定
「(html/modules/(xpwiki)/private/ini/pukiwiki.ini.php」に(無ければ作成)、以下を編集。(080930変更)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
という具合です。
これで、xpWikiの記事を作成したとき、「(html)/cache/」ディレクトリ内に「_____.extautolink」というファイルができて、その中身がきちんと正規表現で入っていれば、OKです。
補足
xpWiki内で外部オートリンクが成功すれば、そのxpWikiがインストールされたサイト内モジュールでxpWikiレンダラーモードを有効にすれば、サイトワイドでこの自動リンクが有効になります。 ちと重くなりますが、使い場所によっては大変便利な機能ですので、お試しください。
検索機能
pico-extra_fieldsを使えば、テンプレートを駆使してデータベースの検索機能のようなものが作れます。
参考:(XUGJマニュアル)ModuleManuals/pico/extra_fields
実際に検索機能を付加したテンプレートを、参考までに下記に公開しておきます。
なお、実装サイトはこちらになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 |
|
実体ファイル:inc/pico_autolink
AU携帯からX2サイトでプロフィール編集できない件のハック |
XOOPSサイト構築 |
inquirySPフォームに元記事ページ情報埋込み |
コメント一覧
投稿ツリー
-
Re: picoタイトルのxpWikiへの外部Autoリンクに挑戦
(なーお, 2009/2/14 11:01)
-
Re: picoタイトルのxpWikiへの外部Autoリンクに挑戦
(nonn50, 2009/5/11 20:12)
-
Re: picoタイトルのxpWikiへの外部Autoリンクに挑戦
(なーお, 2009/5/11 23:57)
このサイトにも、導入してみました。
ただ、各記事のタイトルが長すぎて、あまり実用的ではないかも。
それに、仮想パスの画像やページリンクが切れちゃいますね。
ということで、以下のコードでのオーバーライドクラスで仮想パスへのリダイレクトのテスト。
「(trust)/modules/pico/class/PicoUriMapperBySubject2.class.php」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
以下、テスト。
なーおの多趣味のはなし
趣味のはなし : マラソン
趣味のはなし : オーディオスピーカー自作
「スーパースワン」改 の頭部設計図の一部
3D-スパイラルスピーカー自作
MSDBS-1(Middle-Speed DB Spiral-1)
Twister
3D-subako
3D-elbow-r2
3D-ELBOWのF特測定
3D-Elbow測定グラフ in TakenakaさんRoom
自作PC、家庭内ネットワーク(現行:2008/12)
自作PC、家庭内ネットワーク(旧3:2006/12)
自作PC、家庭内ネットワーク(旧2:2004/01)
自作PC、家庭内ネットワーク(旧1:2000/12)
XUGJ_blockでMyブックマーク作成
習作:MT形式のd3blogインポート
習作:WordpressME(xoops版)のMT形式エクスポート
XC2.0のサイトで携帯対応(携帯対応レンダー)
AU携帯からX2サイトでプロフィール編集できない件のハック
picoタイトルのxpWikiへの外部Autoリンクに挑戦
inquirySPフォームに元記事ページ情報埋込み
minidiary d3コメント選択対応とd3commentクラス
Xwords d3コメント選択対応とd3commentクラス
piCal d3コメント選択対応とd3commentクラス
myalbum-P d3コメント選択対応とd3commentクラス
piCal for easy comment integration
myalbum-P for easy comment integration
なーお のクルマ遍歴
クルマのオフ会報告
ROOM GDI FUN -レグナムGDIの情報
(三菱)GDIエンジンの省燃費サイクル
(三菱)GDIエンジンの空燃比変化(予想)
└三菱への質問状の内容
└三菱からの回答
(三菱)GDIエンジンの省燃費性能を最大限に引き出すには?
└(三菱)GDIエンジンの空燃比変化予想(旧版)
(三菱)・4G93(GDI)レグナムの実際の燃費
GDIエンジン新旧特性比較
(三菱)レグナムST-GDI
Legnum時代のカーオーディオの話題
GDIレグナムのインプレッション
GDIレグナムのトラブル情報
└GDI高圧燃料ポンプリコールの全文
負圧計の見方
1:低負荷域:一定速度 = 超リーン 空燃比40?30
2:負荷域:緩加速 = 通常燃焼リーン 空燃比16?24
3:高負荷域:強加速 = 通常燃焼ストイキ 空燃比13?14.7
Libertyの部屋
Liberty-Inpression
Liberty-Driving
Liberty-Hyper-CVT
Liberty-CVT省燃費走法
Liberty-Ecology(燃費)
Liberty-CarAudio
Liberty-DIY-TUNE
Libertyにアンサーバックユニット取付け
Libertyオフ会報告
管理サイト
ブックマーク
なーお'n研究室
なーお'n研究室 Topページ左下
なーお'n研究室 Topページ右下
なーお'n研究室 Topページ左中
なーお'n研究室 Topページ右中
なにやら、興味津々な改造ですね。
サンプルとしているこちらのページと、このページの相違がいまいち理解できていないのですが、picoモジュールの利用方法として面白いです。
picoモジュールを利用してみたい誘惑があります。
小生、酒のデーターベース化をもくろんでいるのですが、利用できそうですね。
また、色々と教えてください。
nonn50さん
スピーカーサイトのデータベースは、xoops2なのでpico本体ハックをしていますが、こちらはデリゲートを使っていますので、モジュールアップデートの際にも安心です。 どちらも、ページタイトルにxpwikiオートリンクがかかるようにしている点では同じ機能です。
なお、このページの記述はpico1.7.3まで有効で、1.7.4以降はextra_fields周りの指定が変更になっていますので、このページのままでは出来ませんので要注意です。 (そんなわけで、私もなかなかpicoを1.8以上にアップデートする勇気が出ません)
お酒のデータベースですか、それは楽しみですね。 そういう使い方にpicoのextra_fieldsはフレキシブルで良いと思います。 但し、テンプレートを自分で書き倒すことになりますんで、なかなか骨が折れます。(普通は携帯用テンプレートも別に作りますが、二度手間で大変なので、PCでも携帯でも破綻しない表示を意識して検索ページを作ります)。 また、検索機能もテンプレートでやることのなるので、簡単な検索機能はできますが、再絞込みや複雑な検索は苦手です。
実装の際には、多少フォローしますよ。