LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Wiki

ModuleManuals

wraps anchor.png

機能:ページラップモジュール
種別:静的コンテンツ作成
作者:GIJOE
バージョン:1.12
動作環境:XOOPS2.0、本家版2.2、XOOPS Cube Legacy 2.1
配布元:http://xoops.peak.ne.jp/
複製:Duplicatable V3

Page Top

概要 anchor.png

既存のサイトなどをまるごとXOOPSの中に取り込むためのモジュールです。
オフラインでページ作成し、FTPでアップロードする、というワークフローでのコンテンツ作成にも適しています。
Duplicatable V3であるため、自由なディレクトリ名で、何個でもインストール可能です。

Page Top

知っておくべき事 anchor.png

Page Top

PATH_INFO 必須 anchor.png

wrapsモジュールは、ApacheのPATH_INFO機能を利用しています。
そのため、httpdがApache以外(IIS等)では基本的に動作しません。

httpdがApacheでも、PHPがCGIで動いている場合にはPATH_INFOを取得できないケースも多くあります。php.ini が利用できるCGI版PHPの場合、以下の指定で取得できることもあります。

cgi.fix_pathinfo = 1
Page Top

3種類のファイル構成 anchor.png

モジュールでは、ファイル構成が大きく3種類に分けられます。それぞれきちんと区別してください。

モジュール本体
wrapsモジュールのロジック部分です。1つのXOOPSサイトに1つしか置かれません。サーバ上の置き場所は、XOOPS_TRUST_PATH/modules/wraps/ です。アーカイブでは、xoops_trust_path/modules/wraps/ です。
モジュールフロントエンド
モジュールとXOOPSをつなぐための入口部分です。1つのXOOPSサイトにいくつでも置けます。サーバ上の置き場所は、XOOPS_ROOT_PATH/modules/(任意のディレクトリ) です。アーカイブでは、html/modules/wraps/ です。
ラップディレクトリ
wrapsモジュールが転送するファイル群です。サイトオーナーは、このファイルを作成することになります。サーバ上の置き場所は、XOOPS_TRUST_PATH/wraps/(任意のディレクトリ) です。アーカイブには含まれていません。
Page Top

インストール anchor.png

(1) XOOPS_TRUST_PATHの設定をします。(まだ一度もしていなければ)

(2) XOOPS_TRUST_PATH/modules/wraps 以下にモジュール本体をアップロードします。

(3) XOOPS_ROOT_PATH/modules/ の下に、好きな名前(仮にcontentsとします)でディレクトリを作成し、そこにモジュールフロントエンドをアップロードします。

01.jpg

(4) モジュールに表示させるコンテンツそのものを、XOOPS_TRUST_PATH/wraps/の下に、(3)と同名のディレクトリを作って、そこにFTPでアップロードします。ファイル間のリンクが相対リンクになっていれば、特にリンクを書き換える必要はありません。

02.jpg
03.jpg

(5) お使いのXOOPSの管理画面に入り、モジュール管理よりインストールします。

2個目以降のwrapsをインストールする時は、(3)〜(5)の手順だけでOKです。

Page Top

アップデート anchor.png

ファイル構成については、基本的にモジュール本体部分だけを上書きアップロードすればOKです。何らかの理由で、フロントエンド部分も上書きする必要がある場合にはその旨のアナウンスがあります。

あとは、必要に応じて(必要な場合はアナウンスがあります)、インストールされたすべてのwrapsモジュールについて、モジュール管理からモジュールアップデートを行います。

Page Top

アンインストール anchor.png

モジュール管理からモジュールアンインストールします。

複数あるwrapsモジュールのうちの1個だけをアンインストールする場合は、FTP等で、モジュールフロントエンドだけを削除します。ラップディレクトリも必要に応じて適宜削除してください。

すべてのwrapsモジュールを削除し、二度と利用しない場合は、モジュール本体を削除しても良いでしょう。ただ、XOOPS_TRUST_PATHの設定は残しておくことをお勧めします。

