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'])));
}

我尝试通过 Structure-> Content Types 将我创建的内容类型的设置与文章的设置相同,但没有发生任何事情。我错过了什么?谢谢你。

编辑:经检查,我找不到为我的自定义内容类型上传的图像的调整大小版本。我假设这意味着实际上没有发生调整大小,因此脚本没有返回文件。我仍然不明白为什么会这样。

编辑第二个:没关系。我发现了问题。现在一切正常。只是使用了错误的变量。

4

1 回答 1

0

作为对 Drupal 新手的一点友好建议,考虑使用视图来显示内容列表,而不是编写大量自定义数据库查询。从长远来看,这将为您节省大量编码。

Views 的另一个论点是它将被包含在 Drupal 8 核心中。

于 2012-12-09T14:24:28.623 回答