2012-02-14 8 views
0

私は、ユーザがバックエンドビューにエントリを保存すると、contaoカタログアイテムをPDFとして書き出すスクリプトを書いた。pdf出力のテンプレートでcontao/typolightコードを解析する

私の問題は、私は、変数$entry['data']['link_img']['ref']すなわち、プリントアウトしている場合、テンプレートでは、このようなコードがあること、である:。

a:3:{i:0;s:2:"14";i:1;s:2:"15";i:2;s:2:"13";}(foreachの仕様と一致していないシリアル化された配列、)

PHPコードは次のようになります。

<?php foreach ($entry['data']['link_img']['ref'] as $link_img):?> 
    <? print($link_img); ?> 
     <a href="werke-detail/items/<?php echo $link_img['alias']; ?>.html"> 
    <?php echo $link_img['title']; ?> </a><br /> 
<?php endforeach; ?> 

Contaoのは、私がデータを取得する場合、それはない、これは動作しますが、テンプレートを解析するとき。私のforeachを動作させるために、これを解読するために私が使うことができるcontaoの関数がありますか?

UPDATE

大きな疑問がある:どこContaoのは、テンプレートエンジンで、それは魔法だやるん、どのように私は同じことを行うことができますか?

ありがとうございました

+0

これはシリアル化されたデータのようです。 'unserialize()'がチケットでなければなりません。 –

+0

あなたはshureですか?フィールドには「エイリアス」のようなフィールドがないので.... – helle

+0

ああ、私は参照してください!その後、Contaoはおそらくいくつかの追加の魔法をしています。何をすべきか考えていない、申し訳ありません。 –

答えて

0

コメントは、 Contaoは特定のデータ型をシリアル化されたPHP配列として保存します。バックエンド内の通常

次のように保存されている任意のフィールド:シリアライズとして

$GLOBALS['TL_DCA']['tl_dca']['fields']['yourfield']['eval']['multiple'] = true; 

あなたは$これを使用しているすなわちあれば、そのようなユーザーとしてのクラスで構築されたいくつかは、そのようなデータをアンシリアライズし、そのデータを格納します - >ユーザー。

また、シリアライズされた配列はすべてデータベースのBLOB型に格納されるため、特定のモジュールのdatabase.sqlによって何かがその形式になるかどうかの手掛かりが得られます。

serialize/unserialize関数は、system/functions.phpに格納されています。この関数には、他にも便利なPHP関数がいくつかあります。

+0

User-unserializeメソッドを使用すると、すべてのフィールド(タイトル、エイリアス)を取得できますか?いくつかの例を挙げることができますか? – helle

+0

あなたが上で指定した配列は、配列の型を参照することによって配列(14,15,13)を与えます。テンプレートのイメージタイトルとエイリアスの後ろにいますか? –

+0

はいわかっています。私はまた、 ''シリアライズ ''と '' unserialies''が何をするのか知っています。問題は、あなたがコメントで読むことができるようになります:contaoはどこでそれが魔法であるのですか、どうすればいいのですか? – helle

関連する問題