Tips(ヒント)
What's New (Whats New) を使いこなすためのちょっとしたヒントを集めています。
バージョンアップの仕方について
- 最新のバーションをダウンロードして解凍します。
現在稼働しているサーバー上のプログラムが存在するディレクトリに setup.cgi のみを上書きでアップロードします。
※バージョンアップを行う前にダウンロードした最新のバーションに含まれる readme.html の仕様変更欄をよくお読み下さい。
最新のバーションにした場合に自分の環境やテンプレートを変更しなければならない場合があります。変更が可能な場合だけバージョンアップを行って下さい。
- setup.cgi のパーミッションを実行権限のあるパーミッションに変更します。
- 以上の作業が終了した後に、ブラウザのアドレス入力欄にセットアッププログラム名を入力し実行させます。
例: http://www.yyy.co.jp/cgi-bin/whatsnew/setup.cgi
- 実行の結果以下の画面が表示されます。

- 最新のバーションをダウンロードして解凍したファイルをフォルダーを含めて全て現在稼働しているサーバー上のプログラムが存在するディレクトリに上書きでアップロードします。
- 再度ブラウザのアドレス入力欄にセットアッププログラム名を入力し実行させます。
例: http://www.yyy.co.jp/cgi-bin/whatsnew/setup.cgi
- 「アップデートが完了しました」が表示されれば終了です。

