0

カタログ用のmodxスニペットがあります(以下)。そして、カタログリストの各ブロックのmysqlデータベースに保存されている画像を表示するためにコードを貼り付ける必要があるチャンク(テンプレート)があります。データ呼び出しは[[+pic]]ですが、このようにすると、一連の(ascii?)シンボルが出力されます。dbから(blob)イメージをロードして印刷する方法についての提案がありますが、一度に複数のユーザーのカタログ内のブロックごとにdbを複数回呼び出すと、サーバーがクラッシュする可能性があるようです。

スニペット:

<?php
$path = MODX_CORE_PATH . 'components/zzz/';
$result = $modx->addPackage('zzz', $path . 'model/','wep_');
if (! $result) {
  return 'bla-bla-bla';
}

$sortByDatetime = 'datetime';     //sortby date
$sortByName = 'company_name'; //sortby alphabet

$s = $modx->newQuery('Company');

$s->sortby($sortByDatetime,'ASC'); //first-order sorting
$s->sortby($sortByName,'ASC'); //sub-group sorting

$s->where(array(
   'type'     => $filter,
));
$out = $modx->getCollection('Company',$s);

$output = '';
$num = 0;
foreach ($out as $item) {  //get each $item from $out collection
    $fields = $item->toArray();
    $output .= $modx->getChunk('showAllCompaniesTpl', $fields);  //append parts by template
                $num += 1;
                if ($num == 10) break;
}
return $output;

それで、可能であれば、いくつかのコード行でカタログへのエントリのセットのblobからの画像を表示(デコード?)する方法は?

4

1 に答える 1

0

これを置いて$fields = $item->toArray();、もう一度やり直してください

$fields['pic'] = '<img src="data:image/png;base64,'.base64_encode($fields['pic']).'"/>';

画像が変更されていない場合png-変更image/png

于 2012-12-30T17:15:44.453 に答える