複数ページを作成する準備

構造を決める

複数ページ作成用のサンプルなので、トップページの他に2ページ分を作成する。
解説は、トップページに埋め込む
・トップページは、サイドバーの無いタイプ
※ナビゲーションメニューでのページ移動ができるようにする


jsonファイルの設定を前回のものから修正する
前回のphpのパーツ化で作成したjsonファイルの構成を見直す。これは、ページ内のナビゲーションをサイドに固定したくないため。後でのカスタマイズがやりやすくなるように考える


_site_structure.jsonを新設

site_name:サイトの名前(これは必要ないかもしれない)

page_nav_position:今までサイドに固定していたページ内のindexの表示場所を選択できるようにする
①side_left ②side_right ③below_header
 ※subの情報が無い場合は、自動的に「無し」とする

IntersectionObserver:①section ②title


ナビゲーション部分の表示
サイドバー部分の表示(page1 page2の両方とも)

フォルダ構造はこんな感じ
jsonファイル

jsonファイルを作成する

jsonファイルの書き方(全体の構成は右上の図を参照)
参考サイト: JSONの基本的な書き方
キーはダブルクォーテーションでくくる必要があり、シングルクォーテーションは使えない。
値は文字列の場合ダブルクォーテーションでくくる必要があるが、それ以外の場合はくくる必要はない。
複数記述する場合はコンマで区切る。
※書き方を間違えると、エラーになる。
※コメントは書けない。VSCodeの設定ファイルもjson形式だが、実際にはjsoncという形式になっているので、コメントが書ける。


トップページのデータ

pege1のデータ
pege2のデータ
ページを区別するのは、最初の "top" "page1" "page2" の部分。
その後ろに続く :{} の中にデータを書く。後ろにデータが続く場合は :{}, のようにカンマを付ける。

中の要素は、自由に名前を付けて作成することが可能。ただし、同じ名前の情報をそれぞれのページに準備することが必要。
このサイトでの設定
"folder": フォルダ名(日本語不可)
"folderpath": フォルダの中に置く場合は、"/" とする
"rootpath": 中のファイルから、ルートフォルダへのパス。サイト直下なら "./" または ""。フォルダの中なら "../"
"url": ファイル名(日本語不可)
"title": ページのタイトル(日本語可)。ナビゲーションとタブに表示

ページ内部の構造(例:page1)

"sub": の中に書く。asideには、下のように表示される。

url・titleについては、"sub_" "sub_child_" がついているが、上のページ全体の場合と同じ。
"***_url": idとして使用する(日本語不可)
"***_title": その部分のタイトル(日本語可)ページの中とサイドバーに表示される

パーツファイルの準備


top

データ構造

jsonファイルの部分

_partsフォルダの中
※このページのkey:top

subの指定が無い場合は、{key}_include.phpを準備

subの指定がある場合は、その指定に従って、phpファイルを準備


page1

データ構造

jsonファイルの部分

_partsフォルダの中
※このページのkey:page1

subの指定が無い場合は、{key}_include.phpを準備

subの指定がある場合は、その指定に従って、phpファイルを準備


page2

データ構造

jsonファイルの部分

_partsフォルダの中
※このページのkey:page2

subの指定が無い場合は、{key}_include.phpを準備

subの指定がある場合は、その指定に従って、phpファイルを準備

custom3からの変更点


custom3で作成したデータ
修正したデータ
index.phpファイルの最初の部分
(_function.phpを読むために必要なrootpathを変数化)
_site_structure.jsonを読み込む設定を追加
_site_structure.jsonを読み込む設定を追加
functions.phpファイルの最初の部分
rootpathを追加
index.phpファイルのheadを読み込む部分
rootpathを変数化
index.phpファイルのbodyを読み込む部分
page_navの表示分類用のクラスを追加
①side_left ②side_right ③below_header ④none
index.phpファイルのasideを読み込む部分
asideからnavにタグを変更 subの情報が無い場合は非表示
functionの名称も変更
_include/_head.php
rootpathを変数化
メイン部分につくスクロールバーを右端に移動した
そのためにlayout_basic.cssの内容を大幅に修正した。

複数ページのサイトを作成する

一番簡単な方法は、この"css_grid_template_sample"というフォルダごとコピーして、追加と削除の作業をやってみることだと思う。
その作業を次の"css_grid_template_sample_2"で行ってみる。

Top