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

CustomizeManual

各カスタマイズ手段一覧と取捨選択 anchor.png

XOOPSのカスタマイズと言っても大きく「デザイン上のカスタマイズ」と「機能(プログラム)のカスタマイズ」に分けられます。そしてまたこれは密接に関連していて、目的によってはどちらの作業もこなさなければならない場合も多いので、自分のスキルと相談しながらカスタマイズの計画を立てることが望まれます。
場合によっては、そのモジュールをカスタマイズすることよりも、他のモジュールを選択することの方が賢明であったり、そもそもXOOPS以外のCMSへの移行を選択する方が解決への早道である場合すらあります。

Page Top

前段階として-何をどうすればいいのか解らない- anchor.png

公式サイトでも多く見かける質問として、「トップページをどのように作ればいいか解らない」と言うものがあります。今までHTMLで静的なサイト作りしかしたことが無い場合は、インストール直後のホームボタンしかない真っ白のトップページを見て途方にくれることと思います。
XOOPSを初めて扱う初心者が突き当たる問題として、「何をどうすればいいのか解らない」と言うことは至極当然の疑問なので、「文系のためのXOOPS入門」等を事前に一読しておくことをおすすめします。カスタマイズをする前に「何の目的でXOOPSを利用するのか」「XOOPSで何ができるのか」の基本的な部分を理解しておいてください。

Page Top

デザイン上のカスタマイズ anchor.png

XOOPSにはデザインテンプレートとしての「テーマセット」を切り替える機能があります。これを利用してオリジナルのデザインを適用させることができます。
また細かい部分に関しては「テンプレートセット」を修正することになります。

なお、XOOPSのテーマやテンプレートの定義はXOOPS Basic Manualに詳しいので、事前に一読して置いてください。

Page Top

デフォルト及び配布テーマを元に変更をする anchor.png

インストール直後のXOOPSにはdefaultテーマが適用されていますが、その他にもphpkaoxとx2tと言うテーマセットが同梱されています。また、XOOPSにはブログ同様テーマ作者と言う人々がいて、奇特にも無料で自作のテーマセットを配布してくださっています。

デフォルトテーマに満足できない場合は(多くのユーザがそうでしょうけど)、先ず第一にこれらの配布テーマを導入することがデザインカスタマイズの第一歩となります。各配布サイトでは、各配布テーマにサイトデザインを切り替えることができますので(これもXOOPSの機能の一つです)、容易に自サイトに導入した時のイメージも掴みやすいでしょう。

Page Top
軽微なデザイン上の修正 anchor.png

しかし、配布テーマをそのまま導入したとしても、細かい部分、例えばサイトタイトルのロゴなどは自分で修正しなければなりません。またスタイルシートの一部を修正して、文字の色や背景色を変更することも可能です。XOOPSカスタマイズのファーストステップはここになります。

Page Top
大掛かりなデザイン上の変更 anchor.png

しばらく配布テーマを細かく修正しながら使っていると、あちこちに不満も出てくることと思います。この場合は大掛かりなデザイン修正をかける事になるでしょう。
全く白紙の状態からテーマセットを作ることができるスキルをお持ちの方は、何の問題も無いでしょうが、普通はやはりデフォルトテーマや配布テーマを基にその骨組みを利用した変更をする方が容易です。そしてまたそのことによって、各テーマ作者が使用しているテクニックを発見できるなど、学べることも多いと思います。

Page Top

オリジナルのテーマを作成する anchor.png

テーマ作成の最終段階として、全く白紙の状態からスクラッチでテーマを作成すると言うことも可能です。
実際にはHTMLとCSSを利用して自由に静的なサイト制作ができる技術をお持ちの方であれば、それほど難しいことではありません。ただしやはり細かい部分において、思い通りのデザインにする為にはXOOPSの流儀と言うか、ちょっとしたテクニックが必要です。そのためにも有名作者による配布テーマからの改造を一度は経験しておいた方がいいかもしれません。

Page Top

テンプレートを修正する anchor.png

実際にはテーマセットを変更しただけでは、なかなか希望通りのデザインにはならないと思います。テーマセットはXOOPSの外枠ですので、より詳細な内枠「テンプレートセット」を修正していかなければシステムの細かい部分やモジュールレベルでのデザイン変更はできません。
「テキストの部分をより見栄えの良い画像に変えたい」などというのはほとんどテンプレートレベルでのカスタマイズになります。

