plugins:formatit

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

plugins:formatit [2011/03/23 21:28] (現在)
ライン 1: ライン 1:
 +====== NP_FormatIt.php ======
  
 +:​!:​**このプラグインには不具合が潜在している可能性があります**
 +
 +指定した範囲を指定した方法で処理して出力します。[[plugins:​entit|NP_EntIt]]の後継です。
 +
 +^General Plugin info ^^
 +^作者 | [[plugins:​authors:​nkjg|NKJG]] |
 +^最新のバージョン | 0.2.1 |
 +^入手先 | [[http://​niku.suku.name/​item/​472|肉少なめ | Item - NP_FormatIt]] |
 +^セキュリティチェック | - |
 +
 +:​!:​**このプラグインの作者は現在サポートできる状況にありません。**
 +
 +**このプラグインを使用した結果、不具合が発生する場合があります。**
 +
 +=====インストール方法=====
 +  - Zipファイルを展開して、中身をサーバーのプラグインディレクトリにアップロードする
 +  - 管理画面からプラグインをインストールする
 +
 +=====このプラグインの使い方=====
 +====基本的な記述====
 +スキン中などで、Nucleus変数である<​%plugin(FormatIt)%>​や、<​%FormatIt%>​を使用して以下のように記述します。
 +
 +  <​%FormatIt(処理する方法)%>​(処理する内容)<​%FormatIt(end)%>​
 +
 +====処理方法一覧====
 +
 +^変数で指定する文字列^処理の内容^対応バージョン^
 +^xml|特殊文字を実体参照に変更します。[[skins:​vars:​itemtitle]]などでxmlを指定した場合と同様の処理になります。|0.0.0~|
 +^attribute|特殊文字を実体参照に変更します。[[skins:​vars:​itemtitle]]などでattributeを指定した場合と同様の処理になります。|0.0.0~|
 +^raw|特に処理を行わず、そのまま出力します。[[skins:​vars:​itemtitle]]などでrawを指定した場合と同様の処理になります。|0.0.0~|
 +^javascript|シングルクオート、ダブルクオート、バックスラッシュの前にバックスラッシュを追加します。|0.1.0~|
 +^striptags|HTMLタグを空白に置換します。PHP標準の関数ではなく、Nucleusコアで実装された関数が使用されます。|0.1.0~|
 +^htmlspecialchars|PHPで用意されたhtmlspecialchars関数を使用します。第2引数にはENT_QUOTESが指定されています。|0.1.0~|
 +^md5|PHPで用意されたmd5関数を使用します。|0.1.0~|
 +^crc32|PHPで用意されたcrc32関数を使用します。|0.1.0~|
 +^crypt|PHPで用意されたcrypt関数を使用します。|0.1.0~|
 +^trim|PHPで用意されたtrim関数を使用します。|0.1.0~|
 +^ltrim|PHPで用意されたltrim関数を使用します。|0.1.0~|
 +^rtrim|PHPで用意されたrtrim関数を使用します。|0.1.0~|
 +^nl2br|PHPで用意されたnl2br関数を使用します。|0.1.0~|
 +^strtolower|PHPで用意されたstrtolower関数を使用します。mb_strtolowerが使用できる場合はそちらが優先されます。|0.1.0~|
 +^strtoupper|PHPで用意されたstrtoupper関数を使用します。mb_strtoupperが使用できる場合はそちらが優先されます。|0.1.0~|
 +^ucfirst|PHPで用意されたucfirst関数を使用します。|0.1.0~|
 +^ucwords|PHPで用意されたucwords関数を使用します。|0.1.0~|
 +^strlen|PHPで用意されたstrlen関数を使用します。mb_strlenが使用できる場合はそちらが優先されます。|0.1.0~|
 +^(数値)|PHPで用意されたsubstr関数を使用し文字列を先頭から切り出します。指定された数値以下の長さに切り出されます。mb_substrが使用できる場合はそちらが優先されます。|0.2.0~|
 +^adjustentities|文字列切り出しなどの結果途切れてしまった実体参照などを削除します。|0.2.0~|
 +^urlencode|PHPで用意されたurlencode関数を使用します。|0.2.1~|
 +^urldecode|PHPで用意されたurldecode関数を使用します。|0.2.1~|
 +^rawurlencode|PHPで用意されたrawurlencode関数を使用します。|0.2.1~|
 +^rawurldecode|PHPで用意されたrawurldecode関数を使用します。|0.2.1~|
 +^base64encode|PHPで用意されたbase64_encode関数を使用します。|0.2.1~|
 +^base64decode|PHPで用意されたbase64_decode関数を使用します。|0.2.1~|
 +^end|直前に開始された処理の範囲を終了します。|0.0.0~|
 +
 +
 +====処理のネスト====
 +
 +処理はネストが可能です。
 +
 +  <​%FormatIt(md5)%><​%FormatIt(6)%>​この範囲の文字列はまず先頭から6文字切り出され、さらにその結果のMD5ハッシュが出力されます。<​%FormatIt(end)%><​%FormatIt(end)%>​
 +
 +====記述の簡略化====
 +
 +ネストなどでこのプラグインの変数が連続した場合は記述を簡略化することができます。
 +
 +  <​%FormatIt(md5)%><​%FormatIt(6)%>​ は
 +  <​%FormatIt(md5,​6)%>​ と書くことができます。
 +
 +====注意====
 +
 +:​!:​他の変数との併用によっては不具合が発生します。
 +
 +  <​%FormatIt(xml)%><​%if(...)%>​(誤)<​%FormatIt(end)%><​%endif%>​
 +  <​%FormatIt(xml)%><​%if(...)%>​(正)<​%endif%><​%FormatIt(end)%>​
 +  <​%if(...)%><​%FormatIt(xml)%>​(誤)<​%endif%><​%FormatIt(end)%>​
 +  <​%if(...)%><​%FormatIt(xml)%>​(正)<​%FormatIt(end)%><​%endif%>​
 +
 +:​!:​他にも記述の方法によっては不具合が発生します(処理の結果で有害な文字列が生成される可能性があります)。
 +
 +=====使用例=====
 +
 +====コメント投稿者の接続元をハッシュ化して表示====
 +コメント・テンプレートに以下のように記述することで、接続元情報をハッシュ化して表示することができます。
 +
 +  <​%FormatIt(10,​md5)%><​%host%><​%FormatIt(end,​end)%>​
 +
 +また、以下のようにすることで**日付によって変化するID**を実現することができます。
 +
 +  <​%FormatIt(10,​md5)%><​%host%><​%date%><​%FormatIt(end,​end)%>​
 +
 +====アイテム本文の内容を先頭から100文字抜き出す(HTMLタグ除く)====
 +
 +  <​%FormatIt(adjustentities,​100,​striptags)%><​%body%><​%FormatIt(end,​end,​end)%>​
 +
 +テンプレート変数<​%body%>​の内容から、まずHTMLタグを空白に置換し(striptags)、先頭から100文字抜き出し(100)、その後破損した実体参照を除去します(adjustentities)。
 +
 +=====コードの改造=====
 +
 +====処理の追加====
 +以下の手順で処理を追加することができます。
 +  - 処理名の決定(小文字)
 +  - NP_FormatItクラスにdoFormat_(処理名)というメソッドを作ります。
 +    * 引数は文字列で処理する範囲になります。
 +    * 返り値は処理の結果です。
 +    * 静的にコールできる必要があります。
 +  - getValidFormatメソッドが返す配列に値として処理名を追加します。
 +
 +
 +=====開発履歴=====
 +  - ver.**0.0.0** <​20061016>​ (NP_EntIt)
 +    * NP_EntItのリリース
 +  - ver.0.**1**.0 <​20070320>​
 +    * **CHANGED** NP_FormatItに改名
 +    * **ADDED** 以下の処理を追加
 +      * javascript
 +      * striptags
 +      * htmlspecialchars
 +      * md5
 +      * crc32
 +      * crypt
 +      * trim
 +      * ltrim
 +      * rtrim
 +      * nl2br
 +      * strtolower
 +      * strtoupper
 +      * ucfirst
 +      * ucwords
 +      * strlen
 +    * **ADDED** ネスト、簡略記述に対応
 +  - ver.0.**2**.0 <​20070322>​
 +    * **ADDED** 以下の処理を追加
 +      * (数値)
 +      * adjustentities
 +    * **ADDED** アイテム内での記述に対応 (Nucleus v3.3以降が必要です)
 +  - ver.0.2.**1** <​20070323>​
 +    * **ADDED** 以下の処理を追加
 +      * urlencode
 +      * urldecode
 +      * rawurlencode
 +      * rawurldecode
 +      * base64encode
 +      * base64decode
 
plugins/formatit.txt · 最終更新: 2011/03/23 21:28 (外部編集)