Форма Atk4 Step by Step не загружает кнопки Facebook Like

У меня есть массив со списком сайтов, я пишу пошаговую форму, используя http://codepad.agiletoolkit.org/newsletter пример.

На втором этапе я добавляю кнопки «Нравится», используя следующий код:


    $attr = array (
      'data-send' => FALSE,
      'data-layout' => 'button_count',
      'data-width' => 100,
      'data-show-faces' => FALSE  
    );
    foreach($this->sites as $k => $site) {
      $div = $form->add('View_HtmlElement')->setElement('div')->set(NULL);  
      $attr['data-href'] = $site;  
      $div->addClass('fb-like');
      $div->setAttr($attr);
    }

Это хорошо работает, когда я обращаюсь напрямую, но когда я пытаюсь получить доступ с помощью следующей кнопки, кнопки «Мне нравится» не загружаются.

Любое решение для этого?


person Braulio Soncco    schedule 17.04.2012    source источник


Ответы (1)


Причина, по которой facebook и некоторые другие кнопки могут не работать со страницами AJAX, заключается в том, что скрипты facebook обычно обрабатывают ваш HTML только во время начальной загрузки страницы. Когда форма в вашем примере переходит к следующему шагу, она использует AJAX для загрузки дополнительной формы. В результате вам нужно будет либо вручную запускать сценарии Facebook для повторного просмотра вашей страницы, либо выполнять перенаправления вместо перезагрузки. Вам нужно будет изменить:

$this->js()->atk4_load($this->api->getDestinationURL('./step2'))
    ->execute();

to

$this->js()->univ()->location($this->api->getDestinationURL('./step2'))
    ->execute();

Вам также может быть полезна эта статья: http://agiletoolkit.org/blog/adding-twitter-button-to-ajax-page/

person romaninsh    schedule 18.04.2012