呼出キーの値を指定して直接詳細ページの内容を訂正する
- 詳細ページを直接呼び出して編集するには初期設定でカスタム項目の一つを呼出キーとして設定してください。
また、この機能を許さない場合は「呼出キーを使った訂正を許さない:□」にチェックを入れます。
- 使用法:whats_new.cgiのURLを以下のように直接指定して実行します。
http://www.xxx.com/cgi-bin/whatsnew/whats_new.cgi?com:xxx:yyyy ジャンル名=xxx 呼出キー=yyyy
whats_new.cgiのURLの指定はインストールされた環境によって変わります。
- 呼出キーは一種のパスワードの役目を果たしますので呼出キーの取り扱いには注意が必要です。
- com は安全のために設定ファイルで変更することができます。whats_set.pl の125行目あたりを変更します。
- この機能は、例えば商店街のホームページなどに使用し、各個店の編集を店ごとに行わせたい時などに利用します。
データの編集処理(追加、訂正、削除)の後に表示させる内容を変える
- データの編集処理(追加、訂正、削除)の後に表示させる内容をカスタマイズすることができます。
- 標準で表示される画面に追加して表示する内容のテンプレートHTMLファイルを用意します。
用意する場所は CGIプログラムが存在するディレクトリの下の _ktemp に用意します。
処理によって用意するファイル名が変わります。処理番号_ジャンル名_ログインID.html がファイル名になります。
処理番号は次の通りです。22:最初、最後、場所を指定して追加 23:削除 24:訂正
ジャンル名、ログインIDは省略することができます。
例えばファイル名( 24_abc_master.html )を用意した場合は、ジャンル=abc に管理者ID=master でログインした人が「訂正」処理した人の編集後の画面は標準の表示内容の後に 24_abc_master.html の内容が表示されます。
ログインIDを省略した場合のファイル名( 24_abc.html )を用意した場合は、ジャンル=abc で「訂正」処理した編集後の画面は標準の表示内容の後に 24_abc.html の内容が表示されます。
Tips 携帯からデータを編集した場合はファイル名に _i を付けて用意します。(例:24_abc_master_i.html)
- テンプレートの内容には通常のHTMLタグの他に以下の置き換え機能がありがあります。
- 表示のテンプレートと同じように編集したレコードのカスタム項目、タイトルなどの値を挿入することができます。
使用できる置換タグ
<!--custom25-->、<!--Custom25-->のカスタム番号を指定したカスタムタグ
・オプションの B を付けると custom25B、値の中の<br>は改行に、<半角英数>は削除されて表示されます
・オプションの S を付けると指定したカスタム項目が登録者IDの場合、ID、パスワード登録で設定したID名を挿入します。
・オプションの s を付けると指定したカスタム項目が登録者IDの場合、登録者IDを挿入します。
・登録者IDは半角の : で区切られて登録されています。(登録者ID:ID、パスワード登録で設定したID名)
タイトル<!--title-->、記事<!--comment-->、頭の文字を大文字(titleB、commentB)にすると値の中の<br>は改行に、<半角英数>は削除されて表示されます
使用中のジャンルID(英文字のジャンル名)<!--id-->(<!--ID-->を指定するとID名のみ、バックナンバー名は省かれます)
現在のレコード認識キー<!--uniq_id-->
編集したデータを表示するURL例:/cgi-bin/whatsnew/whats_display.cgi?id:<!--id-->+recd:<!--uniq_id-->
編集したデータを訂正させるURL例:/cgi-bin/whatsnew/whats_new.cgi?COM:<!--id-->:<!--uniq_id-->
<!--edit_id-->、編集処理を行っている管理者のログインID
<!--edit_id_name-->、編集処理を行っている管理者のログインIDに付けられたID名(「ID、パスワード編集」で登録します)
- カスタム項目での条件判定で表示内容を変えることもできます <!--if custom1=xxx-->(条件判定は1行に一つだけ置くことができます)
条件判定は = で下記の場合はカスタム項目1がxxxなら「以降」をxxxでないなら「以前」を表示します
以前<!--if custom1=xxx-->以降 以前、以降の中には、<!--custom2-->、<!--Custom3-->などのカスタム項目タグが挿入でき値に置き換わります
条件判定のタグ<!--if custom1=xxx-->は改行を入れずに1行で記述するようにして下さい。以下は使用例です
ああああああ<!--if custom26=xxxx-->いいい<!--custom25-->いいいい
- Tips テンプレートに「フォームメール」プロの送信フォームをコピーして加工し表示させるとWhatsNewにデータを登録した事を上司や管理者にメール送信するための送信フォームを表示することができます。
送信はフォームメールを使って行いますので WhatsNew のジャンル名でフォームメールプロのフォームを1つ追加登録しておく必要があります。
テンプレートのフォーム部分記述例:
<form method=post action="/cgi-bin/formmail/formmail_pro.cgi">
<input type=hidden name=_check value=判定>
<!--このフォームのID-->
<input type=hidden name=_id value="<!--id-->">
<input type=text name="お名前(ch//name)" value="<!--custom3-->" size="35">
〜
<input type=submit value="確 認">
</form>
メニューの一覧表示をランダムに表示させる
- メニューのデータ一覧表示をランダムに表示させることができます。
- ソートの指定を以下のように指定します。(他のソートキーの指定がない場合、全部のデータでのランダム表示)
sort:R
- 他のソートキーと組み合わせて他のソートキーの中でのデータのランダム表示
カスタム項目の値を 998n を指定します。ソートキーとしてランダムな数字が割り当てられます。そのため他のキーと組み合わせるとランダム表示が可能です。
(例:sort:1n:998nS カスタム項目1順でランダムに表示されます)
- ※注意 表示最大数を指定し <!--page--> タグを使用してメニューを分割して表示している場合は表示ページ以外のメニュー頁に移動した時、データ全体で再度ランダム化が行われますので表示済みの同じデータが重複して表示される可能性があります。
<!--page--> タグを使用しないか <!--page0--> タグを使用して総数と表示数のみを表示するようにして下さい。
- ソートの指定方法 sort:カスタム番号xy
x の位置には n(値を数字としてソート)または c(文字としてソート)、y の位置には B(大〜小ででソート)または S(小〜大でソート)を指定します。
複数のカスタム項目でソートを行う場合は半角の : で区切って続けます。例:sort:3n:5cS 昇順、降順どちらで並べるかは最後の指定が全体に採用されます(個別に昇順、降順を変えることはできません)。
登録年月日でソートする場合はカスタム番号に 994 を指定します。
登録、更新年月日でソートする場合はカスタム番号に 995 を指定します。
タイトルでソートする場合はカスタム番号に 992 を指定します。
数字項目を指定した時は値の中の数字、小数点以外は削除してからソートします。(「価格\15,000」も処理できます)
xy は省略できます、x は省略すると「文字項目」、y は省略すると「小〜大」が初期値になります。
数字項目はマイナスを処理できません。(プラスの数字と判断します)
整数部11桁、小数点以下3桁を超えた数字は処理できません。
文字項目は半角16文字までをソート対象にします。(初期値)
ID、パスワードで閲覧制限をかける
- WhatsNewではジャンル全体、記事、カスタム項目に対して閲覧制限を設けることができます。
閲覧制限が指定されていると表示しようとするとID、パスワードのログイン画面が表示され正しく認証されないと閲覧することができないようになります。
- 「初期設定」でその閲覧制限をどのようにかけるかを以下のうちから選択します。
■閲覧パスワードをかけない場合は「かけない」を選択します。
■詳細データにかける場合は「詳細データにかける」を選択します。
制限をかける詳細データの指定は「管理者メニューの追加、訂正」で行います。
■カスタム項目にかける場合は「カスタム項目にかける」を選択します。
ID、パスワードを入力された方には閲覧制限のカスタム項目が表示されますが、入力されなかった方にはブランクが表示されます。
制限をかけるカスタム項目の指定は「初期設定」で該当するカスタム項目の閲覧制限にチェックを入れて行います。
最初に「カスタム項目にかける」を選択した時は一度「設定する」ボタンを押して設定を保存しないとカスタム項目の閲覧制限にチェックを入れることはできません。
■ジャンル全体にかける場合は「このジャンル全体にかける」を選択します。
■ジャンル全体にはかけるけれど詳細データによってはかけない設定をしたい場合は「 =(指定したデータは公開)」を選択します。
制限をかける詳細データの指定は「管理者メニューの追加、訂正」で行います。
■ジャンル全体にはかけるけれどパスワードを持っていない方も閲覧できるような設定をしたい場合は「 =(パスワードなしでも閲覧可)」を選択します。
- 閲覧制限をかけると閲覧制限をしたページ、カスタム項目を表示しようとするとID、パスワードを要求するログイン画面が表示されます。
- 正しいID、パスワードの入力が行われると目的のページが表示されます。
「 =(パスワードなしでも閲覧可)」を選択している場合はID、パスワードを入力しなくても閲覧が可能になります。
パスワード有り、と無しで表示を変えたい場合は表示テンプレートに以下の pass タグを記述します。参照ヘルプ
<!--pass:表示するテキスト1,表示するテキスト2-->
- 閲覧制限用のID、パスワードはクッキーを使って保存されますので一度入力すると次の閲覧時には入力不要です。(携帯電話で閲覧する場合はクッキーが使えませんのでプログラムの引数による簡易制限になります)
パソコンからの閲覧でもクッキーではなくプログラムの引数による簡易制限にすることもできます。設定ファイル whats_set.pl の153行目あたりの $PASS_C=0; を $PASS_C=1; に変更してください。
簡易制限にすると厳格なID、パスワード制限にはなりませんが、ページの性格上問題なければ簡易制限が使えます。
- 閲覧制限用のID、パスワードはジャンル用の管理者「ID、パスワード編集」で行って下さい。
管理者用のID、パスワードと同じ画面で登録を行います。半角の !
ID、パスワードは複数登録できます。(「ID、パスワード編集」を参照)
- Tips 同じサーバーにある他のパスワードファイル(CSVまたはTSV)を参照してID、パスワード照合を行うこともできます。
その場合はパスワードファイル名をサーバーのルートからフルパスで指定します。(フォームメール・プロのファイルはID名ディレクトリの下の formdata.cgi をフルパスで指定します)
パスワードファイルがタブ区切りかカンマ区切りのデータかを選択します。
ID、パスワードが区切データの何番目であるかを指定します。パスワードがcrypt関数で暗号化されている場合は「暗号化」にチェックを入れます。
半角の ! 行
フォームメール・プロのデータファイルを参照する場合は番目の指定に +3 して指定します。(フォームメール・プロでは送信するデータの前に「連番」、「年月日」、「時刻」が自動的に付加されるためです)
- 閲覧制限をかける場合はブラウザ側で「クッキーの書込みを許可する」の設定が必要です。
クッキーを使用するとブラウザを終了するまでは新たな認証が不要です。また「パスワードを記憶する」にチェックを入れると閲覧後90日間(設定ファイル whats_set.pl の139行目あたりで変更可能)は認証が不要です。
- 「しかし指定した記事は公開」を選択した場合メニューを表示させるときに2通りのメニュー表示をさせることができます。
ひとつはID、パスワードを入力させた後で閲覧制限している記事もメニューに含めて表示させたい場合です。
メニューページ表示のリンクを以下のように記述します。
<a href="/cgi-bin/whatsnew/whats_display.cgi?id:xxx+pchk:">会員専用What's New Index</A>
もうひとつは閲覧制限された記事をタイトルをメニューに表示させない場合です。
メニューページ表示のリンクを以下のように記述します。(通常の記述と同じです)
<a href="/cgi-bin/whatsnew/whats_display.cgi?id:xxx">What's New Index</A>
(呼び出し方は環境に合わせてください、あなたがアップロードした場所と whats_display.cgi の名称を変更した場合は違う指定になります)
- 「カスタム項目にかける」を選択した場合もメニューを表示させるときにログイン画面を経由して表示するか、閲覧制限がかかった状態で表示させるかの2通りがあります。
<a href="/cgi-bin/whatsnew/whats_display.cgi?id:xxx+pchk:">会員専用What's New Indexログイン画面</A>
<a href="/cgi-bin/whatsnew/whats_display.cgi?id:xxx:">非会員What's New Index</A>
- Tips 閲覧制限用のID、パスワードの入力画面は CGI と同じ場所にあるテンプレートファイル( _login.html、_login_err.html、 _login_i.html、_login_err_i.html )を使用して表示されています。変更することができます。〜_i.htmlは携帯用です。
#cgi、#select:、#hidden、%notmatch%、%notinput%、%notid% の部分を削除したり、変更することはできません。
メニュー、詳細画面にバナー画像、テキストを順番、ランダムに表示させる
- メニュー、詳細画面にバナー画像、テキストを毎回ランダムに表示させることができます。
- バナー画像からリンクさせるURL、バナー画像、テキストはメニュー頁項目設定でメニューのカスタム項目を設定します
カスタム項目は何番からでも構いませんのでURL、バナー画像(またはテキスト)の順でバナーの数だけ順番に設定して登録しておきます。

