拥有一个页面记录数组 ( $pages
),其关联键与数据库中的字段名称相同,主要是媒体字段,您只需遍历数组并使用 Typoscript 配置创建图像。
示例 1(程序员设置渲染)
foreach($pages as $value) {
$mediaField = t3lib_div::trimExplode(',', $value['media']);
if(!$mediaField[0]) continue;
$imageConf = array(
'file' => 'uploads/media/' . $mediaField[0],
);
$content .= $this->cObj->cObjGetSingle('IMAGE', $imageConf);
}
示例 2(编辑器设置渲染)
foreach($pages as $value) {
$this->cObj->data = $value;
$content .= $this->cObj->stdWrap($value['media'], $this->conf['media_stdWrap.']);
}
它设置页面数据,以便它们field
在 Typoscript 中可用。然后配置看起来像这样:
{
media_stdWrap {
cObject = IMAGE
cObject {
file {
import = uploads/media/
import.field = media
import.listNum = 0
}
}
}
}
示例 3(前 2 个示例的组合)
foreach($pages as $value) {
$mediaField = t3lib_div::trimExplode(',', $value['media']);
$mediaOutput = '';
// Creating the output with a default rendering
if($mediaField[0]) {
$imageConf = array(
'file' => 'uploads/media/' . $mediaField[0],
);
$mediaOutput = $this->cObj->cObjGetSingle('IMAGE', $imageConf);
}
// Allowing custom Typoscript to completely modify the media part
if(array_key_exists('media_stdWrap.', $this->conf)) {
$this->cObj->data = $value;
$mediaOutput = $this->cObj->stdWrap($mediaOutput, $this->conf['media_stdWrap.']);
}
$content .= $mediaOutput;
}
注意:这些示例完全未经测试。我已经想出了它们。