スタッフブログ
wrapwikiといいます。
http://project-p.jp/halt/archives/wrapwiki-1.0.tgz
Xoopsを使った経験のある方なら、解凍して出てきたディレクトリをhtml/modulesディレクトリに入れ、管理画面からインストールを行うだけなので、特に迷う事はないはずです。
注意点としては、本体内にPukiwikiを内蔵しており、.htaccessで抑制してあります。.htaccessによるブロックができない環境では内蔵したPukiwikiを不正利用される可能性があるのでご注意ください。
今日ちょっとやってみたのは、このスタッフブログ(d3blogを使ってます)の各記事の画面で、同じカテゴリの最新記事一覧も表示させることです。
最初はxoops_blockプラグインだけでできるかなぁとも思ったのですが、そのままではできなかったので、テンプレートにプログラムを書くという邪道な方法で表示させてしまいました。
見ている記事に関連したコンテンツを楽に見られるようにしたいと思っているので、まだもうちょっと手を加えていくつもりです。
# 同じカテゴリの閲覧数上位の記事リスト表示とか、同じユーザの最新と閲覧数上位リストの表示とかもやってみたいと思っています。
d3blogは、こまめにバージョンアップしているので、最新版でうまく動作するのを確認して、やっつけで書いたプログラムを整理した上で、またこのブログでやり方を公開したいとおもっています。
プログラム的にはお客様に全く新しい機能をリクエストされて、実は既存のモジュールをちょっといじるだけで実現できたり、ということがありました。
そうこうするうちに、「割とみんなが知っている普通のモジュールや機能を使って、全く別のことに利用できる!」ということを発見しました。
今日発行のメルマガにも書いたのですが、XOOPSに備わっているサイト閉鎖機能を使って違うことに利用してみたりもできます。
例えば会社なら社員だけがログインできるためのサイトを「閉鎖機能」を使ってログイン画面だけ出しておくとか。
SNSや会員制サイトを作りたいと思ったときにmixiみたいなログイン画面(画像があって、ログイン部分だけがあって)を作ることも閉鎖中のhtmlをちょっといじるだけでできます。
まだ考えているだけですが、ダウンロード用のモジュール(d3downloads)を使ってファイルの受渡専用のビジネスっぽい使い方もできそうですし、d3blogを使ってmixiの様に公開範囲を限定した日記を書くということもできそうです。
ハックせずに機能や設定だけでできるところもありますが、あとちょっとだけハックしてみるだけでまるでそのものの機能が作れそうです。
既にある機能とほんのちょっと機能をプラスして、既存のモジュールの面白い使い方を発見して、ご報告したいと思ってます。
こんにちわ、なおとです。
今日の話題は、よく使う bulletin(ニュース)モジュールの問題点を修正したことについてです。
問題の状況
- Windows環境で作成したDBのデータをUNIX環境に持って行った場合
- windowsでXOOPSを運用していると、この現象は顕在化しない
- ルート側のdirnameに大文字を混在させてインストール/利用している
- テーブル名は小文字で作られる
- しかしテーブル名にアクセスするとき、〜$xoopsDB->prefix($mydirname.'_topics')〜というコードでテーブル名をつくってクエリを生成している
- $mydirnameには大文字が含まれていて、内部的にはそのテーブル名は存在しない、というエラーが起こる
影響を受けるバージョン(調べた部分のみ)
- bulletinHD 2.16(PEAK配布バージョン)
- bulletinHD(HD1.0.2 以前)
- bulletinを元にした派生版
解決方法
prefix()を呼んでいる箇所を全てチェックし、必要に応じてstrtolower()を挟む
他の解決方法も検討しましたが、今回は上記対応を行いました。
修正用の差分ファイル
bulletin テーブル名不正規問題修正パッチ (ダウンロード)
2008.12.26 13:40 追記:この現象は、 Windows環境で作成したDBのデータをUNIX環境に持って行った場合に限定されます。
通常の環境の場合、上記の差分ファイルパッチを当てると、逆に動作しなくなります。
ただ、WARPなどの環境でデータを作成してから、UNIX環境にデータを移行して運用なんてケースも考えられるので、その場合は上記パッチを適用して頂いた方が良いと思われます。
XOOPSでサイト構築する際につきものなのが、どのモジュールを利用するかという、モジュール選びです。
私なりに、こんな基準で選んでるというのを今日は書いてみたいと思います。
■1.開発された方が、セキュリティ面に気をつかっているか?
PHPプログラムは、セキュリティについての知識無しでつくると、簡単にセキュリティホールだらけのプログラムができてしまいます。
XOOPSで利用するモジュールにセキュリティホールがあると、攻撃されたときに、被害はそのモジュールだけにとどまらず、XOOPSサイト全体、サーバ全体にまで被害がひろがることがあります。
だから、開発された方自身が、セキュリティ面に気をつかっているかどうかも、モジュールを選択するときに評価するようにしています。
これはXOOPSコミュニティを観察するとか、モジュールの更新履歴にセキュリティホール修正についての記述がちゃんと記載されてるかなどで判断出来ると思います。
■2.長期間更新がとまっているようなことはないか?
XOOPSは、PHPスクリプトですが、PHPはバージョンアップしたときに、下位バージョンとの互換性のない変更がされることがちょくちょくあります。
長期間更新がとまっているモジュールだと、最近のPHP環境で動かそうとしたときに、なんらかの不具合が発生することがあります。ここでハマらないように、数年更新がとまってるようなモジュールは避けるようにしています。
■3.良く使われているモジュールか?
多くのサイトで使われているモジュールほど、早く不具合発見→修正のサイクルが早くまわりますので、使ってみたときに何かのバグではまってしまうということが少なくなります。
また、何かわからないことがでてきても、利用者が多いモジュールの場合、検索してみると解決方法が見つかることが多くて助かります。
これも各XOOPSコミュニティサイトで、使ってみようかなと思うモジュール名の投稿を検索してみると、利用者が多いか少ないかある程度判断できるかと思います。
最後に。。。
RYUSでは、既存のモジュールをカスタマイズすることも多いのですが、カスタマイズをするときは上記3点にくわえて
■4.多機能過ぎないか?
というのも考慮するようにしています。
多機能なモジュールは、プログラムを改造しなくても、かなり幅広いニーズに応えてくれるので非常に便利です。
しかし、どうしてもプログラム改造が必要になったときは、多機能ゆえに、ほんのちょっとだけ改造したいだけなのに、あちこちに手をいれるはめになりやすいので、避けるようにしています。
これ、XOOPSモジュールのハック(改造のことですよ)にチャレンジしたことがある方なら、よくわかると思います(^^;
多機能なモジュールは、モジュールの管理画面で設定できることが非常に多かったり、モジュールのファイルサイズをみたときに、他のモジュールと比較してあきらかにファイルサイズが大きかったりするので、このあたりをみてカスタマイズするかどうか判断すると良いかと思います。
今までYouTubeとかたまに話題になったものを見たりするぐらいで、動画についてはあまーり、興味がありませんでした。YouTubeは全体的に英語だし今ひとつ面倒と思ってたし、他の動画サイトもログインしないと見られないとかいうことでそこまでして見るほどの情熱を感じなくて。
しかし、先日公開された「いいねモジュール」の説明用htmlに動画が使われていたことから急に動画に興味を持ちました。しかし、やっぱり公開サイトに投稿してリンクするのはなんだか面倒、、と思い至ったところで ホダ塾ディストリビューション に同梱されているcinemaru(しねまる)を思い出しました。
インストールも設定も簡単だったので早速携帯で撮ってあったペットの亀の動画をアップしてみました。
うさぎの遊び場 cinemaru
http://usagi.ryus.co.jp/modules/cinemaru/
コメントもタイミング良くいれられるし、とっても楽しいです。
XOOPS Cubeで会社サイトを作っていれば会社紹介とかにも利用できそうです。またデスクトップを動画で保存してソフトウェアの使い方説明にもいいですね。
cinemaru面白いので是非試してみてください♪
http://ryus.co.jp/modules/rPublicFiles/
いいねモジュールとは(説明htmlより引用)
引用:
いいねモジュールは、シンプルなコンテンツ評価モジュールです。どんなモジュールでもテンプレートがあるモジュールなら、コンテンツごとに「いいね」ボタンを設置することができ、エンドユーザが「いいね」ボタンをクリックすることで、そのコンテンツに票を投じることができます。さらに、投票したユーザの一覧を出すこともできるので、ソーシャルネットワーキング的なことも可能です。(XOOPS Cube専用です。Legacy風のコーディングを勉強するために作りました。それにプリロード使ってます。)
です!
XOOPSで作られているお好きなページに「いいね!」と反響がほしいとき、是非お使い下さい。アバターを登録してあると登録した人のアバターが表示されるので、楽しいページになります。
また、このモジュールに同梱されている説明用htmlは動画もあり、デザインもすっきりしていてかなりわかりやすくなっています。やはりこれからは説明に動画を使っていきたいなぁ、と思います。
YouTubeの登録もしたことがないので、これからですがXOOPSにはcinemaru(しねまる、と読むようです)という良きモジュールがあり、ホダ塾ディストリビューションにも同梱されているので今度はこれに挑戦したいと思います。
cinemaru プロジェクトサイト
http://cinemaru.net/
RYUSのなおとです。先週末はLL Futureに第35回PHP勉強会と、盛りだくさんでした。でも両方とも遅刻してしまいました・・・。
さて今回話題にするのは、NONEモジュールです。これはほぼなにもしない、いわば骨組みだけのモジュールです。2003年頃にXOOPS2向けに公開されたようです。
モジュールについて勉強する過程で、これを知りました。しかし残念なことにEUC-JP固定で作られているようでした。
私は普段、最新のXOOPS Cube Legacy、例えばホダ塾ディストリのバージョン1.0.2を使うことが多く、サイトをUTF-8で構成したりします。そこで今回、NONEに言語ファイル対応部分だけ付け加え、japanese, english, ja_utf8の言語ファイルを用意しました。
D3対応のnone
実は後で気付いたのですが、d3noneというモジュールが既に存在するようです。もちろん言語ファイル対応で、モジュールを簡単に複製可能な仕様の、いわゆるD3対応です。これをみると、自作モジュールをどうしたらD3対応にできるかの、理解の参考になります。
d3noneをみて悔しかったので、ちょっと違う方向性でまとめてみました。
もともとのNONEは、モジュールの作り方を知るための教育的な位置づけも意図されていたと思います。原点に回帰して、xoops_trust_pathやaltsysなどのD3対応をしない、言語ファイル対応だけに集中してみました。
しかしこの半端さ、これにどういった意味があるのか分かりませんが、こっそり公開してみます。