dream.phpの拡張機能

dream.phpにはいくつかの拡張機能があります。必要に応じてご利用ください。

DreamMakerでの登録をコンバージョン

今までDreamMakerのクッキー式の登録を利用していた場合、dream.phpに変更することでその登録が使えなくなり、閲覧者は再登録が必要でしたが、ver.5.0.8以降から、DreamMakerでの登録内容を自動でdream.phpの登録内容に変換して自動に再登録します。

3点が当てはまるとき、names[数字]の内容をmyName("数字")に置き換えます。双方連番による管理をしていますので、順番を変えるとおかしくなります。また、DreamMaker利用時とdream.php利用時の文字コード違うと文字化けるかもしれないです。

  1. dream_fix.iniをひらき、以下の部分の01に書き換えます
    ;DreamMakerでの保存を利用する
    ;0:使わない 1:使う
    convert_on = 0
  2. dream.phpが最初に読み込まれた時点でコンバージョンされクッキーに登録、dream.phpがもう一度読み込まれて以降クッキーは有効になります。なので、作品ページにアクセスする前にdream.phpを読み込ませているページを必ずしも経由しないサイト構成の場合は、作品ページにアクセスする前に必ず経由するページでdream.phpを読み込ませます
    <?php require_once("そのページからdream.phpまでの相対パス"); ?>

特定の項目のフォームだけ表示する

「作品A用と作品B用の変換内容、それぞれ専用のフォームにしたい」なんていうことができます。

変換フォームを出力する際<?php nameForm(); ?>の括弧内に、出力したいフォームと対応する項目番号を書き込むと、その項目番号の変換フォームだけが表示されます。複数ある場合は,で区切ります。

例1;項目番号0の変換フォームだけ表示
<?php nameForm("0"); ?>
例1;項目番号1と項目番号2の変換フォームだけ表示
<?php nameForm("1,2") ?>

"(クォーテーション)で囲うことを忘れないでください(たとえひとつであっても)。また"1","2"ではないことに注意してください。

ページ毎にデフォルト名を変える

同じ項目番号で、違うデフォルト名を優先的に表示する方法が3つあります。

方法その1:myName関数の引数で指定する

ココのココだけ!というとき直感的に替えることができます。

名前を表示させるmyName関数の第二引数に文字列を入れると、それがデフォルト値になります。

<?php myName("0", "佐藤"); ?>

,で区切ること、それぞれを"(クォーテーション)で囲うこと("番号,名前"ではない)を忘れないでください。カスタム表示には使えないです。

方法その2:ページ内で一律指定する

短編作品などで作品毎に替えるのに適しています。

作品の各ページでdream.phpを読む込む前に、以下の記述法に倣って指定をします。複数ある場合は必要なだけ羅列します。これで指定されなかった項目番号は、dream_fix.iniで指定したデフォルト名で表示されます。

$pre_defName[項目番号] = "優先デフォルト値";
完成例
<?php
$pre_defName[0] = "佐藤";
$pre_defName[1] = "花子";
require_once("dream.php");
?>
<!DOCTYPE html>
<html>....

一応以下のように,で区切る指定法も有効です。

$pre_defName= "項目番号0の優先デフォルト値,項目番号1の優先デフォルト値,項目番号2の優先デフォルト値";

,毎に区切って項目番号0から当てはめていきますので、「一部の項目番号だけ」の場合は,の数に注意が必要になります。

例;$pre_defName = ",,項目番号3のデフォ値,,項目番号5のデフォ値";

すべての項目番号のデフォルト名を変える場合はこっちのほうが楽ですが、1と3と6と…というように飛び飛びの場合は一つずつ指定したほうが間違いがないと思います。

方法その3-a:モード指定(手動取得)

複数作品ずつあるジャンルやカテゴリーごとに振り分けて替えるのに適しています。

  1. dream_fix.iniにデフォルト名の候補を書き足します。候補,区切りで好きなだけ追加できます。
    ;デフォルト値
    0 = "名字デフォルト,候補番号1の候補,候補番号2の候補,候補番号3の候補"
    1 = "名前デフォルト,候補番号1の候補,候補番号2の候補,候補番号3の候補"
  2. 各ページでdream.phpを読む込む前にそのページで使う候補番号を指定します。
    $mode = "1";
    完成例
    <?php
    $mode = "1";
    require_once("dream.php");
    ?>
    <!DOCTYPE html>
    <html>....

方法その3-b:モード指定(自動取得)