Page Top
軽微なデザイン上の修正 anchor.png

これに関してはほとんどの場合、CSSを書き換えることで対応できるでしょう。場合によってはテンプレートに新たなdivやclassのセレクタを埋め込む必要があるかもしれません。
第一段階として手ごろなのは、メインメニューのデザインを変更する事です。

Page Top
大掛かりなデザイン上の変更 anchor.png

テンプレート内のHTMLタグをそっくり変更してしまう(例えばテーブル組みになっているものをテーブルレスに変更など)、や各Smartyの位置やレイアウトを完全に入れ替えてしまう。場合によっては必要の無いSmartyを削除するなどの方法が当たります。

Page Top
テンプレートの無いモジュールでの修正 anchor.png

XOOPSのモジュールの一部、特に標準で添付されているものなど、開発時期が古いものなどを中心にテンプレートがHTML形式ではなく、PHPファイルに直書きされているものがあります。これらは直接プログラムファイルを書き換えることが必要です。
ここで非プログラマーが取るべく選択肢が二つあります。
ひとつは「あきらめる」ことです。
そしてもうひとつはプログラミング領域へ足を踏み込むことです。

Page Top

プログラム修正を伴うカスタマイズ anchor.png

XOOPSの見た目以外に「使い勝手」を変えたいという場合は、PHPファイルに対しての修正が必要になります。その変え方の度合いによって、それほどプログラミングの知識が必要無いものから、かなり高度なプログラミングテクニックが必要な場合まで様々です。

実際のところ、XOOPSでは簡単にこれらの変更が(知識が無くても)できてしまうという「誤解」が多いのですが、ちょっとした変更によってもセキュリティ上の安全性を失う場合もあり、取り扱いには細心の注意が必要です。

これらの作業をHack(ハック)と呼びます。

Page Top

システム機能のカスタマイズ anchor.png

XOOPSのコアシステムにHackを行う場合でもモジュールに対してでも同じですが、これらのソフトウェアはオープンソースの宿命として頻繁にバージョンアップを繰り返します。それが単なる使い勝手の修正だけならいいのですが、往々にして重要なセキュリティパッチを含みます。

もし、ユーザがあるPHPファイルに対してHackを行っていたとして、バージョンアップのためのアップデートファイルにそれが含まれていた場合、上書きされてHack部分は消えてしまいます。即ち、Hackを行うということは今後バージョンアップ時に毎回新しいファイルとの刷り合わせを行い、自分の手でプログラムのマージを行わなければならないというリスクを受け入れるということを覚悟してください。
そのために、自分がどのファイルにどのような変更を行っているか管理が重要になります。

そして、それができない、または技術的に困難であるという人にはHackはお勧めできません。

※しかし、XOOPS2.0.16a JPはもう十分「枯れた」システムで、XOOPS Cube Legacy2.1.0がリリースされた今、今後大きな機能追加のバージョンアップは無いでしょう。あるとすればセキュリティパッチですが、それもすでに1年近くありません。今後大穴が見つからなければ、それほどコアシステムのバージョンアップに気を使う必要は無いと考えます。
ということは、2.0系はもういじり放題だということです。

Page Top
既存のシステム機能の一部を軽微に修正する anchor.png

これは例えば/languageディレクトリ内にあるランゲージファイルの言語定数を変更するような作業や、モジュールの追加のためにmainfile.phpを修正するようなこと、またシステム用PHPファイルの一部分をコメントアウトで消す(例えばxoopsformのボタン類の整理など)ような作業が該当します。

これらは特にPHPの知識は必要なく、ファイルの扱い方さえ間違わなければ問題なく成功するでしょう。多くの場合、旧公式サイトのフォーラムの過去ログなどにそのやり方の例が載っているので、それをそのまま行えばよいだけです。

ただし、先にも言ったようにmainfile.php以外はバージョンアップによって変更が失われることがあります。

Page Top
既存のシステム機能の一部を大きく変更する anchor.png

例えばシステムの基本的な機能を変更するためには、重要なPHPファイル(時には複数の)に修正を加えることになります。場合によっては新たにPHPファイルを作ったり、データベースに新しいテーブルを作ってそこから情報の出し入れをするということもあるでしょう。

