0

Drupal 7 の使い方を学び始めたところです。フロント ページにフィードとして表示される新しいコンテンツ タイプを作成しました。必要なすべてのデータが取得され、画像を除いて正しく表示されます。画像の URL には常に実際のファイルがありません。デフォルトの記事コンテンツ タイプを使用するフロント ページに別のフィードがあり、すべての画像が適切に表示されます。

両方に使用したコードは基本的に同じで、唯一の違いは取得するコンテンツ タイプです。

このセットは機能しました:

$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title'))
->condition('n.type', 'article')
->leftJoin('field_data_body', 'u', 'u.entity_id = n.nid');
$query->addField('u', 'body_summary');
$query->orderBy("nid", "desc");
$query->range(0, 3);
$result = $query->execute();

while($row = $result->fetchAssoc()) {
   $nid = $row['nid'];
   $node = node_load($nid);
   echo theme('image_style', array('style_name' => 'home-article-summary', 'path' => ($node->field_image['und'][0]['uri'])));
}

これはしませんでした:

$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title'))
->condition('n.type', 'news') //the only difference between the two is this line
->leftJoin('field_data_body', 'u', 'u.entity_id = n.nid');
$query->addField('u', 'body_summary');
$query->orderBy("nid", "desc");
$query->range(0, 3);
$result = $query->execute();

while($row = $result->fetchAssoc()) {
   $nid = $row['nid'];
   $node = node_load($nid);
   echo theme('image_style', array('style_name' => 'home-article-summary', 'path' => ($node->field_image['und'][0]['uri'])));
}

作成したコンテンツ タイプの設定を記事の設定と同じにして、[構造] -> [コンテンツ タイプ] で試しましたが、何も起こりませんでした。私は何が欠けていますか?ありがとうございました。

編集: 調べたところ、カスタム コンテンツ タイプ用にアップロードした画像のサイズ変更されたバージョンが見つかりませんでした。これは、実際にサイズ変更が行われたことがないため、スクリプトがファイルを返さなかったことを意味すると思います。なぜそれが起こったのかはまだわかりません。

2番目を編集してください:気にしないでください。問題が見つかりました。今はすべて正常に動作しています。間違った変数を使用していました。

4

1 に答える 1

0

Drupal 初心者への親切なアドバイスとして、大量のカスタム データベース クエリを記述する代わりに、ビューを使用してコンテンツのリストを表示することを検討してください。これにより、長期的には多くのコーディングを節約できます。

ビューに関するもう 1 つの議論は、Drupal 8 コアに含まれるということです。

于 2012-12-09T14:24:28.623 に答える