2016-01-10 4 views
0

Я пытаюсь Переберите простой массив и отображение данных в моем docx шаблоне с OpenTBS, но не могу заставить его работать :(OpenTBS итерация по массиву

Так у меня есть farely простого array, что Поручаю к блоку, как следует:

$TBS = new \clsTinyButStrong(); 
$TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN); 
$TBS->LoadTemplate($template, OPENTBS_ALREADY_UTF8); 
$myArray = array( array('name' => 'bedroom'), 
        array('name' => 'kitchen'), 
        array('name' => 'lounge'), 
       ); 
$TBS->MergeBlock('myBlock', $myArray); 
$output_file_name = 'C:/testTBS.docx'; 
$TBS->Show(OPENTBS_FILE, $output_file_name); 

в моем docx шаблоне, я пытался несколько простых вещей, как это:

[myBlock.name] => doesnt display anything 

В идеале я хочу повторить целый блок, так как вы можете себе представить, что мой массив будет немного сложнее.

Я пробовал другие решения:

[myBlock; block=begin] 
    Name : [onshow; myBlock.0.name;] 
    Name : [onshow; myBlock.$;] 
    Name : [onshow; myBlock.#;] 
    Name : [onshow; name;] 
    Name : [onshow; BlockName.0;] 
[myBlock; block=end] 

Так что вид работ, так как его правильно перебирает массив (он отображает все, что в 3 раза, что хорошо учитывая, что я есть 3 дополнительных массивов). Но этот вариант, я не могу найти, как отобразить имя, как и все, что я пытался просто не отображать его, как вы можете видеть на моем выходе:

Name : [onshow; myBlock.0.name;] 
Name : 
Name : [onshow; myBlock.#;] 
Name :[onshow; name;] 
Name :[onshow; BlockName.0;] 

Name : [onshow; myBlock.0.name;] 
Name : 
Name : [onshow; myBlock.#;] 
Name :[onshow; name;] 
Name :[onshow; BlockName.0;] 

Name : [onshow; myBlock.0.name;] 
Name : 
Name : [onshow; myBlock.#;] 
Name :[onshow; name;] 
Name :[onshow; BlockName.0;] 

(Я также пробовал то же самое без onshow, не повезло)

Прошу простить такой простой вопрос, как перебирать массив, но даже с чтением нескольких других сообщений на эту тему, документов или прохождения ими примера обеспечить, я не смог найти решение для этой простой проблемы :(

Большое спасибо за помощь, позвольте мне если вам нужно больше информации!

ответ

2

Ваш фрагмент на стороне PHP выглядит правильно.

Ваша отдельная часть шаблона [myBlock.name] должна быть правильно объединена с первой записью ваших данных. Это поведение TBS, когда граница блока не определена.

Если ничего не слито, это может быть связано с тем, что какой-то дизайн разделяет некоторый тег TBS. Решение состоит в том, чтобы выбрать тег TBS, вырезать его, а затем пропустить как обычный текст (без форматирования).

Существует также Ms Word Macro for cleaning TBS tags in DOCX, но даже практично, он находится в бета-версии на данный момент.

Неверный фрагмент вашего шаблона с определением блока. Это должно быть так:

[myBlock; block=begin] 
    Name : [myBlock.name] 
    Name : [myBlock.$] 
    Name : [myBlock.#] 
    Name : [myBlock.name] 
[myBlock; block=end] 
+0

Большое спасибо за ваш ответ и вашу помощь. Skrol29! Я не знаю, почему я не пробовал поместить это [myBlock.name] в самом блоке, так как, глядя на него, это кажется очевидным сейчас! Еще раз спасибо !! – mokk

Смежные вопросы