我正在创建自定义模块和内容类型。并在我的页面上显示这些项目。我的模块是:
function theme_news(){
global $language;
$output = '';
drupal_set_title('News');
$m_query = db_select("node","n")->extend("PagerDefault")->limit(10);
$m_query->fields("n",array('nid','title','language'));
$m_query->condition('status','1',"=");
$m_query->condition('n.type','news','=');
//$m_query->condition('n.language',$language->language,'=');
$m_query->orderBy('n.sticky','desc');
if(arg(1) == 'latest_news'){
$m_query->join('field_data_field_etype','fe','n.nid=fe.entity_id');
$m_query->condition('fe.field_etype_value','ap','=');
if(arg(2) != ''){
$m_query->join('field_data_field_myear','fy','n.nid=fy.entity_id');
$m_query->condition('fy.field_myear_value',arg(2),'=');
}
}
if(arg(1) == 'feature_news'){
$m_query->join('field_data_field_etype','fe','n.nid=fe.entity_id');
$m_query->condition('fe.field_etype_value','sp','=');
if(arg(2) != ''){
$m_query->join('field_data_field_myear','fy','n.nid=fy.entity_id');
$m_query->condition('fy.field_myear_value',arg(2),'=');
}
}
此功能创建2个子菜单,并显示这些子菜单中的内容。使用我的代码,但我不知道,为什么我没有看到field_myear值。
我该如何解决?
答案 0 :(得分:1)
如果您不想使用视图,请创建一个包含关系,顺序,字段和所有需要的视图,然后通过模块中的视图复制生成的sql查询,这将有效。
答案 1 :(得分:0)
我建议您通过结合Drupal视图和过滤器来解决您的任务,而不是立即在自定义模块中制作自定义SQL查询。在大多数情况下,这已经足够了,以后会减少头痛。
condition
子句应该是视图过滤器。
join
应该是查看关系
,您的自定义字段确实应该是CCK字段。