## Bulletin

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

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

#### 機能説明

- ニュース投稿・編集・削除
- アーカイブ
- RSS配信
- モジュールの複製
- newsの記事の取り込み

#### 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

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

#### 複製方法

Bulletinの複製機能はDuplicatable v2.xです。
ディレクトリ名の表記ルールは任意の半角英字＋任意の半角数字 です。
また１つだけ半角数字を省略したディレクトリを作ることができます。
たとえば、bulletin・bulletin0・bulletin1・bulletin2……やnews・news0・news1・news2……のように4つまで複製することができます。5つ目以上複製は、テンプレート・SQLファイル・モジュールアイコン画像それぞれコピーすることで可能です。
5つ目のbulletinの作り方
まず、bulletinディレクトリ一式をコピーし、bulletin3にリネームします。
次に、下記のファイルを作って下さい。
・modules/bulletin3/images/bulletin3_logo.png
…　画像処理ソフトなどでロゴを作って用意してください。
・modules/bulletin3/sql/mysql3.sql
…　mysql.sqlをコピーしてmysql3.sqlに名称変更し、エディタでファイルを開き
CREATE TABLE `bulletin_stories` (
・・・
CREATE TABLE `bulletin_topics` (
を下記のように変更してください。
CREATE TABLE `bulletin3_stories` (
・・・
CREATE TABLE `bulletin3_topics` (
modules/bulletin3/templates/下のファイルを以下のようにリネームしてください。
・bulletin_archive.html　→　bulletin3_archive.html
・bulletin_article.html　→　bulletin3_article.html
・bulletin_index.html　→　bulletin3_index.html
・bulletin_item.html　→　bulletin3_item.html
・bulletin_print.html　→　bulletin3_print.html
・bulletin_rss.html　→　bulletin3_rss.html
modules/bulletin3/templates/blocks/下のファイルを以下のようにリネームしてください
・bulletin_block_bigstory.html　→　bulletin3_block_bigstory.html
・bulletin_block_cnew.html　→　bulletin3_block_cnew.html
・bulletin_block_comments.html　→　bulletin3_block_comments.html
・bulletin_block_new.html　→　bulletin3_block_new.html
・bulletin_block_topics.html　→　bulletin3_block_topics.html

#### 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”だったもの。処理しやすいように数値に変更　admin = 2; user = 1
`topicimg` tinyint(1) NOT NULL default '0',
→”topicdisplay”,”topicalign”をひとまとめにして、数値で表すように変更。
`comments` smallint(5) unsigned NOT NULL default '0',
→変更無し

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

1) 圧縮ファイルを解凍してモジュールディレクトリにアップロード。
2) モジュール管理にてインストールしてください。

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

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

#### 更新履歴

Ver | Date | Category | Note
--- | --- | --- | ---
1.06 | 2006-06-23 | バグ | 複製したテンプレートがもとのテンプレートを参照していたバグを修正。(thx o-nishi and kenchi)
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 | バグ | 複製したBulletinのブロックが正しく機能しないバグ。
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/>