5章 関数

5.1. stdWrap:

この関数はTypoScript内の値にプロパティとしてしばしば付け加えられる。

コンテンツ‐オブジェクトの例 “HTML”:

10 = HTML
10.value = some text
10.value.case = upper

ここでオブジェクト”10”のコンテンツは戻される前に大文字変換される。

stdWrapプロパティは下の表に出ている順に実行される。もしもっと詳しく勉強したいのであれば、typo3/sysext/cms/tslib/class.tslib_content.php、関数stdWrap()を参照すること。

 

stdWrapのコンテンツ提供プロパティ:

この表にあるプロパティは書かれている順に解析される。

”data”、”field”、”current”、”cObject”(この順で!)のプロパティは変数もしくは配列からコンテンツをインポートするのに使われるので、特別であるといえる。上記例は下のように書き換えられる:

10 = HTML
10.value = some text
10.value.case = upper
10.value.field = header

ここで行"10.value = some text"はもはやサポートされていない。なぜならば値全体は$cObj->data-arrayからのヘッダと呼ばれるフィールドからインポートされているからである。

プロパティ:

データタイプ:

説明:

デフォルト:

Get data:

setContentToCurrent

boolean

現在の値を関数の次のコンテンツに設定する。

 

setCurrent

string /stdWrap

“現在”の値を設定する。これは通常どこか外のルーティンから設定されるので、注意がひつようである。しかし、これを行うと便利である。

 

lang

Array of language keys

これは任意の言語特定値を定義するのに使われる。

もし->config property .language で設定されたグローバル言語キーがこの配列の中に見つかったら、この値はstdWrapに設定されたデフォルト値の代わりに使われる。

 

Example:

config.language = de

page.10 = TEXT

page.10.value = I am a Berliner!

page.10.lang.de = Ich bin ein Berliner!

 

アウトプットは“I am...”の代わりに“Ich bin...” となる

 

data

getText

 

 

field

fieldname

コンテンツを値 $cObj->data[field]に設定

 

例: "title"フィールドの値にコンテンツを設定: ".field = title"

$cObj->data変更。データタイプ"getText"/fieldの説明を参照!

 

注: ユーザはフィールドネームを“//”で分割もできる。“nav_title // title”を値として設定すると、nav_titleフィールドからのコンテンツが空白文字列になるまで戻される。この場合title-fieldの値は戻される。

 

current

boolean

コンテンツを"current"-valueに設定 (split参照)

 

cObject

cObject

content-objectからコンテンツを読み込む

 

numRows

->numRows

selectからの結果として出た行数を戻す

 

filelist

dir /stdWrap

ディレクトリを読み込みファイルのリストを戻す。

値は"|"によってパラメータへと発展する:

1: パス

2: 認められている拡張子(間にスペースが入らない)のcomma-list;空の場合は、すべての拡張子が許可される。

3: ソーティング: 名前, サイズ, 拡張子, 日付, m日付(修正日付)

4: リバース: 逆方向のソーティングをしたい場合は、"r"に設定

5: fullpath_flag: これが設定された場合、filelistが完全なパスで戻され、単なるfilenameではない

 

preUserFunc

function-name

PHP関数もしくはクラスのメソッドをコールし、現在のコンテンツを第1パラメータとして関数に、そして第2パラメータに任意のプロパティを渡す。

.postUserFunc参照

 

Override / Conditions:

override

string /stdWrap

もし"override"が""もしくはゼロ(トリムされた)以外の何かを戻したら、コンテンツはこれで読み込まれる!

 

preIfEmptyListNum

(as "listNum" below)

(以下の"listNum"の通り)

 

ifEmpty

string /stdWrap

この時点でコンテンツが空(トリムされた)の場合、コンテンツは"ifEmpty"で読み込まれる。ゼロは空の値として処理される!

 

ifBlank

string /stdWrap

"ifEmpty"と同じだが、strlen()を使ってチェックが行われる.

 

listNum

int

+calc

+"last"

"," (コンマ)でコンテンツを分解し、コンテンツは[value]項目へ設定される。.

 

特別なキーワード: "last"は配列の最後のエレメントに設定される!

 

.splitChar (文字列):

値を分解するのに使われる文字列を定義する。splitCharが整数地の場合、その数字の文字が使われる (例.分割した行...へ "10")。

デフォルト: “," (コンマ)

.stdWrap (stdWrapプロパティ):

listNum...のstdWrapプロパティ

 

例:

"アイテム1, アイテム2, アイテム3, アイテム4"の値を持っている:

これは"アイテム3"を戻す:

.listNum = last - 1

 

trim

 

PHP関数trim(); 値の周りの空白を取り除く

 

stdWrap

->stdWrap

stdWrap関数への再帰呼び出し

 

required

boolean

