CGI-Search | カスタマイズノートトップ
キーワード検索  

RSS1.0/RDF
HTMLページに登録データのヘッドラインを表示しよう
分類: データ表示関連
人気度: 5/5 
トップHTMLページなどに新規登録及び更新登録データ(ユーザー/データ)情報をリアルタイムでヘッドラインリンク又は自由な表示形式(AmigoDatabaseの検索結果一覧と同じように)で表示します。
このスクリプトのご利用にはサーバー環境で「SSI」が利用出来る事が前提です。
ver2.1よりデータ抽出機能が追加されました。指定データ種類から指定キーワードに一致するデータのみの表示も可能です。
対象バージョン及び更新履歴
対象バージョン: ver全バージョン
  • 2010/06/22 ver2.1 1)表示するデータの抽出機能を追加。headline-setup.cgiの設定に[sname]と[sword]を追加
    2)ランダム表示設定時に[randmax]設定値より表示データが少ない場合に空白データが出力されるバグを修正
    3)Errorサブルーチンなどプログラムを微修正
  • 2010/06/16 ver2.0 プログラムを全面改修。トップに表示出来るデータ種類を全てのデータに拡大。
    headline.cgiの起動方法も変更しましたので旧verとの互換性はありません。
    また、旧verではタイトル表示設定などがありましたが、本verでは不要にしました。必要な場合はご自身で設定をお願いします。
  • 2009/12/12 ver1.2 日付表示方法設定を追加
  • 2009/12/10 ver1.1 db-setup.cgiの日本語処理がjcode.pl設定時にライブラリ読込エラーとなるのを修正
  • 2009/11/30 ver1.01 著作権表示を目立たないように修正
  • 2009/11/05 ver1.0 新規公開
  • カスタマイズ方法

    1. 利用にあたって

    1) 著作権の表示

    本スクリプトをご利用した場合、当サイトの著作権リンクが表示されます。このリンクを削除すること、見えにくく又は見えなくすることを禁止させて頂きます。また、著作権リンク表示がサイトデザインにそぐわない場合など、フォントやフォントサイズ、カラー、リンク文字などの調整は許可しますので各自で調整して下さい。リンク文字は最低限「CGI-Search」は残して下さい。

    2) 本スクリプトについて

    • このスクリプトは、AmigoDatabaseで新規・変更登録されたユーザー又はデータの一つの項目をヘッドライン情報としてAmigoDAtabase外のHTMLページに表示させるスクリプトです。
    • 2010/06/16のアップデートにより、表示するデータはAmigoDatabaseの検索結果一覧のように自由に配置出来るようになりました。
    • 表示文字を任意の長さにカットすることが可能です。と同時に改行タグを取り除きます。

    2. スクリプト利用環境

    本スクリプトの利用には以下のサーバー環境が必要です。
    • 作動環境: Perl-5以上
    • CGIモジュール
    • SSI利用可能で「include virtual」コマンドが利用出来ること

    3. ダウンロード

    本スクリプトのご利用は本サイトのスクリプト利用規約に無条件で同意したものとします。
    次のダウンロードページから本スクリプトファイルをダウンロードして下さい。 ダウンロード後、アーカイブファイルを解凍して頂くと、headline.cgi、headline-setup.cgi、headline.css、sample.shtmlの4ファイルが梱包されています。

    4. headline.cgiの設定

    headline.cgiをテキストエディターなどで開きPerlパスを書き変えます。
    • 1行目のPerlパスを設定 [#!/usr/bin/perl] 又は [#!/usr/local/bin/perl] の何れかで可能かと思います。分からない場合はサーバー管理者にご確認下さい。

    5. headline-setup.cgiの設定

    headline-setup.cgiテキストエディターなどで開き次の設定を確認します。

    1) fold.plまでのパス

    ## fold.plまでのパス ##
    $FoldPath='./lib/fold.pl';
    必要に応じて書き換えて下さい。fold.plはAmigoDatabaseに標準で梱包されています。特殊な移動をしていなければ上記のままで結構です。

    2) 日付表示設定

    ## 日付表示設定 ##
    $DateType = '[yyyy]/[mm]/[dd]([ww]) [hh]:[aa]:[ss]';
    日付の表示方法を設定します。詳細ははheadline-setup.cgiに記載しています。

    3) データ表示設定セット

    ## データ表示設定セット #######################################
    %SET=(
    'set1'=>{ # セット名(表示設定のサブルーチン名) ※必ず英字で始める
        'type'    => 'Data',  # 'Data' 又は 'User' (データタイプ)
        'view'    => 10,      # 表示数
        'date'    => 'Rtime', # 'Rtime'(登録日) 又は 'UpTime'(更新日)
        'reverse' => 1,       # dateの表示順(0=昇順/1=降順)
        'rand'    => 1,       # ランダム表示(0=OFF/1=ON)
        'randmax' => 10,      # ランダムにするデータ数
        'cutname' => '',      # 表示文字数にカットするデータ種類名
        'cutmax'  => 0,       # 上記の表示する文字数
        'html'    => 'sample.shtml', # headline.cgiをSSI起動するHTML(SHTML)
        'sname'   => '',      # 抽出するデータ種類名
        'sword'   => '',      # その一致する検索キーワード(完全一致のみ抽出)
    },
    );
    この設定が今回のアップデートで重要な設定です。
    左上の「set1」というセット名がこのデータ設定の名前となり、そして1データ当たりの表示方法を指定する「set1」サブルーチンとなり、SSIからhedline.cgiを起動するパラーメタ値になります。デフォルトでの設定名は「set1」「set2」「set3」としていますが、名前は自由に変更しても結構です。但し、最初の1文字目は必ず"英字"で始まるようにして下さい。

    では設定の個々の値についてご説明します。
    • [type] : [Data]又は[User]の何れかで指定します。[Data]の場合はデータファイルベース、[User]の場合はユーザーファイルベースをターゲットにします。
    • [view] : 表示数を指定します。
    • [date] : [Rtime]又は[UpTime]の何れかで指定します。ソートの基準データとなります。[Rtime]は登録日、[UpTime]は最終更新日となります。
    • [reverse] : [date]で指定したソートの並び変え方法です。[1]は降順、[0]は昇順の指定です。
    • [rand] : ランダム表示をON/OFFします。[1]はON、[0]はOFFです。
    • [randmax] : ランダムに並び変えるデータ数を指定します。[rand]を1(ON)にした場合、[date]と[reverse]にてソートされたデータ(全てのデータ)の上位から[randmax]の数をランダムに並び変え、上位から[view]の数だけ表示します。
      例えば登録データが50あるとして、[date]と[reverse]にて一旦ソートします。ソート後の上位データのうち[randmax]の数(例えば30)をランダムに並び変えます。並び変え後、[view]の数(例えば10)をヘッドライン表示します。このように通常なら表示されないデータをランダムに並び変えることで20-30位置のデータにも紹介の機会を与える事が出来ます。
    • [cutname] : 表示が長文など、表示する文字数をカットするデータ種類名を指定します。一つのデータ種類しか指定出来ません。
    • [cutmax] : [cutname]で指定したデータ種類の表示する文字長さを指定します。長さは半角での長さとなります。
    • [html] : セキュリティ設定です。headline.cgiを起動するHTMLのファイル名を指定します。指定した場合、そのHTMLファイルからSSI起動されないと起動エラーとなります。外部からheadline.cgiを起動させないためのセキュリティです。
    • [sname] : データ抽出する場合は、対象データ種類名を指定します。
    • [sword] : 前項[sname]を設定した場合、その抽出対象のキーワードを指定します。キーワードと完全一致のデータを抽出します。
    このように「set1」で一つの設定となり、同様に「set2」などとして設定を増やせばいくつでもヘッドライン情報を表示出来ます。
    設定を増やす際「'set1'=>{」〜「},」までをコピーします。そして「%SET=(」〜「);」までの間にペーストします。

    4) 表示設定

    1データ当たりの表示方法が一つのサブルーチンになっています。
    前項で「set1」と設定した場合は次のようにサブルーチンを作成します。
    sub set1 {
        my$line=<<EOM;
    <li><a href="$BaseDir/$MainCGI?cmd=dp&num=$VD[$REC{Data}{DataNum}]">$VD[$REC{Data}{HPName}]</a> <span class="date">- $RDate</span></li>
    EOM
    }
    「my$line=<<EOM;」〜「EOM」までの間を修正します。
    上記サンプルではヘッドライン用に1行ですが、ここで全てのデータを扱えます。
    使える変数はAmigoDatabaseの検索結果一覧での1データ当たりの表示用変数と同じにしてあります。
    • データファイルベース: $VD[$REC{Data}{データ種類名}]
    • ユーザーファイルベース: $VU[$REC{User}{データ種類名}]
    • 登録日と最終更新日: $RDate $NDate (データ、ユーザーファイルベース共通です)

    6. アップロードとパーミッション

    AmigoDatabaseのdatabase.cgiと同じディレクトリへFTPアップロードします。
    パーミッションは次の通りです。
    • headline.cgi : [755]又は[705]
    • headline-setup.cgi : [644]又は[604]
    • headline.css : [644]又は[604] (CSS参考ファイル)
    • sample.shtml : [644]又は[604] (SHTML参考ファイル)

    7. ヘッドライン情報表示方法

    1) SSI記述の追加

    表示させたいHTMLページの<body>から</body>間で、ヘッドラインを表示させたい場所にSSIを次のように記述します。
    <!--#include virtual="[HTMLからheadline.cgiまでの相対パス]?set=set1"-->
    ■ 設定例
    rootディレクトリ ┬ index.html(このファイルにSSI記述する場合)
                     └ databaseディレクトリ ─ headline.cgi
    上記の構造の場合
    <!--#include virtual="./database/headline.cgi?set=set1"-->
    のようになります。
    ■ SSI記述でのご注意
    headline.cgiまでの相対パスは上位ディレクトリを参照することは出来ませんのでご注意下さい。
    ○ ./headline.cgi
    ○ ./database/headline.cgi
    × ../headline.cgi
    × ../database/headline.cgi

    2) headline.cgiパラメータの設定

    [set]パラメータに指定する値は、「5-3 データ表示設定セット」で指定した設定名を指定します。「set1」という設定を作った場合は「headline.cgi?set=set1」となります。

    3) HTMLファイル拡張子の変更

    SSIを起動するにはHTMLファイルの拡張子を[shtml]又は[shtm]としなければ起動しません。現在のファイルが[index.html]である場合[index.shtml]とします。

    4) サンプルHTML(sample.shtml)

    サンプルのsample.shtmlを梱包しています。CSSなど参考にして下さい。

    梱包していますCSSファイル「headline.css」をそのまま利用する場合は、HTMLファイルの<HEAD>〜</HEAD>までの間に次を記述して下さい。「headline.css」までのパスはご自身でご確認下さい。
    <link rel="stylesheet" href="./headline.css" type="text/css" media="all">

    8. サポート

    バグ報告、設置トラブルなどご質問、ご要望がありましたらAmigoDatabaseファンフォーラムへご投稿下さい。
    但し、AmigoDatabase以外への設置や改造などに関するご質問はご遠慮下さい。ですが、改造について通常利用の範疇で改良が必要であるかと思われることは結構です。
    引用文中の「+」や「-」についてはこちらをご覧下さい。引用文の「+」や「-」が正しく表示されていない場合があります。「view plain」をクリックして頂ければ正しい引用文が表示されます。
    update at 2010/06/22(Tue) 17:37:51. DataNum 43 [ TOP ]

    Comment Form: 投稿数(0)


    コメント投稿は登録ユーザー限定です。ログインした状態でご利用下さい。
    • カスタマイズへのご意見やご要望などのコメントにご利用下さい。
    • 不適切な発言は即時削除致します。
    • 管理人はコメントに対し一切お返事を致しませんの予めご了承下さい。
    • 導入トラブルやご質問、バグの報告はAmigoDatabaseファンフォーラムまでお願いします。
    [ TOP ]