開発のページ
=====================================
用語集phpスクリプト「sxDictionary」
ver 1.6
Last Update 2009.3.29
by SAKI
URL( http://bv.saki-ne.com)
=====================================
機能と特徴
文字通り用語を登録し、閲覧検索表示を行う用語集(辞書)スクリプトです。
1人から不特定多数での利用を想定し、投稿(許可)パスワード、E-Mailによる投稿通知、用語の保留機能などがあります。
スクリプト本体を起動させる「単独動作モード」および、他のスクリプトに埋め込んで使う「埋め込みモード」に対応しています。
使用方法
sxDictionaryサンプル
サンプルの管理者PWおよび投稿許可PWはともに"1111"です
[PIC][起動-トップ画面(検索結果画面)]
最初に起動すると、各種検索フォーム、管理者ログインメニューおよび、最新登録用語一覧が表示されます。これは、検索結果画面と共通の仕様となっています。
[インデックス検索]
50音、アルファベット、数字記号によるインデックス(最初の1文字)検索を行います。
[PIC]
[単語検索]
単語検索には「通常」検索と「ワイド」検索があります。
[通常検索]
……「タイトル」と「読み」に一致する用語を検索します。
[ワイド検索]…[通常検索]に加え、内容本文中に一致する単語を含むものを検索します。
[カテゴリ検索]…(from ver 1.5)単語検索と同時に、カテゴリを指定した検索ができます。
単語のみ、またカテゴリのみを指定しての検索も可能です。
[PIC] (from ver1.6)検索結果は辞書順で並び換えられ、リスト表示されます。そのタイトルをクリックすることで各用語を個別表示します。
※スキンおよびスクリプトの仕様上、リスト表示および個別表示は同じルーチンを通ります。よって、スキンを調整することでver1.5以前と同じ、検索結果に用語の表示をさせることができるようになります。(サンプルを同軸)
[管理モード]
管理者パスワードを入力してログインすると、管理モードに移行します。
管理モードでは、削除や保留状態にある用語も表示されます。
[用語-削除-編集-保留/許可]
用語一覧で、各用語の中に表示されているセレクトボックスから用語の削除などを行うことができます。実行する内容によって必要なパスワードは異なります。
[PIC] [編集]…管理者パスワード、投稿者パスワード/対象用語を編集します。
[削除]…管理者パスワード、投稿者パスワード/対象用語の属性をdelに設定します。
[保留/許可]…管理者パスワード/対象用語の属性をviewあるいはlockに設定します。
[PIC](No.2の右が「view→lock」に代わってます。ログアウトすると、保留の用語は表示されなくなります)
保留と許可はトグルになっており、その時の用語の状態によって選べる内容が異なります。
また、削除しても用語の情報自体は消去されず、属性のみが変更されます。削除直後であれば管理者モードにて「許可」に戻すことで復活が可能です。削除用語が実際に消えるのは、新規作成にてそのNoに新たな用語が登録された時です。
[PIC][関連]
関連には、その用語に関係する事柄に対するリンクが用意されています。
(~)はリンク先がこの用語集の検索結果になっています。
[~]は外部URLへのリンクであり、別窓を開いて表示します。
[PIC][新規投稿(編集画面)]
トップおよび検索結果画面より、「新規投稿」や「編集」を実行することで表示されます。
編集の場合は、選択した用語の登録内容があらかじめ入力された状態になっています。
[用語][読み][最初の1文字][投稿者名][内容]については必須入力項目です。
[投稿者パスワード][投稿パスワード][E-Mail]については、設定により必須あるいは未選択とを選べます。
[内容]にはHTMLタグは使用できません。
[PIC]
[PIC][関連URL]には、登録した内容に関連したリンクを加えるための情報を入力します。
関連語,関連URL
カンマ(,)で区切り、左に関連語、右にリンク先のURLを入力します。
URLが未記入の場合は、代わりにこの用語集の中で「関連語」を検索するためのURLが使用されます。
[カテゴリ]入力時にその用語の属するカテゴリーを設定することができます。(カテゴリリストはconfigファイルにて設定)
(注意)
新規投稿では、まずデータログの中で削除属性のある用語(No)を探し、見つかれば、それと入れ替わる形で登録されます。なければ、一番大きなNo+1のNoをつけて登録します。
これによって、削除を行っても、データリスト(No)の歯抜けを防ぎます。
[LINK](from ver1.5)携帯での閲覧、投稿に対応しました。
これはスクリプト内で強引に携帯モードに設定し、携帯用スキンを使わせ、PCで表示させたものです。
動作確認はとりあえずauにて行っています。
インストール
[LINK]
Zipを解凍すると次のファイルが作成されます。
[sx_dic]
+index.html(644)…空ファイル
+readme.txt
……このファイル
+sx_dic.dat(606)
……用語データ
+sx_dic.php(644)
……用語スクリプト本体
+sx_dic_config.php(644)
……初期設定ファイル
+sx_dic_css.css(644)
……スタイルシート(サンプル)
+sx_dic_lock.txt(606)
……ロックファイル
+sx_dic_skin.html(644)
……スキン(サンプル)
+sx_dic_up.dat(606)
……更新情報格納データ
+sx_dic_css_white.css(644)
……スタイルシート(サンプル 白背景用青系)
+sx_dic_css_white2.css(644)
……スタイルシート(サンプル 白背景用赤系)
+sx_dic_skin2.html(644)
……スキン(サンプル 旧仕様、個別表示なし)
スキンはsx_dic_config.phpの中で指定します。
また、スタイルシートはスキンの中で指定します。
( )は基本的なパーミッションです。
このままsx_dic.phpを起動することで用語集を使用可能です。
sx_dic_config.phpの変更
初期設定ファイル本体に説明がされているので、適宜変更してください。
最低でも管理者パスワードは変更しましょう。
投稿パスワードやE-Mailの入力規制など、組み合わせることで様々な条件での運用が可能です。
埋め込みモードについて
sx_dic.phpを単独で起動させず、他のphpから呼び出して使用する場合は以下の点に注意して設定を変えてください。
以下は呼び出し元phpから見てsx_dic.phpが「./sx_dic/sx_dic.php」となる場合の設定内容です。
[root]
+index.php
+[sx_dic]
+sx_dic.php
+sx_dic.dat
+
+
//php動作モード
//0:単独動作(sx_dic.phpを直接起動させて使用)
//1:埋め込み動作(他のphpから呼び出して使用)
define("SXDICRMODE",1);
//phpファイル名("./"なども可)
//フォームPOSTの呼び出し先になるので、sx_dic.phpの呼び出し元ファイル。
//sx_dic.phpを単独起動の場合は"sx_dic.php"と記入すること
define("SXDICSELF","./");
//スキンファイル名
//上記SXDICSELFで設定されたスクリプトから見た相対アドレスにすること
define("SXDICSKIN", "./sx_dic/sx_dic_skin.html");
//携帯用スキンファイル名
//上記SXDICSELFで設定されたスクリプトから見た相対アドレスにすること
define("SXDICKSKIN", "./sx_dic/sx_dic_kskin.html");
//データファイル
//上記SXDICSELFで設定されたスクリプトから見た相対アドレスにすること
define("SXDICDATA", "./sx_dic/sx_dic.dat");
//カテゴリリスト(from ver1.5)
$sxDic_CategoryList = array("カテゴリ1","カテゴリ2","カテゴリ3");
//アップデータフラグ格納ファイル(sxシステム独自仕様)
//の書式で最新投稿された用語の投稿日を記録するファイル
//他のphpから用語の更新状況などを取得するときに使用(トップページに表示させるなど)
define("UPDATEFILE", "./sx_dic_up.dat");
//ロックファイル
define("SXDICLOCKFILE", "./sx_dic_lock.txt");
つまり、カレントフォルダはindex.phpのある位置であり、各種データやスキンファイルなどは、その位置から見ての相対アドレスで記述する必要があることに留意してください。
埋め込みモードでは、sx_dic.php側ではhtmlを出力せず、変数($sx_DicBuff)に表示内容を格納して返します。実際の出力は、index.phpの方でスタイルに合わせて出力してください。
※埋め込みモードの場合、スキンファイル中のヘッダおよびフッダを出力しません。よってスタイルシートの指定は行われないことに留意してください。呼び出し元となるindex.php等において必要なスタイルの設定、あるいは外部リンクを行います。
外部リンクの場合は、サンプルスタイルシート中のbodyやaタグの指定などにかかる部分は削除し、各々のサイトのスタイルに合わせてご使用される方が無難です。
(埋め込みモードを使われる方であるなら、phpやスタイルシートについても十分なスキルをお持ちのはずなので、無用の心配ではあります)
スキンファイル
「sx_dic_skin.html」にはsx_dic.phpで使用する各種画面のすべてのスキンが含まれています。「{ }」で囲まれた文字列はスクリプトで適切なコードに書き換えられるものです。単純な結果文字列の時もあれば、一覧表示などのループを表現することもあります。
また、コメント(2つセットで使用)によって、切り分けられた部分は、それぞれに使われるスキンのパーツです。このコメント文は絶対に変更しないでください。
あまり整理されたサンプルスキンではないので、変更は大変かと思いますが、必要であれば頑張ってください。(ご要望があれば掲示板等にてサポートいたします)
sx_dic.php側では、内容となる文面やURL以外のスタイルにかかわるコードを出力することはありません。スキンおよびスタイルシートの作り方によっては、携帯電話での運用も可能になるはずです。(まだ作れてません→ver1.5にて実装)
履歴
2008.7.12(ver 1.0)
公開
2008.12.24(ver 1.5)
カテゴリ導入、携帯対応
2009.3.29(ver 1.6)
検索結果と個別表示でスキンを分離
検索結果は辞書順で表示
カテゴリ検索時にページナビがうまく働いていなかったのを修正
携帯用スキンをxhtmlで記述