Модуль Drupal и PHP-файл - PullRequest
       8

Модуль Drupal и PHP-файл

0 голосов
/ 03 февраля 2012

Я пытаюсь создать тестовый модуль в drupal 6.x, который загружает страницы php. Я создал файлы test.module и test.info, а также поместил их на страницу .php. Ниже приведен код test.module. Но это не работает на моем drupal_site / test, я получаю страницу, не найденную.

function test_perm() {
  return array('access test content');
}

function test_contents() {
    module_load_include('php', 'test', 'index');
}

function test_menu() {

  $items = array();

  $items['test'] = array(
    'title' => t('Test'),
    'description' => t('Test desc'),
    'page callback' => 'test_page',
    'access arguments' => array('access test content'),
    'type' => MENU_NORMAL_ITEM
    );

  return $items;
}

function test_page() {
   $page_array['test_arguments'] = array(
     '#markup' => test_contents(),
   );
   return $page_array;
}

1 Ответ

1 голос
/ 03 февраля 2012

Я предполагаю, что ваш test_contents() выводит HTML прямо в буфер страницы? Это не то, как работает Drupal, он ожидает, что вы создадите строку и вернете , что , в вашей переменной $ page_array.

Либо измените вашу test_contents() функцию на , верните строку, а не output it, либо сохраните вывод во временном буфере и присвойте его строке:

function test_page() {
  // Start your buffer
  ob_start();

  // Output into the buffer
  test_contents();

  // Save the result to a string and close the buffer
  $contents = ob_get_clean();

  $page_array['test_arguments'] = array(
    '#markup' => $contents,
  );
  return $page_array;
}
...