- メニュー、詳細画面のテンプレートのバナー画像、テキストを表示させる場所に以下のタグを挿入します。
<!--Custom1,3-->
<!--Custom1,3R-->(ランダムに表示、この例ではメニュー頁のカスタム項目1から登録した3つのバナーから1つが毎回ランダムに表示されリンク先URLへのリンクが張られます。
どのバナーが何回表示されたかはログファイルに保存されています。
ログファイルはジャンルIDのディレクトリの下に存在します、Custom1から始まるバナーをしていると Custom1.txt がログファイルファイルになります。
ログファイルには以下のフォーマットで表示回数が保存されています。
一つ前に表示されたバナー番号,バナー番号1の表示回数,バナー番号2の表示回数,バナー番号3の表示回数〜
詳細頁からフォームメールプロを利用する
- 詳細頁からカスタム項目の値を持ってフォームメールプロを利用することができます。
- WhatsNewの詳細表示機能を使って送信フォームを表示する。
送信フォームをWhatsNewの詳細表示テンプレートに加工して表示させます。
フォームメールプロで使う送信フォームをコピーして詳細表示テンプレートにします、ファイル名は適当に付けておいて下さい。
送信フォームのなかでWhatsNewのデータを挿入したいところにカスタムタグを配置します。
例:<input type=text name="氏名(ch)" size=10 value="">
WhatsNewで表示した詳細ページの中に送信フォームへのリンクを設定します。
例:<:a href="/cgi-bin/whatsnew/whats_display.cgi?id:<!--id-->+rec:<!--recno-->+sbase:/aaa/abc.html">
/aaa/abc.html の部分は送信フォームをコピーして加工した詳細表示テンプレートをドキュメントルートから指定しています。
リンクがクリックされればWhatsNewのデータを挿入した送信フォームが表示されます。
以降の送信処理はフォームメールプロに引き継がれます。
- フォームメールプロに付属しているフォーム表示プログラム formmail_display.cgi を使ってフォームを表示させます。
formmail_display.cgi はフォームを静的に表示するのではなく何らかの判断を伴い動的に表示したい場合に使用します。
以下の使用例の id:ZZZ にはフォームのID(例の場合は ZZZ )を指定します。
「初期設定」で指定したフォーム以外を表示させるには以下のようにフォームのHTMLファイルをサーバーのルートまたはドキュメントルートから指定します。form:/aaa/bbb/ccc/xxxxx.html
例:http://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ+form:/home/aaa/bbb/ccc/xxxxx.html+key1:<!--custom1u-->+key2:<!--custom2u-->>
- フォーム表示プログラムは以下の場合に使用します。
1、クッキーに保存された項目を送信フォームに表示させる時にセットして表示させたい場合。
この場合、送信フォームに表示させるには formmail_display.cgi を以下のように呼び出します。
例:http://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ
2、送信フォームの項目の value="" の値をフォーム表示プログラム formmail_display.cgi の引数 項目のname:XXX の XXX にセットして表示させます。
項目の name:XXX は半角の + で続けて指定することができます。
この場合、送信フォームに表示させるには formmail_display.cgi を以下のように呼び出します。
例:http://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ+項目名1:XXX+項目名2:XXX
項目名に日本語の2バイト文字が含まれる場合はURL変換する必要があります。
送信フォームの記述例:<input type=hidden name=項目名1 value="">
3、送信フォームに埋め込んだ %key番号% の部分にフォーム表示プログラム formmail_display.cgi の引数 key番号:XXX の XXX をセットして表示します。
key番号:XXX は半角の + で続けて指定することができます。
この場合、送信フォームに表示させるには formmail_display.cgi を以下のように呼び出します。
例:http://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ+key:XXX
XXXに日本語の2バイト文字が含まれる場合はURL変換する必要があります。
送信フォームの記述例:<input type=hidden name=aaa value="%key1%">
フォームジェネレータでフォームを作成する場合は初期値に %key番号% を指定しておきます。
4、送信フォームに埋め込んだ %checked% の部分にフォーム表示プログラム formmail_display.cgi の引数 checked:YYY の YYY をセットして表示します。
この場合、送信フォームに表示させるには formmail_display.cgi を以下のように呼び出します。
例:http://www.xxxx.co.jp/cgi-bin/formmail/formmail_display.cgi?id:ZZZ+form:/aaa/bbb.html+checked:YYY">
YYYに日本語の2バイト文字が含まれる場合はURL変換する必要があります。
送信フォームの記述例:<input type=hidden name=選択項目 value="%checked%">
フォームジェネレータでフォームを作成する場合は初期値に %checked% を指定しておきます。
5、(2、3、4)の手法は CGI WhatsNew の詳細表示画面からフォームメールプロを呼び出す場合に利用します。
また、1も併用して指定することができます
以下の例のように記述します。
(3の例)
WhatsNew の詳細テンプレート
<a href=/cgi-bin/formmail/formmail_display.cgi?id:test+商品番号:<!--custom1u-->+商品名:<!--custom2u-->>フォームへ</a>
フォームメールの送信フォーム
<input type=hidden name=商品番号 value="">
<input type=hidden name=商品名 value="">
(4の例)
WhatsNew の詳細テンプレート
<a href=/cgi-bin/formmail/formmail_display.cgi?id:test+key1:<!--custom1u-->+key2:<!--custom2u-->>フォームへ</a>
フォームメールの送信フォーム
<input type=hidden name=商品番号 value="%key1%">
<input type=hidden name=商品名 value="%key2%">
(5の例)
WhatsNew の詳細テンプレート
<form method="post" action="cgi-bin/whatsnew/whats_display.cgi?id:test+filter:1:2!sel!">
フォームメールの送信フォーム
<input type=hidden name=選択商品 value="%checked%">
フォームメールプロのデータをWhatsNewで利用する
- フォームメールプロを使って会員を募集しその会員データを WhatsNew を使って編集(追加、更新、削除)を行ったり条件を指定して表示したりすることができます。
- このような使い方をする場合はWhatsNewのデータの保存先をフォームメールプロの保存ファイル名に変更しなければなりません。
- スーパーバイザー管理者メニューの「データ保存先変更」で保存先ファイル名:にフォームメールプロの保存ファイル名をサーバーのフルパスで指定します。(例:/home/docs/cgi-bin/formmail/form_data/test/formdata.cgi)
- フォームメールプロのロックファイル名を指定します。(例:formdata_LOC)
ロックファイル名はファイル名だけを指定します(フォームメールプロの保存ファイルと同じディレクトリにあると解釈します)
- 「データ保存先変更」ボタンをクリックします。
- データ保存先変更を手動で行う場合や変更する場合は設定ファイル whats_set.pl の37行目を編集します。
この場合のロックファイル名はサーバーのフルパスで指定します。
# 他のソフトのデータファイルを使用する場合はジャンル=データファイル名=ロックファイル名で指定(複数は,で区切って)
$SP_dir='test=/home/docs/cgi-bin/formmail/form_data/test/formdata.cgi=test=/home/docs/cgi-bin/formmail/form_data/test/formdata_LOC';
- 以下にフォームメールプロのデータを What's New で使用する手順を示します。
1、フォームメールプロにフォームのIDを登録します。
2、フォームメールプロの「初期設定」でフォームHTMLを指定します。
3、フォームメールプロのマスター管理者の「初期設定」で保存データ形式を WhatsNew 形式に設定します。
4、 WhatsNew でジャンルをフォームメールプロのフォームIDと同じID名で追加登録します。
5、 WhatsNew のマスター管理者の「初期設定」でカスタム項目をフォームメールプロのデータ並び順に設定します。
フォームメールプロのhidden項目や連番項目などもデータ並び順に設定します。
「データ形式」の詳細頁画像項目数を 0 に、「詳細頁項目設定」のタイトル、記事の「項目名設定」をブランクにして使用しない設定にしてください。
6、そしてこの「データ保存先変更」を実行させます。
管理者IDごとに入力項目を設定する
- データ編集(記事の追加、変更)処理では「初期設定」で登録したカスタム項目のうち「入無」にチェックを入れた項目以外が入力項目として表示されます。
しかし、管理者画面にログインした管理者IDごとに入力する項目を変更したい場合があります。
このような機能を実現させる場合は「マスター管理者メニュー」の「ID、パスワード編集」で指定します。
入力できる、またはできないカスタム項目の番号を半角のカンマで区切って指定します。
詳細は「ID、パスワード編集」をご覧下さい。
アクセスログに futomi's CGI Cafe 高機能アクセス解析CGI Standard版 を使う
- WhatsNew は標準の機能でアクセスログを取ることができます。「初期設定」で設定します。
- しかしここではアクセスログに futomi's CGI Cafe 高機能アクセス解析CGI Standard版 を使う方法を説明します。
- futomi's CGI Cafe で公開されているフリーソフト高機能アクセス解析CGI Standard版 はそのままのソースでは使えません。
WhatsNew で使えるように GOiGOi Project が改造した改造版を使って下さい。この改造版は Ver3.81をもとに改造しています。また、sue445さんが公開されている改造版のソースも一部取り入れています。
高機能アクセス解析CGIではリクエストレポートの「ファイル」欄に表示されるタイトルを該当HTMLソースの<title>〜</title>を取ってきます。しかしCGIで動的に表示させている場合はうまく機能しません。
そこで保存される生ログに「タイトル」を余分に付け加え表示させるようにしています。ですからHTMLソースのタイトル以外のテキストで表示させることができるようになります。(WhatsNew用以外でも使うことが可能です)
改造版のCGIソース acc.cgi acclog.cgi accconfig.txt (拡張子は .txt になっています)
漢字コード変換にはオリジナルの jcode.pl ではなく WhatsNew と同じく Jcode.pm を使用しています。
- WhatsNew のメニュー、詳細表示に使うテンプレートのどこかに以下のソースを埋め込んでください。
【メニュー表示テンプレートの例】
赤文字の部分が任意に指定できます、acclog.cgi の指定は環境に合わせて変更してください。
<SCRIPT Language="JavaScript">
<!--
document.write("<img src='/cgi-bin/acc/acclog.cgi?");
document.write("referrer="+document.referrer+"&");
document.write("title=WhatsNew【メニュー】'>");
// -->
</SCRIPT>
【詳細表示テンプレートの例】
赤文字の部分が任意に指定できます、acclog.cgi の指定は環境に合わせて変更してください。<!--title-->の部分はタイトルに値するカスタム項目などを指定します。
<SCRIPT Language="JavaScript">
<!--
document.write("<img src='/cgi-bin/acc/acclog.cgi?");
document.write("referrer=WhatsNew&");
document.write("title=WhatsNew【<!--title-->】'>");
// -->
</SCRIPT>
管理者メニューにスーパーバイザーのID、パスワードでログインする
- 編集画面を呼び出します。
whats_edit.cgi に引数として ?id:super を付加して実行します。
ブラウザのアドレス指定欄に以下のように入力して管理者画面を呼び出します。
例:http://www.xxxx.co.jp/cgi-bin/whatsnew/whats_edit.cgi?id:super
(あなたがアップロードした場所と whats_edit.cgi の名称を変更した場合は違う指定になります)
スーパーバイザーのID、パスワードを入力してログインします。
- 通常のマスター管理者、管理者の処理が実行できます。
子ジャンルを使用せずに子ジャンル的な使い方をする
- 子ジャンルを使用せずに子ジャンル的な使い方をさせることができます。
- この機能を使う場合はマスター管理者の「初期設定」処理で詳細頁のカスタム項目の1つに「登録者ID(hidden)」を指定します。
「登録者ID(hidden)」を指定すると指定したカスタム項目に詳細データの登録時にログインしたIDが設定されます。
このデータはこれ以後、登録したID(通常管理者)の方がログインして編集される場合にしか操作できなくなります。
マスター管理者、スーパーバイザー管理者は全てのデータが編集できます。
- そのため複数の通常管理者を登録しデータ編集を行うとそれぞれのIDの方の独立したジャンルのように扱うことができます。
- IDの追加は「マスター管理者メニュー」の「ID、パスワード編集」で行います。
Webへの掲載を管理者の承認を得てから掲載させる
- Webへの掲載を管理者の2段階の承認を得てから掲載させることができます。
- この機能を使う場合は通常管理者のID、パスワードに2段階の承認管理者のID、パスワードを追加登録してください。
- マスター管理者の「初期設定」処理で「掲載承認」欄で「承認1を得る」「承認2を得る」の入力欄に承認を得る人のIDを指定します。
承認1だけでいい場合は「承認2を得る」の入力欄に何も入力しません。
この設定を行うと入力の画面に以下のような承認チェック入力ができるようになります。

- 「承認1」を設定した場合は承認1で登録されたID、パスワードでログインされた方が「訂正」処理で承認チェックしていない頁は表示されません。
- 「承認1」「承認2」を設定した場合は承認1、承認2で登録されたID、パスワードでログインされた方が「訂正」処理で承認チェックしていない頁は表示されません。
承認2で登録されたID、パスワードでログインされた方が承認チェックすると承認1で登録されたID、パスワードでログインされた方は承認チェックを操作できなくなります。
承認2で登録されたID、パスワードでログインされた方が承認チェックを外すと承認1で登録されたID、パスワードでログインされた方が承認チェックを操作できるようになります。
- 承認2で登録されたID、パスワードでログインされた方は承認1の方の承認欄も操作することができます。
パスワードチェックなしからチェック有りに移行する
- 以下の様に、setup.cgi を実行してスーパーバイザーのID、パスワードを設定します。
例:http://www.xxxx.co.jp/cgi-bin/whatsnew/setup.cgi?pass
- マスター管理者メニューの「ID、パスワード編集」処理を設定したスーパーバイザーのパスワードでログインして実行し通常管理者、マスター管理者メニューのID、パスワードを新たに追加して下さい。
- スーパーバイザーのパスワードでログインするには以下のようにオプションを指定し管理者メニューを呼び出します。
例:http://www.xxxx.co.jp/cgi-bin/whatsnew/whats_edit_edit.cgi?id:super
(あなたがアップロードした場所と whats_edit.cgi の名称を変更した場合は違う指定になります)
この様に setup.cgi は再インストールやスーパーバイザーのID、パスワードの再設定が行えますので、インストール終了後は setup.cgi のファイル名を変更しておくかパーミッションを実行権限がないものに変更しておいて下さい。
そして、 setup.cgi の実行が必要になったときに元に戻して実行するようにして下さい。
スーパーバイザー、管理者パスワードを忘れてしまったら
- 管理者パスワードを忘れてしまった時は、スーパーバイザーのパスワードでログインし管理者パスワードを編集します。
- スーパーバイザーのパスワードでログインするには以下のようにオプションを指定し管理者メニューを呼び出します。
例:http://www.xxxx.co.jp/cgi-bin/whatsnew/whats_edit.cgi?id:super
(あなたがアップロードした場所と whats_edit.cgi の名称を変更した場合は違う指定になります)
管理者画面が表示されたらパスワードの編集を実行し古い管理者のID、パスワードを削除し新たにID、パスワードを追加して下さい。
- スーパーバイザーのパスワードも忘れてしまった時は以下の様に、setup.cgi を実行してスーパーバイザーのID、パスワードを再設定します。
例:http://www.xxxx.co.jp/cgi-bin/whatsnew/setup.cgi?pass
この様に setup.cgi は再インストールやスーパーバイザーのID、パスワードの再設定が行えますので、インストール終了後は setup.cgi のファイル名を変更しておくかパーミッションを実行権限がないものに変更しておいて下さい。
そして、 setup.cgi の実行が必要になったときに元に戻して実行するようにして下さい。
現在稼働中のサーバーから別のサーバーに移行します
- 現在のデータを活かすために旧サーバーのジャンル名以下のディレクトリをダウンロードして保存しておきます。
(ディレクトリ /cgi-bin/whatsnew/whats_data の下にジャンル名のディレクトリがあります。インストールしたディレクトリが違う場合は違う場所になります)
- 最新のプログラムをダウンロードし新しいサーバーに旧サーバーへのインストールと同じやり方でインストールします。
- 制限解除キーを再取得してください。(制限解除キーには使っているサーバー情報が含まれていますので同じキーを使うことはできません、またキーには有効期限がありますので以前に取得したキーを使うこともできません)
制限解除キーは2回まで取得できるようになっています。
- ジャンルを複数登録している場合はスーパーバイザー管理者メニューから制限解除処理を行って下さい。
- ジャンルを登録するときに旧のサーバーに登録した同じジャンル名で登録します。ジャンル数だけジャンル追加を繰り返します。
- 最初に旧サーバーからPCにダウンロードしてきたジャンル名以下のディレクトリから必要なファイルを新サーバーの同じ場所に上書きでアップロードします。
(必要なファイルがわからない場合は全てのファイル、ディレクトリを新サーバーの同じ場所に上書きでアップロードしてください)
- もし上書きでアップロードできないサーバーの場合はファイルを一度削除してからアップロードして下さい。
- テンプレートファイルがディレクトリ /cgi-bin/whatsnew/whats_data の下以外に存在するときは同じディレクトリにアップロードします。
マスター管理者の「初期設定」でテンプレートファイルの場所がうまく設定できているか確認します。
- スーパーバイザー管理者メニューから制限解除処理を行って下さい。(ジャンルを複数登録している場合は最初と最後に2回制限解除処理を行うことになります)
- 旧サーバーと同じように動作するか確認してください。
設定プログラムファイルで実現できる機能&Tips
# What's New (Copyright Shigeru Uchida 2008/06/05)
# 設定ファイル
$ver="What's new Ver 6.43";
# パスワードファイルのファイル名 パスワード認証をしない場合は $p_name='';
$p_name='.htpasswd';
# 編集処理CGIプログラム名(セキュリティ上からも必ず変更してください)
$cgi='whats_new.cgi';
# スーパーバイザー管理者処理CGIプログラム名
$cgi3='whats_super.cgi';
# 編集画面を表示するCGIプログラム名(セキュリティ上からも必ず変更してください)
$cgi1='whats_edit.cgi';
# メニュー表示時に実行する更新CGIプログラム名(セキュリティ上からも必ず変更してください)
$cgi4='whats_update.pl';
# サーバーのドキュメント・ルート $ENV{'DOCUMENT_ROOT'} で取得できれば変更する必要はありません
# 例:$EN_DOC='/htdocs/home'; (最後の/は付けないで下さい)
$EN_DOC=$ENV{'DOCUMENT_ROOT'};
# Webのどこからでも呼び出せる表示CGIプログラムURL
$cgi2='/cgi-bin/whatsnew/whats_display.cgi';
# 他のサーバーからのどこからでも呼び出せる表示CGIプログラムURL
$cgi2x="http://$ENV{'HTTP_HOST'}/cgi-bin/whatsnew/whats_display.cgi";
# ドキュメントルートの下にCGIファイルが設置できるサーバーなら必ず変更以外は特に変更せずに動作するはずです
# このスクリプトが存在するCGIディレクトリの直下に作成できる場合は変更の必要はありません
# 作成できない場合は下記32行目、作業用ディレクトリを作成するディレクトリをドキュメントルートの下 whatsnew に自動セットします。
# CGIディレクトリの直下以外に作成する、希望するディレクトリに作成する時はCGIがファイルを読み書きできるサーバーのディレクトリをフルパスで指定してください
# 例:$dir_base='/htdocs/home/whatsnew/data/'; (最後の/は必ず付けてください)
$dir_base='';
# 作業用ディレクトリ名を指定します(特に変更の必要はありません)
$whatsnew='whats_data';
# データファイルのファイル名(セキュリティ上からも必ず変更してください)
$dfname='whatsnew_data';
# 他のソフトのデータファイルを使用する場合はジャンル=データファイル名=ロックファイル名で指定(複数は,で区切って)
# ジャンルに * を指定すると全てのジャンルに適用されます
#$SP_dir='test=D:\php\xampp\apache\htdocs\cgi-bin\formmail\form_data\test\formdata.cgi=D:\php\xampp\apache\htdocs\cgi-bin\formmail\form_data\test\formdata_LOC';
$SP_dir='';
# 環境を自動判定しセットしますが、画像が表示されないうまくリンクしない等の現象が出る場合は手動でセットしてください
# 表示できない場合は $from_doc=''; をドキュメントルートから32行目作業用ディレクトリまでのパスを指定します
# 最後の/は必ず付けてください(例: $from_doc='/aaaa/bbbb/'; )
$from_doc='/cgi-bin/whatsnew/';
# formmail_edit.cgi?xxx を実行させると環境変数を表示させることができます。envp のオプションを以下で指定します
# セキュリティ上からも必ずあなた専用のオプションテキストを指定してください、不要の場合は $ENVP='';
$ENVP='envp';
# サーバーOS設定 自動認識しますが、できない場合は(Unix系) $OS=1; (Windows系)$OS=0;
$OS= $ENV{'PATH'}=~/\\/ ? 0:1;
# CGIが動作するサーバーのURL http:// 以下を指定します(WebサーバーとCGIサーバーが同一の場合は不要)
#(例:$host="www.xxx.co.jp"; $host="www.xxx.ne.jp/~mypage"; 最後の/は付けないでください
# 環境変数$ENV{'HTTP_HOST'}で取得できる場合は変更する必要はありません
$host_url=$ENV{'HTTP_HOST'};
# データファイルの拡張子
$kaku='cgi';
# 変更できません
$jcpath='./goigoi250.gif';
#------cgi-lib.plのパス&ファイル名
$clpath='cgi-lib.pl';
# ログ集計処理にfork関数を使う $FORK='x';、使わない $FORK='';
# バイト数を指定するとログファイルのサイズがそれより大きい場合にfork関数を使う
$FORKmax=50000000;
# このアドレス以外からの更新を認めない
# 例 @REMOTE_ADDR=('210.xxx.xxx.xx1','210.xxx.xxx.xx2');
# $ENV{'REMOTE_ADDR'} がうまく取れないサーバー、どこからでも編集を認める場合は @REMOTE_ADDR=();
@REMOTE_ADDR=();
# 入力された半角カタカナ全角カタカナに変換する(しない $I_hk=0; する $I_hk=0;) *現在機能しません
$I_hk=0;
# 処理終了後に表示する文言
$endmsg="編集メニューに戻る";
# テキスト入力欄の横最大文字数(半角換算)
$maxm=100;
# checkbox タイプのマルチ選択の時のデータセパレータ
$sepa=',';
# 新たに開く詳細ページのウインドウ設定(javascriptのwindow.openのオプションを指定)
$h_winw='width=600,height=400,menubar=1,scrollbars=1,resizable=1';
# 画像の最大横幅、これ以上の横幅の画像でもこの幅で縮小表示
$h_grw=600;
# 固定項目のデフォルト名称
$h_date='登録日';
$h_mdate='更新日';
$h_title='タイトル';
$h_kizi='記事';
# 記事項目の入力エリアサイズ
$h_kizim=800;
# 文字サイズと色を指定
$FONT='style="font-size:13px;color:#666666"';
# 携帯用編集処理CGIプログラム名(セキュリティ上からも必ず変更してください)
$cgim='whats_mb.cgi';
# データ追加時「Web に表示」のチェックをチェック済みに $web_chk=' checked'; 無しは $web_chk='';
$web_chk=' checked';
# クッキーでパスワードを保存しブラウザを終了するまでは管理者のパスワード入力を免除 $cook_sw=1; 免除しない $cook_sw=0; 全てのジャンルで免除 $cook_sw=2;
$cook_sw=1;
# 掲載終了日が済んだデータを終了日から何日後に消すか指定、0 は当日
$del_k=0;
# 半角カナ、機種依存文字関係の変換、チェックをデータ入力画面で行わない$code_dsw=0;、1 は行う
$code_dsw=0;
# 書き込み可能ディレクトリのパーミッション
$perms='777';
# javaスクリプトの使用 使用不可->$java_sw=0; 使用許可->$java_sw=1;
$java_sw=1;
# データを編集するための引数(第3者に勝手に操作されるのを防ぐため '' 内を自分用に変更してください、半角英数_で)
$COM='com';
$COMJOB='job';
$COMOUT='com_out';
# スーパーバイザー,マスターとして処理する場合のプログラムの引数
$supermark='super';
$mastermark='master';
# ソート可能な最大文字数
$sortbyte=16;
# 集計処理にfork関数を使う $FORK='x';、使わない $FORK='';
$FORK='';
# クッキーの保存期間 日数で指定
$Cook_days=90;
# 閲覧用パスワード入力画面のタイトル
$PASS_mes='会員専用ページ';
#.htaccess コンフィグレーション機能の使えないサーバー $HTAC=1; 使えるサーバー $HTAC=0;
$HTAC=1;
# ?日経過した場合はバックアップファイルを作成する
$MT_day=3;
# 編集画面でHELP画面へのリンクを付ける $HELP_sw=0; 付けない $HELP_sw=1;
$HELP_sw=0;
# 閲覧制限でのパスワード再入力省略 $PASS_C=0; クッキーで対応 $PASS_C=1; 引数で簡易対応(携帯では標準で簡易対応);
$PASS_C=0;
PHPファイルからWhatsNewの表示CGIを呼び出す
- Webサーバーがアパッチを使用している場合にのみ使用できます
- PHPソースの中のWhatsNewを表示したい場所に以下のPHPコードを埋め込みます。
WhatsNewを表示させるCGIのURLはインストールした環境によってかわります。
+phpのオプションを引数に付けるとPHPから表示プログラムを呼出して表示させる場合にテンプレートの<body>タグ前と</body>タグ以降を無視します。
<?php
virtual("/cgi-bin/whatsnew/whats_display.cgi?id:ジャンル名+php");
?>
携帯電話からデータを編集する
- whatsnew は携帯電話からも記事(データ)を編集することができます。
携帯電話からの編集ではjavascript、スタイルシートを使った機能は動作しません、また画像ファイルをアップロードすることができません。
使える編集メニューは「最初に追加」「最後の追加」「追加」「訂正」「削除」のみになります。
- 携帯電話からデータを編集するには管理者画面を呼び出す時に携帯用メニュー設定ファイルを指定して呼び出します。
携帯電話用の設定ファイルはファイル名を必ず mobile_ で始めてください。サンプル用のファイル mobile_menu が用意されています。
携帯電話で呼び出すURL例:http://wwww.xxxx.co.jp/cgi-bin/whatsnew/whats_edit.cgi?id:abc+menu:mobile_menu
(id:abc はジャンルIDを指定しています。menu: で携帯用メニュー設定ファイルを指定します)
- メニュー設定ファイルはスーパバイザー管理者メニューからカスタマイズすることができます。

詳細ページに google Map を表示する
ファイル配置ディレクトリツリー図(例)
/cgi-bin/ (Perlが実行できるディレクトリ)
|
|-- whatsnew/ (755) or (777)
| |
| |---- _help/ (644)
| | |
| | | 以下マニュアルファイル用ファイル(644)
| |
| |-- cgi-lib.pl(644)
| |-- whats_set.pl(644)
| |-- whats_new.cgi(755)
| |-- whats_mb.cgi(755)
| |-- whats_super.cgi(755)
| |-- whats_display.cgi(755)
| |-- whats_edit.cgi(755)
| |-- whats_update.cgi(755)
| |-- repng2jpeg(755) 画像リサイズ用モジュール(使用しない場合は不要)
| |-- _login.html(777)
| |-- _login_i.html(777)
| |-- _login_err.html(777)
| |-- _login_i_err.html(777)
| |-- index.html(644)
| |-- check.html (644 rw-r--r-- サーバー環境チェック用HTML)
| |-- goigoi250.gif (644 rw-r--r-- サーバー環境チェック用画像)
| |-- resize.pl(644 rw-r--r--) 画像リサイズ用モジュール、使用しない場合は不要(resizeモジュール用)
| |
| |-- _Magick_pl/(644 rw-r--r--)
| | |
| | |-- resize.pl(644 rw-r--r--) 画像リサイズ用モジュール(imagemagicモジュール用)
| |
| |-- Unicode/(644 rw-r--r--)
| | |
| | |-- Japanese.pm(644 rw-r--r--) UTF-8変換用モジュール
| |
| |---- _ktemp/(777)
| | |-- menu_m.cgi(777) 管理者メニュー設定ファイル
| | |-- menu_mM.cgi(777) マスター管理者メニュー設定ファイル
| | |-- menu_daily.cgi(777) 日常管理者メニュー設定ファイル
| | |-- menu_master.cgi(777) メニューマスターファイル
| | |-- mobile_menu.cgi(777) 携帯用メニューマスターファイル
| | |-- _menu.html(777) メニューテンプレートファイル
| | |-- _menu_std.html(777) 編集画面テンプレートファイル
| |
| |---- _temp/(644) 標準テンプレートが格納されています
| |
| |---- _menu/(644) メニュー標準テンプレートが格納されています
| |
| |-- whats_data/ (777) 任意の名前
| | |
| | |-- .htpasswd(777 パスワードファイル)
| | |-- index.html(644)
| | |-- name.cgi(777 ジャンル名称テーブルファイル)
| | |-- .htaccess(644 アクセス制限記述ファイル)
| | |
| | |-- _temp/(777 共用テンプレート保管場所)
| | | |-- xxxxxxxx.html
| | |
| | |---- img/(644) HTML画像用
| | |
| | |---- ジャンル1/ (777)
| | | |-- .htpasswd (777 パスワードファイル)
| | | |-- .htaccess (644 アクセス制限記述ファイル)
| | | |-- index.html(644)
| | | |-- back_num/ (777 バックナンバー記事ファイル)
| | | | |
| | | | |-- 01.cgi
| | | | |-- 02.cgi
| | | | |-- index.html(644)
| | | | |-- .htaccess (644 アクセス制限記述ファイル)
| | | | |-- img/ (777 バックナンバー画像ファイル)
| | | | | |-- xxx.jpg
| | | | | |-- xxx.gif
| | | | | |
| | | | | -- html/ (777 生成されたHTMLファイルが保存されます)
| | | | | |--_img/ (777 画像ファイル)
| | | |
| | | |-- img/ (777 画像ファイル登録ディレクトリ)
| | | | |-- xxx.jpg
| | | | |-- xxx.gif
| | | | |
| | | | -- html/ (777 生成されたHTMLファイルが保存されます)
| | | | |--_img/ (777 画像ファイル)
| | | |-- whatsnew_data.cgi データファイル(任意名で自動生成)
| | | |-- whatsnew_data_back.cgi 一世代前データファイル(任意名で自動生成)
| | | |-- whatsnew_data_LOC(777) ロックファイル(任意名)
| | | |
| | | |-- _temp/ (644 ジャンルテンプレート、HTML書出設定ファイル保管場所)
| | | | |-- whatsindex.html(644) メニューテンプレートHTML
| | | | |-- whatsindex_i.html(644) メニューテンプレートHTML(携帯)
| | | | |-- whatsnew.html(644) 詳細テンプレートHTML
| | | | |-- whatsnew_i.html(644) 詳細テンプレートHTML(携帯)
| | | | |
| | | | |-- xxxxx.dat HTML書出設定ファイル
| | | | |-- index.html(644)
| | | |
| | |
| | |---- ジャンル2/ (777)
| | | |
| | | 以下ジャンル1と同一
使用講習会、説明会をご指定の場所で開催させていただきます
本サイトの CGI は高機能で何でもできますが、高機能のため使用方法を完全に理解するためには説明を受けた方が解りやすいと思います。京阪神奈の制作会社様には使用講習会、説明会をご指定の場所で開催させていただきます。最下段のメールアドレスまでお問い合わせ下さい。(場所が京阪神奈以外の場合は実費交通費が必要です)
インストール、CGI制作の請け負い
本サイトのプログラムは今までに
CGI をインストールされた方なら簡単にインストールしていただけますが、設定も含めたインストール、サイト構築作業、CGI制作を請け負うことも可能です。
お問い合わせページからご連絡ください。
GOiGOi Projectではフォームメール、WhatsNew(汎用データベース)、ページ自動生成、ページ更新、空き情報・予約など、ホームページを管理、運営する上でどうしても必要になってくるCGIをプロ仕様で提供しています。全てのプログラムは汎用CGIとして開発されていてどのようなサイトでもご使用いただけます。また、CGI制作も承ります。