Я пытаюсь перебрать простой массив и отобразить его информацию в моем docx
шаблон с OpenTBS
, но не могу заставить его работать 🙁
Так что у меня просто 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
без везения)
Извините, что задаю такой простой вопрос, как перебирать массив, но даже прочитав несколько других постов по теме, документам или изучив предоставленный ими пример, я не смог найти решение для этого. простая проблема 🙁
Большое спасибо за вашу помощь, дайте мне знать, если вам нужно больше информации!
Ваш фрагмент на стороне PHP выглядит правильно.
Ваш автономный шаблон [myBlock.name]
должны быть правильно объединены с первой записью ваших данных. Это поведение TBS, когда граница блока не определена.
Если ничего не объединено, это может быть потому, что какой-то дизайн разделяет какой-то тег TBS. Решение состоит в том, чтобы выбрать тег TBS, вырезать его, а затем вставить его в виде простого текста (без форматирования).
Также есть Ms Word Macro для очистки тегов TBS в DOCX но даже это практично, это пока что в бета-версии.
Ваш кусок шаблона с определением блока неверен. Должно быть так:
[myBlock; block=begin]
Name : [myBlock.name]
Name : [myBlock.$]
Name : [myBlock.#]
Name : [myBlock.name]
[myBlock; block=end]
Других решений пока нет …