独自のモード名を指定することもできます。またその場合、モード名がURLに含まれるページで自動で該当の候補を取得します。自動なのでファイル冒頭で$modeを書くは必要ありません。共通のフォルダ名やファイル名を指定するとよさげです。

  1. dream_fix.iniに、モード名とデフォルト名の候補を==区切りで書き足します。候補は,区切りで好きなだけ追加できます。
    ;デフォルト値
    0 = "名字デフォルト,モード名1==モード名1の候補,モード名2==モード名2の候補,候補番号3の候補"
    • モード名は数字以外を含むもので、「,」と「==」と「(」と「)」が含まれないものである必要があります。(例;abcdream1text/123/
    • モード名は必要以外のファイルにも該当してしまいそうな名称(例;phptext01)は避けて、独自性や確実性の高いものにしたほうがよろしいです(例;乱数・/text/category1/
    • モード名を指定したものと指定していないものがあっても問題ありません。候補番号は詰まりません。
  2. URLからの自動取得
    デフォルト名を変更したいファイルを、該当の候補のモード名を含むファイル名に変更したり、該当の候補のモード名を含むフォルダにアップロード
    URLにモード名が含まれない場合
    候補番号の指定と同様に、各ページでdream.phpを読む込む前にそのページで使うモード名を指定します
    完成例
    <?php
    $mode = "モード名";
    require_once("dream.php");
    ?>
    <!DOCTYPE html>
    <html>....
    URLにモード名が含まれているけれどそのモード名の候補を使いたくない場合
    先に解説した、myName関数の引数や$pre_defNameによって上書きできます。もしくは候補番号0を指定することで、通常のデフォルト名を出力することが出来ます。
    完成例
    <?php
    $mode = "0";
    require_once("dream.php");
    ?>
    <!DOCTYPE html>
    <html>....

指定法として優先順位は以下のようになります。替えようと思ってるのに替わらないというときは、優先度が高いものが指定されていないか確認してください。

  1. myName関数の引数(最も優先される)
  2. ページ冒頭の$pre_defName[項目番号]
  3. ページ冒頭の$mode
  4. URL該当で自動取得

名前をカスタム表示する

どもったりカタカナにしたりできます。この機能は、サーバーがmb関数を利用できる必要があります。

名前を表示する際、<?php myName("項目番号"); ?>のかわりに以下の記述をします。

<?php CmyName("項目番号","type","付加記号"); ?>
short_open_tagがONの環境なら省略形でも可。
<?CmyName("項目番号","type","付加記号")?>

指定法詳細

最新のバージョンに則ります。古いバージョンだと使えないタイプがあります。最新バージョンにアップデートしてください。

項目番号
myName("項目番号")の項目番号とおなじ
type
  • d……どもり(は、はなこ
  • c……区切り(は、な、こ、
  • t……一文字目だけ途切れ(は、なこ
  • n……最初の一文字だけ抜き出し(
  • m……最初の二文字だけ抜き出し(はな
  • f……最後の一文字だけ抜き出し(
  • e……最後の二文字だけ抜き出し(なこ
  • s……最後の文字の母音抜き出し(
  • a……あだな※詳細後述(はな
  • K……カタカナ変換(ハナコ
  • H……ひらがな変換(はなこ
  • B……全母音(はぁなぁこぉ
KHBは大文字で、
  • K他のtype(Kが冒頭)
  • H他のtype(Hが冒頭)
  • 他のtypeB(Bが末尾)
の指定法で他のtypeと併用できます。なお、KとB・HとBは併用できますが、KとHは併用できません。(例;type=Kdで「ハ、ハナコ」 / type=cBで「はぁ、なぁ、こぉ、」 / type=KeBで「ナァコォ」)
aは登録名が3文字以上なら最初の二文字が、2文字以下なら最初の一文字が抜き出されます。また、最初の一文字が抜き出された場合は付加記号が末尾につきます。<?php CmyName("0","a",""); ?>ちゃんとしたとき、登録名がはなならはっちゃん、はなこならはなちゃんになります。付加記号の特殊指定 sとの併用もご検討ください。
sKHBは前述のフリガナ専用フォームとの併用をお勧めします、元々の表示名が平仮名でないとなんの変化もないので。
付加記号
どもり・区切り・途切れのときに使う記号(文字)の指定。「、」「…」「っ」「~」「★」あたりを自由に。どもり・区切り・途切れ以外の表示の際は意味ないので無指定(例;<?php CmyName("0","n",""); ?>)で構いませんが、どもり・区切り・途切れのとき無指定のだと勝手に「…」になります(ver.5.0.14より)。
特殊指定 s があります。sを指定すると最初の文字の母音が付加記号として使われます。type s と同様に振り仮名専用フォームとの併用をお勧めします。

フリガナ用フォームと併用したり記号を工夫すると更に面白い効果が出せます。ここぞというところで色々試してみると面白いのではないでしょうか。

フォームのaction値を非オンラインにする

dream.phpは機能上、変換フォームのaction値をdream_fix.iniで設定したhttp://からのものにしています。

といった場合は、変換フォームを表示させる<?php nameForm(); ?>の括弧内にそのページからのdream.phpの相対パスを書けばそれが優先的にaction値になります。

<?php nameForm("", "dream.php"); ?>

最初の"",の部分は特定の項目のフォームだけ表示するのもので、「特定の項目のフォームだけ表示する」機能を使わず「フォームのaction値を非オンラインにする」機能だけ使うときも省略はできません。必ず"",がいります。

併用するなら以下のようになります。

<?php nameForm("1,2", "dream.php"); ?>

関数指定法一覧

<?php nameForm(); ?>
名前変換フォーム表示
<?php nameForm("項目番号"); ?>もしくは<?php nameForm("項目番号", ""); ?>
項目番号の変換項目の変換フォームの表示(複数ある場合は項目番号を,で区切る)
<?php nameForm("", "そのページからのdream.phpのパス"); ?>
フォームのaction値を優先的に設定
<?php nameForm("項目番号","そのページからのdream.phpのパス"); ?>
二つの設定の併用
<?php myName("項目番号"); ?>
変換名の出力
<?php myName("項目番号", "優先デフォルト名"); ?>
設定ファイルにしていたデフォルト名を上書き
<?php CmyName("項目番号","type","付加記号" ); ?>
変換名のカスタム出力
<?php offForm(); ?>
クッキーオフ用名前変換フォーム表示
<?php offForm("項目番号"); ?>もしくは<?php nameForm("項目番号", ""); ?>
項目番号の変換項目の変換フォームの表示(複数ある場合は項目番号を,で区切る)
<?php offForm("", "そのページからのdream.phpのパス"); ?>
フォームのaction値を優先的に設定
<?php offForm("項目番号","そのページからのdream.phpのパス"); ?>
二つの設定の併用

コンテンツ最上部