XOOPS(ズープス、"eXtensible Object Oriented Portal System")は、ポータルシステムとして開発されたコンテンツ管理システム (CMS) である。ユーザーはWebサイトを多数のモジュールとテーマを用いて構築・更新する。

XOOPSはPHPで記述されている。GPLに基づいて無償で公開されており、修正・再配布することができる。

概要

XOOPSはポータルシステムとして開発が始められたが、現在はWebアプリケーションプラットフォームとして発展している。機能拡張の実装においてオブジェクト指向の考え方を適用した最初期のCMSのひとつである。

モジュールをインストールすることで、小規模から大規模までの様々なWebサイトの構築に使用できる。例えば、小規模なXOOPSの利用としては個人的なブログをすぐに作成できるが、これを拡張・カスタマイズすることも容易である。すなわち、更にモジュールを追加することで、ニュース・フォーラム(掲示板)・ファイルのダウンロード用ページなどの様々なコンテンツをユーザが追加でき、またそれらのコンテンツを常に更新・改善することができる。

世界中でXOOPSの利用があり、2015年1月現在では5つの言語でXOOPSの書籍が出版されている。

歴史

  • 2001年〜2002年1月 - PHP-NukeベースのmyPHPNukeを基にしたバージョンが日本人開発者により発表、公開
  • 2002年1月 - XOOPS 1.3.0がリリース。初の正規安定版となる
  • 2003年4月 - XOOPS 2.0.0リリース
  • 2005年7月27日 - XOOPS 2.2.0をベータとして公開
  • 2008年9月22日 - XOOPS 2.0にXOOPS 2.2の機能を結合させたXOOPS 2.3.0を発表
  • 2009年10月26日 - 管理画面が一新されたXOOPS 2.4.0を発表
  • 2010年2月13日 - XOOPS Project公認の日本語サポートサイトの設置
  • 2011年11月10日 - 管理画面の一部にAjaxを採用したXOOPS 2.5.0を発表

受賞・評価

XOOPSは多数のメディアより高い評価を受け受賞もある。

  • SourceForge.net's 2006 Community Choice AwardsのデベロッパーカテゴリにてFirst Runner-Upの地位を得た。
    • eWeekによるテスト用オープンソースCMSとしての高評価のため。
  • 2008年、ドイツのChip Magazineにより5つ星評価。
  • Adobe Edge MagazineのCMSトップ3に挙げられる。
  • ONDDによる『医療関係者向けオープンソースCMSトップ 100』において2位。
  • 2009年、2009 Grand Prize in OSS Challenge in Koreaを受賞。
  • 2008年、China-Japan-Korea Open Source Software Contest Awardを受賞。
  • イギリスの出版社Packtによる2009 Best Overall CMS Award categoryのトップ5ファイナリストに選出。
  • XOOPSの生みの親であるOnokazuおよび開発リーダーであるTaiwen Jiangは、2008年・2009年の Packt awardsにおいて "Open Source CMS Most Valued People" に共に選出されている。

特徴

