модуль hook_menu выдает что я делаю не так?

Ничто внутри моей функции не работает.

Есть идеи здесь? Я прочитал несколько вопросов о hook_menu (), и мой код, похоже, отформатирован правильно. Я пробовал несколько разных способов вызова $ items. Любая помощь будет принята с благодарностью. Это, кажется, не работает вообще. Нужно ли выполнять запрос к БД в качестве функции обратного вызова? и если да, то как мне это сделать? можно подумать, что просто добавить ссылку в существующее меню будет легко ….

 function foodjournalmenuitem_menu() {
print "TEST";
global $user;
$items = array();
$query = db_select('node', 'n');
$query->condition('n.type', 'my_daily_food_page', '=')
->condition('n.uid', $user->uid, '=')
->fields('n', array('nid', 'title', 'uid', 'created'))
->range(0, 50)
->orderBy('n.created', 'DESC');

if ($query->execute()->fetchObject()) {
$result = $query->execute()->fetchObject();
if ($result->created) {
$created = $result->created;
$path = drupal_lookup_path('alias',"node/".$result->nid);
$now= time();
$hourDifference = round(($now- $created)/3600, 1);

//  if ($hourDifference >= 9) {
//    $output = l(t('Click Here to Create Today\'s Daily Food Page'), 'node/add/my-daily-food-page');
//    print "<span id='add-foodpage'>".$output."</span>";
//  } else {
//  $link = "" . l("Click Here To Update Today's Daily Food Page", 'node/' . $results[0]->nid . '/edit') . " ";
//  print "<span id='add-foodpage'>".$link."</span>";
// }

$createdDay = date("d", $created);
$createdMonth = date("m", $created);
$createdYear = date("Y", $created);
$createdHour = date("H", $created);

$nowDay = date("d", $now);
$nowMonth = date("m", $now);
$nowYear = date("Y", $now);
$nowHour = date("H", $now);

if ($createdDay != $nowDay || $createdMonth != $nowMonth || $createdYear != $nowYear) {
$items['node/add/my-daily-food-page'] = array(
'title' => 'Todays\'s Food Journal',
'weight' => 8,
'type' => MENU_NORMAL_ITEM,
'menu_name' => 'main-menu',
'access callback' => TRUE,
'access arguments' => array('access content'),
'page callback' => 'drupal_goto',
'page arguments' => array('node/add/my-daily-food-page'),
);

return $items;
}
else {
$items['node/' . $result->nid . '/edit'] = array(
'title' => 'Todays\'s Food Journal',
'weight' => 8,
'type' => MENU_NORMAL_ITEM,
'menu_name' => 'main-menu',
'access callback' => TRUE,
'access arguments' => array('access content'),
'page callback' => 'drupal_goto',
'page arguments' => array('node/' . $result->nid . '/edit'),
);

return $items;
}
}
else {
$items['node/add/my-daily-food-page'] = array(
'title' => 'Todays\'s Food Journal',
'weight' => 8,
'type' => MENU_NORMAL_ITEM,
'menu_name' => 'main-menu',
'access callback' => TRUE,
'access arguments' => array('access content'),
'page callback' => 'drupal_goto',
'page arguments' => array('node/add/my-daily-food-page'),
);

return $items;
}
}
else {
$items['node/add/my-daily-food-page'] = array(
'title' => 'Todays\'s Food Journal',
'weight' => 8,
'type' => MENU_NORMAL_ITEM,
'menu_name' => 'main-menu',
'access callback' => TRUE,
'access arguments' => array('access content'),
'page callback' => 'drupal_goto',
'page arguments' => array('node/add/my-daily-food-page'),
);

return $items;
}
}
?>

-1

Решение

Вы можете использовать error_log и посмотреть вывод в файле журнала httpd.

или вы можете использовать сторожевой таймер drupal и посмотреть вывод в admin / reports / dblog, но вам также нужно убедиться, что модуль «logging database» включен.

я не вижу, где вы используете значение drupal_lookup_path.

Также я рекомендую изменить этот код:

if ($query->execute()->fetchObject()) {
$result = $query->execute()->fetchObject();

к:

$result = $query->execute()->fetchObject();
if ($result) {
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]