旧新着情報更新CGI:設置マニュアル

STEP1:プログラムをダウンロード・解凍する

ダウンロード

まずは 旧新着情報更新CGI ダウンロード からプログラム本体をダウンロードをしてください。
一式ZIPファイルでダウンロードできます。
プログラム本体は無料でダウンロード可能です。

ZIPファイル解凍

ダウンロードしたZIPファイルを解凍してください。
解凍先は任意で大丈夫です。(デスクトップなど)
古いOSでは標準でZIPファイルが解凍できない場合があります。この場合はZIPが解凍できるソフトをインストールしてください。

STEP2:環境に合わせて設定ファイルを修正する

解凍したファイルの中の「config.cgi」をメモ帳等で開き、該当箇所を適所修正してください。

config.cgiをメモ帳で開く config.cgiをメモ帳で開いた状態

上図の赤枠の部分を修正してください。それぞれの説明は以下の通りです。

テンプレートファイルの文字コード 標準のテンプレートHTMLファイルを使用する場合はそのまま 3 でOKです。
※詳しくは後述します。
データベースファイル 新着情報を保存するデータファイル先です。
通常は変更の必要はありません。
※SQLite形式のデータファイルになります。
埋め込み用情報数件数 既存ページに新着情報を埋め込み表示する際の最新情報の数を設定します。
履歴一覧用情報数件数 新着情報履歴ページにて1ページに表示する最大件数です。これを超える場合は次ページが生成されます。
更新情報CGI URL 設置する先のURLを「http://~」から指定してください。
尚、末尾のスラッシュは記述しないでください。
RSSに埋め込むタイトル RSS2.0を生成する際に、そのRSSのタイトルを設定します。
ここで設定した文字は、RSSリーダーやブラウザにRSSのタイトルとして表示されます。
管理画面ログイン情報 管理画面にログインする際のログインIDとパスワードを設定してください。
不正に利用されたりしないよう、必ず変更するようにお勧めいたします。
提供者情報 管理画面の下部やログイン画面で表示される文字を設定します。空欄でも可です。

修正後、上書き保存します。

config.cgiをメモ帳で上書き保存

次に index.html を同様にメモ帳で開き、以下の設置先URL部分を正しく修正して上書き保存してください。

index.htmlをメモ帳で編集

さらに header.txt を同様にメモ帳で開き、以下の設置先URL部分を正しく修正して上書き保存してください。

header.txtをメモ帳で編集

※上記PHPタグで挟まれた2箇所のURLは、必ず http:// または https:// から始まる必要があります。
相対パスで指定しますと、CGIプログラムの中身が表示されてしまいますのでご注意ください。

STEP3:サーバにアップロードする

ファイルアップロード

FTPソフトを起動し、ご契約中のサーバにFTP接続してご希望のフォルダを新規作成してください。

作成フォルダ例
/topics/

次に、先ほど解凍したファイルを、上記フォルダに全てアップロードします。

パーミッション設定

