dream.phpをWordpressで管理しているサイトで使う

以下の手順で作品を投稿記事として管理できます。

  1. WordPressフォルダ直下のindex.php、もしくは使用テーマ内のfunctions.php(なければ作成)などでdream.phpを読み込む。相対パスには、dirname(__FILE__)(そのファイルのあるディレクトリパス)や、Wordpressのグローバル定数のABSPATH(WordPressのインストールされたディレクトリパス)などを使ってください。
    例; require_once(ABSPATH.'/dream/dream.php');
  2. 記事内でPHPを使用するプラグインを利用するか、ショートコード API機能を利用する

    in_category等条件分岐タグで該当カテゴリやシングルポストページのみoffForm();を実行させるようheader.phpを編集するなどで、POSTによる変換もできそうな気がします。現在POST変換に対応しておりませんが今後対応できるようにします。

有志の方が導入解説を作成してくださいました。初期設定(dream_fix.iniの編集)を終えた段階から以下のサイトを参照してください。

dream.phpをFreoで管理しているサイトで使う

PHP5.3以上の環境で弊サイト配布のSmartyプラグインを導入し、dream.php(dream_expand.php)とfreoのテンプレートファイルを書き換えることで使用できます。※最新のdream.phpをお使いください。

配布しているSmartyプラグインの利用規則はdream.phpの利用規則と同じです。

dream.phpの導入

freo設置ディレクトリ直下のindex.phpで、freo/freo.phpの読み込みより前にdream.phpを読み込みます。

例; require_once(dirname(__FILE__).'/dream/dream.php');

変換登録フォームの設置

名前変換フォームを設置する場合はテンプレート内で導入してください。

例; {php}nameForm();{/php}

Smartyプラグインの導入

modifier.dreamphp.zipを保存・解凍し、modifier.dreamphp.phpを、freo設置ディレクトリ内の、libsフォルダ内の、smartyフォルダ内の、pluginsフォルダにアップロードしてください。

更新情報

2018年2月6日 ver.1.1 不具合修正
{myName(項目番号,デフォルト名)}が有効にならないのを修正しました。29行目if(isset($input[1]) && $i[1]!='')if(isset($i[1]) && $i[1]!='')に書き換えるか、最新バージョンをお使いください。

dream.phpの書き換え

dream.phpをエディタで開き、■名前出力を文字列検索などで探し出し、3箇所のechoreturnに書き換えてください。

※freoと別のコンテンツとで一つのdream.phpを使う場合は末尾の解説を一緒に参照してください。

//■名前出力
function myName( $no,$own_def=FALSE )
{
   global $dream_myName_data;

   if(
        $dream_myName_data[$no]['defName'] == $dream_myName_data[$no]['set'] && 
        isset($own_def) && $own_def != ''
   )
   {
        return '<var style="font-style:normal" class="myName name'.$no.'">'.$own_def.'</var>';
   }
   elseif(isset($dream_myName_data[$no]['set']) && $dream_myName_data[$no]['set'] != '')
   {
   
        return '<var style="font-style:normal" class="myName name'.$no.'">'.$dream_myName_data[$no]['set'].'</var>';
   }
   else
   {
        return '<strong>ERROR</strong>';
   }
}

カスタム表示も使う場合はdream_expand.phpをエディタで開き、■名前出力を文字列検索などで探し出し(もしくは■クッキーオフの場合の箇所を文字列検索などで探し出しそのちょっと上)、2箇所のechoreturnに書き換えてください。


      return '<var style="font-style:normal" class="myName name'.$no.'">'.$name.'</var>';
   }
   else
   {
      return '<strong>ERROR</strong>';
   }
}
// ■クッキーオフの場合

※ダウンロード時期によっては、複数のechoで出力されている場合がありますが、1つに直してreutrnしてください。上記のサンプルコードを該当部にコピーペーストし上書きするか、2015年10月27日18:40以降にダウンロードしたdream.phpを利用してください。

テンプレートの書き換え

