Head Viewer for a-Column

SSI JavaScript

サンプル構成ファイル設置方法設定方法表示設定ご注意

 (有)アップルップルのスクリプト「a-Column」の最新記事の冒頭指定字数を、SSIまたはJavaScript表示するための補助スクリプトです。
 表示する記事は1つですが、対象には3つのジャンルまで扱えます。特定のジャンルの最新記事を固定表示したり、必要に応じて切り替えて表示したり、あるいは常に3ジャンルのうちの最新記事を表示することができます。

運用サンプル
当サイトのトップページ内の「えでぃっとはうすのときど記」に最新記事を表示しているのが、このスクリプトです。
構成ファイル
解凍すると、以下のグリーンの文字の6ファイルになります。
  • headviewer.cgi……スクリプト本体
  • config.pl……設定内容の保存ファイル
  • jcode.pl……日本語変換ライブラリ
  • cgi-lib.pl……ライブラリ※
  • library.pl……ライブラリ
  • readme.html……解説ファイル(アップロードは不要)
「jcode.pl」はhttp://srekcah.org/jcode/からダウンロードできます。
「cgi-lib.pl」はhttp://cgi-lib.berkeley.edu/からダウンロードできます。
構成例(参考例です。実際の設置をご確認ください)

public_html / …… ホームディレクトリ
      |
      |-- index.shtml …… トップページ(表示ページ)
      |
      |-- headviewer / …… headviewerディレクトリ
      |      |-- headviewer.cgi(755)
      |      |-- config.pl(666)
      |      |-- jcode.pl(644)
      |      |-- cgi-lib.pl(644)
      |      |-- library.pl(644)
      |
      |-- a-column / …… a-Columnのディレクトリ
            |-- index.hmtl …… a-Columnのトップページ
            |-- column / …… a-Columnのデータディレクトリ
                   |-- genre / ……ジャンルディレクトリ(設置者がつけた任意の名称)
                          |-- new.html ……最新記事のHTMLファイル(対象ファイル)

対象ファイルのURL:http://www.〜〜/public_html/a-column/column/genre/new.html
headviewer.cgiから見た対象ファイルの相対パス:../a-column/column/genre/new.html
index.shtmlから見たheadviewer.cgiの相対パス:./headviewer/headviewer.cgi
headviewer.cgiの仮想パス:/public_html/headviewer/headviewer.cgi
cgi-binにスクリプトを置く場合の構成例(参考例です。実際の設置をご確認ください)

public_html / …… ホームディレクトリ
      |
      |-- index.shtml …… トップページ(表示ページ)
      |
      |-- a-column / …… wwwディレクトリ内のa-Columnディレクトリ
      |      |-- index.hmtl …… a-Columnのトップページ
      |      |-- column / …… a-Columnのデータディレクトリ
      |            |-- genre / ……ジャンルディレクトリ(設置者がつけた任意の名称)
      |                   |-- new.html ……最新記事のHTMLファイル(対象ファイル)
      |
      |-- cgi-bin / …… cgi専用ディレクトリ
              |
              |-- headviewer / …… headviewerディレクトリ
              |      |-- headviewer.cgi(755)
              |      |-- config.pl(666)
              |      |-- jcode.pl(644)
              |      |-- cgi-lib.pl(644)
              |      |-- library.pl(644)
              |
              |-- a-column / …… cgiディレクトリ内のa-Columnスクリプトディレクトリ

対象ファイルのURL:http://www.〜〜/public_html/a-column/column/genre/new.html
headviewer.cgiから見た対象ファイルの相対パス:../../a-column/column/genre/new.html
index.shtmlから見たheadviewer.cgiの相対パス:./cgi-gin/headviewer/headviewer.cgi
headviewer.cgiの仮想パス:/public_html/cgi-gin/headviewer/headviewer.cgi
  • スクリプトは、cgi-binに限定されている場合はcgi-binに、それ以外はどこに置いてもかまいません。
  • 「cgi-lib.pl」はa-columnでも使用されています。「headviewer.cgi」をテキストエディタで開いてパスを合わせれば、流用することも可能です。
  • カッコ内の数字はパーミッションです。サーバによっては755→700、666→600など異なるケースもありますから、ご確認ください。
スクリプトの設置方法
headviewer.cgi」をテキストエディタで開き、1行目のパスを合わせます。
通常は「#!/usr/bin/perl」「#!/usr/local/bin/perl」のいずれかです。
これ以外は特に変更する必要ありません。
「headviewer」のフォルダごとテキストモードでサーバに転送し、それぞれ上記のパーミッションを設定します。
スクリプト側の設定
ブラウザで設定ページ(headviewer.cgi?admin)にアクセスして、以下の項目を設定します。初期パスワードは「1234」です。

 (1) 管理パスワード
管理パスワードは必ず任意のものに変更してください
 (2) データディレクトリのURLと相対パス
データディレクトリのURLは、データディレクトリまでをhttp://から指定します。デフォルトのままであればデータディレクトリは「column」です。上記構成図の「対象ファイルのURL」の黄色部分を参考にしてください。
データディレクトリの相対パスは、このCGIから見たデータディレクトリの相対位置を指定します。「headviewer.cgiから見た対象ファイルへの相対パス」の黄色部分を参考にしてください。
いずれも、末尾のスラッシュは不要です。
 (3) 対象ファイルのジャンル名とファイル名
