## D3news

#### このモジュールについて

ニュースモジュールのひとつです。newsの古いコードを刷新することが開発のきっかけとなりました。最終的に過去の有用なハックなどを盛り込み、Duplicatable機能も付け加えました。

#### 機能説明

- ニュース投稿・編集・削除
- アーカイブ
- RSS配信
- モジュールの複製( Dupulication V3 )
- newsの記事の取り込み
- 関連記事機能 new!!
- 同じカテゴリの最新記事一覧機能 new!!

#### newsからの変更点

- 各ファイルでassignされているテーマ変数から出来るだけHTMLタグを取り除いた。
- 各ファイルにおいてディレクトリ名を変更できるように改変した。
- 各ファイルでinclude から require に関数を交代した。
- $HTTP_*_VALUE を $_* に置き換えた。
- テンプレートを各PHPファイルの変更にあわせて改変した。
- テンプレートに<{strip}>タグを加えた。
- print.phpをテンプレート出力に対応した。
- 各ファイルにおいて，相対パスを絶対パスに変更した。
- print.phpにおける潜在的なtypoを訂正した。
- 「のこり***バイト」をマルチバイト環境に対応し，かつ「のこり**文字」に変更。
- 「分」の選択肢が 0~60 だったので 0~59 に修正。
- 記事投稿の日時選択フォーマット「月：mm 日：dd 年：YYYY 時：HH 分：ii」を，日本語式に「YYYY年mm月dd日HH時ii分」に変更した。
- アーカイブの表示方法を，スペースを有効活用するように変更した。
- archive.phpのSQL記述をclassへ移動した。
- ニュース投稿権限をグループごとに与えられる機能を追加した。（XOOPS2.0.4以降）
- ニュース投稿自動承認をグループごとで決められる機能を追加した。（XOOPS2.0.4以降）
- ユーザーのタイムゾーンが反映されない部分を修正した。
- DB項目の’story_type’を’type’に変更した。
- submit.phpにおける，本文フォームのサイズを一般設定で変更できる機能を追加した。
- コメントに記事の存在確認処理を追加。
- 検索結果の日時を投稿日時から掲載日時に変更した。
- 記事から画像がはみ出してしまうバグを修正。
- 記事の題名をサイトのタイトルに。
- article.phpにおける$storypageの妥当性を確認する処理を追加。
- 言語の名付け規則に従ってlanguageファイルを訂正した。（_NW_*→_MD_*）
- 本名もassignした。
- HTMLが有効なら改行を無効にした。
- クラスから出来る限りHTMLを追放した。→テンプレートへ。
- Ryujiさんのブロックを取り入れた。
- カレンダーブロックを追加。
- GIJOEさんのmyblockadminを取り入れた。
- 投稿数加算処理を改善。
- コメントブロックを追加した。
- 期限切れの記事が見られるバグ（仕様？）を修正。
- 記事の編集・管理の使い勝手を改善する。
- メールの文字化けは"Tell A Friend"に対応。
- ルートコントローラで配信していたRSSをモジュールの一部にした。→グループ設定が反映されるようになる。
- 複製可能にした。

ほかにも理解不能な仕様を改善したり、ずっと放置されていたっぽいバグFixをしたりといろいろ変わった点があります。

#### ToDo

- TinyDをまねて静的URLを生成するとか。
- トラックバック機能を追加してみるとか。
- ファイルアップ機能を追加したほうがいいか。
- 携帯電話端末対応は必須か。

#### 複製方法

D3newsの複製機能はいわゆるDuplicatable V3です。

#### newsのデータベースとの差違

`storyid` int(8) unsigned NOT NULL auto_increment,
→変更無し
`uid` int(5) unsigned NOT NULL default '0',
→変更無し
`title` varchar(255) NOT NULL default '',
→変更無し
`created` int(10) unsigned NOT NULL default '0',
→変更無し
`published` int(10) unsigned NOT NULL default '0',
→変更無し
`expired` int(10) unsigned NOT NULL default '0',
→変更無し
`hostname` varchar(20) NOT NULL default '',
→変更無し
`html` tinyint(1) NOT NULL default '0',
→nohtmlだと否定が基本で認知的に非効率的なので、肯定に変更
`smiley` tinyint(1) NOT NULL default '0',
→nosmileyだと否定が基本で認知的に非効率的なので、肯定に変更
`br` tinyint(1) NOT NULL default '0',
→以前から必要だと言われていたので追加
`xcode` tinyint(1) NOT NULL default '0',
→なかったので追加
`hometext` text NOT NULL,
→変更無し
`bodytext` text NOT NULL,
→変更無し
`counter` int(8) unsigned NOT NULL default '0',
→変更無し
`topicid` smallint(4) unsigned NOT NULL default '1',
→変更無し
`ihome` tinyint(1) NOT NULL default '0',
→0と1を逆転
`notifypub` tinyint(1) NOT NULL default '0',
→削除
`type` tinyint(1) NOT NULL default '0',
→”story_type”だったもの。もはや必要のないもの。D3newsでは承認/未承認の区別に利用
`topicimg` tinyint(1) NOT NULL default '0',
→”topicdisplay”,”topicalign”をひとまとめにして、数値で表すように変更。
`comments` smallint(5) unsigned NOT NULL default '0',
→変更無し

