FlatPress.info

Information & blog

ご承知にように FlatPress.world はインタネット側からアクセスできない純粋仮想ドメインです。ところで、実際に活用しようと考え始めたとき、どっちの画面であるのかわからなくなることがあります。

その理由の一つは、ヘッダー部分を含めてまだ(ユニークなデザインにする)カスタマイズに手が届いていない状況であることと、コピーを取って試験をするような場合です。

サーバ名表示をする

そこで、サーバ名を自動的に表示させて容易に判別しようと考えました。

  1. サーバ名を取得する。(たぶん、php プログラムのどこか)
  2. その値または有無を変数に格納する。(たぶん、sumarty に引き渡す)
  3. テンプレートでそれを表示する。(たぶん、ここで判別する)
  4. テンプレートの場所は、この「テンプレート適用場所の調査」で判明している。
  5. 表示部分を確認しておき、スタイルシートを書き加える。

サーバ名の取得

/index.php で試しています。

<?php

        include 'defaults.php';
        include INCLUDES_DIR . 'includes.php';
        include SMARTY_DIR . 'SmartyValidate.class.php';

        define('MOD_INDEX', 1);

        /* 2014-8-17 */
        $servername = getenv('SERVER_NAME');
        $smarty->assign('servername', $servername);

 最後の3行を index.php の5行目ぐらいに挿入しました。ここでしていることは、ウェブサーバ(Apache)からサーバ名を受け取り、その後、Smarty の変数に引き渡しています。

 

テンプレートに書き加える

/fp-interface/themes/leggero/header.pl

    <div id="outer-container">
<!-- 2014-8-17 -->
<div id=servername>
{if ($servername == "flatpress.world")}
    {$servername}
{/if}
</div>

 この下から6行分を header.pl の最後に書き加えています。このテンプテート名は、「テンプレート適用場所の調査」で判明させました。

[outer-container]という表示領域があるようです。まだ、真の目的を把握してませんが、試しに表示させることにしました。ヘッダー部と本体部の間になります。

css を書き加える

/fp-interface/themes/leggero/leggero/res/common.css

/*===== FlatPress.World =====*/
#servername {
    color: #fff;
    background-color: orange;
    padding-left: 1em;
}

 この6行を common.css の最後に書き加えています。

 

技術的まとめ

  1. Smarty のテンプレートに任意の文字でも変数でも設置すればそれが表示される。変数であれば、{$servername}のように"{}"で変数名を囲めばよい。
  2. Smarty のテンプレートでは判定(if)をすることができる。{if 判定文} 実行したいこと {/if}のような書式である。
  3. Smarty の変数設置は php プログラムで前もっておこなっておく。
  4. PHP プログラム、テンプレート、css のそれらの役目とディレクトリのどのあたりに、それらが置かれているか把握できた。

 

実例の画面はこのようです。flatpress.world のURLであった場合には、画面にサーバ名が入ったオレンジの帯が表示されます。

disp-servername

ちなみに、DNS サーバは、www.flatpless.world と flatpress.world のどちらでも同じウェブサーバを示すのが普通なので、判定には二つを含めておくのがよいと思います。

 

オリジナルのファイルをバックアップしてから作業しましょう。たとえば、unix ならば、cp common.css{,.2014-8-17} とします。

 

 

FlatPess 記事

Copyright c  flatpress.info 2015. All Rights Reserved.