判りやすいページ、本当にありがとうございました。XOOPSのガイドラインに沿うようにしました。このテーブルのカラムも1つ追加になっています(rrule_pid)。データ構造に先見の明がなくてすみません。テーブルの正規化も「あえて」目指していません。いった希望をお持ちの方は、このスキン機能をぜひご活用下さい。piCalの設定で、スキンフォルダを指定するだけです。そのものは書き換えないことをお勧めします。ンアップなどで上書きされる恐れがあるからです。このビットに応じて表示方法を変えるのはまだ先です。defaultを別のディレクトリ名にコピーし、その中の*.tmpl.htmlを書き換えます。{}で囲われた部分がpiCalによって置き換えられます。テーブル構造も含め、かなり抜本的に修正(?)しています。ージョンをお使いの方は、テーブルをアップグレードする必要があります。修正した割に、デバッグの時間がありません。・iCalendarのインポートに対応させるため、Timezoneの設定をした。*scheduleテーブルの時間はすべて、サーバのTimezoneで格納してます。ユーザのTimezoneは、xoopsなどから取得します。表示はすべてユーザのTimezoneです。unixtimestamp形式で持つことにしました。最初はメンテナンス性から、「あえて」date型とtime型で別のフィールドに持つように作ったのですが、この形式で時差の計算をすると負荷が高くなりすぎるため、あきらめました。・時間指定において、全日というオプションを用意した。日付そのものが対象となる予定(記念日など。時差影響なし)と、時刻が問題となる予定(時差によっては日付も変わる)の両方があることに、今になって気がつきました。いう新規に追加したフィールドで区別しています。0が時間つきイベント、1が通常の日付イベント、2が祝日名などの特別な日付イベントとする予定です。(現時点では、0かそれ以外かの区別しかしていない)なお、iCalendarの仕様で、実際の日数がDTSTARTとDTENDの差となりますので、これにあわせて、alldayがONの場合、一日のみのイベントでもstartとendの差は86400秒あるように作っています。・iCalendarデータのインポートを用意した。(admin画面)phpicalendarのパーサを取り込みました。現時点では、rruleフィールドの処理は入出力ともに出来ません。iCalenndarのrrule処理とpiCal自身での繰り返し入力については、次の大き目なマイナーバージョンアップ(0.40)にてまとめて行います。・月別カレンダーをブロックとして用意した。中央表示以外では使い物にならないと思いますが、リクエストがあったので一応用意してみました。・unique-idをフィールドとして持つようにした。iCalendarとの親和性からの要請です。フィールドを追加するなら、とついでに、extkey0とextkey1というint(10)のフィールドも追加しました。newsなど別のモジュール(テーブル)との連携を行う場合に使えるかもしれません。その場合は、extkey1を使ってください。extkey0は、スケジュールデータの上位分類に使う予定がなくもないので。・Ryujiさん作の検索機能を取り込んだ。テーブル構造が変わった部分をすりあわせた他は、そのまんま取り込ませていただきました。遅ればせながら、大感謝です。同じ名前で各ファイルを用意して下さい。あとは、管理画面のpiCal一般設定にて、そのフォルダ名を登録すればOKです。これに伴い、gifファイル名も、見た目ではなく、使い方から名前をつけ直しました。dot_allday.gif・いくつか国際化の準備をはじめた最初はあまり乗り気ではなかったのですが、それなりに有用なコードになってきた(と思う)ので、今回のTimezoneの追加も含め、国際化を少しずつ考えています。変更しましたので、インターフェースを作られる方(......って、若干一名様だけだと思いますが)はご注意下さい。(2003-5-11)まずは、Ryujiさん(http://joetsu.info/ryuji/)に感謝します。Ryuji)・詳細画面と編集画面を切り分けた。Ryuji)piCalクラスでも同モジュールでも、テンプレートは使っていません。テンプレートの必要性は私もそれなりに承知はしてますので、もし必要な方がいらっしゃいましたら、piCal_xoopsクラスを変更する、もしくはさらなるサブクラスを作成して、各表示関数をOverrideして下さい。私のスタイルでは顕在化しないので気付きませんでした。mbstring)あくまで「とりあえず」というレベルです。取得するようにしたこんなやり方は、PHP5になって、private指定されてしまったら一発でアウトなんですが、getVarメソッドも定義されていないので仕方ないですよね。optionを追加v0.12・midの取得方法を変更。どのページでもブロック表示できるようにした。v0.11・mbstringのないサーバで登録できないのを防ぐようにした。実際には、何もエミュレートしていないので、そういうサーバでは、長い件名のスケジュールは、1/2の確率で文字化けするでしょう。waitingモジュール元はRyujiさん作のモジュールでしたが、いつの間にかメンテナンスを引き受けたような形になってます。http://ryus.co.jp/*概要プラグインで拡張可能な承認待ちコンテンツブロックモジュールを追加するたびに、本体の承認待ちコンテンツブロックに手を入れるのは、あまりにも非効率だと思い始めたので作成しました。新機能・モジュール内にプラグインを置けるようにした各モジュール作者さんが、waitingモジュールのプラグインも作成してくれることが多いのと、複製可能モジュールに対応するために、各モジュール内にプラグインを置けるようにしました。プラグインを置き、言語ファイルは、language/LANG/waiting.phpにおきます。読み込み優先順位は1.各モジュール内にあるプラグイン2.waitingモジュール内にあるプラグインとなってます。・1つのモジュールで複数の承認待ちを返せるようにしたGIJOEさんのHackにより、b_waiting_MOD_NUMを複数用意することで、複数の承認待ちに対応していましたが、ひとつのfunctionで対応できるようにしました。&quot;lang_linkname&quot;=&gt;LINKNAME))という形で返ってきたら複数あると判断します。&quot;lang_linkname&quot;=&gt;LINKNAME)で、OKです。モジュール名の下に各承認待ちが表示されるようにテンプレートを変更したこの改良により、各承認待ちのテキストに、モジュールの情報を含まなくて良くなりました。「ダウンロード新規投稿」は「新規投稿」だけでOKです。技術を応用した静的コンテンツ用モジュールです。開発当初から想定していた機能を一通り実装したこともあり、現時点では1.60を安定版としています。こちらは、1.6の次の世代である1.7x系列です。開発版ですが、やる気のある方はぜひこちらをキャッチアップしてください。ついての設定が必要です。(すでにこのあたりの設定がしてあれば、とても簡単にインストールできます)機能的には、TinyDの後継という位置づけですが、コード的には完全なフルスクラッチであり、TinyDとは(もちろんTinyContentとも)完全に独立しています。picoが安定版となったので、TinyDは開発終了とします。TinyDからのアップグレードパスは用意してますので、必要に応じて、適宜引っ越してください。少なくとも、picoがTinyDに機能的に劣ることはないはずです。pico1.3から、altsysが必須となりました。picoより先にaltsys-0.61以上をインストールしてください。ディレクトリ名は好きにつけてください。そのディレクトリのフルパスをmainfile.phpに記述します。場所はXOOPS_URL定義行の直後が良いでしょう。アーカイブのxoops_trust_path/modules/picoをXOOPS_TRUST_PATH/modules/にコピーします。XOOPSモジュールとしてインストールしてください。管理者画面のカテゴリー権限設定で、トップカテゴリーについての権限をこの時点で設定しておくと後々楽が出来るかも知れません。あとはTinyDの操作を知っていれば、そう難しいことはないと思います。カテゴリーやコンテンツを追加していくだけです。d3forumを一緒にインストールすると幸せになれるかもしれません。(というか、d3forumがないとコメント機能は利用できません)NOTICE:このモジュールは、TinyDと違い、モジュールキャッシュ非推奨です。本文キャッシュ機能があるので十分に速いはずです。(0.20a)バグ報告を歓迎します。==============XOOPS2用に0から設計し直したフォーラムモジュール。私-GIJOE-が、自信を持ってリリースしています。いくつかバグはあるでしょうが、D3モジュール群の中核を成す存在であり、D3モジュールを利用する以上はインストールが推奨されます。利用中のXOOPSにアーカイブを展開してコピーする。通常のD3モジュールとしてインストールします。コメント数を表示するプラグイン作成●d3forumコメント統合の利用法・d3forumコメント統合対応モジュールに対してd3forumコメント統合を謳っているモジュールであれば、d3forum側で何の設定も必要ありません。必要に応じて、フォーラムを新規に作って、そのフォーラム番号をモジュール側に指定するだけです。代替システムモジュール&ライブラリ●要旨使いづらいシステムモジュールの代わりとして作ってきたblocksadminやtplsadminといったコアに関する操作を統合したモジュールです。V3モジュールから、ライブラリとして利用できる形にしたため、構造から大きく見直しています。バグ報告を大歓迎します。今後は、avamanも吸収し、私自身のメンテナンスを楽にしたいと思います。アップデートでは、公開側(XOOPS_ROOT_PATH/modules/altsys)をいったん消してから、上書きしてください。0.4から、altsysは見かけ上メイン部を持つようになりました。メインメニューなどに、ALTSYSが表示されて困る場合は、モジュール管理から表示順を0に変更してください。ImpressCMS等、あらゆるコアの操作性・開発効率を向上します●テンプレート自動更新機能DBテンプレートをローカルで編集する際には、ファイルを更新するだけで、自動的にDBテンプレートへ反映してくれる機能があると、とても開発効率が向上します。altsysでは、3つのパターンを提供します。(1)テーマ内テンプレート自動更新機能サイトやテーマ開発者にとって便利な機能です。mainfile.phpのcommon.php読込行の直後に、以下のように1行挿入します。;これにより、選択されたテーマ内のtemplates/フォルダ内に置かれたテンプレートを自動的に読み込むようになります。(2)モジュール内テンプレート自動更新機能モジュール開発者にとって便利な機能です。mainfile.phpのcommon.php読込行の直後に、以下のように2行挿入します。;このように記述することで、piCalモジュールのテンプレートの元ファイルを編集するだけで、即時にデータベースに反映されます。includeする前に、$tplsadmin_autoupdate_dirnamesに配列をセットしておくことが重要です。複数のモジュールを同時指定することも可能です。(3)TRUST_PATH内テンプレート自動更新機能D3モジュール開発者にとって便利な機能です。mainfile.phpのcommon.php読込行の直後に、以下のように2行挿入します。;このように記述することで、picoモジュールやd3forumのテンプレートの元ファイルを編集するだけで、即時にデータベースに反映されます。includeする前に、$tplsadmin_autoupdate_mydirnamesに配列をセットしておくことが重要です。(1)〜(3)のいずれも、併用が可能です。●管理画面テーマ機能管理画面を、公開画面用のテーマで表示します。これにより、管理画面も公開画面も同じ画面でシームレスに利用できるようになり、利用者にとっての違和感がなくなるメリットがあります。使い勝手全体も、テーマ・テンプレートレベルでいくらでも向上させることができます。コアタイプによって有効化する方法が違います。common.php読込行の直後に、以下の1行を挿入します。;無効化するには、この1行を削除してください。以下の行を挿入します。(このファイルがなければ作る)[RenderSystems]Legacy_AdminRenderSystem=Legacy_AltsysAdminRenderSystem[Legacy_AltsysAdminRenderSystem]path=/modules/altsys/includeclass=Legacy_AltsysAdminRenderSystem無効化するには、これらの行を削除してください。管理画面テーマは、altsysの一般設定で指定します。公開側テーマと管理側テーマは別々のものを指定できます。ここを空欄にするだけでも、管理画面テーマを無効化することができます。問題発生時には、この方法を使うのがお勧めです。ほとんどのブロックを管理画面テーマに表示することが可能ですが、ブロック管理で「前ページ」と指定しても管理画面には表示されません。ALTSYSモジュールに対して表示指定されたブロックだけが表示されます。管理画面にも公開画面にも表示したいブロックであれば、「全ページ」と「ALTSYS」をCTRL+クリックで両方選択してください。管理画面でのハマリを避けるために、管理画面にはかならず管理メニューブロックが表示されます。明示的に表示指定をしていない場合、左ブロックの一番上に強制挿入されます。表示指定されていれば、そのまま表示されます。●管理メニュー0.4から、「管理メニュー」ブロックがaltsysにつきました。ブロック管理から、ALTSYSモジュールに対して表示指定することで、管理画面内にブロック表示されます。これは、管理画面テーマが有効になっている場合のみです。おいて、通常管理画面を利用している場合(管理画面テーマを利用していない場合)、altsys一般設定の「管理者用メニューの書き換え」が意味を持ちます。いうファイルを削除してから、あらためて管理画面に入るだけで復旧します。(確認画面で「はい」を押してください)●言語ファイルオーバーライド0.5から言語ファイルオーバーライド機能がaltsysにつきました。言語定数管理から、モジュール->言語->ファイルを選んで、必要な部分を書き換えるだけです。これが有効にならないケースも多い点に注意が必要です。D3LanguageManagerに対応したモジュールであれば、無条件で有効に機能しますが、それ以外のモジュールについては、コアバージョンによる制約があります。Legacy2.1であれば最も簡単です。アーカイブ添付のpreloadを有効にするだけです。これで一般的なモジュールは書き換え可能です。従来のXOOPS2について、この機能を有効にするためには、コアHackが必要になってしまいます。言語ファイルの共通読込処理を書き換える形になるため、比較的ハードルも高く、あまりお勧めしません。hamakan.jp。