内部ページ レギュレーション
クライアントごとのレギュレーションページに作成手順を説明します。まずは、なぜレギュレーションページを作るのかを理解するために、以下の動画をご確認ください。
レギュレーションページのデータ移植
Backlog Wikiの添付SQL(freo.page.sql ほか3ファイル)はv1時代のデータ(c- 接頭辞なし)のため使用できません。v2マスターの本番 freo.db から直接移植します。この作業はAI(Claude Code)に「レギュレーションページを移植して」と依頼してください。手順の内容は以下です。
- 移植先サイトとv2マスターの本番 freo.db を取得する(ローカルのDBは本番と同期していないため、必ず本番から取得する)
- 移植スクリプト(reg_migrate.py)で regulation 配下のページとカスタム項目を移植先DBへコピーする(user_id をそのサイトの管理者に差し替え / トップページは sort=100 / display=private で登録)
- 生成した freo.db を移植先サイトの /database/freo.db へアップする(アップ直前に本番DBが取得時から変わっていないことを確認し、切り戻し用に取得したDBを残しておく)
見本HTML・パーツの追加や修正
パーツの見本HTML(カスタム項目 regulation_html)の追加・修正は、freo管理画面のインポート機能(/import/admin)へSQLファイルを投入して行います。この作業もAIに「〜のパーツを修正して」と依頼してください(投入したSQLはv2の sql_imports フォルダーに日時付きで履歴が残ります)。DBファイルを丸ごと差し替えるのは、並び順の全面組み替えなど大掛かりな変更のときだけです。
- 見本内の画像・SVG・動画はすべて v2.s-contigo.website 配下の絶対URLを参照しているため、移植先サイトでもそのまま表示されます
- STEP番号や連番の数字はHTMLに書かず、CSSのcounter(decimal-leading-zero)で自動生成しています。liの追加・削除で番号は自動的に振り直されます
regulation.htmlを複製してアップロード
- L:\htdocs\s-contigo.website-v2\templates\page\regulation.html をコピー
- 制作中のサイトの同じディレクトリー内にファイルを複製
- ファイルをサーバーにアップロード
robots.txtの編集
robots.txt に Disallow:/regulation を追記

サイトマップの除外設定
.com/admin/config?exec=update&type=plugin&file=sitemap にアクセスして、生成除外ページに regulation を追加

