Day After Day
tsurezure naru mamani...
ANOTHER DECADE

from 2021 when it's begining after/with CORONA Virus.

当 WEB の大改修 第二弾!!

11月
16
2025
Back
HOME


前回の当WEB大改修の第二弾。前回は全データのテキスト化を果たしたので、今回は構造の大改修を実施する。実はこれはリンクを保存して見て戴いている方がもし居られたら、非常に迷惑な内容となる。それに対する対策も、今回の勉強の一つである。

目的


煩雑になっているフォルダを整理


.
├── _appearance
│     ├── css
│     └── images
├── _modules
│     ├── config.php
│     └── function.php
├── _parts
│     ├── header.php
│     └── footer.php
├── app
├── downloads
├── pages
│     ├── genre1
│     └── genre2
├── index.php
├── favicon.ico
└── sitemap.txt 

それぞれの投稿にはジャンルが有って、過去(アーカイブ)の私事、仕事、シリーズ物、それら区別無しの現行シリーズなど。 先ずこれらの投稿類を pages というフォルダにそのまま移動。

次に、画像フォルダや css をまとめて _appearance、検索や表示などの PHP のプログラムを _modules

後は、各ページに貼り付けるヘッダーや共通のボタン類など、部品類を _parts と言うフォルダにまとめる。
もし、appdownloads 等が有れば追加する。

* 一般的に良く用いられるフォルダ名とは異なっています。
* sitemap.txt については後述

共用モジュールの構成


  1. index.php からヘッダー (header.php) を組み込む時に、ルートフォルダの index.php であると指定する。

  2.   index.php 
    <?php
        $invoker = 'main';
        include($_SERVER['DOCUMENT_ROOT'] . '/_parts/header.php');
    ?>
    $_SERVER['DOCUMENT_ROOT'] とはサイトのルートディレクトリを表す。ただ、ローカルでは /var/www/html を指すので注意。

  3. 次に、呼び出された header.php 内部で、config.php が使用できるように組み込む。

  4.   header.php 
    <?php
        // _config.php で規定した変数を利用する
        require_once($_SERVER['DOCUMENT_ROOT'] . '/_modules/config.php');
    ?>

  5. 最終的に config.php の中では・・・

  6.   header.php 
    <?php
        // システム用フォルダのエイリアス   
        define('PARTS',         $_SERVER['DOCUMENT_ROOT'] . '/_parts/');
        define('APPEARANCE',    $_SERVER['DOCUMENT_ROOT'] . '/_appearance/');
        define('MODULES',       __DIR__ . '/');
    
        // ジャンルごとのホームディレクトリー
        if ($invoker === 'main'))
        {
            define('GENRE1',   './pages/genre1/');
            define('GENRE2',   './pages/genre2/');
        }
        elseif ($invoker === 'sub')          //呼び出し元(Invoker)が /pages に有る場合)
        {
            define('GENRE1',   './genre1/');
            define('GENRE2',   './genre2/');
        }        
    ?>

    これで、header.php 以外のパーツを呼び出したり、呼び出し元でジャンル内の投稿を検索したりするコードで同じ変数を使って、 相対的には違う場所を間違わず指定できる。 つまり、index.php 内部で設定したフラッグが、そのページに組み込まれるヘッダー(header.php)を通じて、config.php に受け渡されたことになる。

    この事は、その他の場面でも非常に柔軟なコーディングが可能となる。


見る側からのリンク切れに極力対処する




Back
HOME