Я пытаюсь объединить текст с несколькими слайдами, используя OpenTBS, но не могу заменить [a.ProjectName] в заголовке нескольких слайдов.
Я следовал за демонстрацией в OpenTBS, но когда я использую приведенный ниже код для получения имени проекта, я не могу получить замену блока для успешного выполнения.
Это код, который я использовал:
$data = array ('ProjectName' => $manageProjectName->getProjectName());
$TBS->MergeBlock('a', $data);
$TBS->Plugin(OPENTBS_SELECT_SLIDE, 1, true); //true means use slide master but it is not having any effect
Как можно заменить [a.ProjectName] содержимым ProjectName на нескольких слайдах и объединить содержимое ProjectName с несколькими слайдами с помощью OpenTBS?
Вот моменты, которые необходимо учитывать в вашем случае:
MergeBlock()
, MergeField()
и автоматические поля [onload]
, [onshow]
).Другая проблема в вашем фрагменте состоит в том, что вы, кажется, путаете MergeBlock()
а также MergeField()
, MergeBlock () предназначен для объединения данных, которые являются наборами записей (несколько записей, имеющих несколько полей); таким образом, блок повторяется столько раз, сколько они являются записями. MergeField () предназначен для объединения элементов, как в вашем фрагменте.
Итак, ваш код должен быть:
$data = array ('ProjectName' => $manageProjectName->getProjectName());
// Merging [a.ProjectName] in the master slide #1
$TBS->Plugin(OPENTBS_SELECT_SLIDE, 1, true);
$TBS->MergeField('a', $data);
// Merging [a.ProjectName] in the normal slide #1
$TBS->Plugin(OPENTBS_SELECT_SLIDE, 1);
$TBS->MergeField('a', $data);
Других решений пока нет …