パーミッション設定対応表
対象フォルダ/ファイル 設定値
/topics/data/707
/topics/admin/.session/707
その他のフォルダ そのままでOK
(または705
/topics/admin/index.cgi705
/topics/admin/logout/index.cgi705
/topics/admin/news/index.cgi705
/topics/mini.cgi705
/topics/news.cgi705
/topics/xml.cgi705
その他のファイル そのままでOK
(または604

全てのファイルが正常にアップロード完了したら、次にパーミッションの設定を行います。パーミッション設定は、プログラムからファイルやフォルダに書き込み権限を与える設定になります。

一般的には、FTPソフト上からパーミッションを設定したいファイルまたはフォルダを選択し右クリックして、「パーミッションを変更」や「属性変更」等から設定可能です。(ソフトウェアによって名称が違います)

設定値の3桁の数値(644や755のような)をそれぞれ右の表の対応した値に設定していってください。
これを行わないと、プログラムが一部正常に実行できなかったりファイルにデータが保存されないなどの問題が置きますので、ご注意下さい。

  • サーバによっては 705755606666 に変更する必要があるケースもあります。レンタルサーバ会社またはサーバ管理者様へご確認下さい。
  • .session 等のドットから始まるファイルはFTPソフトの標準設定では表示されない場合があります。ご利用のFTPソフトの操作説明をご確認の上、ドットから始まるファイルを表示するように設定してからパーミッションの設定をお願いいたします。

STEP5:ブラウザから動作を確認

ブラウザから動作を確認します。
以下、「設置先URL」をアップロードしたURLに置き換えてアクセスしてください。

埋め込み表示サンプルページ

まだ情報を登録していないので「(新着情報はまだありません)」と表示されています。

URL例
http://(設置先URLパス)/topics/
動作確認:埋め込み表示サンプルページ

新着情報履歴ページ

まだ情報を登録していないので「(新着情報はまだありません)」と表示されています。

URL例
http://(設置先URLパス)/topics/news.cgi
動作確認:新着情報履歴ページ

管理画面ログイン

新着情報を追加/編集するための管理画面です。
config.cgi で設定したID/PWでログインしてください。

URL例
http://(設置先URLパス)/topics/admin/index.cgi
管理画面:ログイン画面

新着情報の新規追加

上部メニューより「新規追加」をクリックし、実際に新着情報を登録してみてください。
後で編集画面から削除できますので、とりあえず適当に入力してください。

管理画面:新着情報の新規追加

新着情報の追加完了→一覧画面

正常に新規追加されますと、一覧画面に移動し以下のように新しく1件追加されているはずですので、再度埋め込みサンプルページを表示して、正しく反映されているかご確認ください。

管理画面:一覧画面

STEP6:メール文章を修正

いきなり本番ページに組み込む前に、本番ページHTMLと同じ場所に test.htmltest.php などを複製してテスト・調整することを強くお勧めいたします。

新着情報の埋め込み

サンプルの index.html に記述したように、表示したい場所へ以下のPHPタグを挿入するだけです。 (設置先URLは正しく修正してください)

新着情報の埋め込みPHPコード
<?php include('http://(設置先URL)/mini.cgi')?>

新着情報履歴ページについて

新着情報履歴ページの方は、上記のような埋め込み形式ではありません。
news.cgi にアクセスすると、news.txt テンプレートファイルを読み込んで履歴ページを表示します。
初期テンプレートでは、埋め込まれた新着情報の「MORE »」リンクから news.cgi に飛んできます。
他のページからリンクする場合は直接 news.cgi にリンクしてください。

※テンプレートの修正については後述します。

STEP7:RSSの確認

管理画面から更新した新着情報はそのままRSSにも反映されます。
各種URLは以下の通りですので、ブラウザやRSSリーダーからアクセスしてご確認ください。

RSS  2.0
http://(設置先URL)/xml.cgi
RSS 0.92
http://(設置先URL)/xml.cgi?mode=rss092
ATOM 1.0
http://(設置先URL)/xml.cgi?mode=atom10

HTMLのヘッダ部分に以下のlinkタグを入れておきますと、ブラウザ側で認識してくれますのでお勧めです。(以下サンプル)

				<head>
				~
				<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://(設置先URL)/xml.cgi" />
				<link rel="alternate" type="text/xml" title="RSS .92" href="http://(設置先URL)/xml.cgi?mode=rss092" />
				<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="http://(設置先URL)/xml.cgi?mode=atom10" />
				~
				</head>

STEP8:設置完了

以上で設置と動作確認ができました。
デザインテンプレートを修正したい場合は、引き続き以下の説明をご参照ください。

テンプレートファイルの説明

テンプレートファイル、設定ファイルを編集することで、新しい項目を追加したり独自のデザインに組み込むことができます。
編集可能なファイルは以下の通りです。

ファイル名説明
header.txtヘッダ部分テンプレート
footer.txtフッタ部分テンプレート
mini.txt既存HTMLの一部に埋め込まれるテンプレート
news.txt新着情報履歴ページのテンプレート
detail.txt新着情報詳細ページのテンプレート
ライセンスコードが無い場合はテンプレートファイル内の「powered by カンタローCGI」のリンクを削除するとプログラムが起動しませんのでご注意下さい。

マーキングタグについて

各テンプレート内には、[$url][$news_list.exist] のようなキーワードが記述されています。
ここではこれらをマーキングタグと呼び、CGI実行時に適切な値に置き換わってくれるものです。
実際には、これらが新着情報の日付や内容に置き換わりますので、このマーキングタグの周りのタグを修正してレイアウトを調整していくようになるかと思います。

「mini.txt」 新着情報埋め込みテンプレート

既存のHTMLに埋め込まれるため、ヘッダやフッタはありません。
<?php~?> で呼び出したHTMLに、直接このテンプレートの内容が表示されます。

				[$news_list.noexist]
				(新着情報はまだありません)
				[/$news_list.noexist]

				[$news_list.exist]
				 <ul class="news-list">
				 [$news_list]
				 <li>
				  <dl>
				   <dt>[$year].[$month.dec2].[$day.dec2]</dt>
				   <dd>[$body.br]</dd>
				  </dl>
				 </li>
				 [/$news_list]
				 </ul>
				[/$news_list.exist]

				<div class="right"><a href="[$news_url]/news.cgi">MORE »</a></div>

				<div class="powered"><a href="http://kantaro-cgi.com/" target="_blank">CGI提供:カンタローCGI</a></div>
マーキングタグ 意味
[$news_list.noexist]~
[/$news_list.noexist]
新着情報が1つも存在しない場合にこの範囲が表示されます。
[$news_list.exist]~
[/$news_list.exist]
新着情報が1つ以上存在する場合にこの範囲が表示されます。
[$news_list]~
[/$news_list]
この範囲で囲まれた部分を、新着情報分繰り返し表示します。
[$year]
[$month.dec2]
[$day.dec2]
新着情報の公開日付に置き換わります。
[$year] は年、[$month] は月、[$day] は日に置き換わります。
尚、末尾の .dec2 は2桁の数字にするためのドットメソッドです。(※詳しくは後述)
[$body.br] 新着情報の本文に置き換わります。
尚、.br は改行を <br> タグに変換するドットメソッドです。(※詳しくは後述)
[$news_url] config.cgi で指定した、この新着情報更新CGIのURLに置き換わります。

「news.txt」 新着情報履歴ページテンプレート

MOREリンクをクリックした際に表示される新着情報履歴ページのテンプレートです。

				[+header.txt]

				<!-- 新着情報履歴 ここから -->
				<div class="left">
					<h2>履歴一覧</h2>
					
					<!-- 上部ページナビ ここから -->
					<div class="page-nabi border-black-bottom">
						[$prev_page.exist]<a href="./news.cgi?page=[$prev_page]">« 前のページ</a>[/$prev_page.exist]
						[$prev_page.noexist]<span class="gray">« 前のページ</span>[/$prev_page.noexist]
						<select name="page" onchange="window.location.href='./news.cgi?page='+this.value">
							[$page_list]<option value="[$page_num]"[$selected]>[$page_num]ページ</option>
							[/$page_list]
						</select>
						[$next_page.exist]<a href="./news.cgi?page=[$next_page]">次のページ »</a>[/$next_page.exist]
						[$next_page.noexist]<span class="gray">次のページ »</span>[/$next_page.noexist]
					</div>
					<!-- 上部ページナビ ここまで -->
					
					<!-- 新着情報リスト ここから -->
					[$news_list.noexist]
					(新着情報はまだありません)
					[/$news_list.noexist]
					
					[$news_list.exist]
					<ul class="news-list">
						[$news_list]
						<li>
							<dl>
								<dt><div id="[$seq]">[$year].[$month.dec2].[$day.dec2]</div></dt>
								<dd>
									[$url.exist]<a href="[$url]" target="_blank">[$body.br]</a>[/$url.exist]
									[$url.noexist][$body.br][/$url.noexist]
								</dd>
							</dl>
							<br>
						</li>
						[/$news_list]
					</ul>
					[/$news_list.exist]
					<!-- 新着情報リスト ここまで -->
					
					<!-- 下部ページナビ ここから -->
					
							(上部ページナビと同じなので割愛)
					
					<!-- 下部ページナビ ここまで -->
					
					<div class="powered"><a href="http://kantaro-cgi.com/" target="_blank">CGI提供:カンタローCGI</a></div>
				</div>
				<!-- 新着情報履歴 ここまで -->

				[+footer.txt]
マーキングタグ 意味
[+header.txt] ヘッダテンプレート header.txt を読み込みます。
[+footer.txt] フッタテンプレート footer.txt を読み込みます。
[$news_list.noexist]~
[/$news_list.noexist]
新着情報が1つも存在しない場合にこの範囲が表示されます。
[$news_list.exist]~
[/$news_list.exist]
新着情報が1つ以上存在する場合にこの範囲が表示されます。
[$news_list]~
[/$news_list]
この範囲で囲まれた部分を、新着情報分繰り返し表示します。
[$year]
[$month.dec2]
[$day.dec2]
新着情報の公開日付に置き換わります。
[$year] は年、[$month] は月、[$day] は日に置き換わります。
尚、末尾の .dec2 は2桁の数字にするためのドットメソッドです。(※詳しくは後述)
[$body.br] 新着情報の本文に置き換わります。
尚、.br は改行を <br> タグに変換するドットメソッドです。(※詳しくは後述)
[$url.exist]~
[/$url.exist]
新着情報にリンク先を指定していた場合にこの範囲が表示されます。
[$url.noexist]~
[/$url.noexist]
新着情報にリンク先を指定していなかった場合にこの範囲が表示されます。
[$url] 新着情報に指定したリンク先に置き換わります。
[$seq] 新着情報の記事番号になります。
RSSリーダーなどからジャンプしてきたときに画面がスクロールするように各記事番号のIDを振っています。

ページナビ周り

ページナビ周りは基本的にそのままコピーするのをお勧めします。
もしご自分で修正したい場合のみ、以下を参照してください。

[$prev_page.exist]~
[/$prev_page.exist]
前のページが存在するときに表示されます。
[$prev_page.noexist]~
[/$prev_page.noexist]
前のページが存在しないときに表示されます。
[$next_page.exist]~
[/$next_page.exist]
次のページが存在するときに表示されます。
[$next_page.noexist]~
[/$next_page.noexist]
次のページが存在しないときに表示されます。
[$page_list]~
[/$page_list]
ページ数分、繰り返します。
プルダウンでページ数を選択させる場合に利用します。
[$page_num] [$page_list] の中での繰り返し中のページ数に置き換わります。
[$selected] [$page_list] の繰り返しの中で現在表示中のページ数だった場合、 selected に置き換わります。
プルダウンの選択済みに使用します。

「detail.txt」 新着情報詳細ページテンプレート

新着情報のタイトルをクリックした際に表示される新着情報の個別ページのテンプレートです。

				[+header.txt]

				   <h2>新着情報詳細</h2>

				   [$seq.noexist]
				    <div>ご指定の新着情報は存在しません。</div>
				   [/$seq.noexist]
				   [$seq.exist]
				    <h3 class=" left">
				     [$year]年[$month]月[$day]日([$week])<br>
				     [$title]
				    </h3>
				    <div class="news-body">[$body.br]</div>
				   [/$seq.exist]

				[+footer.txt]
マーキングタグ 意味
[+header.txt] ヘッダテンプレート header.txt を読み込みます。
[+footer.txt] フッタテンプレート footer.txt を読み込みます。
[$seq.noexist]~[/$seq.noexist] 指定の新着情報が存在しない場合にこの範囲が置き換わります。
[$seq.exist]~[/$seq.exist] 指定の新着情報が存在する場合にこの範囲が置き換わります。
[$year]
[$month]
[$day]
[$week]
新着情報の公開日付に置き換わります。 [$year] は年、[$month] は月、[$day] は日、[$week] は曜日に置き換わります。(※詳しくは後述)
[$title] 新着情報のタイトルが表示されます。タイトルが未入力の場合はなにも表示されません。
[$body.br] 新着情報の本文に置き換わります。尚、.br は改行をタグに変換するドットメソッドです。(※詳しくは後述)

ドットメソッドで表示フォーマットを変える

マーキングタグの末尾にドットメソッドを追加することで表示フォーマットを変えることができます。

.comma

コンマ挿入

数字に3桁置きに半角コンマ「,」を挿入します。
文字列中に数字があってもその数字の部分のみコンマを挿入します。
例) [$price.comma]

123456789
 → 
123,456,789

.sani

HTMLサニタイズ

HTML内で不整合が起こらないように以下の変換を行います。
  &→&amp;
  <→&lt;
  >→&gt;
  "→&quot;
  '→&#39;
例)[$data.sani]