Page Top

使用方法 anchor.png

基本的にFTP等でラップディレクトリを更新することで、コンテンツを管理します。

検索インデックスの自動更新を設定してあれば、管理画面での操作も必要ありません。

05.jpg
Page Top

管理画面 anchor.png

Page Top

検索用インデックスの更新 anchor.png

ページラップディレクトリ内を再帰的に走査して、拡張子が.html .htm .txt (大文字も可)のいずれかであるファイルの中身を検索用インデックスに登録します。

それ以外のファイルは検索対象にならない点が要注意です。

Page Top

テンプレート管理 anchor.png

いわゆるtplsadmin画面です。
wrapsでは、altsysをインストールした場合にのみ表示されます。

テンプレートを編集する場合に利用します。

Page Top

アクセス権限 anchor.png

いわゆるblocksadmin画面です。
wrapsでは、altsysをインストールした場合にのみ表示されます。

モジュールアクセス権をコントロールする場合に利用します。

Page Top

一般設定 anchor.png

トップページモジュールトップにアクセスされた時にラップするファイルを指定します。
より具体的にはmodules/(dirname)/へアクセスされた時のリダイレクト先です。
sub/index.html を指定すれば、modules/(dirname)/index.php/sub/index.html へとリダイレクトされます。
検索インデックスの自動更新検索インデックスの自動更新機能を有効にします。Tipsの項目を参照のこと
検索インデックスの最終更新日時検索インデックスの更新日がUNIX_TIMESTAMP形式で格納されています。検索のタイミングをコントロールしたい場合など、あえていじるケースもあるかもしれません。

Page Top

ブロック anchor.png

ブロックはありません。

Page Top

テンプレートセット anchor.png

wraps_index.htmlページラップされたHTMLコンテンツが収まるテンプレートです。<{$main_contents}> だけ、というシンプルな構成になってます。あえて修飾したい、もしくはテキストフィルターにかけたい場合にカスタマイズすると良いでしょう。
Page Top

イベント通知の種類 anchor.png

イベント通知はありません。

Page Top

Tips anchor.png

Page Top

動作原理詳説 anchor.png

XOOPS_URL/modules/(任意のディレクトリ)/index.php/index.html

というURIは、XOOPS_TRUST_PATH/wraps/(任意のディレクトリ)/index.html へのアクセスを意味します。もし、index.html 内に、

<img src="sample.gif" />

という記述があれば、画像へのリクエストは、

XOOPS_URL/modules/(任意のディレクトリ)/index.php/sample.gif

となります。このURIは、XOOPS_TRUST_PATH/wraps/(任意のディレクトリ)/sample.gif へのアクセスを意味します。

ラップディレクトリに置かれたファイルの処理は、大きく2種類に分けられます。

拡張子が.htmlおよび.htmのファイルだけが、XOOPSのラッピング処理(XOOPSのフッタとヘッダをつける処理)をされます。(上例では、index.html)

それ以外の拡張子を持つファイルについては、拡張子から判断されるMIMEヘッダ(上例のsample.gifファイルであればimage/gif)をつけてそのままHTTP転送されます。

いずれのアクセスも、wrapsがラッピング/転送を行う前に、XOOPSのモジュールアクセス権限がチェックされます。

Page Top

ファイル転送のアクセス制限と速度 anchor.png

上の動作原理で説明した通り、ラップディレクトリに置かれたファイルへのアクセスは、すべてアクセスコントロールを通過しますので、ある特定のグループにだけ転送を許可したい、という設定も簡単にできます。

ただ、このアクセスコントロールは、呼び出される回数分だけ動作速度に影響を及ぼします。

特段アクセスコントロールを必要としない小さな画像ファイルを大量に貼り付けているページなどでは、

<img src='/themes/(your_theme)/images/sample.gif' />

などとして、公開側に置くことを検討しても良いでしょう。

Page Top

サイト内検索でのページ名 anchor.png

