BloomCMS 管理者仕様書
1. はじめに
BloomCMSへようこそ
BloomCMSは、PHPで動作するシンプルなファイルベースのコンテンツ管理システム(CMS)です。データベースを使わず、投稿や設定をJSONファイルで管理するため、軽量で設置が簡単なのが特徴です。
この説明書では、BloomCMSの基本的な使い方と設定方法について解説します。
2. 準備と初期設定
2.1. サーバー要件
- PHPが動作するウェブサーバー
- PHP GDライブラリ(画像のアップロードとリサイズに必要です)
2.2. config.php の設定
まず、サイトの基本的な設定を行います。設定はすべて data/config.php ファイルで行います。
<?php
// w:\labo.oruna\api\bloom\data\config.php
// --- 基本設定 ---
// サイトのベースURL (末尾のスラッシュが必要です)
define('SITE_URL', 'http://192.168.1.200/labo.oruna/api/bloom/');
// サイトタイトル
define('SITE_TITLE', 'BloomCMS');
// サイトの説明
define('SITE_DESCRIPTION', 'よっさん自作のブログシステム');
// 画像アップロード先のディレクトリパス (サーバー上の絶対パス推奨)
define('UPLOAD_PATH', __DIR__ . '/images/');
// 添付ファイルアップロード先のディレクトリパス
define('ATTACHMENT_PATH', __DIR__ . '/uploads/');
// 画像設定、アップロード画像のデフォルトリサイズ幅 (ピクセル)
define('IMAGE_WIDTH', 1280);
// --- ページネーション設定 ---
// フロントページ用の1ページあたりの表示件数
define('POSTS_PER_PAGE', 10);
// 管理画面用の1ページあたりの表示件数
define('ADMIN_POSTS_PER_PAGE', 20);
?>
SITE_URL: あなたのサイトのURLを正確に入力します。末尾に必ずスラッシュ / を付けてください。 この設定は、サイト内のリンクや画像のパスを正しく生成するために非常に重要です。
SITE_TITLE: サイトのタイトルです。ブラウザのタブなどに表示されます。
SITE_DESCRIPTION: サイトの簡単な説明です。
UPLOAD_PATH / ATTACHMENT_PATH: 画像や添付ファイルをアップロードするサーバー上の場所です。通常は変更する必要はありませんが、サーバー環境によってはパーミッション(書き込み権限)の設定が必要になる場合があります。
IMAGE_WIDTH: アップロードされた画像の幅を、ここで指定したピクセル数に自動でリサイズします。
POSTS_PER_PAGE / ADMIN_POSTS_PER_PAGE: それぞれ公開ページと管理画面の一覧に表示する投稿の件数です。
2.3. 最初の管理者ユーザーの作成
BloomCMSを初めて使うには、最初に管理者ユーザーを手動で作成する必要があります。
data/ ディレクトリに users.json という名前の空ファイルを作成します。
- 次に、ログイン用のパスワードを安全な形式(ハッシュ化)に変換します。以下の内容で
generate_hash.php のようなファイルを作成し、サーバーにアップロードしてブラウザからアクセスしてください。
<?php
// generate_hash.php
// 注意:使い終わったら必ずサーバーから削除してください。
$passwordToHash = 'ここにあなたのパスワードを入力';
echo password_hash($passwordToHash, PASSWORD_DEFAULT);
?>
表示された長い文字列(例: $2y$10$...)をコピーします。
- 作成した
users.json ファイルに、以下の内容を記述します。email と username は任意のものに、password には先ほどコピーしたハッシュ文字列を貼り付けてください。
[
{
"id": 1,
"username": "あなたのユーザー名",
"email": "your-email@example.com",
"password": "先ほどコピーしたパスワードのハッシュ文字列"
}
]
これで最初の管理者ユーザーが作成されました。2人目以降のユーザーは管理画面から簡単に追加できます。
3. 管理画面の使い方
3.1. ログインとログアウト
- ログイン: ブラウザで
http://あなたのサイトURL/admin/login.php にアクセスします。users.json に設定したメールアドレスとパスワードでログインできます。
- ログアウト: 管理画面のヘッダーにある家のアイコンの隣のアイコンをクリックするか、
http://あなたのサイトURL/admin/logout.php にアクセスするとログアウトし、サイトのトップページに戻ります。
3.2. ダッシュボード(投稿一覧)
ログイン後に表示されるメインページです。(admin/index.php)
- 投稿一覧: 作成した投稿が新しい順に一覧表示されます。
- 操作:
編集: 既存の投稿を編集するページに移動します。
削除: 投稿を削除します。クリックすると確認メッセージが表示されます。一度削除すると元に戻せないのでご注意ください。 投稿に紐づく画像なども一緒に削除されます。
3.3. 新規投稿の作成 (create.php)
左側のメニューから「新規投稿」を選ぶか、ヘッダーのアイコンからアクセスします。
※ 画像は、編集画面です。
- タイトル: 投稿のタイトルを入力します。
- カテゴリー: 投稿が属するカテゴリーを選択します。
- カバー画像: 記事一覧や記事ページの上部に表示されるメイン画像です。ファイルを選択するとプレビューが表示されます。
- 内容: Summernoteというエディタを使って記事本文を作成します。テキストの装飾や画像の挿入が可能です。
- 添付ファイル: 記事に関連するファイル(PDFなど)を添付できます。「+ ファイルを追加」で複数のファイルを追加できます。
- ギャラリー画像: 記事の最後に表示される画像ギャラリーです。「+ ファイル選択を追加」で複数の画像やPDFを追加できます。
- 投稿日時: 記事の公開日時を設定します。デフォルトで現在の日時が入力されています。
入力が終わったら「投稿」ボタンを押して保存します。
3.4. 投稿の編集 (edit.php)
一覧画面の「編集」ボタンからアクセスします。入力項目は新規作成時とほぼ同じです。
- 既存ファイルの削除:
- 「現在の添付ファイル」「現在のギャラリー画像」の項目で、削除したいファイルの横にある「削除」チェックボックスにチェックを入れて「更新」ボタンを押すと、ファイルが削除されます。
3.5. カテゴリーの管理 (categories.php)
左側のメニューから「カテゴリー」を選ぶとアクセスできます。
- 新規カテゴリー作成: ページ上部のフォームにカテゴリー名と説明を入力し、「作成」ボタンを押します。
- カテゴリー一覧: 作成済みのカテゴリーが一覧表示されます。
編集: クリックするとポップアップウィンドウが開き、カテゴリー名と説明を修正できます。
削除: カテゴリーを削除します。
3.6. ユーザーの管理 (users.php)
左側のメニューから「ユーザー」を選ぶとアクセスできます。
- 新規ユーザー作成: ページ上部のフォームにユーザー名、メールアドレス、パスワードを入力して作成します。
- ユーザー一覧: 登録されているユーザーが一覧表示されます。
編集: ポップアップウィンドウでユーザー名とメールアドレスを編集できます。パスワードを変更したい場合のみ、新しいパスワードを入力してください。
削除: ユーザーを削除します。現在ログインしている自分自身や、最後の1人のユーザーは削除できません。
5. データ管理
5.1. ファイル構成
BloomCMSの重要なデータは data/ ディレクトリに集約されています。
config.php: サイトの基本設定ファイル。
post.json: 全ての投稿データが保存されています。
categories.json: カテゴリーの情報が保存されています。
users.json: ユーザー情報が保存されています。
images/: 投稿にアップロードされた画像が、投稿IDごとのフォルダに分かれて保存されます。
uploads/: 添付ファイルが、投稿IDごとのフォルダに分かれて保存されます。
フォルダ・ファイル構成
bloom/
├── admin/ (管理画面)
│ ├── index.php (投稿一覧 - ダッシュボード)
│ ├── create.php (新規投稿)
│ ├── edit.php (投稿編集)
│ ├── delete.php (投稿削除処理)
│ ├── categories.php (カテゴリー管理)
│ ├── users.php (ユーザー管理)
│ ├── login.php (ログインページ)
│ ├── logout.php (ログアウト処理)
│ ├── auth.php (認証関連の関数)
│ ├── functions.php (管理画面用の共通関数)
│ ├── users_handler.php (ユーザー操作の処理)
│ └── assets/ (管理画面用アセット)
│ ├── css/
│ │ └── style.css
│ ├── includes/
│ │ ├── aside.php
│ │ ├── footer.php
│ │ ├── ham_menu.php
│ │ └── header.php
│ └── manual/
│ ├── features.php (管理者仕様書)
│ ├── manual.php (投稿ガイド)
│ └── images/ (マニュアル用画像)
│ ├── category.png
│ ├── dashboard.png
│ ├── edit.png
│ ├── login.png
│ └── user.png
├── assets/ (公開側サイト用アセット)
│ ├── css/
│ │ ├── style.css
│ │ ├── page.css
│ │ └── imports/
│ │ ├── basic.css
│ │ └── main.css
│ ├── images/
│ │ └── icon/
│ │ └── favicon.png
│ └── includes/
│ ├── aside.php
│ ├── footer.php
│ ├── ham_menu.php
│ ├── header.php
│ ├── pagetop.php
│ └── script.php
├── data/ (データファイル)
│ ├── post.json
│ ├── categories.json
│ ├── users.json
│ ├── config.php
│ ├── images/ (アップロード画像)
│ └── uploads/ (添付ファイル)
├── information/ (CMS紹介ページ)
│ └── index.php
├── index.php (トップページ - 投稿一覧)
├── home_post.php (トップページ内iframeのコンテンツ)
├── page.php (投稿詳細ページ)
├── category.php (カテゴリー別一覧ページ)
├── month.php (月別一覧ページ)
├── search.php (検索結果ページ)
└── README.md
5.2. バックアップについて
BloomCMSはファイルベースのシステムなので、バックアップは非常に簡単です。
定期的に data/ ディレクトリ全体をコピーして、安全な場所に保管しておくことを強く推奨します。万が一の時も、このディレクトリを元に戻すだけでサイトを復元できます。
6. トラブルシューティング
Q. 画像やファイルがアップロードできません。
A. サーバー上の data/images/ と data/uploads/ ディレクトリに、ウェブサーバーからの書き込み権限(パーミッション)がない可能性があります。サーバーの管理会社や管理者に問い合わせて、これらのディレクトリのパーミッションを 755 や 777 など、書き込み可能な設定に変更してみてください。
Q. サイトのリンクや画像が正しく表示されません(リンク切れになる)。
A. data/config.php ファイルの SITE_URL の設定が間違っている可能性が最も高いです。
http:// から始まり、末尾が / で終わっているか、ドメインやディレクトリのパスが正しいか、再度確認してください。