<a href="a.cgi?a=1&b=2">
 → 
&lt;a href=&quot;a.cgi?a=1&amp;b=2&quot;&gt;

.br

改行→<br>変換

データ中の改行コードを全て <br> に置き換えます。
但し、<pre>, <script>, <plaintext>, <xmp> タグ内は処理しません。
例)[$data.br]

									test1
									test2
									test3
								
 → 
									test1<br>test2<br>test3<br>
								

.escape

URIエスケープ

データをURIエスケープします。
例)[$data.escape]

									ほげほげ
								
 → 
									%a4%db%a4%b2%a4%db%a4%b2
								

.unescape

URIエスケープ戻し

URIエスケープされたデータを戻します。
例)[$data.unescape]

									%a4%db%a4%b2%a4%db%a4%b2
								
 → 
									ほげほげ
								

.dec(数字)

数字桁操作

.dec → 頭の余分な「0」を削除します。
.dec5 → 5桁数字にします。
.dec20 → 20桁数字にします。
※数字部分は自由です。
例)[$price.dec10]

									10500
								
 → 
									0000010500
								

.cut(数字)

文字カット

.cut10 → 先頭から10バイト分のみに切り詰めます。
.cut20 → 先頭から20バイト分のみに切り詰めます。
.cut20_ → 先頭から20バイト分のみに切り詰め、さらに末尾に「...」を付加します。
※数字部分は自由です。
例)[$title.cut20_]

									ドットメソッドリファレンス
								
 → 
									ドットメソッドリファ...
								

