設定&登録フォームを用意する
TOPページでdream.php 最新版をダウンロード後、「手書きでPHPファイルを作って導入」の解説に沿って、dream.phpの設定をしてください。自作で登録フォームのページを作りたければ、名前登録フォームのページ作成まで進めてください。
既にサイトでdream.phpを使っている場合
設置済みのdream.phpで保存されたCookie登録内容が使われるので、新規にDL・設置する必要はありません。
JavaScriptを使って導入
TOPページでdream.php 最新版をダウンロード後、「手書きでPHPファイルを作って導入」の解説に沿って、dream.phpの設定をしてください。自作で登録フォームのページを作りたければ、名前登録フォームのページ作成まで進めてください。
設置済みのdream.phpで保存されたCookie登録内容が使われるので、新規にDL・設置する必要はありません。
dream.php本体に追加してJavaScriptファイルをダウンロードしてください。
JavaScriptはクライアントサイドスクリプトなので、閲覧者によっては名前変換が有効にならなかったり、ページが表示されてから変換されるまでにタイムラグが発生する場合があります。より多くの環境に対応したい場合は、DreamViewerやWordPressを使ったり、PHPファイルの作成に取り組む方法(PHPコードをコピペして、HTMLファイルの拡張子を.php
変える)もご検討ください。
カスタム表示は一部のみ対応しています(PHP出力と一部仕様も異なります)。
確認環境:[PC] Chrome/Firefox/Edge, [iPhone] Safari/Opera, (レガシーブラウザ切り捨て)
use-dreamphp.min.zipをダウンロード&解凍してください。(help > ZIPファイルの解凍(展開)方法、圧縮方法)
登録名を表示したいファイルのHTML内(スキン/テンプレート/テーマファイルがあるスクリプトであればそれ)の、</body>
直前に以下のコードを書きこんでください。
自己責任の力業ですが、スキン式ではない場合でもプログラム内のどこかには出力されるHTMLが書かれてるはずなので、</body>
を探し出して書き足せば使えます。
環境に合わせてsrc
値のパスは書き換えてください。
スキン(テンプレート/テーマ)式のプログラムでお使いの場合は、スキンファイルからの相対パスではなく、実際に適応されたページ(プログラム本体)からの相対パス、もしくはルートディレクトリからのパスを指定してください。
<script src="use-dreamphp.min.js" charset="UTF-8"></script>
<script> new dreamphp({}); </script>
編集可能箇所に限りがあるのであれば、</body>
直前以外で読み込んでも構いません。もし<head>
内や<body>
の直後など、変換箇所より前にしか書けるところがない場合は、下記のように書き方を変えてください。
<script src="use-dreamphp.min.js" charset="UTF-8" defer></script>
<script>
document.addEventListener("DOMContentLoaded", () => {
const dreamphp_inc = new dreamphp({});
});
</script>
必要に応じて、自動出力の登録フォームか、ご自身で作成した登録フォームのページへリンクをはってください。
<a href="dream/dream.php?form">登録フォーム</a>
use-dreamphp.jsだけでは、Shift_JIS版のdream.phpで保存された登録名を正しく処理できません。
use-dreamphp.js ver.2.2以降のバージョンでは、encoding.jsを併せて読み込ませることで、Shift_JIS版で保存した登録名を出力できるようになります。
use-dreamphp.jsを読み込ませるより前にencoding.jsを読み込ませてください。
読み込みの順番(記述の順番)が逆だと動きません。
<script src="https://cdnjs.cloudflare.com/ajax/libs/encoding-japanese/2.0.0/encoding.min.js"></script>
<script src="use-dreamphp.min.js" charset="UTF-8"></script>
<script>new dreamphp({});</script>
Githubからダウンロードしてご自分のサーバーにアップロードしたencoding.jsを使っても構いません。
登録名に置き換える対象をHTMLで記述していきます。対象は三種類から選べます。
初期値以外の方法を使うにはオプションパラメーターを設定する必要があります。各方法については#methodオプションもあわせて参照してください。
登録名を表示したいところに以下の要素を使ってください。 デフォルト名部分はなくても動作しますが、以下のような場合だと何も表示されません。
デフォルト名や「姓」「名」「●●●」のような代替文字列があったほうが、どんな環境でも文脈が読み取りやすくなるので、より多くの方に読んでもらえるようになるかと思います。デフォルト名はdream.phpの設定ファイルで決めたものとは関係なくつけられます。
要素名は データ名( 後述のカスタム表示が可能です。 登録名、およびdefNameオプションで設定したデフォルト名はカスタムされますが、要素の内容の「デフォルト名」部分はカスタムされません。デフォルト名の状態でもニュアンスを正しく伝えたければ、カスタム後の状態を書いてください。
登録名を表示したいところに以下の要素を使ってください。 デフォルト名部分はなくても動作しますが、以下のような場合だと何も表示されません。
デフォルト名や「姓」「名」「●●●」といった代替文字列があったほうが、どんな環境でも文脈が読み取りやすくなるので、より多くの方に読んでもらえるようになるかと思います。デフォルト名はdream.phpの設定ファイルで決めたものとは関係なくつけられます。
要素名は 該当するクラス名を複数つ場合は、先に指定されている方を読み込みます。
クラス名( 後述のカスタム表示が可能です。
クラス名に項目番号に続けてカスタム表示タイプを追加してください。 ver.2.5以降、 登録名、およびdefNameオプションで設定したデフォルト名はカスタムされますが、要素の内容の「デフォルト名」部分はカスタムされません。デフォルト名の状態でもニュアンスを正しく伝えたければ、カスタム後の状態を書いてください。
変換を含む範囲を 置き換わるのは通常ディスプレイに表示される文字列(テキストノード)だけです。CSSの 対象範囲のセレクター、および置き換え対象の文字列は、それぞれオプションで変えられます。
デフォルト名を設定することもできます。 範囲は、より少ない要素しか含まず、ページ内により少ないほうが、処理が少ないので置き換えがはやく完了します。
Blogだったら置き換え処理が確実に必要のない要素が沢山含まれているメニューやサイドやフッターは除いた部分にするなど、ある程度範囲を絞ったほうがサイトが重くなりづらいです。 後述のカスタム表示が可能です。
「NAME項目番号」に続けて「:カスタム表示タイプ」を追加してください。 「:」やカスタム表示タイプの前後にスペースや改行などが含まれると動きません。
とぎれやくぎりのカスタム表示タイプの後に「 対応しているカスタムタイプは以下の通りです。
拗音促音長音はそれぞれの文字が一文字換算されます。
「最後の一字の母音」は登録名がひらがなかカタカナの場合のみ有効です、ふりがな項目で使ってください。長音促音は母音が付きません。
複数のカスタム表示タイプを指定することはできません。例;data属性を設定した要素を置き換える
data-dreamphp
属性の属性値と合致する項目番号の登録名があった場合、要素の内容(デフォルト名)が置き換わります。
<span data-dreamphp="項目番号">デフォルト名</span>
<span>
に限らず、指定のカスタムデータ属性がついている要素の全てが置き換え対象になります。他に属性があっても構いません。
<b data-dreamphp="0">花京院</b>
<var data-dreamphp="1" aria-label="名前">典明</var>
data-dreamphp
の部分)はオプションで変えられます。カスタム表示
現バージョンでは途切れ区切の記号は「…」に限定です ⇒ ver.2.5から途切れ区切の記号を任意に変更可能です。
data-dreamphp
の項目番号に続けてカスタム表示タイプを追加するか、data-customtype
の指定でカスタム表示タイプを指定できます。
data-custommark
の指定で途切れ区切の記号を指定できます。指定がなければ「…」で出力されます。<span data-dreamphp="項目番号カスタム表示タイプ">デフォルト名</span>
<span data-dreamphp="項目番号カスタム表示タイプ" data-custommark="記号">デフォルト名</span>
<span data-dreamphp="項目番号" data-customtype="カスタム表示タイプ">デフォルト名</span>
<span data-dreamphp="項目番号" data-customtype="カスタム表示タイプ" data-custommark="記号">デフォルト名</span>
<span data-dreamphp="2n">か</span>、
<span data-dreamphp="0" data-customtype="t">花…京院</span>
class属性を設定した要素を置き換える
class名のdreamphp-項目番号
に含まれる項目番号の登録名があった場合、要素の内容(デフォルト名)が置き換わります。
<span class="dreamphp-項目番号">デフォルト名</span>
<span>
に限りません。他に属性やclass指定があるのも構いませんが、複数のclass名を指定する場合は一番最初に名前変換用のクラス名を書いてください。
<b class="dreamphp-0">城之内</b>
<i class="dreamphp-1 dreamName" data-story="yugioh">克也</i>
これはNG: <span class="namae dreamphp-2">なまえ</span>
これはOK: <span class="dreamphp-2 namae">なまえ</span>
<span class="dreamphp-4 dreamphp-1">項目番号「4」の登録名と置き換わる</span>
dreamphp-
の部分)はオプションで変えられます。カスタム表示
<span class="dreamphp-項目番号カスタム表示タイプ">デフォルト名</span>
data-custommark
の指定で途切れ区切の記号を指定できます(classだけでの指定は現状できません)。指定がなければ「…」で出力されます。<span class="dreamphp-項目番号カスタム表示タイプ" data-custommark="記号">デフォルト名</span>
<span class=dreamphp-2n">じ</span>、
<span class="dreamphp-0t">城…之内</span>
設定の範囲内にある設定の文字列を置き換える
data-scope="dreamphp"
をつけた任意の要素内の、「{NAME項目番号}」(項目番号は0~8まで)という文字列が、該当の項目番号の登録名と置き換わります。半角全角大文字小文字が合致していなかったり、スペースや改行を含んでしまうと置き換え対象として認識できなくなって置き換わりません。
<div data-scope="dreamphp">
{NAME0}{NAME1}さん、こんにちは
{
NAME0
} や { NAME1 } や {name2} だとダメ
</div>
<div data-scope="dreamphp">
と</div>
で挟むか、スキン式のスクリプトの場合は既存のスキンの構造に[data-scope="dreamphp"]
を付け足してもいいです。見た目に影響を与えるようなことはありません。範囲はページ内にいくつあっても構いません。
<div class="comment" data-scope="dreamphp">
<!-- ▼ここに本文が挿入されます。 -->
[[COMMENT]]
</div>
content
やJavaScriptであとから追加される文字列は変換されません。
<!-- コメントの部分{NAME1}とか-->
<a title="タグ内{NAME3}とかは" href="#{NAME1}置き換わりません">置き換わるのは{NAME2}ここだけ</a>
不要な置き換えが起こらないよう、自分で内容に責任を持てる記事内容の本文のみにあたる範囲への設定もお勧めです。
<main data-scope="dreamphp">
<article>
<h1>朝</h1>
<div class="content">
{NAME0}{NAME1}さん、おはよう
</div>
</article>
</main>
<main>
<article>
<h1>朝</h1>
<div class="content" data-scope="dreamphp">
{NAME0}{NAME1}さん、おはよう
</div>
</article>
</main>
カスタム表示
{NAME項目番号:カスタム表示タイプ}
{NAME0:t}
{NAME3:n}、{NAME1:c}
(記号)
」(丸括弧開 記号 丸括弧閉)を追加で、希望の記号に変えることができます。
{NAME0:t(、)}
カスタム表示タイプについて
タイプ 内容 表示例
t とぎれ 名…無し子
c くぎり 名…無…し…子…
n 先頭(最初一文字) 名
f 末尾(最後一文字) 子
s 最後一文字の母音(小) ぉ
{{NAME:0ts}}
呼び出しの引数にオプションを設定できます。dreamphp({この部分})
に書きます。値は必ず引用符で囲ってください。
オプションの設定は順不同で、全て任意です。
オプション名 | 入力値 | 説明 |
---|---|---|
method | data | class | word | 置き換え対象選択 |
defName | 任意のデフォルト名の配列 | 置き換えデフォルト名 |
dataName | 任意の半角英数 | data属性置き換え時のdata名 |
classPrefix | 任意の半角英数字 | class属性置き換え時のclass名の接頭辞 |
wordFormat | curly | hash | square | slash | hyphen | angle | none | 文字列置き換え時の独自タグ形式 |
words | 任意の変換対象文字列の配列< | 文字列置き換え時の対象文字列 |
wordScope | 任意のセレクター | 文字列置き換え時の対象範囲セレクタ |
設定値 | 説明 |
---|---|
data | 設定のdata属性を指定した任意の要素[初期値] |
class | 設定のclass名を持つ任意の要素 |
word | 設定の範囲内にある設定の文字列 |
上記の3つに当てはまらない語句が設定された場合は[data]が適応されます。
項目番号0からカウントアップでデフォルト名を羅列してください。特定の項目番号だけの設定はできません。一つ一つ引用符で囲って、半角カンマ methodが「data」のとき使います。初期値は「dreamphp」です。
ページ内で使われる他のデータ名と被らないものにしてください。dataの名前には小文字の半角英字と数字、ハイフン、アンダースコア、ドット、コロンのみが使えます。
methodが「class」のとき使います。初期値は「dreamphp-」です。
ページ内で使われる他のクラス名と被らないものにしてください。
クラス名は半角英数、ハイフン、アンダースコアのみが使えます。数字からは始められません。なので、接頭辞を無しにすることもできません。
methodが「word」のとき使います。初期値は「curly」です。
上記に当てはまらない語句が設定された場合は[curly]が適応されます。
併用のスクリプトによっては、一部の記号が消されたり他の置き換え対象になっていることもあるので、うまく使えないようなら別の設定値に変えてみてください。
[none](置き換え文字列そのまま)にした場合は、置き換え対象文字列は一般名詞を避けるなど工夫して、置き換え対象以外でその文字列を使わないよう気を付けてください。
methodが「word」のとき使います。初期値は「NAME項目番号」で項目番号0から8までです。 項目番号0からカウントアップで置き換え文字列を羅列してください。特定の項目番号だけの設定はできません、必要がない項目があれば空欄にすれば置き換えが起きません。 置き換え文字列は、全角半角アルファベットひらがなカタカナ漢字数字記号なんでもよくて、それらがどんな組み合わせで何文字でもOKです。 wordFormatオプションが[none]の場合は、文中の想定外の箇所が置き換わってしまう可能性が高くなります。本文中に登場しない文字列を充分検討するか、[none]は諦めてwordFormatオプションを利用して置き換え対象を明確化させるのが安全かと思います。
methodオプションが「word」のとき使います。ここで指定した要素の範囲内に含まれる「wordsオプション」で設定した文字列を置き換えます。初期値は「 スキンファイルを編集/確認して、置き換え文字列を含む(ことになる)要素にdata属性での指定
class属性での指定
文字列置き換え
defNameオプション
<span>ここの部分</span>
)が表示されるので、特別設定する必要はありません。
HTMLには「姓」「名」のような汎用置き換え文字列を記載して、特定の状況でdefNameオプション値を切り替えて特定のデフォルト名を自動設定するのはあり。
{NAMEx}
)がそのまま表示されます。
[]
で囲ってください(項目が1つでも)。
new dreamphp({
defName : [
'項目番号0のデフォルト名',
'項目番号1のデフォルト名',
'項目番号2のデフォルト名',
'項目番号3のデフォルト名',
],
});
dataNameオプション
<span data-dreamphp="0">名前</span>
classPrefixオプション
<span class="dreamphp-0">名前</span>
wordFormatオプション
設定値 記述例 使用記号
curly {文字列} 半角波括弧
hash #文字列# 半角シャープ
square [文字列] 半角角括弧
slash /文字列/ 半角スラッシュ
hyphen -文字列- 半角ハイフン
angle 《文字列》 全角二重山括弧
none 文字列 無し(文字列そのまま)
wordsオプション
wordFormatオプションと合わせた文字列が置き換え対象になります。
一つ一つ引用符で囲って、半角カンマ で区切ってください。配列として取り扱うので、全体を[]
で囲ってください(項目が1つでも)。
new dreamphp({
words : [
'NAME0',
'NAME1',
'NAME2',
],
});
併用のスクリプトや環境によっては、他の内容に置き換えられたり消されてしまう文字や記号があるので、もしもうまくいかなかったら別の文字列を試してください。
wordScopeオプション
[data-scope="dreamphp"]
」です。
querySelectorAll()
で取得するので、CSSセレクターで記述してください。
new dreamphp({
wordScope : '[data-scope="dreamphp"]',
});
data-scope="dreamphp"
を書き足すか、もしくはその要素のCSSセレクターを指定してください。
なにかあれば、使いたいスクリプトを添えて相談してください。
コイブミ用のjsと一緒にuse-dreamphp.jsを読み込む記述を書いてください。どっちが先でも後でも構いません。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
<script src="koibumi_app/koibumi.js"></script>
<script src="use-dreamphp.min.js" charset="utf-8"></script>
<script>new dreamphp({});</script>
dataメゾッド、classメゾッドの場合はお礼メッセージブロック内に自由に書いてください。
<!-- お礼メッセージここから -->
<div id="koibumi_thanks" style="display:none;">
<div class="box">
<img src="koibumi_app/example.jpg" alt="THANK YOU!">
<p><span data-dreamphp="1">名前</span>さん、ありがとうございます!</p>
</div>
</div>
wordメゾッドを使う場合は、id="koibumi_thanks"
が指定してあるdiv
にdata-scope="dreamphp"
を書き足してください。
<!-- お礼メッセージここから -->
<div data-scope="dreamphp" id="koibumi_thanks" style="display:none;">
<div class="box">
<p>{NAME0}{NAME1}さんありがとう!</p>
</div>
</div>
新規で使い始める場合は、dream.phpをダウンロードして設定~登録フォーム作成まで進めてください。
すでにサイト内で使っているdream.phpがあるなら再度DLする必要はありません。保存済みの登録名があればそれが使われます。Shift_JIS版のdream.phpを使っている場合は、encoding.jsを読み込ませてください。
</body>
の直前に以下のコードをはりつけてください。src
値を書き換えてください。
<script src="use-dreamphp.min.js" charset="UTF-8"></script>
<script> new dreamphp({
method : 'class',
classPrefix : 'deco-',
}); </script>
[F:項目番号:デフォルト名]
[F:項目番号カスタム表示タイプ:デフォルト名]
[F:0t:デ…フォルト名]
</body>
の直前に以下のコードをはりつけてください。src
値を書き換えてください。
<script src="use-dreamphp.min.js" charset="UTF-8"></script>
<script> new dreamphp({
method : 'word',
wordScope : '.comment',
}); </script>
{NAME項目番号}
{NAME項目番号:カスタム表示タイプ}
スキンを書き換えていてHTML構造が変わっている場合は#WordScopeオプション、項目番号9以降も変換したい場合や置き換え対象の文字列を独自に変えたい方は#wordsオプション・#WordFormatオプションを確認してください。
WordFormatオプションのhash
とsquare
は使わないでください。
hash
は、ハッシュタグ機能を利用している場合ハッシュタグとして認識されてしまいます。square
はてがろぐの独自記法と誤認識される可能性があります。現状大丈夫でも、将来的にハッシュタグを使いたくなったり、てがろぐのアプデで新たな独自記法が追加されたときに競合する可能性もあるので、この二つ以外を使ってください。
[[CATEGORYIDS]]
や[[SITUATION:CLASS]]
の内容や、URLのパラメータを判断材料にして、defNameオプションの値を入れ替えるようにすれば、該当のページで特定のデフォルト名を使うこともできる、はず?(未検証)
defNameオプションは特定の「投稿」ではなく特定の「ページ」でのデフォルト名なので、複数の投稿を一覧表示しているときに「投稿ごと」に違うデフォルト名を表示したいような場合は、defNameオプションではなくclassメゾッドを使ってください。
新規で使い始める場合はdream.phpをダウンロードして、設定~登録フォーム作成まで進めてください。
すでにサイト内で使っているdream.phpがあるなら再度DLする必要はありません。保存済みの登録名があればそれが使われます。Shift_JIS版のdream.phpを使っている場合は、encoding.jsを読み込ませてください。
PPP公式サイトでも記事を作って頂いたので、そちらもご参考にどうぞ。
追記 PPP ver.1.10.0 から、設定画面で「記事の固定フッターHTML」が設定できるようになりましたので、テンプレートを書き換えるかわりに、「記事の固定フッターHTML」の設定フォームにuse-dreamphp.jsを読み込むコードを入力してください。
templates/template_view.php
を、env/templates/
フォルダ(なければ新規作成)内にコピーペーストして、そのenv/templates/template_view.php
を編集してください。
PPPは上記手順でテンプレートを書き換えできますが、作成者様曰く「テンプレートの自己改修は上級者向けです」とのことなので、その旨ご理解の上で編集してください。PPPのバージョンアップ時は具体的な更新内容を必ずチェックして、templates/template_view.php
に変更があった際には、適宜env/
フォルダ内のファイルも修正してください。
env/templates/template_view.php
の</body>
直前に以下のコードをはりつけてください。src
値を書き換えてください。相対パスは./
から始めると、アクセスURLにあわせてパスも書き換わります。
<script src="./use-dreamphp.min.js" charset="UTF-8"></script>
<script> new dreamphp({}); </script>
PPP ver.1.8から追加された、ユーザー定義スタイル(class属性の追加)の特殊記述を利用します。 ※PPPは投稿内でHTMLが使えるのでこれに依らずにHTMLタグを投稿しても使えます。
env/templates/template_view.php
の</body>
直前に以下のコードをはりつけてください。src
値を書き換えてください。相対パスは./
から始めると、相対パスは./
から始めると、アクセスURLにあわせてパスも書き換わります。
<script src="./use-dreamphp.min.js" charset="UTF-8"></script>
<script> new dreamphp({
method: 'class',
classPrefix: 'user_',
}); </script>
{.UserCSSName}~{/.}
)の呼び出しの記法に従ってして記述して投稿してください。 {.項目番号}デフォルト名{/.}
{.項目番号カスタム表示タイプ}デフォルト名{/.}
env/templates/template_view.php
の</body>
直前に以下のコードをはりつけてください。src
値を書き換えてください。相対パスは./
から始めると、アクセスURLにあわせてパスも書き換わります。
<script src="./use-dreamphp.min.js" charset="UTF-8"></script>
<script> new dreamphp({
method: 'word',
wordFormat: 'square',
wordScope : '#contents-area'
}); </script>
[NAME項目番号]
[NAME項目番号:カスタム表示タイプ]
WordFormatオプションはcurly
と hash
以外にしてください。PPPの独自記法やMarkdownコマンド、タグ前の「#」との誤認識で誤変換されたり不具合が起こる可能性があります。
テンプレートを書き換えていてHTML構造が変わっている場合は#WordScopeオプション、項目番号9以降も変換したい場合や置き換え対象の文字列を独自に変えたい方は#wordsオプションを確認してください。
'
や:
や,
などの書き損じがないか確認してください。
他、設置に際する質問やサポート、うまくいかなかった部分、要望、お気づきの点などがあればメールかTwitterでお受けしています。