ジャンル名は、a-columnの初期設定で設定したものです。上記構成図の「対象ファイルのURL」「headviewer.cgiから見た対象ファイルへの相対パス」の赤字部分を参考にしてください。
対象ファイルは、デフォルトのままであれば変更する必要はなく、各ジャンルフォルダに格納されている「new.html」です(ただし、バージョンによって「new.htm」と「new.html」があります)。
対象ファイルを3つまで設定できます。ラジオボタンでチェックしたものを表示します。「対象ファイル最新表示」を選ぶと、指定した複数の対象ファイルのなかで最新ファイルを表示します。
 (4) 日時の表示フォーマット
サンプルを参考に「YYYY/MM/DD hh:mm:ss」などで指定します。任意の区切り文字を使用できます。「1桁」とは「0」を補わないという意味です。
 (5) 本文からのテキストの取り出し方
本文からのテキストの取り出し方法を、次の区分から選んで指定します。
なお、いずれの場合も対象テキスト中にリンクがある場合、リンクを外したテキストのみを表示します。
 0:第1ブロック……「a-Column」で記事登録する際の最初の送信ブロックです。これが最大です。
 1:第1段落……最初の強制改行までの段落です。
 2:指定文字数……指定した文字数を抜き取ります。
 (6) 画像の表示
ここで指定すると、画像を1点表示できます。複数ある場合は、最初の画像を表示します。
画像を表示する場合は「画像表示最大サイズ」をピクセル指定します。
長辺を基準とし、それがここの指定より大きい時は指定したサイズまで縮小して表示します。
また、画像を表示するサイドをラジオボタンで指定します。
 (7) 本文へのリンク文字
表示するタイトルと抽出した本文の文末に記事へのリンクがつきますが、ここで文末のリンク文字を設定できます。「全文を読む」「続きを読む」など任意に指定でき、「...」と「>>」に挟まれて表示されます。空欄にすると、文末リンクはつきません。
 (8) 固定リンク先
URLで指定してしてください。ここでの指定がスクリプト生成の上記リンクより優先されます。フレームの都合等でリンク先が対象ファイルと異なる場合などにご利用ください。
ただし、ここを指定すると「対象ファイル最新表示」は利用できません。
 (9) 戻り先
設定ページからの戻り先であるとともに、設定後に表示される完了ページでも戻り先リンクとして表示されます。
表示するHTMLファイル側の設定
トップページなどHTMLファイルの表示させたい位置で、次のように指定します。末尾に「?」をつけ、「ssi」や「js」という引数を付加します。複数の引数を付ける場合は「+」で区切ります。
表示データにスタイル的な処理は最小限しかしてありません。HTMLファイル上で適宜CSSスタイルシートなどご利用ください。
 (1) SSI表示設定例
SSI表示の場合、多くのサーバではHTMLファイルの拡張子を「.shtml」にする必要があります。
cgiスクリプトを仮想パスで指定します。上記構成図の「headviewer.cgiの仮想パス」を参考にしてください。もし仮想パスがわからないときは、相対パスでも表示する場合があります。
  • cgi-binなし
    <!--#include virtual="/public_html/headviewer/headviewer.cgi?ssi" -->
  • cgi-bin利用
    <!--#include virtual="/public_html/cgi-bin/headviewer/headviewer.cgi?ssi" -->
 (2) JavaScript表示設定例
cgiスクリプトを相対パスで指定します。上記構成図の「index.shtmlから見たheadviewer.cgiの相対パス」を参考にしてください。
JavaScript表示の場合、HTMLファイルのヘッダに以下のメタ属性を指定することをおすすめします。
<META http-equiv="Content-Script-Type" content="text/javascript">
  • cgi-binなし
    <SCRIPT LANGUAGE="JavaScript" SRC="./headviewer/headviewer.cgi?js" type ="text/javascript"></SCRIPT>
  • cgi-bin利用
    <SCRIPT LANGUAGE="JavaScript" SRC="./cgi-gin/headviewer/headviewer.cgi?js" type ="text/javascript"></SCRIPT>
 (3) 個別の表示設定例
一括で表示するときは、タイトルがボールド、日付はパーレンで囲む設定にしてあります。自由なスタイルにしたいときなどには、タイトル、本文と画像、日付を個別に表示することもできます。
〜.cgi?ssi+title」など「ssi」「js」に続けて引数で指定します。
+title … タイトル
+msg … 本文と画像
+date … 日付・時刻
  • 仮想パス」とは「http://サーバ名/パス名」のうち「/パス名」の部分です。
    ディスクのディレクトリの第1階層が、ルートディレクトリとしてスラッシュ(/)で示されます。公開されているwwwサーバのルートディレクトリは、実際のディスク上のディレクトリの位置を示すパスを省略して関連づけたいわばショートカットです。そこでこれを仮想の(/)とし、そこから始まるパスを「仮想パス」と呼ぶそうです。
  • 「#exec」については「#exec cgi」でも「#exec cmd」でも、私の使用しているサーバ(Apache1.3.xx)では、引数を渡す動作確認ができませんでした。
  • SSIやパスについて詳しくは「とほほのWWW入門」が参考になります。
    「パス」について
    「#Include」について
    「#exec」について
利用にあたってのご注意
本スクリプトはフリーウェアです。下記にご留意の上、私用、商用を問わず自由に利用・改造・流用・再配布していただいてけっこうです。
著作権の表示は削除しないでください。
改造は自己責任で行ってください。
本スクリプトの開発環境はMacOS X 10.4.3です。いかなる環境においても動作することを保証するものではありません。
このスクリプトの利用が原因で起こるいかなる損害にも、えでぃっとはうすは一切の責任を負いません。
著作・制作
えでぃっとはうす
info@ognet.jp