XOOPSのグローバル検索では、検索内容にヒットしたページ名も表示されますが、そのページ名はデフォルトで、ラップディレクトリ内での相対パスとなります。

例外的に、.htmlファイル等の中身から

<title>(タイトル)<title>

という構造が見つかった場合にのみ、その(タイトル)をページ名として取り込みます。(複数見つかった場合は、その最初のもの)

ラップされるHTMLファイルに<head></head>が含まれている場合はそのままでうまくいきますが、そうでない場合は、以下の1行をページ先頭に記述することで、HTMLとしての正しさを失わずに、希望通りのページ名を表示させることができます。

<!-- <title>(タイトル)</title> -->
Page Top

検索インデックスの自動更新機能 anchor.png

wrapsモジュールは、サイト内検索に対応していますが、検索用インデックスはDB内に持っています。

ラップディレクトリ内に変更があった場合、当然、検索用インデックスを更新しなければならないわけですが、アクセスの都度、ラップディレクトリ内の全ファイルをスキャンして、更新されたファイルを見つけるのは無駄に重いため、ラップディレクトリそのもののタイムスタンプでファイル構成が更新されたかどうかを判断しています。

FTPだけでwrapsモジュールを管理する場合、XOOPS_TRUST_PATH/wraps/以下のディレクトリが最新の日付になるようにアップロードを行えば、わざわざwrapsモジュールの管理画面に行かなくてもFTP操作だけで、自動的に検索インデックスも更新されるわけです。

自動更新を利用する場合であっても、検索インデックス更新の仕様は、管理画面から更新する場合と同じです。

Page Top

よくある質問 anchor.png

Page Top

ページラップされた中身が文字化けします anchor.png

ラップ対象ファイルは、XOOPSの内部エンコーディングと一致している必要があります。特に設定していない日本語版XOOPSであれば、内部エンコーディングはEUC-JPですので、ローカルでもEUC-JPで開発するか、FTP転送時にエンコーディングをEUC-JPへ自動変換するのが良いでしょう。

Page Top

CGIはラップできないのですか anchor.png

wrapsは、HTMLについてはXOOPSヘッダ・フッタをつけ、それ以外のファイルはHTTPヘッダだけつけて単純転送する、というシンプルなロジックで動いています。
特にCGIを動かすためにexec系の関数は利用していませんので、CGIは動作しません。
(実装自体はとても簡単ですが、Apache権限でPHPが動作していることが多い現状では、CGIがApache権限で動作してしまうこのやり方は好ましくない、と作者は考えています)

Page Top

wraps でたくさんの画像を表示しようとしたら表示が途中で止まってしまった anchor.png

trust_path の任意のディレクトリに写真をたくさんアップしておくと、上述の通り、uploads フォルダにアップした写真と違って、写真への直アクセスはできなくなりますし、権限チェックもできるので、特定の人にしか見られたくない写真や画像をアップするような用途に便利です。
しかし、個々のアクセスが protector によって、crawler としてカウントされてしまうと、画像の表示が途中で止まってしまうことがあります。
こういうときには、Protector の設定で、「DoS監視の対象から外すモジュール」に当該 wraps のモジュールインスタンス名を入れることで解消されます。

Page Top

ライセンス anchor.png

GPL v2

Page Top

関連モジュール anchor.png

モジュール名説明配布先
ModuleManuals​/picowrapsの上位版に相当http://xoops.peak.ne.jp/
ModuleManuals​/TinyD静的コンテンツモジュールhttp://xoops.peak.ne.jp/

添付ファイル:
filefusen.dat 763件 [詳細] file05.jpg 481件 [詳細] file02.jpg 478件 [詳細] file01.jpg 453件 [詳細] file03.jpg 473件 [詳細] file04.jpg 503件 [詳細]

トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 15350, today: 3, yesterday: 1
初版日時: 2007-01-21 (日) 16:14:57
最終更新: 2014-01-13 (月) 22:06:01 (JST) (1345d) by GIJOE
Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities