localhost で Serene Bach

  以前の Perl のアンスンストール



※ 必ずしも必要ではありませんが、これを機に一からインストールしたい場合

プログラムの追加と削除よりアンインストールします。

( 以下の削除では再起動を要求されました )




  Active Perl のインストール



http://www.activestate.com/

より辿り、以下をダウンロードして下さい
( 途中に、氏名やメールアドレスを入力するフォームが現れますが、「NEXT」でかまいません。

以下からでも取得できます( 古いバージョンもあります )

http://downloads.activestate.com/ActivePerl/
( 以前の Perl のアンインストール )





ActivePerl-5.8.8.820-MSWin32-x86-274739.msi を実行します
( ※ 結構時間がかかります )





PPM でバージョンを確認
( 久しぶりにインストールしたら PPM が GUI になってました --> 820 )

コマンドラインバージョンは、ppm-shell.bat らしいですが、
なんか表示が変です・・・

( ※ 一番下のスナップショットは、817 のものです )








  localhost の WWW サーバー

AN HTTPD を使用します。
問題を避ける為、Perl のパスを絶対指定します



設定ガイドライン

Serene Bach 用に sb という仮想ディレクトリ( エイリアス ) を作成します






  Serene Bach のインストール

http://serenebach.net/download/old.html より正式版 zip アーカイブの euc 版をダウンロードします。

解凍して、sb 仮想ディレクトリに以下のように設置します

main と ext は新規に作成


main の中


init.cgi の内容を以下のように変更し、addlib.cgi を作成して必要な内容を書き込みます
( euc システムなので、euc で書き込んで下さい )

init.cgi
  
#!/usr/bin/perl
# 
# Serene Bach - weblog management system
# == scripted by Takuya Otani =========
# == copyright (C) SimpleBoxes 2004 ===

# --- Global Configuration ---
DataDir ./data
DataSuffix .cgi

# ヘルプドキュメント -> URI
HelpSrv http://localhost/sb/doc/

# 管理画面用のテンプレートファイル -> URI
TempSrv http://localhost/sb/lib/resource/

# 管理画面用のテンプレートファイル -> ディレクトリ
# ( cgi からの相対パス )
TempDir ../lib/resource/

# ログイン時にクッキーの扱いを区別する為
WeblogId lightbox

# プラグインファイル -> ディレクトリ
# ( cgi からの相対パス )
PluginDir ../plugin/

AdminCookieDay 7
  


addlib.cgi
  
use lib qw(../lib ../lib/lang ../ext);
1;
  

install.cgi を実行します。

Jcode.pm が無いと以下のようなエラーがでます( Perl が新規インストールならば必ず出ます )
ppm でインストールして、再度 install.cgi を実行します



search jcode モジュールの存在確認
  
ppm> search jcode
Searching in Active Repositories
  1. Jcode [0.88] Jcode
  

install jcode でインストール
  
ppm> install jcode
====================
Install 'jcode' version 0.88 in ActivePerl 5.8.8.817.
====================
Downloaded 162618 bytes.
Extracting 24/24: blib/arch/auto/Jcode/Unicode/Unicode.lib
Installing C:\Perl\site\lib\auto\Jcode\Unicode\Unicode.bs
Installing C:\Perl\site\lib\auto\Jcode\Unicode\Unicode.dll
Installing C:\Perl\site\lib\auto\Jcode\Unicode\Unicode.exp
Installing C:\Perl\site\lib\auto\Jcode\Unicode\Unicode.lib
Installing C:\Perl\html\site\lib\Jcode.html
Installing C:\Perl\html\site\lib\Jcode\Unicode.html
Installing C:\Perl\html\site\lib\Jcode\Unicode\Constants.html
Installing C:\Perl\html\site\lib\Jcode\Unicode\NoXS.html
Files found in blib\arch: installing files in blib\lib into architecture depende
nt library tree
Installing C:\Perl\site\lib\Jcode.pm
Installing C:\Perl\site\lib\mac_install.pl
Installing C:\Perl\site\lib\win_install.pl
Installing C:\Perl\site\lib\Jcode\Constants.pm
Installing C:\Perl\site\lib\Jcode\H2Z.pm
Installing C:\Perl\site\lib\Jcode\Tr.pm
Installing C:\Perl\site\lib\Jcode\Unicode.pm
Installing C:\Perl\site\lib\Jcode\_test.pl
Installing C:\Perl\site\lib\Jcode\Unicode\Constants.pm
Installing C:\Perl\site\lib\Jcode\Unicode\NoXS.pm
Successfully installed jcode version 0.88 in ActivePerl 5.8.8.817.
  

インストール終了後は、install.cgi を削除して下さい



  管理画面の基本設定

情報サイトを想定しているので、ブログとしての設定を変更します

1) 編集設定
● ping 先を削除する
● ping送信 : 送信しない
● コメント : 受け付けない
● トラックバック : 受け付けない
● トラックバック送信 : 利用しない