.delhtml

HTMLタグ除去

HTMLタグ部分を削除します。
但し、<pre>, <script>, <plaintext>, <xmp> タグ内は処理しません。
例)[$data.delhtml]

									<div class="midashi">タイトル</div>
								
 → 
									タイトル
								

※ちなみに、

 [$(要素名).delhtml.cut10.escape]

このようにつなげて書くと、それぞれの変換が順番に適用されて最終形が置き換わります。

入ってるかどうかで表示/非表示

データが入ってきてるかどうかで、表示/非表示になるマーキングタグが書けます。
このドットメソッドでは、表示範囲を [$~] から [/$~] でくくります。
表示範囲の中にHTMLや別のマーキングタグなども書けます。

.exist

入っていれば表示

要素に何かしら入っていれば表示になります。

						[$agree.exist]同意します[/$agree.exist]
[$agree.noexist]同意しません[/$agree.noexist]

要素名 agreeok がセットされている場合、同意します が表示されます。

.noexist

入っていなければ表示

要素に何も入っていなければ表示になります。

						[$agree.exist]同意します[/$agree.exist]
[$agree.noexist]同意しません[/$agree.noexist]

要素名 agree が空っぽな場合、同意しません が表示されます。

ライセンスコードについて

ライセンスコード購入のメリット

