Download List

Sponsored link

Project Description

XOOPSの統合パッケージを開発するプロジェクトです。

System Requirements

System requirement is not defined

Released at 2006-10-07 19:22
weblinks weblinks_120 (1 files Hide)

Release Notes

これはベータ版です。
今回の変更点は、「RSSCモジュールとの連携」です。
これらの機能が不要な場合は v0.97 あるいは V1.13 をお使いください。

● 大きな変更
1. happy_linux モジュール
rssc モジュールと共通の処理を happy_linux モジュールに集約した。
この「weblinks」モジュールを使用するには、happy_linux モジュールが必要となります。

2. rssc モジュール
rssc モジュールとの連携機能を追加した
RSS の収集・保存などの機能は rssc モジュールを利用します。

2.1 操作
RSS機能を使用するときは、管理者画面にて「RSS記事の使用」を「はい」に設定する。
全ての操作は weblinks モジュールを介して行われます。
利用者は rssc モジュールを使用していることを意識する必要はない。

2.2 RSSCモジュールの連携機能を利用したことにより、下記の点が改良されています。
(1) RSSパーサーに magpie を採用した
(2) <title> と <dc:title> を区別した
http://linux.ohwada.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=457&forum=5
(3) <enclosure> を解析し、podcasting に対応した

2.3 従来との互換のために、下記の機能は残した (v1.13以前)。
RSSCモジュールにも同様な機能があるので、そちらを使用することを推奨します。
(1)「リンク集の新着RSS/ATOM記事」ブロック
(2)「リンク集のblog表示」ブロック
(3) カスタム・ブロックにてblogを表示する (include/atomfeed.inc.php)

2.4 下記のコマンドは廃止した
RSSCモジュールに同様な機能があるので、そちらを使用ください。
(1) bin/refresh_link.php
(2) bin/refresh_site.php

2.5 課題
2つのモジュールを連携したことにより、
モジュール間に不整合が発生することがあります。

(1) rssc にてリンクを削除した
rssc 側にてリンクを削除しても、weblinks 側は削除されません。
weblinks 側では、リンクがあるのに、
RSSフィード が表示されないという不具合が発生します。

この不具合は、管理者が修正することで、解決します。
rssc 側にて 削除したリンクを再度 登録してください。
weblinks 側にて、登録したリンクのIDに変更してください。

(2) rssc にて同じ「RSS URL」が複数存在する。
weblinks 側にて間違った「RSS URL」のリンクを追加すると、
rssc 側にも間違ったリンクが追加されます。
その後「RSS URL」を修正すると、
rssc 側も修正されます。
修正した「RSS URL」が、
rssc 側に存在していた場合に、
rssc 側にて同じ「RSS URL」が複数存在することになります。

rssc 側では、
リンクAを更新したときには、RSSフィードはリンクAに属するものとして追加され、
リンクBを更新したときには、RSSフィードはリンクBに属するものとして追加されます。
また同じRSSフィードは追加しないという仕組みになっています。
そのため、リンクAには、RSSフィード1,3,5が属して、
リンクBには、RSSフィード2,4,6が属するようになります。

weblinks 側では、リンクAとリンクBのいずれに表示しても、
RSSフィード1,2,3,4,5,6が表示されるのが理想的な姿ですが、
現状では、リンクAではRSSフィード1,3,5のみが表示されるという不具合が発生します。

この不具合は、管理者が修正することで、解決します。
weblinks 側 と rssc 側の両方で、重複しているリンクを削除してください。


● 機能追加
1. 検索
(1) Amethyst Blue にて配布している検索モジュールに対応して、検索結果に本文を表示した
http://www.suin.jp/

(2) 検索結果のキーワードをハイライト表示した
SmartSection を参考にした。

(3) ゆらぎ検索 を追加した(日本語のみ)
Amethyst Blue にて配布している検索モジュールを参考にした
- 半角英数のとき 全角英数も検索対象にする
- 全角英数のとき 半角英数も検索対象にする
- 半角カタカナのとき 全角カタカナと全角ひらがなも検索対象にする
- 全角カタカナのとき 半角カタカナと全角ひらがなも検索対象にする
- 全角ひらがなのとき 半角カタカナと全角ひらがなも検索対象にする

2. Google Map の表示を追加した
http://linux.ohwada.jp/modules/newbb/viewtopic.php?topic_id=413&forum=5
詳細表示画面 (singlelink.php) にて、Google Map が表示される。

設定方法1:初期設定
(1) 「Google Maps API Key」を取得する。
(2) 管理画面にて 取得した Key を入力する

設定方法2:リンクごと
(1) リンク登録時に、緯度・経度の情報を入力する
緯度・経度の情報は、世界地図から表示したい場所を選択すると、自動的に抽出される。

3. 地図サイトへのリンク・ボタン
これは、従来からある機能です。
3.1 地図サイトを選択できるようにした。
これ以外を希望するときは、対応するテンプレートを作成すること
- 日本 Yahoo
- 日本 Mapfan
- 日本 Google
3.2 リンク表示のテンプレートから、地図アイコンの部分の独立し、別のテンプレートにした。
3.3 リンクごとに、地図アイコンを表示する/しないのオプションを追加した
http://dev.xoops.org/modules/xfmod/tracker/?func=detail&aid=3819&group_id=1199&atid=974

