Drupal 6 如何在Drupal中链接自定义结果
我第一次来这里是一个Drupal和编程新手 所以我有个问题需要帮助Drupal 6 如何在Drupal中链接自定义结果,drupal-6,linker,Drupal 6,Linker,我第一次来这里是一个Drupal和编程新手 所以我有个问题需要帮助 function query_results($searchstring, $datefrom) { $tidresult = db_query("SELECT tid FROM {term_data} WHERE LOWER(name) = '%s'", strtolower($searchstring)); $resultarray = array(); while ($obj = db_f
function query_results($searchstring, $datefrom) {
$tidresult = db_query("SELECT tid FROM {term_data} WHERE LOWER(name) = '%s'", strtolower($searchstring));
$resultarray = array();
while ($obj = db_fetch_object($tidresult)) {
$tid = $obj->tid;
$noderesults = db_query("SELECT n.nid, n.title FROM {node} n
INNER JOIN {term_node} tn ON tn.nid = n.nid
WHERE tn.tid='%s'", $tid);
while ($nodeobj = db_fetch_object($noderesults)) {
$resultarray[$nodeobj->nid] = $nodeobj->title;
}
}
$header = array(
array('data' => 'Nr.'),
array('data' => 'Name'),
);
$rows = array();
$i = 0;
foreach($resultarray as $nid => $title) {
$i++;
$rows[] = array('data' =>
array(
$i,
$title,
),
);
}
$output = theme('table', $header, $rows);
print theme("page", $output);
}
这让我抓狂,我不想把所有的搜索代码都放进去,但它需要数据库中的分类标签(你在文本框中输入自动完成的“$searchstring”)和日期(你选择一个时间线,比如一天,昨天等,“$datefrom”)
例如,当您单击“搜索”时,可以这样说
我不能发布我的一张照片,但我只给了我标题(如上所述,但没有列出),我不能点击它来引导我找到内容
但我不会让它看起来像是内容(故事),所以你们有一个可点击的标题和一些描述,像这样
上面写着lorem ipsum和下面的文字
如果很难在图片中找到类似的内容,有人能告诉我如何将不可点击的标题变成可点击的链接(如第一张图片中所示),从而引导我找到内容 要获取链接标题,您需要使用
l()
函数
查看您提供的代码,我不完全确定您是如何获得任何结果的,因为您将标题保存在$resultaray
中,但在呈现表格时使用$rows
除非在其他地方指定了$rows,$resultarray[$nodeobj->nid]=$nodeobj->title代码>应该变成$rows[$nodeobj->nid]=$nodeobj->title代码>
要使其与表格标题匹配,需要为数字列添加另一个“单元格”
$rows[$nodeobj->nid] = array(
$count++,
l($nodeobj->title, 'node/'.$nodeobj->nid)
);
为了提供摘录,您需要加入node_revisions表并获取body或trister列,然后将其添加到行中,如下所示:
$rows[$nodeobj->nid] = array(
$count++,
'<h2>'. l($nodeobj->title, 'node/'.$nodeobj->nid) .'</h2>'. $nodeobj->teaser
);
-或-
在一个查询中移动它(注意:我没有机会测试这个,但我通常第一次就做对了):
嗨,谢谢你的回答,我把丢失的代码放在这里了。我粘贴了一个旧版本的代码,所以完整的代码现在就在上面了。
$rows = array();
$count = 0;
while ($obj = db_fetch_object($tidresult)) {
$tid = $obj->tid;
$noderesults = db_query("SELECT n.nid, n.title FROM {node} n "
."INNER JOIN {term_node} tn ON tn.nid = n.nid "
."WHERE tn.tid='%s'", $tid);
while ($nodeobj = db_fetch_object($noderesults)) {
$rows[] = array(
++$count,
l($nodeobj->title, 'node/'. $nodeobj->title)
);
}
}
$header = array(
array('data' => 'Nr.'),
array('data' => 'Name'),
);
$output = theme('table', $header, $rows);
print theme("page", $output);
}
function query_results($searchstring, $datefrom) {
$rows = array();
$count = 0;
$results = db_query("SELECT n.nid, n.title
FROM {node} n
INNER JOIN {term_node} tn ON tn.nid = n.nid
WHERE tn.tid IN (SELECT tid FROM {term_data} WHERE LOWER(name) = '%s')", strtolower($searchstring));
while ($nodeobj = db_fetch_object($results)) {
$rows[] = array(
++$count,
l($nodeobj->title, 'node/'. $nodeobj->title)
);
}
$header = array(
array('data' => 'Nr.'),
array('data' => 'Name'),
);
$output = theme('table', $header, $rows);
print theme("page", $output);
}