このフラグは、何らかのコンテンツインポートや今起こったと思われる処理(data, field, current, listNum, trim)の後で、コンテンツがある値に設定されることを要求する。ゼロは空とみなされない!代わりに"if"を使うこと!

コンテンツが空の場合、直ちに""が戻される。

 

if

->if

if-objectがfalseを戻した場合、stdWrapは直ちに""を戻す

 

fieldRequired

fieldname

このフィールドの値は必ず設定されなければならない

 

Parse data:

csConv

string

値として与えられたcharset からの文字列のcharset をfrontend (renderCharset)の現在のレンダリングしているcharset に変換する。

 

parseFunc

object path reference / ->parseFunc

コンテンツに関する処理説明書。

 

注: 値として文字列を入力した場合、TypoScriptオブジェクトツリー内の全体的なオブジェクトパスへの参照と受け取られる。これはユーザがここで付加したいずれかのプロパティとマージされたparseFunc の基本設定となる。リファレンスがコンテンツの要素に働くのと全く同じように動作する。

 

例:

parseFunc = < lib.parseFunc_RTE

parseFunc.tags.myTag = TEXT

parseFunc.tags.myTag.value = これは&lt;myTag&gt;が見つかったときに挿入される!

 

HTMLparser

boolean / ->HTMLparser

このオブジェクトでユーザはHTML-content を解析し、コンテンツ上のあらゆる詳細なfilterings を作成することが可能となる。

値は設定されなければならない、そしてプロパティは->HTMLparserとなる。

(->HTMLparser オプションについてはadminguideを参照)

 

split

->split

 

 

prioriCalc

boolean

Calculation of the value using operators-+*/%^オペレータに加えて+と-オペレータに優先する関連のオペレータ及び括弧レベルを使った値の計算。

. (period)は10進法のデリミタである。

doublevalueを戻す。

.prioriCalcが“intval” に設定されている場合、整数が戻される。

errorcheckingやゼロによる分割はない、又は その他の無効な値は異常な結果を生成することがある。また、使われる関数の今後の変更は追加のオペレータや機能を可能にするので、適切なシンタックスを使う。

 

例:

100%7 = 2

-5*-4 = 20

+6^2 = 36

6 ^(1+1) = 36

-5*-4+6^2-100%7  = 54

-5 * (-4+6) ^ 2 - 100%7 = 98

-5 * ((-4+6) ^ 2) - 100%7 = -22

 

char

int

コンテンツはchr(value)に設定。

