Как получить HTML-код с виртуальной страницы гибкого инструментария

Я использую гибкий инструментарий 4.3.2. У меня есть виртуальная страница, содержащая форму.

Я создал кнопку:

$this->button = $this->addButton('')
            ->setAttr('title', 'Show Virtual Page');

И я привязал виртуальную страницу к этой кнопке:

$vp = $this->button->add('VirtualPage', $size)->bindEvent('Show Virtual Page', 'click');

Я хочу получить HTML-код виртуальной страницы, не нажимая кнопку. Как я могу это сделать? Я хочу иметь HTML в переменной, чтобы передать его в другое место, чтобы отобразить его позже.

Подскажите, пожалуйста, как мне получить HTML виртуальной страницы без нажатия кнопки. Я хочу иметь содержимое после загрузки страницы. Как я могу это сделать?


person Pascut    schedule 05.12.2016    source источник
comment
Я не вижу причин, по которым вам нужно добавить VirtualPage к кнопке. Можете ли вы объяснить более подробно, что вы пытаетесь выполнить?   -  person DarkSide    schedule 06.12.2016
comment
Я ответил на этот вопрос как ответ на ваш ответ.   -  person Pascut    schedule 06.12.2016


Ответы (1)


Это пример того, как вы можете добавить кнопку на страницу, и когда вы нажмете на эту кнопку, откроется диалоговое окно, в котором вы увидите виртуальную страницу с любым содержимым:

$b = $page->add('Button')->set('Open popup');
$vp = $b->add('VirtualPage')
    ->bindEvent('My Cool Title','click')
    ->set(function($page){
        $page->add('LoremIpsum');
    });

Я не уверен, почему вы хотите получить HTML этой виртуальной страницы. В любом случае вам следует избегать работы напрямую с html-кодом :)

В любом случае, в этом случае VirtualPage вообще не будет отображаться, пока кнопка не нажата.

В некоторых случаях можно попробовать использовать $vp->getPage()->getHTML();

person DarkSide    schedule 05.12.2016
comment
У меня есть пользовательская форма во всплывающем окне (модальное). Я хочу скопировать HTML из этого модального окна в переменную, чтобы отобразить его позже. Код: $vp-›getPage()-›getHTML(); отображает пустой html с пустыми тегами head и body. - person Pascut; 06.12.2016
comment
Что вы имеете в виду под... чтобы отобразить его позже? Позже когда? VirtualPage — это страница, а не форма или простое представление. Если он вызывается по определенному URL-адресу (см. $vp->getURL()), то он заменит исходную страницу приложения своим собственным выводом. - person DarkSide; 08.12.2016
comment
Вы прямо здесь. Это не очень хорошее решение. Моя реальная проблема заключается в том, что нет решения для получения HTML-формы, чтобы отобразить ее вручную там, где я хочу на странице. Например, я отображаю форму для каждого столбца сетки на странице. - person Pascut; 09.12.2016
comment
Итак, вы хотите добавить форму внутри столбца сетки? Это может быть сложно, потому что сетка atk не поддерживает это из коробки. Но всегда есть решение, например, настраиваемый шаблон сетки и настраиваемый модуль форматирования столбцов, который добавляет форму внутри шаблона сетки. В любом случае - в этом случае VirtualPage не нужен. Что именно вам нужно выполнить? - person DarkSide; 12.12.2016