Загрузка последних узлов на боковой панели Drupal через Ajax (как в Facebook) - PullRequest
1 голос
/ 06 августа 2010

Хотелось бы, чтобы в JQuery работал динамический загрузчик последних узлов, похожий на Facebook, на боковой панели Drupal.Каждый раз, когда создается новый узел, пользователи смогут видеть его в списке (аналог Facebook) без обновления страницы.Будем благодарны за любые советы, учебные ссылки и т. Д.

1 Ответ

1 голос
/ 06 августа 2010

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

На самом деле все, что вам нужно написать, это блок ( hook_block ), который вводит некоторый JavaScript , который:

  • Отправляет AJAX-запрос на страницу, определенную вашим модулем (скажем, / node / new)
  • Отображение данных в блоке (с помощью обратного вызова ajax).
  • Использует вызов javascript set_timeout для повторного вызова.

Страница будет определена в hook_menu вызове с 'type' => MENU_CALLBACK и вызове пользовательской функции (my_module_nodes_new).

function my_module_nodes_new() {
  $output = '';
  $result = db_query("SELECT nid FROM {node} WHERE status = 1 LIMIT 5 ORDER BY `created` DESC");
  while($nid = db_fetch_object($result) {
    $node = node_load($nid->nid);
    // Theme the information here and add it to $output
  }

  print $output; //IMPORTANT - do not "return" $output or it will be inside your theme
}

Надеюсь, это поможет!

...