こゆめ当個人サイトの自作CMSの設計(2回目)

当個人サイトの自作CMSの設計(2回目)

(公開日:

2023年1月30日に記事「当個人サイトの自作CMSの設計」を書いたばかりですが、早速CMSに大幅な変更を加えました。
前回の何が不満だったか、何は変わっていないか、メモとして残しておきます。

改善のきっかけ

  • ページのメタ情報(スラッグと抜粋)を手動のCSVテキストで管理していたので、タイトルと抜粋が長くなると段々見にくくなってきた
  • ページファイルとCSVファイルに同じ情報をコピーするのが効率悪く感じてきた
  • 階層構造=ファイル名としたため、雑記のカテゴリーを気軽に変更できないのが問題になってきた

改善の方向性

フラットファイルからSQLiteへ
管理画面におけるメタ情報の視認性を向上すると共に、SQLによる検索機能も付けられる
ページ単位でのバックアップやローカル編集はできないが、ローカルでPHPは動くので管理に問題はない
ページ階層からキーワードへ
ページの親子関係を固定しようとすると変更がしにくいので、タグのような形式で尚且つ自由に追加できるフリーキーワードに
一覧ページの自動生成は見送り
不要な一覧まで生成させたくないが、生成させる一覧を別途指定するのは煩わしい
一覧はそのページ内で自由に区分けたり並べ替えたりしたい
スラッグ手動指定はそのまま
この先システムに変更があってもURLをそのままにするには、自動割り振りのID番号などではなく手動でスラッグを指定するのが妥当

どういう実装をしたか

DBファイルのテーブル

タイトル
ある程度単体でも概要がわかるタイトルを付ける(2022年→2022年のつぶやき)
スラッグ
先々変えそうな情報は入れない(3選とかは4選になる可能性もあるなど)
日付
一覧表示で邪魔にならないように表示
キーワード
親ページのように使いたい場合はその親ページのタイトルを含める
概要
一覧表示およびSNS用の抜粋として使用
本文
前回同様のマークダウン
アイキャッチ
一応項目だけ作成、SNS用に使うことがあるかも
「非表示にする」チェックボックス
公開後一時的に非表示にしたい場合に

ページ作成・編集・削除の手順

  1. 管理画面にログイン
  2. 新規追加フォームより各種項目を入力(タイトルとスラッグは必須)
  3. submitするとすぐにページ生成が始まる
  4. 他ページからリンクさせる(スラッグ指定で一式出力できるタグあり)
ページ編集
タイトルとキーワードから編集対象のページを検索、リストから選ぶと編集フォームに移動する。後は上記と同じ。
ページ削除
個別の編集フォームより削除。index用の特定スラッグも削除可能なので注意。

表示ページの生成の手順

  1. URLスラッグでページにアクセス
  2. DBよりスラッグを検索、無かったら404
  3. 各種ページ情報を返答
  4. パンくずリストはキーワードから生成(タグリストのような形式)

改善していきたい部分

  • 万が一特定スラッグのデータを消してしまった時の為の挙動を考える
  • アイキャッチを有効にする
  • 管理ページでのページ検索方法を改善する(別テーブルでキーワードを抽出?)