templatesフォルダ内のテンプレートファイルを開き、dream.phpの変換を利用したい箇所のfreo内で利用している変数の修飾子に|dreamphpを付与してください。携帯用のテンプレート他、環境ごとにテンプレートがある場合はそれらの全てを忘れず編集してください。

以下以外のファイル・変数でも同様に使えますので、必要に応じて適宜書き換えてください。

エントリーで変換名を利用する(エントリーで作品を管理)
  • freo/templates/internals/default/default.html
  • freo/templates/internals/view/default.html
  • freo/templates/mobiles/internals/default/default.html
  • freo/templates/mobiles/internals/view/default.html
例; {$entry_texts[$entry.id].excerpt|smarty:nodefaults|dreamphp}
  {$entry_text.excerpt|smarty:nodefaults|dreamphp}
  {$entry_text.more|smarty:nodefaults|dreamphp}
ページで変換名を利用する(ページで作品を管理)
  • freo/templates/internals/page/default.html
  • freo/templates/mobiles/internals/page/default.html
例; {$page_text.excerpt|smarty:nodefaults|dreamphp}
  {$page_text.more|smarty:nodefaults|dreamphp}
メディア文章表示プラグインで作品を管理
  • freo/templates/plugins/media_document/file.html
  • freo/templates/mobiles/plugins/media_document/file.html
例; {$media_document_text|smarty:nodefaults|dreamphp}

また、オプション機能等でデフォルト名を登録し、その情報を修飾子dreamphpのパラメーターとして渡すと優先デフォルト名として扱われます。情報は、ページ毎にデフォルト名を変える > 方法その2:ページ内で一律指定するの「,で区切る指定法」と対応しています。

他にデフォルト名を変えるには、第二引数とモード指定の自動取得(エントリーコードやページIDと併用)が使えます。モード指定の手動取得には対応していません。

例; {$entry_texts[$entry.id].excerpt|smarty:nodefaults|dreamphp:パラメーター}

エントリーもしくはページでの導入詳細

  1. オプションで入力項目を追加し、登録します。オプション管理から、以下の情報でオプションを登録してください。指示がない項目の内容は自由に設定して構いません。
    オプションID種類必須検証
    defName一行入力任意なし
  2. オプション情報はデフォルトで記事本文の下に出てしまうので、テンプレートを編集して、デフォルト名の指定だけ表示させないようにします。オプションを表示するあたりにand $option.id != 'defName'を書き足してください。※既に特定のオプション項目だけ表示するよう書き換えている場合は不要です。
    エントリー一覧表示画面
    <!--{if $entry_associates[$entry.id].option[$option.id] != '' and $option.id != 'defName'}-->
    エントリー個別表示画面
    <!--{if $entry_associate.option[$option.id] and $option.id != 'defName'}-->
    ページ個別表示画面
    <!--{if $page_associate.option[$option.id] and $option.id != 'defName'}-->
  3. テンプレートを編集して、パラメーターを付与します。
    エントリー一覧表示画面
    {$entry_texts[$entry.id].excerpt|smarty:nodefaults|dreamphp:$entry_associates[$entry.id].option.defName}
    エントリー個別表示画面
    {$entry_text.excerpt|smarty:nodefaults|dreamphp:$entry_associate.option.defName}
    {$entry_text.more|smarty:nodefaults|dreamphp:$entry_associate.option.defName}
    ページ個別表示画面
    {$page_text.excerpt|smarty:nodefaults|dreamphp:$page_associate.option.defName}
    {$page_text.more|smarty:nodefaults|dreamphp:$page_associate.option.defName}
  4. オプションフォームからデフォルト名を登録します。(複数指定する場合は項目番号0から,でから区切ります)

メディア文章表示プラグインでの導入詳細

  1. テンプレートを編集して、パラメーターを付与します。
    {$media_document_text|smarty:nodefaults|dreamphp:$media_document_information:defName}
  2. タイトルなどの指定方法と同じようなやりかたでdefNameの情報を登録します。(複数指定する場合は項目番号0から,でから区切ります)
    <!--
    title:テストファイル
    defName:田中,花子
    -->
    {myName(0)}

