Snow-Materia > Relm & Jinny > スキンのシステム


Page Guide
Anchor
はじめに
スキンというものについて。
基本システム
最も基本的で重要なルール。
共通の変数・条件
全てのスキンで共通に使える変数。
メイン画面
メイン画面の構成とかルールとか。
フォーム画面
フォーム画面の構成とかルールとか。
カタログ画面
カタログ画面の構成とかルールとか。
リスト画面
リスト画面の構成とかルールとか。
実際に変えてみる?
実例を挙げて説明していきます。直感でわかるかも。

Preamble

このページでは、 スキンのシステム(仕様ルール)を説明していきます。

仕様書なので、長いです。ごめん。

スキンの配布については、前の前のページの スキンの配布・リンク のページをご覧ください。

スキンの選択・スキンデザインの変更については、前のページの スキンの選択・変更 のページをご覧ください。


Contents

はじめに

Relmの中のデザインは、ほとんどHTMLのスキンと、CSS(スタイルシート)ファイルを使っています。

CGIの中をいじらなければデザインを変えられないのは、あまり変える必要のない、管理画面、HowTo、アイコン一覧などです。しかし、それらの部分も、ソースのヘッダー部分はフォームかメイン画面と共通で、class指定もしてあったりするので、ある程度は自由が利くと思います。スタイルシートの変数みたいなものです。スタイルの設定内に、.(ドット)+○○(適当な名前)の形で指定。その後、適当なタグの中に、class="○○"と書くと適用されます。

例えば、スタイル設定(headとか、cssファイル)内に、