コミュニティ
XOOPSはGNU General Public License (GPL) の条件下で公開されており、コミュニティベースの開発がなされている。
データベース
XOOPSは関係データベース管理システム(RDBMS、主にMySQL)を用いてデータを格納する。
アクセスコントロールレイヤー
管理者は編集・削除・アップロードのような操作に対し、各々のユーザーやグループに関してアクセス権を設定できる。
モジュール化
管理システムより使用するモジュールのインストール・アンインストール・有効化・無効化処理ができる。
コア機能のモジュールによる使用が可能
許可・コメント・通知・ブロック機能等、多数のコア機能が各モジュールにおいて利用可能である。
パーソナライゼーション
サイト上の個々の要素に対して、管理者はアクセスおよび制御の権限をユーザー毎に個別に設定することが可能。
ユーザ管理
多様な条件を用いたユーザ検索ができ、ユーザに対する電子メールおよびプライベートメッセージを介したテンプレート・ベースのメッセージの(一斉)送信が可能。
多国語サポート
XOOPSコミュニティは非英語圏にも多数の公式サイトがある。さらにXOOPS自体はマルチ・バイト文字セット(日本語の文字を含む)をサポートする。
テーマベースのスキンを変更できるインターフェース
XOOPSはページ表示にテーマを使用する。管理者・ユーザはテーマを選択し、Webサイトの表示を変更することができる。
テンプレートエンジン
XOOPSはロジック間の簡素化やキャッシュ機能を保障するSmartyをテンプレートエンジンとして使用する。
LDAP認証のサポート
SEOアドオン
多数のXOOPSモジュールが検索エンジンによるWebサイトのインデックス化を容易にするための機能( タグ、 タグ、およびURL rewrite機能など)を有する。しかし、ユーザはXOOPS内のURLを自由に変更できるようになるわけではない。URL rewriteが可能な場合に、検索エンジンを撹乱するリダイレクトをしばしば行うためである。</dd></dl> <dl><dd>また、XOOPSのモジュールの中には複数のURLに対して同一の情報を提供することで重複したコンテンツを作成するものもある。一方で、(特に多言語対応がなされているサイトにおいて)複数の組み合わせのコンテンツが同一のURL より入手可能となる場合もある。</dd></dl> <h2>動作環境</h2> <p>XOOPS 2.5.6現在での動作環境は下記の通り </p> <ul><li>Webサーバ : PHPが動作するWebサーバ(<i>Apacheを推奨</i>)。</li> <li>RDBMS:MySQL 5.0以降</li> <li>PHP:PHP 5.3 以上(<i>PHP 5.4 以上を強く推奨</i>)</li></ul> <h2>モジュールの後方互換性</h2> <p><b>XOOPS 2.3より、デフォルトの文字コードがUTF-8となっている</b><b>。</b> XOOPS 2.3以降向けのモジュールではMySQLの使用文字コードをUTF-8に決め打ちしているものもあり、古いバージョンのMySQLでは動作しない状況も増えている。 </p><p>基本的に、モジュールのサイトにおける表示デザインはXOOPS 2.0でのそれを継承しており、XOOPS 2.0のモジュールも多くは動作可能である。加えて、ベータ公開されていたXOOPS 2.2のモジュールも最新バージョンでは対応されている。 </p> <h2>バージョン</h2> <p>XOOPS ProjectではXOOPS 2.0系とは別に、機能拡張のためのベータ版としてXOOPS 2.2が開発された。その後、XOOPS 2.0のモジュール動作を可能にさせると共にXOOPS 2.2の機能追加にも対応させたXOOPS 2.3が公開された。後に、管理画面を一新させる等、機能を一新させたXOOPS 2.4が公開され、更に一部管理機能にAjaxを採用して操作性を向上されたXOOPS 2.5が公開された。 </p> <h3>XOOPS 2.0</h3> <p>XOOPS 2.0は、多くのユーザーを獲得しXOOPSの普及要因となり、現在でも汎用CMSとして世界中で幅広く利用され多数のモジュールが公開されている。本バージョンが普及するにつれて次第に開発コミュニティが肥大化・多国籍化し、チームの分割を行うなど開発の体制作りを進めるも、意思決定の遅れなどからセキュリティパッチの適用の遅延、マルチバイト処理の整合性が失われる変更が発生するなどの混乱が生じた。この事態に接した日本人の開発コミュニティは、日本におけるサポート体制の分離を受けて、日本コミュニティによる独自バージョンとなるXOOPS <b>2.0.x JP</b>プロジェクトを派生させた。2.0.x JP系列のバージョンは後のXOOPS Cube Legacyへの開発・公開へと繋がっている。 </p><p>その他、XOOPS 2.0をXOOPS Cubeや現行のXOOPS Projectによる最新版から独立してサポートする動きもあったが、現在は同バージョンのサポート・配布は停止されている。 </p> <h2>現在の開発体制</h2> <p>XOOPS ProjectによってXOOPSが引き続き製作・公開されている。 </p><p>日本では日本語サポートから XOOPS Cube が派生したため、XOOPS Cubeの方が知名度が高いが、海外ではXOOPSの利用者が多い。 </p><p>XOOPS Projectでは「XOOPS」という名称を継続使用しているが、XOOPS Cubeとの分離直後からロゴを一新させている。 </p> <h2>ローカライゼーション</h2> <p>XOOPSの日本語等へのローカライゼーション対応はXOOPS Cubeの分離後、公式にはしばらく行われていなかったが、その間個人やグループで日本語言語ファイルを公開する動きがあった。その後、XOOPS Project公認のXOOPS日本語サポートサイトが別途立ち上げられ、2.4〜2.5をサポートした。現在では同サポートサイトは閉鎖し、公式な日本語サポートを行うサイトは、再度失われた状況となっている。 </p> <h2>その他のXOOPS日本語版に関連する動き</h2> <p>XOOPSおよびXOOPS JP等より数多くのCMSが派生しており、下記はその一例である。 </p> <ul><li>XOOPS Cube Legacy</li> <li>XOOPS JPEx - XOOPS Cubeが独自サポートしたXOOPS 2.0 JPをベースに、セキュリティサポートしたバージョン</li> <li>TOKYOPen - XOOPS Cube Legacyからの派生</li> <li>ImpressCMS</li> <li>NetCommons - 1.x系はXOOPSをベースに開発された。</li></ul> <p>XOOPSはPHP-Nukeからの派生であるが、ソースコードはほぼ独自のものとされる。 </p><p>2010年11月、本家XOOPSプロジェクトからXOOPS Cubeに対するプロジェクト統合の働きかけが行われている。 </p> <h2>関連項目</h2> <ul><li>コンテンツ管理システム (CMS)</li> <li>PHP-Nuke</li> <li>XOOPS Cube</li> <li>ImpressCMS</li> <li>NetCommons</li></ul> <h2>脚注</h2> <h2>外部リンク</h2> <ul><li>Powered by You! :: XOOPS Web Application System - XOOPS Projectによる公式サイト</li></ul><br><p><img src="https://assets.goodfirms.co/sw_screenshots/6560b2265e7527792160c9a2/6560b252bbd7e-1700835922.jpg" alt="XOOPS Reviews & Pricing 2024" onerror="this.onerror=null;this.src='https://ts2.mm.bing.net/th?id=OIP.4hyMhENPI98WcFaW_ifefAHaDg;" ></p><p><img src="https://installatron.com/images/remote/ss1_xoops.png" alt="Xoops" onerror="this.onerror=null;this.src='https://ts2.mm.bing.net/th?id=OIP.pHas3eDQinK36MsRbLw-rwHaEo;" ></p><p><img src="https://www.bargainvault.com/images/articles/xoops-offical.gif" alt="XOOPS Webspace Hosting" onerror="this.onerror=null;this.src='https://ts2.mm.bing.net/th?id=OIP.DbhaIdtBrQPEkQGyC7wRKQAAAA;" ></p><p><img src="https://www.opensourcecms.com/wp-content/uploads/xoops-theme2.jpg" alt="XOOPS Demo Site » Try XOOPS without installing it" onerror="this.onerror=null;this.src='https://ts2.mm.bing.net/th?id=OIP.2mPdfVW1rov0iBXp2gFKzAHaD5;" ></p><p><img src="https://www.chip.de/ii/4/0/1/6/2/6/2/6c641e452f592841.jpg" alt="XOOPS Download CHIP" onerror="this.onerror=null;this.src='https://ts2.mm.bing.net/th?id=OIP.bGQeRS9ZKEEPTCimCKPyCAHaHh;" ></p> </div> <footer class=post-footer> <ul class=post-tags></ul> <nav class=paginav><a class=prev href=https://cdupaxgt.pages.dev/posts/pqhcnktg-5191e042c7d8660a2aa4364b972f1927><span class=title>« Prev</span><br><span>アウレリオ・アンドレアッツォーリ</span></a> <a class=next href=https://cdupaxgt.pages.dev/posts/pqhcnktg-258c6c83bf6fc70ee342a512593ec382><span class=title>Next »</span><br><span>プリンス・オブ・シティ</span></a> </nav> </footer> </article> </main> <footer class=footer><span>© 2025 <a href=https://cdupaxgt.pages.dev>Audrey Bagot</a></span></footer> <script type=text/javascript src=/ads/floating.js></script> <a href=#top aria-label="go to top" title="Go to Top (Alt + G)" class=top-link id=top-link accesskey=g><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentcolor"><path d="M12 6H0l6-6z"/></svg></a> <script> let menu = document.getElementById("menu"); menu && (menu.scrollLeft = localStorage.getItem("menu-scroll-position"), menu.onscroll = function() { localStorage.setItem("menu-scroll-position", menu.scrollLeft) }), document.querySelectorAll('a[href^="#"]').forEach(e => { e.addEventListener("click", function(e) { e.preventDefault(); var t = this.getAttribute("href").substr(1); window.matchMedia("(prefers-reduced-motion: reduce)").matches ? document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView() : document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView({ behavior: "smooth" }), t === "top" ? history.replaceState(null, null, " ") : history.pushState(null, null, `#${t}`) }) }) </script> <script> var mybutton = document.getElementById("top-link"); window.onscroll = function() { document.body.scrollTop > 800 || document.documentElement.scrollTop > 800 ? (mybutton.style.visibility = "visible", mybutton.style.opacity = "1") : (mybutton.style.visibility = "hidden", mybutton.style.opacity = "0") } </script> <script> document.getElementById("theme-toggle").addEventListener("click", () => { document.body.className.includes("dark") ? (document.body.classList.remove("dark"), localStorage.setItem("pref-theme", "light")) : (document.body.classList.add("dark"), localStorage.setItem("pref-theme", "dark")) }) </script> </body> </html>