OpenTBS - 图像不存在时隐藏

OpenTBS - hide image when does not exist

我有一张图片列表 url,或者在某些情况下是空的。 我只想在 url 存在时显示图像,而不在 url 不指定时不显示图像。 有一个非常相似的 post here,但没有完全回答,所以我再次 posting 这个。

这是我的 php 数组:

$myBlock = array(
  'description' => ...,
  'name' => ...,
  'photos' => 
    array (
      0 => string 'C:\path_to\pic_5491y.png'
      1 => string 'C:\path_to\pic_5491y.png'
      2 => string 'C:\path_to\pic_5491y.png'
      3 => int 0
      ...
      9 => int 0
      10 => int 0
    )
);

然后我尝试在块内显示图像(目前,我只尝试第一张照片)

[myBlock; block=begin]
     (the image I am trying to replace, or hide)
     [CODE]
[myBlock; block=end]

下面是我尝试放入 [CODE] 的内容,结果是:

非常感谢,如果您需要更多详细信息,请告诉我!

编辑

Skrol 的建议在我使用时完全有效

$TBS->MergeBlock('myBlock', $myBlock['photos']);

但我实际上是在尝试直接合并 $myBlock,因此在我的 word 文档中,尝试执行“double foreach”

我在模板中创建双块失败(原因是我试图在照片之前显示一些信息。)

我正在尝试做:

[myBlock; block=begin]
   [myBlock.description]   // => Display description before displaying the photos

   [myBlock.photos; block=begin]
   [myBlock.photos; block=end]
[myBlock; block=end]

但是当我添加第二个 myBlock.photos 以便循环遍历它们时,我遇到了这个错误:in block's definition [myBlock...]: a least one tag with parameter 'block=end' is missing.

编辑二

在使用相同的代码尝试了几件事之后,我设法消除了错误,这可能是因为某处有错误的隐藏字符。但它现在试图显示第二个块,而不是创建一个新的 foreach:

 This is description 1
 array
 array

 This is description 2
 array
 array

 ....

如果这有助于更好地了解我正在努力实现的目标,这里我将在 PHP:

中使用等效项
foreach( $myBlock as $myBlockKey => $myBlockData)
{
    echo $myBlockData['description'];
    echo $myBlockData['name'];
    ...

    foreach( $myBlockData['photos'] as $photoKey => $photoData)
    {
       echo $photoData['url'];
    }
}

知道如何定义这个双块吗??? 我在文档或其他任何地方都找不到任何示例:(

为了合并存储在 $myBlock['photos'] 中的图像,您的代码应该是这样的:

PHP :

$TBS->MergeBlock('myBlock', $myBlock['photos']);

DOCX :

[myBlock; block=begin; when 0!=[myBlock.val]]
   (the image I am trying to replace, or hide)
   [myBlock.val;ope=changepic;tagpos=after;adjust;unique;]
[myBlock; block=end]

解释:

  • 命令MergeBlock() 合并结构为记录集的数据。那是一组具有相同结构的记录。在你的截图中,只有 $myBlock['photos'] 是一个记录集。由于每条记录直接是一个值,您可以使用虚拟列 valkey 来获取数据。
  • 参数when 0!=[myBlock.val]使块部分成为有条件的。所以只显示值不为 0 的记录。
  • 应使用参数 tagpos=after,因为 TBS 标签位于图像之后