상품 설명
PHP製リンクサイト風サイトエディタです。
Apacheサーバー専用ですが、.htaccessファイルを各サーバーエンジン向けに改変すれば使用できると思います。
MacのPHPローカルサーバ(php -S)およびスタードメイン付随の無料レンタルサーバー(Apache)で動作確認済み。
【特徴】
・そのままサーバーにアップするだけで身内のリンクサイトが作れます(ディレクトリ構成要確認)。
・好きな色の背景色を設定でき、それに応じて見やすい色の文字色に変化します。
・見出しやボタンリンクにも画像を設定できます。
・PHPの知識が少しあれば改変もできます。
・テキストは「小さい文字」「中央揃え」に対応。
・基本のUIはBootstrapを基準にしております。
・商用利用も可能です(詳しくはライセンスの項目を読んでください)
・ギャラリーにリンクを付けられるようになりました
・アイコン、ギャラリーなどにaltを設定できるようになりました
・適切にaltを設定し、分かりやすく記述、かつ画像を重くしなければ、アクセシビリティチェックでALL 100点を取ることが可能になりました(画像5、6枚目)
※ただし、Bot的な判断で、人間にとってのアクセシビリティではありません
【仕様】。
・画像のアップロードが終わる前にデータの保存・削除すると、画像の保存・削除が適切に行われないことがあります。アップロード終了まで待ってから保存してみてください。
・管理しやすいように、あえてpasswordフォルダに.txtファイルでパスワード等を保管していますが、気になる方はデータベースに入れてもOKです。
・標準ではpublic_html/admin/ユーザーID/index.phpは検索避けしていません。例えば写しであるpublic_html/index.phpのみ検索されるようにしたい場合は、render_template.phpに検索避け関連の条件分岐の記述が必要です。もしくはrender_template.phpのmetaタグの中に<link rel="canonical" href="メインで見せたいURL">の記述を推奨します。
【どんな保存形式なの?】
ログインIDごとにフォルダが作られ、その中にYaml形式でデータが保存されます。HTMLではなくPHP+Yaml形式で表示するので、プログラム本体を弄っても影響を受けにくいのが特徴です。プログラムを弄るとき不安であれば、ユーザーIDのパスワードファイルやユーザーIDのフォルダを別所に避難させれば少し安全に作業できます。
ファイル構成と各ファイルの説明
【ディレクトリ構成】
SiteEditor.v0.1
├── policy.txt 利用規約(サインアップ画面に表示される。現在プレースホルダのまま)
├── password/ ユーザー認証データの保存先(公開ディレクトリの外に配置。Webから直接アクセスさせない)
│ ├── .htaccess このディレクトリへの直接アクセスを拒否する設定(多層防御)
│ └── test.txt テストユーザーのアカウントデータ(ハッシュ化パスワード等)
│
└── public_html/ Webサーバーのドキュメントルート(このフォルダ配下だけを公開する)
├── index.php サイトのエントリーポイント。admin/test/index.php を読み込み表示する
│
├── admin/ 管理画面(ログイン・エディタ本体)
│ ├── index.php ログイン画面。ID/パスワード認証、ログイン試行回数の制限(ブルートフォース対策)
│ ├── signup.php 新規ユーザー登録画面。利用規約(policy.txt)の表示も行う
│ ├── signout.php ログアウト処理(POST + CSRFトークン必須。ワンクリックログアウト対策済み)
│ ├── change_email.php ログイン中ユーザーのメールアドレス変更画面
│ ├── main.php ログイン後のメイン画面。ポートフォリオ編集エディタ本体(JS/CSSを読み込むHTML)
│ ├── nologin.html 未ログイン時に表示される簡易案内ページ
│ │
│ ├── includes/ 共通設定・認証まわりのヘルパー
│ │ ├── define.php 定数定義(PASSWORD_DIR, ROCKFILE, POLICY のパス)
│ │ └── functions.php ユーザー登録・ログイン・セッションCookie設定・CSRFトークン発行等の共通関数
│ │
│ ├── lib/ ポートフォリオ編集エディタが使う内部API(main.php の裏側)
│ │ ├── .htaccess GETリクエストを load.php 以外禁止する設定(Apache専用。直接実行の抑制)
│ │ ├── lib.php エディタ用の共通ヘルパー(セッションCookie設定、ID検証、CSRFトークン検証等)
│ │ ├── load.php 指定IDのポートフォリオデータ(YAML)を読み込んで返すAPI
│ │ ├── save.php 編集内容を保存し、portfolio.yaml と test/index.php 相当の公開ページを生成するAPI
│ │ ├── upload.php 画像アップロードAPI(実体チェック・ランダムファイル名化・5MB上限・アップロード先に実行防止用.htaccessを自動設置)
│ │ ├── delete_image.php アップロード済み画像の削除API
│ │ ├── delete_user.php ユーザーアカウント削除API
│ │ └── render_template.php 保存されたポートフォリオYAMLを実際のHTMLページとして描画するテンプレートエンジン
│ │
│ └── test/ ユーザーID "test" のポートフォリオページの実体(save.php が自動生成するフォルダの一例)
│ ├── index.php このIDの公開ページ本体(render_template.php を呼び出すだけの自動生成ファイル。直接編集不可)
│ └── portfolio.yaml このIDのポートフォリオ内容(見出し・本文・画像パス等)を保持するデータファイル
│
└── assets/ 静的アセット
├── css/
│ ├── admin-editor.css main.php(編集画面)用スタイル
│ ├── admin-render-editor.css レンダリング/プレビュー部分用スタイル
└── js/
└── generateColorPalette.js 背景色から自動でアイコン背景・ボタン背景・ボタン文字色のパレットを
WCAGコントラスト基準を満たす形で生成するユーティリティ
テストユーザー情報
ユーザーID「test」
パスワード「testtest」
passwordフォルダのtest.txtと、adminフォルダのtestフォルダを削除していただければ抹消できます。
注意事項
⚠️「password」フォルダはサーバーのドキュメントルート外に置いてください。
⚠️ソフトウェア使用による損害など、一切責任を負いません。
⚠️サポートなどもありません。PHPやサーバーの知識が多少ある方向けです。
⚠️一部AIを使って作りました。
ローカルサーバーで使用する場合
大きな画像ファイルは保存できない場合がございます。
とりあえずPHPのローカルサーバーで試したい方は「php -S localhost:8000 -t public_html」してみてください(この方法だと、.htaccessが効かないので十分に注意してください)
ライセンス
商用利用:許可(利益を得る目的での使用も可)
改変・加工:許可(自由に編集して構いません)
再配布・転売の禁止:本データおよび、本データを軽微な修正・変更(※全体の改変度が不十分で、実質的に元データと同等と見なされる場合を含む)したものを、そのまま、または素材として第三者に再配布・譲渡・販売することは禁止します。改変にあたっては、元の価値とは異なる独自の創作性が十分に加わっている必要があります
【おまけ】SCSSファイル
SCSSを使いたい人向けに同梱します。
不要な方は削除して大丈夫です。
모든 리뷰
더보기리뷰 등록
리뷰를 작성하려면 로그인이 필요합니다.
로그인하고 리뷰 쓰기