テンプレートを編集しても反映されない場合は、templates_cディレクトリー内のphpファイルを全て削除してください。

表示する

dream.phpのPHPコードのかわりに、以下の対応表に乗っ取った独自の書きかたでエントリーなりページなりを作成してください。

▽dream.phpの正規の書きかた▽Freoでの書きかた
<?php myName("項目番号");?>{myName(項目番号)}
<?php myName("項目番号","デフォルト名");?>{myName(項目番号,デフォルト名)}
<?php CmyName("項目番号","type");?>{CmyName(項目番号,type)}
<?php CmyName("項目番号","type","付加記号");?>{CmyName(項目番号,type,付加記号)}

注意すべき点は、PHPコードの書きかたと違って項目番号やデフォルト名に"(クォーテーション)を付けないことと、 (から)までの間以外スペースを含んではいけないこと(例:{myNameの間・myName(の間などは完全に詰めてください。項目番号や付加記号などの前後に半角スペースは可です)。なお付加記号に,(カンマ)は使えなくなります、すみません。

例; {myName(0)}さん、こんにちは! お名前は{myName( 0 )}{myName( 1 , 花子 )}さんでよろしいですか?

{if $smarty.request.freo.mode}等でエントリーでだけ・ページでだけoffForm();を実行させるようheader.htmlを編集するなどで、POSTによる変換もできそうな気がします。現在POST変換に対応しておりませんが今後対応できるようにします。

freoと別のコンテンツとでdream.phpを併用する

dream.phpを書き換えるため、Freoをブログ(1コンテンツ)として使っていて別途メインコンテンツがある構成などの場合、一つのdream.phpを両方で使うことができません。今後対応の予定はありますが、お手数ですが現状はdream.phpをfreo用と他のコンテンツ用それぞれ設置する(初期設定のサイトのURLが同一であればクッキー情報も同一のものが使われます)か、以下の方法をお試しください。

方法はいくつかあるでしょうが、freo用の新規関数を作ってそれを使うやり方の説明です。

  1. dream.phpのfunction myName( $no,$own_def=FALSE ){から対応する}までをコピー・ペーストする / dream_expand.phpのfunction CmyName($no, $type, $kigou='…',$pre=FALSE)){から対応する}までをコピー・ペーストする
  2. ペーストした方だけechoreturnに書き換える
  3. ペーストした方の関数名を独自のものに変更する
    function freo_myName( $no,$own_def=FALSE ){
    function freo_CmyName($no, $type, $kigou='…',$pre=FALSE){
  4. modifier.dreamphp.phpを開いて、ファイル内の全てのreturn myNamereturn freo_myNameに(5箇所) / return CmyNamereturn freo_CmyNameに(2箇所)置き換える

トラブルシューティング

エラーが出る、白いページになる
お使いのサーバーのPHPのバージョンが5.3以上か確認してください。
dream.phpがアップロードしてあるか、またdream.phpの導入が正しくなされているか(パスが正しいか)確認してください。
最新のdream.phpを使っているか確認してください。
変換されず{myName(項目番号)}とでる
freoのテンプレートの書き換え(変数に|dreamphpを追加すること)が間違っていないか確認してください。また、変換を有効にしたい変数の全てに|dreamphpが付与されているか確認してください。
  • 書き換えが済んでいない、もしくは間違えている
  • 書き換えたあとアップロードしていない
  • template_c/フォルダの中のキャッシュを削除してみていない
変換部分が記事の一番上に出る
dream.phpの書き換え(全てのechoreturnに書き換えること)が間違っていないか確認してください。カスタム表示を使う場合はdream_expand.phpの書き換えも必要です。
  • 書き換えが済んでいない、もしくは間違えている
  • 書き換えたあとアップロードしていない

他、設置に際する質問やサポート、機能要望、うまくいかなかった部分などがあればメールTwitterでお受けいたしています。