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 |
ページ別名 : | 未設定 |
ページ作成 : | なーお |
閲覧可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
編集可 | |
グループ : | なし |
ユーザー : | なし |