4. サブカテゴリも画像を表示した
http://linux2.ohwada.net/modules/newbb/viewtopic.php?topic_id=194&forum=2

5. 1ページに表示する件数に75と100を追加した
http://linux2.ohwada.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=139&forum=2

6. 最新のリンク情報を RDF/RSS/ATOM 形式にて配信した

7. 管理者画面
7.1 管理者画面のメニューに、下記を追加した
(1) モジュールの設定3 (リンク)
(2) モジュールの設定4 (RSS)
(3) 投票一覧
(4) CatLink 一覧
(5) コマンド管理 (bin/link_check.php)
(6) DBテーブル管理 (ゾンビ検査、rsscモジュールとの整合性検査)
(7) インポート管理 (mylinks)
(8) エキポート管理 (rssc)

7.2 リンクの登録・変更手順を 下記の3段階に分割し、検査を強化した
(1) リンク情報の登録
- URLへの接続が出来るか(リンク切れでない)を確認した (プレビュー時)
(2) バナー画像の登録
- バナー画像のサイズが取得し、出来ないときはその旨を表示した
(3) RSS情報の登録
- RSS URLの自動検出を行い、出来ないときはその旨を表示した
- DB中に同じ「RDF/RSS/ATOM URL」があるかを検査し、あるときはその旨を表示した
- RSS URLの内容を解析し、出来ないときはその旨を表示した

7.3 テーブルの管理画面にて、「パンくず」を表示した

8. コマンド実行 (bin/link_check.php) にパスワードを追加した
下記の形式となる
-----
php4 -q -f /home/***/html/modules/weblinks/bin/link_check.php PASSWORD
-----

9. セッションチケット・クラス (XoopsGTicket) を採用した
Peak にて配布している Tinyd から流用した

10. 地域選択 (Locate) の仕組みを実験的に導入した。
言語と国・地域を独立に選択する仕組みです。
従来は、英語だと米国と決めうちしていた。
英国など任意の国を選択できるようになる。
http://linux2.ohwada.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=77&forum=2

10.1 国コードに IANA のccTLDs を採用した
今回 用意したのは、日本(jp)、米国(us)、英国(uk) の3つです。

10.2 設定方法
英語版では、米国がデフォルトです。
英国に変更するには、
まず、「国コード」に「uk」を入力し、「更新」ボタンを押す。
次に、「再設定」ボタンを押す。

11. 開発者向けに下記の機能を新設した
(1) DBテーブルにテスト用のデータを生成する
(2) リンクの登録・変更のフォームをhttp経由でテストする


● テーブル構造
(1) atomfeed テーブルの使用を廃止した
下位互換性のためにテーブル自体は残っている

(2) link, modify テーブル
下記の項目を追加した
map_use : 地図アイコンの表示
rssc_lid : rsscモジュールのLinkID
gm_xxx : Google Maps 関連
aux_xxx : 将来の予備

● テンプレート
(1) templates ディレクトリ
parts と xml サブ・ディレクトリに一部のテンプレートを移動した

(2) parts サブ・ディレクトリ を新設した
template_main で使われる主テンプレートの部品となるテンプレートを置いた
weblinks_header.html の ヘッダーと 検索フォーム を別ファイルにした
http://linux.ohwada.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=529&forum=5

(3) map サブ・ディレクトリ を新設した
地図サイトへのリンク・ボタンのテンプレートを置いた

(4) xml サブ・ディレクトリ を新設した
RSSフィード表示のテンプレートを置いた


● 要求事項
(1) happy_linux モジュールが必須です。
(2) RSS機能を使用するときは、rssc モジュールが必要です。


● アップデート
(1) weblinks ディレクトリ以下のファイルを上書きする。

いくつかファイルでファイル名が変更されています。
上書きでは古いファイルが削除されずに残りますが、
運用には支障はありません。
気になる人は、いったんファイルのバックアップを取ってから、
ファイルを削除して、新しいファイルに置き換えてください。

(2) XOOPS管理画面より、weblinksモジュールのアップデートをする。
テンプレートを変更したので必ず実施のこと。

(3) weblinksモジュールの管理画面より、設定テーブルをアップデートする。
設定テーブルが最新版に対応していないときは、メッセージが出ます。

注意:
linkitem table は初期化され、元の値は破壊されます。
必要に応じて、値を再設定してください。

(4) RSS機能を使用する場合
(4-1) 管理画面の「モジュールの設定4」を実行する。
「rsscモジュールのDirname」と「RSS 記事の使用」を設定する

(4-2) 管理画面の「エキスポート管理」を実行する。
weblinks のDBデータを rssc モジュールにコピーします

(5) 管理画面の「DBテーブル管理」を実行する。
不整合のないことを確認する。


● 注意
ほぼ全てのファイルを変更しています。
データベースのテーブル構造も若干変更しています。
大きな問題はないはずですが、小さな問題はあると思います。
何か問題が出ても、自分でなんとか出来る人のみお使いください。
バグ報告やバグ解決などは歓迎します。


● TODO
今回で、基本構造に関する変更は、終了した(はず)。
以降は、バックログを順次 折り込むつもりです。


● 謝辞
下記の方々に感謝します。
- Search モジュールを開発された suin さん
- Tinyd モジュールを開発された GIJOE さん
- SmartSection モジュールを開発された SmartFactory のメンバーの方
- Google Maps のハックをされた wye さん

Changelog

No Changelogs