#### インストール方法

最初の１個をインストールする方法
(1) アーカイブを展開して、html/modules/d3news を moduels の下にコピー
(2) ディレクトリ名は好きにつけてください。(例 mycompany)
(3) DocumentRootの外に専用のディレクトリを作ります (例 /home/yourhome/xoops_trust_path)
(4) そのディレクトリのフルパスをmainfile.phpに記述します。場所はXOOPS_URL定義行の直後が良いでしょう。
define('XOOPS_TRUST_PATH','/home/yourhome/xoops_trust_path');
（このステップ(3)と(4)は、最速キャッシュハックと同じです）
(5) XOOPS_TRUST_PATHの下にmodulesディレクトリを作ります (例 /home/yourhome/xoops_trust_path/modules)
(6) アーカイブのxoops_trust_path/modules/d3newsをXOOPS_TRUST_PATH/modules/にコピーします (例 /home/yourhome/xoops_trust_path/modules/d3news)
(7) XOOPSモジュールとしてインストールしてください。
もう一個モジュールをインストールする方法
(1) アーカイブの html/modules/d3news を moduels の下にコピー
(2) ディレクトリ名を好きにつけてください (例 mypolicy)
(5) XOOPSモジュールとしてインストールしてください。
モジュールをバージョンアップする方法
(1) アーカイブのxoops_trust_path/modules/d3newsをXOOPS_TRUST_PATH/modules/に上書きコピーします (例 /home/yourhome/xoops_trust_path/modules/d3news)
(2) 必要に応じて、モジュールアップデートをかけます。
たったこれだけですべてのモジュールがアップデートされたことになります。
GIJOEさん、すみません。テキスト勝手に借りました…。

#### アンインストール方法

通常のモジュール同様にモジュール管理よりアンインストールを実行してください。

#### 更新履歴

