![]() |
![]() |
機能:ニュース
種別:動的コンテンツ
作者:suin>GIJOE
バージョン:2.04、HD2.10
動作環境:XOOPS2.0〜、XOOPS Cube Legacy 2.1
配布元:
(オリジナル版)http://xoops.suinyeze.com/ (旧:http://suin.jp/)
(GIJOE Hack版)http://xoops.peak.ne.jp/
複製:Duplicatable V3
Duplicatable V3モジュールであるため、XOOPS_TRUST_PATHの設定が必要です。
アーカイブを展開した一番上にある、html/modules/bulletin を、一般的なモジュールフォルダ(XOOPS_ROOT_PATH/modules/)内にコピーし、xoops_trust_path を、mainfile.php で設定したXOOPS_TRUST_PATH側にコピーします。
(ここに、エクスプローラのスクリーンショットを挿入)
このような形でファイル群を用意できて初めて、管理画面からモジュールインストールを行います。
また、XOOPS_ROOT_PATH/modules/ 以下に格納するフォルダ名は、bulletinでなくても構いません。半角英数字およびアンダーバーから構成される任意のフォルダ名をつけてください(ハイフンは非推奨です)。いくつ用意しても構いません。それぞれ独立したモジュールとしてインストール可能です。
Bulletin2のアーカイブ内には、「XOOPS_TRUST_PATHについて.pdf」という図解付きの解説ファイルも用意されています。これを読みながらインストールすれば、より判りやすいでしょう。
Bulletin2を利用する際には、一緒に altsys をインストールすると、より優れた管理画面を利用することができます。altsysのインストールは先でも後でも構いません。両者が揃った時点で、自動的に管理画面が再構築されます。
Bulletin2をnews1.1の置き換えとして利用する場合は、管理者画面よりインポート作業を行うことで、その記事を引き継ぐことができます。
まず、ファイルの上書きですが、Duplicatable V3モジュールであるため、Bulletin2を複数インストールしていても、xoops_trust_path側についてだけ1回上書きアップロードするだけで済みます。必要に応じて、モジュールアップデートも行ってください。
通常、XOOPS_ROOT_PATH側へのファイル更新はありませんが、特に指示があった場合は、インストールしたBulletin2の数だけ、ファイル上書きをしてください。
なお、Bulletin1からの「アップグレード」を行う場合は、いったん、modules/ 以下にあるBulletin1のファイルを全て消してから、上述したインストール手順に従ってファイルを用意してください。その上で、モジュールアップデートを実行します。
通常通り、モジュール管理よりアンインストールします。
ファイルをサーバから削除するときは、XOOPS_ROOT_PATH側だけ消せば十分です。XOOPS_TRUST_PATH/modules/bulletin については、本当にBulletin2が一つもインストールされていなくて、かつ、サーバ容量が足りなくなった時にだけ消せば良いでしょう。
ユーザデータは基本的にすべてデータベース内に存在しています。バックアップを取る場合は、以下の3つのテーブルを保存します。イタリックの部分は、modules/以下にどのようなフォルダ名で格納したかによって変わります。
ユーザファイルとしてimages/topics/ 内にカテゴリ用の画像を格納していることも多いと思うので、ファイルを削除する前に確認しておくと良いでしょう。このパスは、news1.1と同じです。
新規インストールを行った場合、カテゴリが存在しませんので、まずはカテゴリを作成します。管理画面からカテゴリを1つ以上作成してください。なお、news1.1におけるトピックはBulletin2におけるカテゴリに対応します。より一般的な名称になったので、むしろ判りやすいでしょう。
カテゴリを作成した後は、記事を投稿します。もちろん、管理者以外からの投稿も可能です。
news1.1やBulletin1では、管理者投稿画面と一般投稿画面が別でしたが、Bulletin2では統合されています。管理者であっても、サブメニューやモジュールトップのリンクから、「ニュース投稿」に入って投稿します。
(投稿画面スクリーンショット)
このモジュールのトップ画面には、投稿者によって投稿された記事が新しい順で表示されています。(最新順記事一覧表示)
表示件数は、モジュール一般設定の「トップページに掲載する記事数」で指定します。
画面最上部にあるカテゴリー選択ボックスおよび件数選択ボックスを利用して、表示するニュース記事を絞り込むことができます。(ナビゲーションボックス。一般設定でON/OFF切替可能)
[pagebreak]で区切られた記事については、「続きを読む」リンクが表示され、ここをクリックすることで、記事詳細画面に入ることができ、2ブロック目以降を読むことができます。「コメント」のリンクでも、同様に記事詳細画面に入ります。このあたりのインターフェースはnews1.1と同じで、やや判りづらいと言えるでしょう。「コメント」のリンクでコメント投稿画面を表示させるためには、「どこでもXOOPSコメント」の併用を勧めます。
記事詳細画面には、同一カテゴリーの最新記事タイトル一覧と、関連記事タイトル一覧が表示されます。これらの表示ON/OFFは、Bulletin2の一般設定によって切替可能です。
最新記事の一覧を、RSSで取得することも可能です。
URIは以下のようになります。
XOOPS_URL/modules/(dirname)/index.php?page=rss
news1.1のように、ルートコントローラbackend.phpからRSSを吐かせたい場合は、下のTipsを参考にしてください。
XOOPS_URL/backend.php
各記事が状態に応じて4種類に分類されて一覧表示されています。
ここから各記事を編集したり削除することができます。
それぞれ最新順に10件しか表示されませんので、表示されていない記事について操作を行いたい場合は、[すべての記事を表示]をクリックします。
各4状態はすべて、「編集」によって遷移可能です。
以下に例を挙げます。
記事の内容に合わせたカテゴリを設置します。
カテゴリアイコンを設定するためには、先んじて画像ファイルをアップロードしておく必要があります。初期状態では、XOOPS_ROOT_PATH/modules/(dirname)/images/topics/ ですが、一般設定で他のフォルダを設定することも可能です。
XOOPS_ROOT_PATH/themes/(theme)/images/
に設定すると便利かも知れません。
各機能についての投稿権限を設定します。
これを選択すると「newsから記事・カテゴリの情報を取り込みますか?」という画面が出てきますので、よければ「送信」を選択します。
選択すると、news1.1からの記事・トピックをまとめて取り込むことができます。
| トップページに掲載する記事数 | モジュールトップページに一覧表示する記事の数(デフォルト値)を指定します。 |
| ナビゲーションボックスを表示する | カテゴリおよび表示件数を選択するドロップダウンボックスを記事の上部に表示するかどうかを指定します。 |
| 投稿・編集用テキストエリアの高さ | 記事投稿画面のメッセージ本文用テキストエリアの行数を設定します。 |
| 投稿・編集用テキストエリアの幅 | 同じく、横幅を設定します。 |
| 日付・日時の書式 | XOOPSデフォルトの書式を利用する場合は、l,m,s のいずれかを指定します。細かく指定する場合は、date()関数の引数フォーマットとなります。Y年n月j日 など。 |
| 投稿をユーザーの投稿数に反映 | Bulletinへの投稿をそのユーザの「投稿数」に加算するかどうかの指定です。記事が承認制の場合、承認時に加算されます。 |
| カテゴリアイコンがあるディレクトリのパス | カテゴリアイコンをアップロードしたフォルダを絶対パスで指定します。あえて変更するのであれば、テーマの下が良いでしょう。 |
| 印刷ページの画像のURL | 印刷用ページに表示されるロゴ画像をURLで指定します。 |
| 記事名をサイトのタイトルにする | 記事の詳細画面において、記事表題を<{$xoops_pagetitle}>にアサインします。 |
| xoops_module_headerにRSSのURLをassingする | <link rel="alternate" type="application/rss+xml" title="RSS2.0">としてBulletin2のRSSのURIが、HTMLヘッダに登録されます。RSSリーダーなどを利用しているユーザにとって有用な設定です。xoops_module_headerも参照のこと。 |
| 「印刷する」アイコンを表示する | |
| 「友達に知らせる」アイコンを表示する | |
| Tell A Friendモジュールを利用する | 「友達に知らせる」アイコンのリンクが、自動的にtellafriendモジュールを指すようになります。 |
| RSSのリンクを表示する | モジュールメイン画面にRSSへのリンクを表示するかどうかの設定です。 |
| 関連記事機能を有効にする | |
| カテゴリの最新記事を表示する | 記事詳細画面の下に同一カテゴリの最新記事一覧を表示するかどうかの設定です。 |
| カテゴリの最新記事の記事数 | 同上。表示件数の設定です。 |
| カテゴリのパンくずリストを表示する | カテゴリは階層構造を持つことができますので、パンくずリストを表示すると、深いカテゴライズがより大きな意味を持つことになるでしょう。 |
以下の設定は一般的なモジュールと同様です。
| コメント投稿に関するルール | |
| 匿名によるコメント投稿を許可しますか? | |
| イベント通知機能の設定 | |
| 特定イベントを有効にする |
| ブロック名 | 説明 | 複製 | オプション |
| カレンダー | 記事投稿日を記録するカレンダーブロック。テンプレートを利用していない点に注意。 | 不可 | なし |
| ニュースカテゴリ | カテゴリ選択をするブロック。利用価値が低い点はnews1.1と同様 | 不可 | なし |
| 本日のトップニュース | 「今日」投稿された記事の中でもっともヒット数の大きな記事を表示するブロック。news1.1のbigstoryと同じで、毎日大量の記事投稿があるサイト以外では利用価値は低い。 | 不可 | なし |
| 最新ニュース | 新着順に記事タイトルを一覧表示するブロック。本文のサマリ部分を表示する機能を持つ点がnews1.1との違い。 | 可 | 並び順: 掲載日時かヒット数を選ぶ。news1.1の「トップニュース」相当の機能が必要な場合は、ここでヒット数を選べばよい。 表示件数: 表示記事数 表示件名の長さ: このバイト数で件名が途中でカットされる。なるべく長くした方が良い。 本文を表示する件数: 指定した件数の記事について、本文サマリ部(最初の[pagebreak]の手前まで)が表示される。初期値は0で、この場合はすべてについて表題しか表示されない。 |
| カテゴリ別最新ニュース | 「最新ニュース」ブロックに、カテゴリ毎に表示する機能を付与したブロック。 | 可 | 「最新ニュース」ブロックと同じオプションについては省略。 表示カテゴリ: 表示するカテゴリを番号で指定する。複数指定はできそうでできない。 |
| ブリティン新着コメント | 記事についたコメントの新着一覧表示ブロック | 不可 | なし |
D3モジュールであるため、DBテンプレート名と元となるファイル名は一致しない。下表でも、イタリックの部分が、XOOPS_ROOT_PATH/modules/の下に置いたディレクトリ名に置き換わる。
元となるファイルは、XOOPS_TRUST_PATH/modules/bulletin/templates/ 以下に存在するが、そこのファイルを編集するべきではない。
| bulletin_index.html | モジュールトップ画面(記事一覧表示)のテンプレート。 |
| bulletin_article.html | 記事の個別表示用テンプレート |
| bulletin_archive.html | 時系列アーカイブページのテンプレート |
| bulletin_head.html | bulletin モジュールが共通的に用いるメニュー(アーカイブ,権限がある場合の投稿,RSS 配信)のテンプレート |
| bulletin_item.html | 各記事のテンプレート。bulletin_index.html,bulletin_article.html,bulletin_archive.html,bulletin_block_new.html などがこのテンプレートを include する,いわば核となる部分。 |
| bulletin_category.html | 同じカテゴリに属する記事一覧用テンプレート。記事詳細画面の下部に表示される。 |
| bulletin_relations.html | 記事と関連する記事一覧用テンプレート。記事詳細画面の下に表示される。 |
| bulletin_rss.html | RSS のテンプレート |
| bulletin_javascript.html | 関連記事選択の小窓を呼び出す javascript |
| bulletin_print.html | 記事プリントアウト用のテンプレート |
| bulletin_block_topics.html | ニュースカテゴリブロック用 |
| bulletin_block_bigstory.html | 本日のトップニュースブロック用 |
| bulletin_block_new.html | 最新ニュースブロック用 |
| bulletin_block_category_new.html | カテゴリ別最新ニュースブロック用 |
| bulletin_block_comments.html | ブリティン新着コメントブロック用 |
Bulletin2では、管理画面の投稿フォームは無くなりました。投稿はすべて一元化され、従来、管理者投稿画面にしかなかった各種オプションも、グループ毎の権限設定でON/OFFのコントロールができます。
news1.1やBulletin1では、本文2の中でのページ分割に使われていたタグ[pagebreak]が、本文と本文2を分けるためにも利用されるようになりました。
サマリー部 [pagebreak] 本文1ページ目 [pagebreak] 本文2ページ目 [pagebreak] …
と、1つの入力フォーム内の [pagebreak] だけでコントロールできるようになり、すっきりしたわけです。
X2コアの隠し機能「テーマ配下テンプレート自動インポート」を使う場合,Duplicatable V3 モジュールでは,単に themes のなかにモジュール内の templates をコピーしても,テンプレートとして機能しません。所定の themes フォルダにファイルを用意した後,「ディレクトリ名_テンプレート名.html」という規則でファイル名をリネームする必要があります。
記事本文中に & を使うと、生成されるRSSがInvalid(XML文法違反)になってしまう不具合があります。
これは、XOOPSテキストサニタイザの処理で、&の処理を正しく行わないことに原因がありますが、現実にそのRSSがパースエラーで取得できなくなってしまいます。
一番簡単な対応法ですが、テンプレート bulletin_rss.html から、
<content:encoded><![CDATA[<{$item.content}>]]></content:encoded>の1行を消すのが良いでしょう。
description の方は、&についての処理をXOOPSに任せない作りになっているため、こちらを出力しても Invalid な RSS にはなりません。
news1.1をずっと利用していたとすれば、おそらくそのサイトのユーザは、RSSのURIとしてbackend.php を登録しているはずです。
ただ、ルートコントローラのbackend.phpは、news1.1専用であるため、Bulletin2で利用するためにはなんらかの工夫をする必要があります。
このようなケースでは、一般的にHTTP redirectを利用するのですが、RSSリーダーのいくつかはリダイレクトに対応していないため、backend.php をまるごと書き換えてしまうのが良いでしょう。
<?php
define( 'BACKEND_DIRNAME' , 'bulletin' ) ;
$_GET['page'] = 'rss' ;
require 'mainfile.php' ;
if( ! defined( 'XOOPS_TRUST_PATH' ) ) die( 'set XOOPS_TRUST_PATH in mainfile.php' ) ;
$module_handler =& xoops_gethandler( 'module' ) ;
$xoopsModule =& $module_handler->getByDirname( BACKEND_DIRNAME ) ;
$mydirname = BACKEND_DIRNAME ;
$mydirpath = XOOPS_ROOT_PATH.'/modules/'.BACKEND_DIRNAME ;
$mydirurl = XOOPS_URL.'/modules/'.$mydirname;
require $mydirpath.'/mytrustdirname.php' ; // set $mytrustdirname
if( @$_GET['mode'] == 'admin' ) {
require XOOPS_TRUST_PATH.'/modules/'.$mytrustdirname.'/admin.php' ;
} else {
require XOOPS_TRUST_PATH.'/modules/'.$mytrustdirname.'/main.php' ;
}
?>bulletin以外のdirnameにインストールしたBulletin2のRSSをbackend.phpから吐き出したい場合は、以下の部分を書き換えてください。
define( 'BACKEND_DIRNAME' , 'bulletin' ) ;
これはnews1.1との互換性を最優先に考えた解決法ですが、サイト全体のRSSを吐き出すモジュールを使う、という案も検討すべきでしょう。
news1.1やBulletin1は、ページコントローラでしたが、Bulletin2はフロントコントローラタイプに変更されています。
そのため、news1.1からの乗り換えを行う場合、URIの互換性が取れない(サーチエンジンのインデックスや、他サイトからのリンクがデッドとなってしまう)、という問題が発生してしまいます。
お使いのサーバで、mod_rewriteが利用できればその問題を解決することも可能です。
XOOPS_ROOT_PATH/modules/(dirname)/.htaccess.rewrite
というファイルをリネームして、.htacessにします。(このリネームは、Windowsのエクスプローラ上では出来ませんので、サーバ上で行うのが良いでしょう)
XOOPS_ROOT_PATH/modules/(dirname)/.htaccess
たったこれだけで、以下のようなnews1.1のページコントローラアクセスがデッドリンクにならずに、期待通りの記事が表示されるようになります。
XOOPS_URL/modules/news/article.php?storyid=1 XOOPS_URL/modules/news/index.php?page=article.php&storyid=1
※この両者は同じ
| news1.1 | 標準モジュール | http://jp.xoops.org/ |
| Bulletin1 | Bulletin2の前身 | http://suin.jp/ |