2) 環境設定->表示設定 の 並び順設定
● 記事全体と、アーカイブを日付順にする



  テンプレートの基本設定

のテンプレートは、いろいろな ブログCMS で利用可能です。

http://www.koikikukan.com/archives/2005/11/18-010000.php よりダウンロード
( 先頭の ZIP形式 を選択 )

● 管理画面の テンプレート -> インポート でアップロードします

● リストで、koikikukan を選択して下さい。

↓ テンプレートで、koikikukan をクリックして見栄えの変更を行います

● HTMLテンプレートの body タグの中のクラスを layout-two-column-liquid-left に変更します

2カラム仕様の変更に伴ってコンテンツの位置変更が必要です
  
<div id="links-right-box">
<div id="links-right">

から

</div><!-- /links-right -->
</div><!-- /links-right-box -->

の間にある記述を 左側(left) に移動させます
  

この時点で再構築を行い、1件投稿してレイアウトを確かめてください。

Copyright
  
<div id="footer-liquid">Copyright &copy; 2006 lightbox. All Rights Reserved.</div>
  

リンクの文字色
  
/* リンク */
a,
a:link,
a:visited {
    color: BLUEVIOLET;
    text-decoration: none;
}
a:hover {
    color: BLUEVIOLET;
    text-decoration: underline;
}
a:active {}
  

サイドメニューの明細のフォント ( リンク系の文字色はここではありません )
  
/* サイドメニュー */
.side {
    margin: 3px 0 20px;
    background: none;
    color: #444444;
    font-size: 12px;
    line-height: 150%;
}
  

タイトル部分背景色
  
/* タイトルバナー */
#banner {
    padding: 15px;
    border-bottom: 1px solid #666699;
    color: #999999;
    background: forestgreen;
    background-position: right top;
    background-repeat: no-repeat;
/*    background-image: url(".gif");*/
    text-align: left;
    height: 70px;
}
  




  IE 用 CSSテンプレート のチューニング

画面を小さくした時に崩れない為の変更です

CSS テンプレートの先頭を以下のようにして下さい

  
@charset "{site_encoding}";

#box {
    position: absolute;
    left: 0px;
    top: 0px;
    right: 0px;
}
#banner-header {
    width: 100%;
}
  



  ソースコードの表示を支援する改造

本文入力が狭いので行数を変更します

lib\sb\Admin\Entry.pm
  
sub BODYROW_STD  (){ 30 };
  


指定キーワード範囲の行をソースコード扱いします

lib/sb/Content.pm
  