.abc{font-size:11pt;color:#ff8080;}と書いて、文章内に、ライチー・エッチー・<font class="abc">イヤバカン♪</font>と書くと、ライチー・エッチー・イヤバカン♪となる仕組み。

いくつも同じスタイルを使いたいとき、設定1つでできるので、大変便利です。…例文については聞かないで下さい。

HTMLで制御できない部分はCGIの設定ファイルのところでいじりくります。スレッドを左右交互に並べたり、レス○個ごとにタグを入れたり、投稿が新しいときにタグを入れたりなど。

ということで、RelmではHTMLのスキンのシステムさえ理解できれば、かなり自由度の高いデザインを組むことができます。シンプルにするのもゴージャスにするのも、あなた次第です。

それでは、次からスキンの基本的なシステムについて紹介していきます。

「面倒だ!実際にいじりながら覚えるぜ!」って方は一番下に飛んでください(笑)

基本システム

s*m では、どのCGIでもスキンはほとんど同じようなシステムなので、慣れてる人はここは飛ばして読んでくれてよいです(笑)。

<!--○○_START--> ~ <!--○○_END-->
この部分は、スキンのシステム上、1セットで、なくてはならないものです。ヘッダー部分、メインソース部分、スレッド部分、フッター部分、など、ソースの上での大きな「段落」を分けるキーみたいなもの。片方のタグだけでも消すと機能しなくなるので、注意してください。1スキンにつき1セットだけあります。
<!--△△--> ~ <!--/△△-->
これで囲まれた部分は、条件や状態に応じて、囲まれた中のソースを表示させたり、抜き取ったり、はたまた連続したり繰り返したり、する部分です。たとえばアニメーションなら、<!--ANIMATION-->~<!--ANIMATION-->の中が、あり・なしで、表示されたり、非表示になったり、する感じ。こちらは、基本的に何セットでも使えます。
<!-- ※ ……… -->
これの形の部分は、CGIで表示されるときは抜かれる、コメント文です。………の部分は任意。スキン改造時に、スキンの説明するときの注釈など、好き勝手に使ってください。
$xxxx(xxxは任意のアルファベット)
これを、スキンのそこかしこで見つけることができます。これは「変数」といって、そのときどきで、場所と条件にあう、適当な値がCGIから代入される文字列です。場所によって代入される変数とされない変数があるので、よく理解してください。例えば、スレッドの親部分で、$COMMENTと書けば、親投稿者のコメントが、レス部分で $COMMENT と書けば、返信した投稿者のコメントが代入されます。でも、他の、スレッド以外の部分で$COMMENTと書いても代入はされません。
/*XX_XX*/
JavaScript内専用で使われる、↑の変数なようなもの。条件に合ったときにスクリプトが代入されます。消さないで。

以上を踏まえた上で、次から各スキンごとの細かいシステムを解説していきます。


共通の変数

全てのスキンで共通に、どこでも使える基本の変数・条件などをまとめて。これら以外の変数などは、使える場所や条件があります。

共通の変数・条件(閉じタグ省略)

<!--ICON--> ~ <!--/ICON-->
アイコンが使えるとき、中を表示
<!--FONT--> ~
フォントカラーが使えるとき、中を表示
<!--COLOR--> ~
その他のカラーが使えるとき、中を表示
$script
CGIスクリプトのアドレス
$title
タイトル
$home
ホーム
$target
フレームを使ったときにターゲットを指定
<!--FORMINPUT-->
拡張フォーム要素(<input type="hidden" ~>)
<!--COMINPUT-->
基本フォーム要素(<input type="hidden" ~>)
$FORMDATA
拡張フォームデータ(&name=value)
$COMDATA
基本フォームデータ(&name=value)(view,sort,sform,ntresの各要素)
$PASS
パスワード
$WORD
検索ワード
$PAGE
○ページ
$VIEW
閲覧モード(ノーマル・カタログ・サムネイル、など)
$SORT
ソート順(投稿順/レス順)
$NTRES
瞬速レス(ON/OFF)
$SFORM
スレッドレスフォーム(ON/OFF)
$LOGNO
ログNO
$LOGMO
コメントNO

フォーム系共通の変数(スレッド/レイヤーレスフォーム含む)

<!--ICON_SEL--> ~ <!--/ICON_SEL-->
アイコンの設定数分中を繰り返す
$icon1
アイコンの名前
$icon2
アイコンファイル
<!--FONT_SEL--> ~ <!--/FONT_SEL-->
フォントカラーの設定数分中を繰り返す
$font1
フォントカラー名
$font2
フォントカラー
<!--COLOR_SEL--> ~ <!--/COLOR_SEL-->
その他のカラーの設定数分中を繰り返す
$color1
その他のカラー名
$color2
その他のカラー
<!--PREVIEW--> ~ <!--/PREVIEW-->
プレビューが使える時、中を表示。
$se
select内で、要素がデータに合った時、 selected を代入
$ch
checkbox・radio内で、要素がデータに合った時 、 checked を代入
$c_n
クッキー・データに入ってる名前
$c_m
クッキー・データに入ってるメールアドレス
$c_u
クッキー・データに入ってるURL
$c_t
データに入ってるタイトル
$c_c
データに入ってるコメント
$c_i
クッキー・データに入ってるアイコン
$c_f
クッキー・データに入ってるフォントカラー
$c_b
クッキー・データに入ってるその他のカラー
$c_p
クッキー・データに入ってるパスワード


メイン画面

メイン画面のスキン($l_skin='l_skin.html')は、次のような構成になっています。

<!--HEAD_START-->
ヘッダー部分
<!--HEAD_END-->
---------------------------------------------------
	<!--BODY_START-->
	ここからメインソース
	---------------------------------------------------
	<!--PAINT_START-->
	アプレット選択のフォーム部分
	<!--PAINT_END-->
	---------------------------------------------------
	<!--PARENT_START-->
	ここから親スレッドのソース部分(繰り返す)
	---------------------------------------------------
		<!--PIECE_START-->
		レスコメントのソース部分(繰り返す)
		<!--PIECE_END-->
		---------------------------------------------------
		<!--KAKIKAKE_START-->
		描きかけ状態のときのソース部分
		<!--KAKIKAKE_END-->
	---------------------------------------------------
	ここまで親スレッドのソース部分
	<!--PARENT_END-->
	ここまでメインソース
	<!--BODY_END-->
---------------------------------------------------
<!--FOOT_START-->
フッター部分
<!--FOOT_END-->
---------------------------------------------------
<!--LAYER_FORM_START-->
レイヤーフォームのソース部分
<!--LAYER_FORM_END-->

各○○解説

フォームスキン専用で、共通の変数

変数・条件(閉じタグ省略)

<!--MASTER-->~
親の投稿・編集のとき、中を表示
<!--USER-->~
返信の投稿・編集のとき、中を表示

<!--HEAD_START--> ~ <!--HEAD_END-->

ヘッダー部分。他のCGI専用画面にも適用される共通の部分をここに書きます。<BODY>タグまで最低でも書いておいてください。

なお、// ここから下のスクリプトはあまりいじらないようにと書いてあるとこより下のスクリプト部分はあまりいじらないこと。

$CSS
設定ファイルで設定したCSSファイル
$BGROUND
設定ファイルで設定した背景など
/*LAYER_PREVIEW*/
設定の $lpreview の値を代入
/*AUTO_SET*/
自動クッキー保存機能を使うとき、setck(); を代入 ($autocook)
/*LAYER_AUTO_SET*/
〃 と、レイヤーレス機能を使うとき、setckel(); を代入。自動クッキー保存機能を使うときは、書き出すHTMLの<BODY>タグ内にonload="getckel();"というクッキー呼び出しSCRIPTが自動で挿入されます。

<!--BODY_START--> ~ <!--BODY_END-->

メイン画面全体の、一般ソース部分。<BODY>より下のデザインの部分をほとんど全部ここに書きます。スレッド・アプレット等の部分も一応ここに含まれますが、<!--PARENT_START-->~<!--PARENT_END-->等の中に書く必要があります。これを置く箇所は、このBODY_~の中ならどこでもいいです。

$ID
お絵描き送信後のIDの値かコメント番号を代入
<!--WRITE-->
書き込み・アップができるとき、中を表示
<!--OLD-->
過去ログが見れるとき、中を表示
<!--EDIT_DELETE-->
編集・削除・管理モードのとき、中を表示
<!--NORMAL-->~
通常モードの閲覧のとき、中を表示
<!--CATALOG-->~
カタログモードの閲覧のとき、中を表示
<!--LIGHT-->~
ライトサムネイルモードの閲覧のとき、中を表示
<!--LIST-->~
リスト一覧モードの閲覧のとき、中を表示
<!--NOIMAGE-->~
イメージ無しモードの閲覧のとき、中を表示
<!--SORT_RES0-->~
ソートが投稿順のとき、中を非表示
<!--SORT_RES1-->~
ソートがレス順のとき、中を非表示
<!--THREAD_FORM0-->~
スレッドレスモード OFF のとき、中を非表示
<!--THREAD_FORM1-->~
スレッドレスモード ON のとき、中を非表示
<!--NOTIME_RES0-->~
ノータイムレス OFF のとき、中を非表示
<!--NOTIME_RES1-->~
ノータイムレス ON のとき、中を非表示
<!--SEARCH-->~
検索モードのとき、中を表示
$sao0
and 検索だった場合、checkedを代入
$sao1
or検索だった場合、checkedを代入
$sao2
name検索だった場合、checkedを代入
$sao3
and検索だった場合、selectedを代入
$sao4
or検索だった場合、selectedを代入
$sao5
name検索だった場合、selectedを代入
$FOUNDS
(検索にひっかかった)全体の件数
$TOP
このページの一番上に表示しているのは全体の○件目
$END
このページの一番下に表示しているのは全体の○件目
<!--BACK-->~
前(新)のページがあるとき、中を表示
<!--NEXT-->~
次(古)のページがあるとき、中を表示
$PAGE-1
(今のページ - 1) を計算して代入
$PAGE+1
(今のページ + 1) を計算して代入
<!--ANCHOR-->~
スレッド数分、中のソースを繰り返す
$LOGNO
そのスレッドの投稿NO
$NAME
そのスレッドの投稿者名
$TITLE
そのスレッドの投稿タイトル
<!--SELECT_PAGE-->~
全ページ数分、中のソースを繰り返す
$PAGE
ページ数を代入
$cl
今のページのとき、設定の $selstyle の値を代入

<!--PAINT_START--> ~ <!--PAINT_END-->

お絵描きができるときの、アプレットの選択フォームなどの部分。ほとんどフォームタグなので、ある程度のHTMLがないと、編集は難しい?「Shi-Painter」を「しぃペインター」にするなど、タグの外を変えるくらいは結構楽。

<!--APPLET-->~
アプレットを使うときだけ、中を表示
<!--PAINTBBS-->~
PaintBBSアプレットを使えるとき、中を表示
<!--SHI_PAINTER-->~
しぃペインター・ノーマルを使えるとき、中を表示
<!--SHI_PAINTER_PRO-->~
しぃペインター・プロを使えるとき、中を表示
<!--ANIMATION_TRUE-->~
描画アニメを強制でつけるとき、中を表示
<!--ANIMATION_USER-->~
〃をユーザー選択にするとき、中を表示
<!--CANVAS_INPUT-->~
サイズを、textに書かせるとき、中を表示
$cvwidth
クッキー・デフォルトのキャンバスの幅
$cvheight
クッキー・デフォルトのキャンバスの高さ
<!--CANVAS_SELECT-->~
サイズが、select選択のとき、中を表示
<!--CANVAS_WIDTH_SEL-->~
キャンバスの幅の設定数分繰り返す
$cvwidth
選択させるキャンバスの幅
<!--CANVAS_HEIGHT_SEL-->~
キャンバスの高さの設定数分繰り返す
$cvheight
選択させるキャンバスの高さ
<!--QUALITY-->~
クオリティ機能を使うとき、中を表示
<!--QUALITY_SEL-->~
クオリティの設定数分繰り返す
$cquality
選択させるクオリティの値
$ch
条件にあったとき、checked を代入
$se
条件にあったとき、selected を代入

<!--PARENT_START--> ~ <!--PARENT_END-->

1スレッド・親記事のソース。1Pに、設定数($onepage)分、繰り返されます。カスタマイズするならメインの箇所でしょうか。

<!--LAYER_FORM-->~
レイヤーレスをONにしたときに表示されるソース部分。主にPARENT内で使いますが、一応PIECE内でも働きます
<!--THREAD_FORM-->~
スレッドレスをONにしたときに表示されるソース部分。主にPARENT内で使いますが、一応PIECE内でも働きます
<!--IMAGE-->~
イメージがあるとき、中を表示
<!--PCH-->~
PCHファイルがあるとき、中を表示
<!--CONTINUE-->~
コンティニューできるとき、中を表示
<!--ANIMATION-->~
アニメーションが見れるとき、中を表示
<!--QUALITY-->~
クオリティがあるとき、中を表示
<!--PAINT_TIME-->~
描画時間をつけるとき、中を表示
<!--RES-->~
返信ができるとき、中を表示
<!--POSITION_TOP-->~
画像の表示する位置が上のとき、中を表示 ($imgposition)
<!--POSITION_RIGHT-->~
画像の表示する位置が右のとき、中を表示
<!--POSITION_LEFT-->~
画像の表示する位置が左のとき、中を表示
<!--RESCUT-->~
レスデータが○件超えたとき、それまでの記事を表示させないで、変わりにこの中を表示 ($rescut)
$RYAKU
非表示にしている○件
<IMG_TAG>
イメージがあるときのタグ (<IMG>タグで代入)
・$DIR
データを置いてあるフォルダ ($logdir、$olddir~等)
・$IMAGE
イメージのファイル名
・$WIDTH
画像の幅
・$HEIGHT
画像の高さ
・$WIDHEI
画像の幅と高さがあるとき、代入 (width=○ height=○)
・$SIZE
イメージのファイルサイズ (○kb)
・$THUMB
サムネイルのファイル名
・$PCH
PCHアニメーションのファイル名
$QUALITY
クオリティ値
$PAINTTIME
描画時間
$APPLET
お絵描きに使用したアプレット

<!--PARENT_START--> ~ <!--PARENT_END--><!--PIECE_START--> ~ <!--PIECE_END-->

PIECE~部分は、返信コメントのソースです。返信された分だけ繰り返されます。代入される変数などは、親部分と子部分では同じなのが多いので、まとめて。

<ICON_TAG>
アイコンあるときのタグ (<IMG>タグ等で代入)
$IDIR
アイコンの置いてあるフォルダ ($icondir)
$ICON
アイコンのファイル名
$LOGNO
ログ番号
$LOGMO
コメント番号
<!--MAIL-->~
メールアドレスがあるとき中を表示
<!--URL-->~
URLアドレスがあるとき中を表示
$TITLE
題名
$NAME
投稿者の名前
$MAIL
メールアドレス
$URL
サイトのURLアドレス
$COMMENT
コメントメッセージ
$FONT_COLOR
文字色
$ETC_COLOR
その他の色
$IPADD
IPアドレス
$HOST
ホストアドレス
$AGENT
OS・ブラウザ情報など
$NEW_TAG
投稿が新しいとき、設定したタグを代入 ($newgif)
$DATE
日付そのまま (例: 2004/01/01(Thu)00:00:00)
$YEAR
20○年 (西暦から2000引いた数字)
$MONTH
○月
$DAY
○日
$WDAY
○曜日 (@wdays で設定した曜日名)
$HOUR
○時
$MIN
○分
$SEC
○秒
$KUGIRI1
区切り設定で指定した数ごとのレスデータにタグを代入
$KUGIRI2
区切り設定で 指定した数 ごとのレスデータにタグを代入、こちらは初期値が設定できます
$HUYASI
増殖設定で指定した数ごとのレスデータにタグを代入、 こちらはタグが増えていきます
$xxxxx
上級技なのですがログの拡張部分ETC、EXTENSIONに入ってるデータを代入できます。ログで&name=valueとなっていれば、ソースの$nameのところにvalue の値が入ります。$AGENTの代入も、このETCの機能です。

<!--KAKIKAKE_START--> ~ <!--KAKIKAKE_END-->

描きかけ状態のとき (フォームのkakikakeチェックをON)、この中のソースが代わりにスレッドのソースになります。使われる変数は、PARENT内と一緒です。

<!--FOOT_START--> ~ <!--FOOT_END-->

フッター部分。他のCGI専用画面にも適用される共通の部分をここに書きます。</BODY></HTML>タグまで書いておいてください。

$tyosaku
著作権

<!--LAYER_FORM_START--> ~ <!--LAYER_FORM_END-->

レイヤーレスフォームのソース部分。使われる変数は、フォーム系共通のものとレイヤー専用のものです。また<!--LAYER_FORM_START-->の後に、外部レイヤーJSファイル($layerjs='skin/layer.js')を読み込む<SCRIPT>タグが自動で入ります。

/*LAYER_GET_COOK*/
設定の $lcookget の値を代入
/*LAYER_SET_COOK*/
設定の $lcookset の値を代入


フォーム画面

フォーム画面のスキン($l_form='l_form.html')は、次のような構成になっています。

<!--HEAD_START-->
ヘッダー部分
<!--HEAD_END-->
---------------------------------------------------
	<!--WRITE_START-->
	↓ここからメインソース
	---------------------------------------------------
	<!--PAINT_START-->
	ペイント・アプレット関係の入ったフォームソース部分
	この中にPARENT部分を入れてもいいです
	<!--PAINT_END-->
	---------------------------------------------------
	<!--PARENT_START-->
	↓ここから親スレッドのソース部分
	---------------------------------------------------
		<!--PIECE_START-->
		レスコメントのソース部分(繰り返す)
		<!--PIECE_END-->
		---------------------------------------------------
		<!--KAKIKAKE_START-->
		描きかけ状態のときのソース部分
		<!--KAKIKAKE_END-->
	---------------------------------------------------
	↑ここまで親スレッドのソース部分
	<!--PARENT_END-->
	<!--FORM_START-->
	投稿フォームのソース部分
	<!--FORM_END-->
	---------------------------------------------------
	↑ここまでメインソース
	<!--WRITE_END-->
---------------------------------------------------
<!--FOOT_START-->
フッター部分
<!--FOOT_END-->

各○○解説

<!--HEAD_START--> ~ <!--HEAD_END-->

フォーム画面のヘッダー部分。使える変数などはメイン画面と同じです。

<!--WRITE_START--> ~ <!--WRITE_END-->

フォーム画面全体の、一般ソース部分。<BODY>より下のデザインの部分をほとんど全部ここに書きます。

<!--EDIT_DELETE--> ~
編集・削除・管理モードのとき、〃
<!--IMAGE--> ~
イメージがあるとき、中を表示
<!--PCH--> ~
PCHファイルがあるとき、〃

<!--PAINT_START--> ~ <!--PAINT_END-->

イメージデータや、アプレットの選択フォームなどを入れる部分。簡易的にステータスを変更したりする部分もここに。基本の変数・条件はメイン画面のPAINT_部分と同じなので、やや省略。

<!--STATUS--> ~ <!--/STATUS-->
状態(ステータス)を簡易的に変更するフォームのソースをこの中に。コンティニュー画面と親の編集画面のみ、有効になります。ここからステータスを変更できるのは下の4つ。
<!--KAKIKAKE-->~
描きかけ機能が使えるとき、中を表示
<!--ANIMATION_USER-->~
アニメーションが見れるか、ユーザー選択できるとき、中を表示
<!--PAINT_TIME-->~
描画時間をつけるか、ユーザー選択できるとき、中を表示
<!--PASS_OFF-->~
コンティニューで新規投稿にパスがいるか、ユーザー選択できるとき、中を表示
$ch
条件にあったとき、checkedを代入
<!--UP_PAINT-->~
アップロードペイントが使えるとき、中を表示 ($uppaintuse)
<!--CONTINUE-->~
描画、画像、どちらかから、続きから描けるとき、中を表示
<!--IMAGE-->~
イメージがあるとき、中を表示
<!--PCH-->~
PCHファイルがあるとき、中を表示
$DIR
データを置いてあるフォルダ ($logdir、$olddir~等)
$IMAGE
イメージのファイル名
$WIDTH
画像の幅
$HEIGHT
画像の高さ
$WIDHEI
画像の幅と高さがあるとき、代入 (width=○ height=○)
$SIZE
イメージのファイルサイズ (○kb)
$THUMB
サムネイルのファイル名
$PCH
PCHアニメーションのファイル名
$PAINTTIME
描画時間
$APPLET
お絵描きに使用したアプレット

<!--PARENT_START--> ~ <!--PARENT_END-->

1スレッド・親記事のソース。メイン画面と違って、フォーム画面では繰り返されません。また、設定で、レスのときとかはメイン画面のをもってこれます($rskinuse)。コンティニュー画面などはこっちのスキンのソースになります。使える変数・条件などは、メイン画面のと同じです。

<!--PIECE_START--> ~ <!--PIECE_END-->

メイン画面と同じです。

<!--KAKIKAKE_START--> ~ <!--KAKIKAKE_END-->

メイン画面と同じです。

<!--FORM_START--> ~ <!--FORM_END-->

投稿・編集フォームのソース部分。使われる変数は、フォーム系共通のものとフォーム専用のものです。また<!--FORM_START-->の後に、($cookiejs='skin/cookie.js')($prevjs='skin/preview.js')の2つの外部JSファイルを読み込む <SCRIPT> タグが自動で入ります。

<!--UP--> ~
アップロード機能を使うとき、中を表示($uptype)。<form>タグ内に自動でenctype="multipart/form-data"が挿入されます。
<!--KAKIKAKE-->~
描きかけ機能が使えるとき、中を表示
<!--ANIMATION_USER-->~
アニメーションが見れるか、ユーザー選択できるとき、中を表示
<!--PAINT_TIME-->~
描画時間をつけるか、ユーザー選択できるとき、中を表示
<!--PASS_OFF-->~
コンティニューで新規投稿にパスがいるか、ユーザー選択できるとき、中を表示
/*GET_COOK*/
設定の $cookget の値を代入
/*SET_COOK*/
設定の $cookset の値を代入
/*PREVIEW*/
設定の $preview の値を代入

<!--FOOT_START--> ~ <!--FOOT_END-->

フォーム画面のフッター部分。


カタログ画面

カタログ画面のスキン($l_cata='l_cata.html')は、次のような構成になっています。

<!--HEAD_START-->
ヘッダー部分
<!--HEAD_END-->
---------------------------------------------------
<!--BODY_START-->
↓ここからメインソース
---------------------------------------------------
	<!--PAINT_START-->
	アプレット選択のフォーム部分
	<!--PAINT_END-->
	---------------------------------------------------
	<!--LINE_START-->
	↓ここから行部分のソース部分(繰り返す)
	---------------------------------------------------
		<!--CUT_START-->
		列部分のソース部分(繰り返す)
		---------------------------------------------------
		<!--KAKIKAKE_START-->
		描きかけ状態のときの列ソース部分
		<!--KAKIKAKE_END-->
		---------------------------------------------------
		<!--CUT_END-->
	---------------------------------------------------
	↑ここまで行部分のソース部分(繰り返す)
	<!--LINE_END-->
---------------------------------------------------
↑ここまでメインソース
<!--BODY_END-->
---------------------------------------------------
<!--FOOT_START-->
フッター部分
<!--FOOT_END-->

各○○解説

<!--HEAD_START--> ~ <!--HEAD_END-->

フォーム画面のヘッダー部分。使える変数などはメイン画面と同じです。

<!--BODY_START--> ~ <!--BODY_END-->

カタログ画面全体の、一般ソース部分。また、レイヤーレス、スレッドレス、ノータイムレス、プレビュー、の各種機能はカタログ画面では使えないので、ご理解を。使える変数などは、メイン画面のBODY部分と同じです。

<!--PAINT_START--> ~ <!--PAINT_END-->

お絵描きができるときの、アプレットの選択フォームなどの部分。これもメイン画面と同じです。

<!--LINE_START--> ~ <!--LINE_END-->

行部分のソース。この間に、CUT内のソースを書いてください。代入される変数は特にありません。

<!--CUT_START--> ~ <!--CUT_END-->

親記事の1カットのソース。メイン画面の、PARENT内の部分だと思ってください。使える変数もそれに同じ。設定した列数($catalog_x)分繰り返して、行部分に入ります。その行が設定した行数($catalog_y)分繰り返して、表示されます。つまり、この部分は1Pに全部で、行数 x 列数($catalog_x x $catalog_y)分、繰り返されることにます。

<!--KAKIKAKE_START--> ~ <!--KAKIKAKE_END-->

描きかけのとき、この中のソースが、列部分のソースになります。代入される変数などは、↑の CUT内と一緒です。

<!--FOOT_START--> ~ <!--FOOT_END-->

カタログ画面のフッター部分。


リスト画面

リスト画面のスキン($l_list='l_list.html')は、構成・システム的には、ほとんど全て、メイン画面と同じです。

では何が違うか、というと、次の通り。

これらのことにより、フレーム型にするときなど、メニュー部分をこの画面にしてやると都合がいいです。


実際にデザインを変えてみる

それでは、実際にデザインを変えてってみましょう。実例あげてった方が分かりやすいですからね。まあ、一から十までは説明できないので、0.5くらいまでを目標に。(ぇー…まず、DLすると同梱されている、skin/フォルダの中の、l_skin.html../cgi.css を開いてください。デフォルトのメインスキンのやつと、スタイルシートですね。

最初の状態で描きこみをしていくとこのようになります。

(サンプルイメージなので、リンクは効かないです)

ちなみにこの解説当時のスキン。

(あとでスキン変わるかもなので、違ったら適当に照らし合わせてください)

また、デザインを変えてるとき、そのHTMLをブラウザで開きつつ確認できますが、最初はスタイルシートのリンク部分が、<link rel="stylesheet" type="text/css" href="$CSS">と、$CSSと なってるので、../cgi.cssなどとやればわかりやすいかも。

それでは、デザインをちょっとずつ変更していってみましょう。

投稿者の名前にも選んだ文字色をつける

スキン345行目付近から、親記事のソースが始まります。で、422行目に次のような記述があるので書き換えます。

<font class="name" title="$AGENT">$NAME</font>
↓
<font class="name" title="$AGENT" color="$FONT_COLOR">$NAME</font>

ちなみに、レスのは463行目にあるので、同じように。class="name"の クラス指定は、../cgi.css53行目にあります。同じように、題名や日付のフォントカラーなども簡単に変えられるので、いろいろ試してみてください。

タイトル枠に選んだ背景色をつける

スレッドのテーブルの上部に、タイトルの部分がありますが、そこの背景色に、投稿者が選んだ背景色を置いてみましょう。変えるところは、361行の、TDタグの中です。

<TABLE cellspacing=0 cellpadding=5 class="rtable">
<TR><TD class="rtd">
↓
<TABLE cellspacing=0 cellpadding=5 class="rtable">
<TR><TD class="rtd" bgcolor="$ETC_COLOR">

しかし、せっかく色をつけたのに、今のままでは色が合いません。同系色や反対色では結構合うのに、その間は合わない色も多いです。

対応策としては、周りの色を灰色にしたり、(彩度ないのはどの色も合います)周りの色も選択色にしてしまいましょう。

ここでは、周りの枠や題名の色を選択色に変えてみます。ついでに、レスの仕切り棒(HR罫線)の色もレスの色にしてみます。説明は同じようなものなので、省略。

スタイルを変えてみる

結構変わってきましたが、ちょっと枠が濃い気がするので、borderスタイルを変えてみます。

点線にしてみましょうか。タイトル枠も、背景に画像を使って淡くしてみましょう。(img/mesh.gif)

変えるところはだいたいさっきのとこです。class="rtd"のある TDタグの中と、HR罫線ですね。

<TABLE cellspacing=0 cellpadding=5 class="rtable" style="border-color:$FONT_COLOR;">
<TR><TD class="rtd" bgcolor="$ETC_COLOR" style="border-color:$FONT_COLOR;">
↓
<TABLE cellspacing=0 cellpadding=5 class="rtable" style="border-color:$FONT_COLOR; border-style:dashed;">
<TR><TD class="rtd" bgcolor="$ETC_COLOR" style="border-color:$FONT_COLOR; border-style:dashed;" 
background="img/mesh.gif">

メインタイトルの位置を変える

*sketch bookとなってる、メインタイトルの位置を変えてみます。今は、「*sketch book」とメニューの「Home/ Reload/ …」などが、TABLEタグで1行にされてるので、TABLEタグとってみましょう。

77行目(上) と 145行目(下)あたりです。

<table cellspacing=0 cellpadding=0 width="100%"><tr><td>
<a href="$script" title="最初のページへ">
<font class="maintitle">*$title</font></a>
</td><td align=right>
↓
<div align="left">
<a href="$script" title="最初のページへ">
<font class="maintitle">*$title</font></a>
<hr size="1" class="hra">
</div>
</td></tr></table>
<hr size="1" class="hra">
↓
<hr size="1" class="hra">

スタイルシートを変える

これくらいやっただけですが、けっこー変わりましたね。仕上げに、スタイルシートをちょっとだけいじろうと思います。スレッドレスフォームを開いたらフォームの色が合わなかったのでwついでにHR罫線のスタイルも変えてみます。

まず、../cgi.cssを開いてみてください。37行目に/* フォームタグ系スタイル */というのと、48行目に 「.hra { ~ } /*HR罫線*/」 というのがあります。

/* フォームタグ系スタイル */
input,textarea,select{
	font-family:MS UI Gothic;
	background-color:#ffffff;
}
input,textarea{
	border-width:1px;
	border-style:solid;
	border-color:#ccddee;
}
↓
input,textarea,select{
	font-family:MS UI Gothic;
	background-color:#ffffff;
	color:#aabbcc;
}
input,textarea{
	border-width:1px;
	border-style:dashed;
	border-color:#ccd5dd;
}
/*HR罫線*/
.hra{
	color:#ccddee;
	height:1px;
	border:1px solid #ccddee;
}
↓
.hra{
	color:#ccddee;
	height:1px;
	border:1px dashed #d9e0e6;
}

おまけ

最後に、一番簡単にデザインを変わった感じに見せる方法を。それは、壁紙を変えることです。

部屋などでも、置物は前と同じでも、壁紙やカーテンを変えるだけで、雰囲気がすごく変わりますよね。それと同じで、ページの雰囲気は背景の壁紙や色で大きく変わります。それから文字揃え、フォントの大きさ、カラー、余白、などでしょうか。

そんなわけで、ちょっと試しに背景をこのページのものに変えてみましょう。

body{
	border-top:12 solid #e6f3fc;
	border-left:10 solid #e6f3fc;
	border-right:2 solid #e6f3fc;
	margin:25 0 0 0;
	text-align:center;
	background:#ffffff url() no-repeat fixed 100% 100%;
	・・・
↓
body{
	margin:32 4 0 102;
	text-align:right;
	background:#ffffff url(../img/frame_.jpg) 
	no-repeat fixed -100 50%;
	・・・

こんなんなりました。

そんなわけで、デザインの基本的なところをちまちまいじって紹介してみましたが、いかがでしたでしょうか?少しでもスキンのイメージを感じとってもらえたら、してやったりです。

あ、一応、上で実際に変えた後のスキンも置いておきます。

使用前
log
skin
css
使用後
log
skin
css

…とりあえず、自分であれこれいじってみることが、一番早く理解できる近道なので。(笑)

途中、迷子になることもあるかもしれませんが、恐れることなく、周りをよく見ながら、順を追って進んで行ってくれれば、結構道は開けるものです。貴方ならではの、素敵なデザインを造ってみてください。

追記

ver2.0から、ブラウザからスキンのデザインの変更ができるようになりました。管理画面のスキンデザインの変更というところからです。また、スキンの選択からは、スキンフォルダに入ってる、スキンファイルから選んで、デフォルトのスキンにすることができます。どちらも、選択リストに並ぶのは、ファイル名に以下のルールがあります。

メインスキン ($r_skin)
「l_skin」 から始まるHTMLファイル
カタログスキン($c_skin)
「l_cata」 から始まるHTMLファイル
フォームスキン($w_skin)
「l_form」 から始まるHTMLファイル
リストスキン ($l_skin)
「l_list」 から始まるHTMLファイル
ペイントスキン($p_skin)
「l_paint」から始まるHTMLファイル
スタイルシート($css)
「 .css」で拡張子が終わるファイル

例えば、「l_skin_ten.htm」 のファイルはリストに加えられますが、「l_ten_skin.htm」 や 「l_skin_ten.txt」 の名前のファイルは、加えられません。

スキンデザインの変更では、分割タイプを選ぶと、<!--○○_START--> ~ <!--○○_END-->で、ソースが分割されます。

つまり、「ここは親スレッドのソース」、「ここはレイヤーフォームのソース」、などと、役割で分けて編集できるので、一括で見るよりも分かりやすいかと思います。

これで、デザイン作成が、少しでも楽に、楽しくなってくれれば、嬉しいです。



Page Information
Toc
Relm
Prev
Next
First
2003.12.18
Last
2005.01.21