PHP: $content=chr(intval($conf["char"]);

 

intval

boolean

PHP 関数intval(); 整数を戻す。

PHP: $content=intval($content);

 

date

date-conf

コンテンツはデータタイプ"UNIX-time"でなければならない。 データとしてフォーマットされたコンテンツを戻す。

$content=Date($conf["date"], $content);

 

例 timestampがインポートされた場合:

.value.field = tstamp

.value.date =

 

strftime

strftime-conf

上記"date"と全く同じ。コードもしくは、datatype "strftime-conf"に関してはPHPマニュアル(strftime)参照。

ロケールがあらかじめCONFIG-object に設定されている場合、このフォーマットは便利である。以下を参照。

 

プロパティ:

.charset : renderCharset に変換が必要な場合は、アウトプット文字列のcharset に設定できる。デフォルトではt3lib_cs から知的に予測されたcharset を取ることになっている。

 

age

boolean or string

“1”(数字、整数)で有効化されない場合は、コンテンツは日付(UNIXタイム)と見なされ、現在の時刻とコンテンツ時刻との違いは以下の4パターンのうちの1つとして戻される:

"xx min" 又は "xx hrs" 又は "xx days" 又は "xx yrs"

レイアウトが使われる範囲は、60分、24時間、365日である。

 

注:

非整数でこのプロパティを設定すると、4つの単位をフォーマットするのに使用される。以下がデフォルト値である:

" min| hrs| days| yrs"

 

単位を変更したい場合は、別の文字列を設定する。"-サインを含んでもよい。取り除かれることになる。

 

case

case

Caseを変換する

 

オペレーションには"renderCharset" を使用する。

 

bytes

boolean

インプット(整数値)をバイトでフォーマットする: bytes, kb, mb

 

“labels”プロパティに値を付加したい場合は、デフォルトサフィックスを変更することができる。バイト用ラベル、キロ、メガ、ギガは、縦棒(|)で分けられ、""で場合によりカプセル化できる。例 : " | K| M| G" (これはデフォルト値である)

以下の通り:

 

bytes.labels = “ | K| M| G”

 

substring

[p1], [p2]

第2、第3パラメータとして送られた[p1]及び[p2] と部分列をPHP部分列関数に戻す。

 

オペレーションに"renderCharset"を使用する。

 

removeBadHTML

boolean

XSSバグにとって危険だと思われるHTMLをフィルターにかけたパターンに基づく"bad" HTMLコードを取り除く。

 

stripHtml

boolean

全てのhtml-タグを取る除く。

 

crop

 

コンテンツをトリミングして一定の長さにする

シンタックス: +/- (chars) = from left / from right | [string] | [boolean: keep whole words]

 

例:

20 | ... => 最大 20けた。 それ以上必要な場合は、 値の最初の20けたで切り、"..."を付け加える。

-20 | ... => 最大20けた。 それ以上必要な場合は、 値の最後の20けたで切り、"..."を付け加える。

20 | ... | 1 =>最大20けた。 それ以上必要な場合は、 値の最後の20けたで切り、"..."を付け加える。分割部分が単語の途中の場合は、その単語の残りの部分は取り除かれる。

 

オペレーションには"renderCharset"を使用する。

 

rawUrlEncode

boolean

rawurlencode()-PHP-関数を通してコンテンツを渡す

 

htmlSpecialChars

boolean

htmlspecialchars()-PHP-関数を通してコンテンツを渡す

追加のプロパティ“.preserveEntities”がエンティティを保存するので、非エンティティ文字のみ影響を受ける。

 

doubleBrTag

string

すべての二重線ブレークはこの値で置き換えられる。

 

br

boolean

PHP 関数nl2br(); linebreaksを<br />-tagsに変換する。

 

brTag

string

全ての"10" (CR)のASCII-コードをvalueで置き換える

 

encapsLines

->encapsLines

コンテンツをchr(10)で分割し、各ラインを個々に処理することができる。RTEで作られたコンテンツをフォーマットするのに使われる。

 

keywords

boolean

"," ";"及びchr(10) (return)といった文字でコンテンツを分割し、各値を整え、値のコンマで分けられたリストを戻す。

 

innerWrap

wrap /stdWrap

コンテンツをラップする

 

innerWrap2

wrap /stdWrap

.innerWrapに同じ (しかし実行される順番に注意)

 

fontTag

wrap

 

 

addParams

->addParams

もしコンテンツがタグであったら、タグ-パラメータを加えることができる!

 

textStyle

->textStyle

フォントタグでコンテンツをラップする

 

tableStyle

->tableStyle

テーブルタグでコンテンツをラップする。

 

filelink

->filelink

ファイルへリンクしているリストを作るのに使用される。

 

preCObject

cObject

cObjectはコンテンツをプリペンドした

 

postCObject

cObject

cObjectはコンテンツを付け加えた

 

wrapAlign

align /stdWrap

コンテンツを<div style=text-align:[value]でラップする;”> | </div> アラインがセットされている場合

 

typolink

->typolink

コンテンツをリンクタグでラップする

 

TCAselectItem.

Array of properties

コンマ区切りの値のリストをTCA項目表現に分解する。

 

.table (string): 調べるべきテーブル

.field (string): 分解するべきフィールド

.delimiter (string): 複数のエレメントを連結するためのデリミタ。

 

注: 現在これはデータベース関連ではない“select”タイプのTCAフィールドのみで動作する。

 

spaceBefore

int /stdWrap

Pixels space before. Done with a clear-gif; <img ...><BR>

 

spaceAfter

int /stdWrap

Pixels space after. Done with a clear-gif; <img ...><BR>

 

space

space

[spaceBefore] | [spaceAfter]

 

追加のプロパティ:

.useDiv = 1

設定された場合は、高さを設定するスタイル属性ではクリアなgifは<div>タグに使用されない。(spaceBefore及びspaceAfterにも影響を及ぼす)。

 

wrap

wrap /+.splitChar

.splitCharは代わりの分割文字を定義する(デフォルトは“|” –縦棒である)

 

noTrimWrap

"special" wrap

これは下の例で-取り囲んでいる前後の空白を含む-val1とval2の値でコンテンツをラップする-値のトリミングはない。この種のラップは、ラップの初めと終わりに"|"文字を必要とすることに留意する。

 

例:

| val1 | val2 |

 

wrap2

wrap /+.splitChar

.wrapと同じ (しかし実行される順序に注意)

 

dataWrap

 

コンテンツは{...}のセクションで解析され、{...}のコンテンツはgetText タイプであり、getText の結果で置き換えられる。

 

例:

fontsizeがグローバル変数"size"で決定されるところでは、これはフォント-タグという結果になる。:

<font size="{global : size}"> | </font>

 

prepend

cObject

コンテンツの先頭にcObjectが付加される(前)

 

append

cObject

コンテンツにcObjectが加えられる(後ろ)

 

wrap3

wrap /+.splitChar

as .wrap と同じ(しkし実行される順序に注意)

 

outerWrap

wrap /stdWrap

コンテンツ全部をラップする

 

insertData

boolean

設定されると、上記.dataWrap 同様コンテンツ文字列は解析される。

 

例:

ページタイトルを表示する:

10 = TEXT

10.value = This is the page title: {page:title}

10.insertData = 1

 

offsetWrap

x,y

左とトップまでの列がそのコンテンツをxとyでオフセットしたテーブルの入力をラップする。cObject OTABLEに基づく。

 

.tableParams / .tdParams /stdWrap

- オフセットのtableParams/tdParams (デフォルト幅=99%)をコントロールするのに使用される。 デフォルト: OTABLE参照。

 

.stdWrap

- offsetWrap'ed出力をラップするstdWrapプロパティ

 

postUserFunc

function-name

クラスのPHP‐関数またはメソッドをコールし、現在のコンテンツを第1パラメータとし、任意のプロパティを第2パラメータとして関数に渡す。詳細な情報についてはcObject USER の説明を参照。

 

例:

この例を直接新しいテンプレートのレコードにペーストできる。

 

page = PAGE

page.typeNum=0

includeLibs.something = media/scripts/example_callfunction.php

 

page.10 = TEXT

page.10 {

  value = Hello World

  postUserFunc = user_reverseString

  postUserFunc.uppercase = 1

}

 

page.20 = TEXT

page.20 {

  value = Hello World

  postUserFunc = user_various->reverseString

  postUserFunc.uppercase = 1

  postUserFunc.typolink = 11

}

 

postUserFuncInt

function-name

クラスのPHP‐関数またはメソッドをコールし、現在のコンテンツを第1パラメータとし、任意のプロパティを第2パラメータとして関数に渡す。結果はレンダリングされた非キャッシュで、メインページレンダリングの外にある。詳細な情報についてはcObject USER_INT 及びPHP_SCRIPT_INTの説明を参照。

Jens Ellerbrock提供

 

prefixComment

string

コンテンツの前に("|"で分けられた)入力文字列の2番目の部分のHTMLコメントをつける。ただし、1番目の部分が整数で新しい行のコメントの前にいくつの末尾タブを付けるべきかを表示しているときにかぎる。

insertDataを通してコンテンツは解析される。.

 

例:

prefixComment = 2 | CONTENT ELEMENT, uid:{field:uid}/{field:CType}

 

1つのタブで(次の行は2+1のタブで)コメントをインデントする。

(TYPO3 >3.6.0RC1に追加)

 

editIcons

string

空でない場合、特定のフィールドでユーザエディットを構築しバックエンドするためにいくつかのパラメータを使って、typo3/alt_doc.phpにリンクしたアイコンを挿入する。

このプロパティの値はエディットするテーブルからのフィールドのリストである。cObjの現在のレコードはエディットされるべきレコードであると推測される。

シンタックス: optional tablename : comma list of fieldnames[list of pallette-field names separated by | ]

 

.beforeLastTag (1,0,-1): (1)が設定された場合、アイコンはコンテンツの最後のHTMLタグの前に挿入される。 -1の場合は、アイコンはコンテンツの先頭に付加される。ゼロの場合は、アイコンはコンテンツの最後に付け加えられる。

 

.styleAttribute (string): アイコンイメージにこの値でスタイル属性を加える。例えば、もしアイコンの非破壊挿入が必要であれば“position:absolute” を設定できる。注: 一般的なスタイリングについては、全てのエディットアイコンはサイトのstylesheet からアドレス指定できる“frontEndEditIcons”クラスを持っている。

 

.iconTitle (string): イメージタグのタイトル属性。

 

.iconImg (HTML): 表示されているデフォルトのアイコンの代わりのHTMLコード。エディット用の別のアイコンを設定するのに使用される(例えば、赤い点もしくは... :-)

 

例:

ヘッダやテキスト本文のフィールドが表示されエディットが可能になっている場合(ユーザがアクセスできるという条件で!)、フォームにリンクしているエディットアイコンを挿入する。

editIcons = tt_content : header, bodytext

 

又は、ヘッダフィールドに下の一行に表示される、という意味を持つ“palette”内に、header_alignとデータフィールドを入れるための下記の一行。これはスペースの省略になる。

editIcons = header[header_align|date], bodytext

 

 

editPanel

boolean / editPanel

cObject EDITPANEL.参照

 

debug

boolean

HTMLSpecialChars() 及び<PRE></PRE>でコンテンツをプリントする: TypoScriptでウェブサイトを構築している場合、stdWrapで実際に最後に来ている値をデバッグするのに役立つ。.

構築中のみ使用可。

 

debugFunc

boolean

debug()関数でコンテンツを直接ブラウザにプリントする。

構築中のみ使用可。

値“2” に設定すると、コンテンツはテーブルにプリントされる- 見た目がよい。

 

debugData

boolean

現在のデータ配列、$cObj->data、を直接ブラウザにプリントする。これは".field"がデータを入手する場所である。

構築中のみ使用可。

 

[tsref:->stdWrap]