sub _body_text { # 本文・続き・概要
	my $cms   = shift;
	my $entry = shift;
	my %var   = @_;
	if ($entry->body ne '') { # 本文
		my $body = $entry->formated_body;

		# ここから改造コード
		my @line = split(/\n/, $body);
		my $i;
		my $flg = 0;
		for ($i = 0; $i <= $#line; $i++) {
			if ($line[$i] =~ /^\@S/ ) {
				$flg = 1;
				$line[$i] = "<PRE class=\"src_code\">";
				next;
			}
			if ($line[$i] =~ /^\@E/ ) {
				$flg = 0;
				$line[$i] = "</PRE><br />";
				next;
			}
			if ( $flg == 1 ) {
				$line[$i] =~ s/<br \/>//g;
				$line[$i] =~ s/&/&/g;
				$line[$i] =~ s/</</g;
				$line[$i] =~ s/>/>/g;
				open(OUT, "> datafile.txt");
				print(OUT "/" . $line[$i] . "/" );
				close(OUT);
			}
		}
		for ($i = 0; $i <= $#line; $i++) {
			if ($line[$i] =~ /\[\[/ ) {
				$line[$i] =~ s/\[\[/<SPAN style='color:red;font-weight:bold'>/g;
			}
			if ($line[$i] =~ /\]\]/ ) {
				$line[$i] =~ s/\]\]/<\/SPAN>/g;
			}
		}
		$body = join("\n", @line);
		# ここまで改造コード

以下オリジナルコードのまま
  

↑2006/09/10 追加
※ [[と]] の範囲が赤くなります
サンプルページ

CSS テンプレートに以下を追加します

  
.src_code {
    margin-left:20px;
    margin-right:20px;
    border-style:solid;
    border-width:1px;
    padding:10px;
    width:auto;
    background-color:#E6E6FA;
    font-weight:bold;
}
  

入力は以下のようになります





  カテゴリツリーの改造

件数表示をしないようにし、エントリの無いカテゴリはリンクせずに強調表示する

lib\sb\Content.pm
  
sub _category_tree { # カテゴリーツリー
	my %param = (
		'cat'    => [],
		'branch' => undef,
		'num'    => {},
		'no_num' => undef,
		@_
	);
	my $list = '';
	foreach my $cat ( @{$param{'cat'}} ) {
		next if ($cat->get_option('list') == 1);
		next if (!defined($param{'branch'}) and $cat->main ne '');
		next if ( defined($param{'branch'}) and $cat->main ne $param{'branch'});
		my $text = $cat->text; # code by Fuco. Thanks!
		$text = ($text ne '') ? ' title="' . sb::Text->entitize($text) . '"' : '';

# エントリの無いカテゴリはリンクせずに強調表示の為のコメント化
#		$list .= '<li><a href="' . $cat->cat_url . '"' . $text . '>' . $cat->name . '</a>';

# 追加の始まり
		if ( int($param{'num'}->{$cat->id}) == 0 ) {
			$list .= '<li><b>' . $cat->name . '</b>';
		}
		else {
			$list .= '<li><a href="' . $cat->cat_url;
			$list .= '"' . $text . '>' . $cat->name . '</a>';
		}
# 追加の終わり

# エントリ数非表示の為のコメント化
#		$list .= ' (' . int($param{'num'}->{$cat->id}) . ')' if (!$param{'no_num'});

		if ($cat->sub ne '') {
			$list .= "\n" . '<ul>';
			$list .= &_category_tree(
				'cat'    => $param{'cat'},
				'branch' => $cat->id,
				'num'    => $param{'num'},
				'no_num' => $param{'no_num'},
			);
			$list .= '</ul>';
		}
		$list .= '</li>' . "\n";
	}
	return($list);
}

  



  タイトル入力の横に「公開して保存」のボタンを設置

lib\resource\ja\entry.html の46行目あたり
  
<dd>
<input 
	type="text"
	name="entry_title"
	id="entry_title"
	value="{sb_entry_title}"
	size="50"
	class="text"
/>
<input
	type="submit"
	name="open_save"
	value="公開して保存"
	class="button"
	style='width:100px;'
/>
</dd>
  

二つ目の INPUT タグを追加します



  プラグイン

http://serenebach.net/download/plugins.html よりダウンロードして

「並べ替え」プラグインを実装します。
( ※ このプラグインは実際の運用で必ず必要になるのでインストールして下さい。 )



  テンプレートパッケージを作成する

>sb1.14Rのutilフォルダ内にある、make_templateフォルダのツールを使用します。
>詳しくはmake_temp.plのソースに書かれていますのでそちらを参照してください。

ローカルでコマンドラインより perl.exe make_temp.pl として作成するので、
sb1.14R を解凍した make_templateディレクトリ内で作業します
( http://serenebach.net/download/sb.html#template よりダウンロード )

# info.txt : テンプレート名などの情報
SHIFT_JIS で保存

# base.html : ベース HTML テンプレート
現在のベースHTMLテンプレート(EUC で保存)

# style.css : CSS テンプレート
現在のCSSテンプレート(EUC で保存)

# entry.html : 個別エントリー用 HTML テンプレート
空にします

# __template/ : テンプレート用画像パーツなどを収めるディレクトリ
画像パーツがなければ空にします

出力ファイル名はソースコードを変更

  
my $output = 'lightbox.txt'; # 出力ファイル名
  

info.txt
  
Name: lightbox
Author: lightbox
Address: http://hp.vector.co.jp/authors/VA003334/
Version: 0.00

テンプレートパッケージ作成テスト
  
※ Name が管理画面での名前になります



  ※ 追記 : 最新エントリーリストの日付表示削除

lib\sb\Content.pm
  
sub _list_latest { # 最新エントリーリスト
	my $cms = shift;
	my %var = @_;
	my @linklist = ('<ul>');
	foreach my $list ( @{$var{'entryinfo'}{'latest'}} ) {
		my $subj = $list->subj;
		my $url = $list->permalink(
			'cat'=>$var{'cat'},
			'type'=>($var{'mode'} eq 'mob') ? 'Mobile' : 
			$var{'conf'}->value('conf_entry_archive')
		);
		my $date = sb::Time->format(
			'time'=>$list->date,
			'form'=>$var{'conf'}->value('conf_dateinlist'),
			'zone'=>$var{'conf'}->value('conf_timezone')
		);
#		push(@linklist,qq|<li><a href="$url">$subj</a>$date</li>|);
		push(@linklist,qq|<li><a href="$url">$subj</a></li>|);
	}
	push(@linklist,'</ul>');
	$cms->num(0);
	$cms->tag('latest_entry_list'=>join("\n",@linklist));
	return (@linklist > 2) ? 1 : 0;
}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加




SQLの窓  天気  IT用語辞典
Yahoo!ニュース  マルチ辞書
PHP マニュアル  Google URL短縮 


フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