通常、無料ダウンロードのままご利用いただく場合、コピーライトの表示が必須ですが、ライセンスコードを別途購入・設置していただくことで、ライセンス表示を外すことが可能です。
ライセンスコード購入から、ライセンスコードファイルをご購入可能です。

ライセンスコードファイルの設置

ライセンスコードをご購入いただきますと、ZIPファイルがメール添付にて送られます。これを解凍し、該当のフォルダに入っている LICENSE_CODE というファイルを、既存の libs ディレクトリの中にアップロードしてください。
正常にライセンスコードファイルが認識されると、テンプレートからコピーライト表記を削除してもエラーにならなくなります。(※自動的に表示されなくなるわけではありません)

ライセンスコードファイルのアップロード先
/topics/libraries/LICENSE_CODE

ライセンスコードファイルは設置個所ごとに別々のライセンスコードをご購入いただき、それぞれの LICENSE_CODE ファイルをアップロードする必要がありますのでご注意下さい。

  • ライセンスコードファイルの中身はご注文ごとに違うコードデータになります。
  • ご利用規約に違反された場合、規約に則り厳重な罰則がございますので十分ご注意下さい。

プログラムが動かない!

上記設置マニュアルどおりに設定してもサーバ環境などにより動作しない場合も考えられます。
設置マニュアル通りに設定しているのにうまく動かない場合は、まずはユーザー掲示板で同じようなトピックが過去にないか検索してみてください。
尚、情報を一般公開できない、またはお急ぎの場合などは、プレミアム会員専用のダイレクトサポートのご利用をお勧めいたします。

プレミアム会員のご紹介