Ver | Date | Category | Note
--- | --- | --- | ---
2.04 | 2006-08-19 | バグ | 未完成のテンプレートのためインストールが失敗するバグを修正。(thx kazu, plusangel)
2.03 | 2006-07-20 | バグ | モジュールのアイコンの色がおかしくなるバグを修正。(thx GIJOE)
2.03 | 2006-07-20 | 変更 | gticketをgticket2に変更。
2.03 | 2006-07-20 | 変更 | oninstall.php, update.php, onuninstall.phpのCube対応(thx GIJOE)
2.03 | 2006-07-20 | 変更 | RSSの<description>の文字数制限を削除。(thx GIJOE)
2.03 | 2006-07-20 | バグ | main/search.php、class/d3newsgp.phpのショートタグを修正(thx GIJOE)
2.03 | 2006-07-20 | バグ | URLにスラッシュが抜けている部分を修正(thx fujisawa)
2.03 | 2006-07-20 | バグ | カテゴリのパンくず表示がでたらめになるバグを修正(thx jidaikobo)
2.03 | 2006-07-20 | バグ | カテゴリブロックでnewsの名残を修正(thx jidaikobo)
2.02 | 2006-07-09 | バグ | assingというtypoをassignに訂正(thx jidaikobo)
2.02 | 2006-07-09 | 変更 | 一般設定の日時フォーマットをブロックにも適用できるように変更(thx jidaikobo)
2.02 | 2006-07-07 | 言語 | Frenchを更新。(thx gigamaster)
2.01 | 2006-07-03 | バグ | D3news1からアップデートすると、ブロックのテンプレートが無効になるバグを修正。(thx plusangel)
2.01 | 2006-07-03 | バグ | main/search.phpで日本語の言語ファイルを無条件に読み込んでしまうバグ。(thx FutureSpy)
2.01 | 2006-07-03 | 追加 | 新規コメント投稿時のイベント通知機能。
2.01 | 2006-07-03 | 言語 | Englishを更新 (thx FutureSpy)
2.0 | 2006-06-25 | 変更 | 掲載の承認/非承認をチェックボックスでスイッチできるようにした。
2.0 | 2006-06-25 | 追加 | オプションに「ブロックに表示する」を追加。
2.0 | 2006-06-23 | 変更 | 文字カウント関数をより正確なものへ変更。
2.0 | 2006-06-23 | 変更 | item.htmlの<br clear="all" />を<div style="clear: both;"></div>に変更
2.0 | 2006-06-07 | 追加 | パンくずリストを追加。
2.0 | 2006-06-07 | 追加 | 同じカテゴリの最新記事を各記事の下に表示する機能を追加。
2.0 | 2006-06-07 | 追加 | 関連記事機能を追加。(ELFさんには大変感謝しています）
2.0 | 2006-06-07 | 変更 | RSSの出力に<content:encoded>タグを追加。
2.0 | 2006-06-07 | 変更 | 各テンプレートをロジックの変更に合わせて適宜変更。
2.0 | 2006-06-07 | 変更 | 管理画面とユーザ画面に分離していた記事投稿編集ページを統一。
2.0 | 2006-06-07 | 追加 | 権限による掲載日時のON/OFF設定を追加。
2.0 | 2006-06-07 | 変更 | 投稿フォームの本文１と本文２を一つのフォームに統一。
2.0 | 2006-06-07 | 変更 | alsysモジュールに対応。
2.0 | 2006-06-07 | 変更 | 一部、チケットシステムをGIJOEさんのものに変更。
2.0 | 2006-06-07 | バグ | その他小さなバグを修正。
1.05 | 2006-05-26 | バグ | イベント通知の「新規ニュース記事が掲載された場合に通知する」が機能していないバグを修正。
1.05 | 2006-05-26 | バグ | 複製したブリテンでイベント通知が正常に機能しないバグを修正。
1.042 | 2006-05-15 | バグ | 「最新ニュース」ブロックで「hometextを表示する件数」を指定している場合に、掲載期限が切れている記事が載ってしまうバグを修正。
1.041 | 2006-05-14 | バグ | ブロックで「残りX文字」が正しく表示されないバグを修正。
1.04 | 2006-05-12 | バグ | 期限切れ記事が20件以上閲覧できないバグを修正
1.04 | 2006-05-12 | バグ | カテゴリー別ブロックで「続きを読む」が表示されないバグを修正
1.04 | 2006-05-12 | バグ | RSSの表示不備を修正
1.03 | 2006-03-27 | バグ | コメント数のバグを修正
1.02 | 2006-02-26 | バグ | 複製したD3newsのブロックが正しく機能しないバグ。
1.02 | 2006-02-26 | 追加 | newsからインポートした後のページに「戻る」リンクを追加。
1.02 | 2006-02-26 | 言語 | englishを更新(thx Yuji)
1.02 | 2006-02-26 | 言語 | catalanを追加(thx Yuji)
1.02 | 2006-02-26 | 言語 | portuguesebrを追加(thx Yuji)
1.02 | 2006-02-26 | 言語 | spanishを追加(thx Yuji)
1.02 | 2006-02-26 | 言語 | frenchを追加(thx gigamaster)
1.02 | 2006-02-26 | 言語 | tchineseを追加(thx kiang)
1.01 | 2006-02-21 | 言語 | englishを追加(thx Yuji)
1.01 | 2006-02-20 | バグ | ブロックで件名の文字数切り詰めが出来ないバグを修正。
1.01 | 2006-02-20 | 追加 | Tell A Friendモジュールに対応。
1.01 | 2006-02-20 | 追加 | トピックを削除するとき、トピックに属する記事を他のトピックに移管できる機能を追加。
1.01 | 2006-02-20 | 追加 | 「印刷する」「友達に知らせる」アイコンの表示非表示を選択できるように変更。
1.01 | 2006-02-20 | 追加 | 「最新ニュース」で本文を複数表示できるように変更。
1.01 | 2006-02-20 | 追加 | RSSへのリンクを表示できるように変更。
1.01 | 2006-02-20 | バグ | [編集]がリンク切れしていたバグを修正。
1.01 | 2006-02-20 | 変更 | 「トピック」という表記を「カテゴリ」に統一した。
1.0 | 2006-02-16 | その他 | テスト版リリース

#### 謝辞

myblocksadminをGIJOEさんからお借りしました。<http://www.peak.ne.jp/>
gticketをGIJOEさんからお借りしました。
各言語ファイルを提供くださった皆様に感謝します。