-1

私の関数内では何も実行されていないようです。

ここに何かアイデアはありますか?複数の hook_menu() の質問を読みましたが、コードは適切にフォーマットされているようです。$items を呼び出すさまざまな方法を試しました。どんな助けでも大歓迎です。これはまったく実行されていないようです。DB クエリをコールバック関数として実行する必要がありますか? もしそうなら、どうすればいいですか?既存のメニューにリンクを追加するだけで簡単だと思うでしょう....

 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;
  }
}
?>
4

1 に答える 1

0

error_log を使用して、httpd ログ ファイルに出力を表示できます。

または、drupal のウォッチドッグを使用して admin/reports/dblog の下に出力を表示することもできますが、モジュール「データベース ログ」が有効になっていることも確認する必要があります。

drupal_lookup_path の値を使用する場所がわかりません。

また、このコードを変更することをお勧めします:

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

に :

$result = $query->execute()->fetchObject();
if ($result) {
于 2014-12-13T07:18:58.833 に答える