これらの事を行うためにはPHPプログラミングの知識、データベースの知識、そして何よりWebセキュリティに関する知識が不可欠です。すなわち、ここから先はプログラマーの(およびそれに準じた)知識が必要です。

生半可にこのレベルのカスタマイズを行うと、重大なセキュリティホールを空けてしまったり、サーバに深刻なトラブルを引き起こしてしまったりする可能性があります。

Page Top
新しいシステム機能を追加する anchor.png

現在のXOOPSシステムにない機能を追加する場合、例えばログインシステムを大幅にすげ替えるといったケースや、XOOPSをSNSにしてしまうといった場合。
モジュールで対応するという場合もあるでしょうが、これらは数多くのシステムファイルの変更や新たなファイルの追加、場合によっては別のシステムとの連携が必要だったりします。

これらは殆どが「業務」の領域に入ります。これで食べている人たちが沢山います。ということはそれらの職業プログラマーと同等の実力が必要だということです。
当然データベースやWEBセキュリティ、サーバ関連など広範囲な知識が必要です。一般のユーザであればここまで望むのはなかなか難しいでしょう。プロの手を借りたほうが安全で早くできるでしょう。

しかし、コツコツと知識をつけながら「いつの日にか自身で・・・」という姿勢で臨むのも尊敬に値します。

Page Top

モジュールのカスタマイズ anchor.png

XOOPSの機能はほとんどがインストールされたモジュールに依存します。
相当に完成されたモジュールも多いのですが、それでも100人全員のニーズを満たすのは無理でしょう。特に気に入ったモジュールでもしばらく使ううちに「ここがこうなってさえいれば」というような不満が出てくるのは当然のことです。

しかし、モジュールの機能的なカスタマイズというのは、多くのユーザが思っているよりもずっと難しい作業になります。最低限のPHP、さらにはデータベースの知識が必要になる場合も多いです。当然ながら、よく解らないで改造してしまったらセキュリティ的な大穴を開けてしまうこともあるでしょう。知識がなければそれすらも気が付かないのです。

これらは専門領域です。心してやってください。

Page Top
既存のモジュール機能を軽微に修正する anchor.png

「既存のシステム機能の一部を軽微に修正する 」でも述べたように、ランゲージファイルの修正などや既存の用例に従ったカスタマイズがこれに当たります。
手順やファイルの扱い方さえ間違わなければ特に知識も必要なく、問題ないでしょう。
しかし、システム以上にバージョンアップの激しいモジュールですから、その都度修正しなければなりません。特にxoops_version.phpを使ってサブメニューの表示をコントロールするやり方は簡単にできるHackのひとつですが、後の手間を考えると非常にコストが高いと言わざるを得ません。何しろバージョンが上がる度に必ず書き換わるファイルですから。

Page Top
既存のモジュール機能を大きく変更する anchor.png

モジュール内のPHPファイルを大幅に書き換えたり、自分でプラグインを作って機能を付加するようなHackがこれです。
これを行うにはPHPの知識は必須です。まずXOOPSのモジュールがどういった仕組みで動いていて、どんなファイル構成になっていて、しかもそのソースを見て理解できなければなりません。

フォーラムなどでこのレベルの質問をしても無駄でしょう。ほんの数行のコードで済むならともかく、数十行、もしくは新たにファイルを作ったりDBにテーブルを作成しなければならなかったり、そんなことを手取り足取り教えられるほどみんな暇ではありません。

これをやるのであれば、それなりの知識が必要です。

Page Top

新しいモジュールの作成 anchor.png

「無ければ自分で作れば?」とはよくクレクレ君の投稿に対してのレスで見受けられる受け答えです。
それではモジュールを一から作るにはどの程度のスキルが必要でしょうか?
まずXOOPS本体がどのように動いていて、モジュールとどのように情報を受け渡しているかを知らなければならないでしょう。
PHPの知識と共にMySQLの知識も必要でしょう。他人の作ったモジュールのソースを見てそれが理解できるレベルで無いと無理でしょう。
そして、他人に配るのであれば、セキュリティにも気を配らねばなりません。実はこのところをおろそかにしている人も多いのです。

しかし、自分の作りたいモジュールを好きなように作れるスキルが身に付けば、もう自由にカスタマイズができるでしょう。


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