pageテンプレートファイルを編集
/templates/internals/page/default.html の26行目辺りを編集して、レギュレーションページの下層ページでも、該当ファイルを読み込むようにする。
<!--{if $page.restriction == 'password' and !$smarty.session.security.page[$page.id] and $freo.user.authority != 'root' and $freo.user.authority != 'author'}-->
<form action="{$freo.core.http_file}/view/{if $page.code}{$page.code}{else}{$page.id}{/if}" method="post" class="pwd">
<input type="text" name="page[password]" size="30" value="" placeholder="パスワード"><input type="submit" value="認証する">
</form>
<!--{elseif file_exists("templates/page/$include_file")}-->
↓
<!--{if mb_strpos($page.id, 'regulation') === 0}-->
{include file=page/regulation.html}
<!--{elseif $page.restriction == 'password' and !$smarty.session.security.page[$page.id] and $freo.user.authority != 'root' and $freo.user.authority != 'author'}-->
<form action="{$freo.core.http_file}/view/{if $page.code}{$page.code}{else}{$page.id}{/if}" method="post" class="pwd">
<input type="text" name="page[password]" size="30" value="" placeholder="パスワード"><input type="submit" value="認証する">
</form>
header.htmlを編集
数字用WebフォントのOswald(料金比較・実績表示の数字で使用)を読み込むため、/templates/header.html のGoogle Fontsの読み込み行に &family=Oswald:wght@500;700 を追記してください。
また、code-prettifyを有効にするため、/templates/header.html の</head>の直前に以下を追加
<!--{if mb_strpos($page.id, 'regulation') === 0}-->
<link rel="stylesheet" href="{$freo.core.http_url}css/vendor/code-prettify.css">
<!--{/if}-->
footer.htmlを編集
code-prettifyを有効にするため、/templates/footer.html を以下のように編集する。
</body> </html>↓
<!--{if mb_strpos($page.id, 'regulation') === 0}-->
<script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js?skin=sons-of-obsidian"></script>
<script src="{$freo.core.http_url}js/lang-css.js"></script>
<!--{/if}-->
</body>
</html>
cssファイルの編集
レギュレーションページ専用のデザインは作りません。このページの見た目は、そのサイトのCSSがそのまま反映されます。下記のうち【編集する】ファイルを整えれば、パーツ一覧は自動的にそのサイトの見た目になります。
.com ルートディレクトリー └ css ├ reset.css----------:【編集しない】 ├ variables.css------:【編集する】色・書体・余白の変数。パーツ一覧の見た目はほぼここで決まる ├ foundation.css-----:【編集しない】見出し等の装飾。値は variables.css の変数で変える ├ layout.css---------:【編集する】ヘッダー・フッター・全体のレイアウト ├ component.css------:【編集しない】c-* のパーツ本体。パーツ一覧に並ぶのはこのCSS ├ page-archive.css---:【編集しない】 ├ page-agent.css-----:【編集しない】Agentが編集する内部ページ用 └ page-main.css------:【編集する】トップページ・会社概要など個別ページ用
画面幅ごとにCSSファイルを分ける構成は廃止しました。ブレークポイントは各ファイルの末尾にまとめて記述します(max-width の 1279px / 1025px / 600px の3段)。詳しくはCSSの規約を参照してください。
component.css は編集しません。パーツ一覧を見てサイトのデザインと合わない箇所があった場合、原因は component.css に色などが直書きされていることです。サイト側のCSSで打ち消すと次のサイトでまた同じ調査が必要になるため、マスターの component.css をその値だけ variables.css の変数に出して対応してください。
誤ったH2に適用するCSSの編集例
レギュレーションページのHTMLは編集しないでください。例えば、以下のようなHTMLがあったときに、以下のように変更をすることはNGです。該当サイトのベースとなるデザインなので、上記の【編集する】CSSファイルに既に記載してある内容を書き替えてください。
誤ったHTMLの編集例
HTMLにclassを付与して変更するのはNGです。これは、サイト全体ではなく、レギュレーションページに限ったルールです。
<h2>サブタイトル</h2> ↓ <h2 class="subtitle">サブタイトル</h2>
誤ったCSSの編集例
既に記載をしてあるCSSを上書きする記載方法はNGです。
h2 {
font-size: 3.0rem;
padding: 0 0 10px;
margin: 0 0 3.0rem;
position: relative;
border-bottom: 3px solid #eee;
}
↓
h2.subtitle {
font-size: 4.0rem;
color:#b84211;
padding: 0 0 10px;
margin: 0 0 3.0rem;
background:#eee;
}
正しいH2に適用するCSSの編集例
レギュレーションページのHTMLは編集せずに、該当するCSS部分だけを編集してください。
正しいHTMLの編集例
<h2>サブタイトル</h2> ↓class名などは付与せずにそのまま <h2>サブタイトル</h2>
正しいCSSの編集例
見出しの装飾は foundation.css が variables.css の変数を参照しています。foundation.css のセレクタを書き直すのではなく、variables.css の変数の値を変えてください。(ここで設定する値がサイト全体の基本スタイルとなります。)
:root {
--font-size-h2: 3.2rem;
--h2-border-bottom: 3px solid #eee;
--h2-padding-bottom: 10px;
}
↓
:root {
--font-size-h2: 4.0rem;
--h2-border-bottom: 3px solid #b84211;
--h2-padding-bottom: 10px;
}
変数が用意されていない装飾を変えたい場合は、variables.css に変数を追加してマスター側のCSSを変数参照に直します(--color-table-th-bg と同方式)。サイト側のCSSで上書きして打ち消すのはNGです。