大佬教程收集整理的这篇文章主要介绍了php-如何在Drupal中加载父项的标题,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
function modulename_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL)
{
switch ($op)
{
case 'view':
loadParenttitle($nodE);
break;
}
}
function loadParenttitle(&$nodE)
{
$title = $node->title;
$query = "SELECT mlid, p1, p2,p4,p5,P6,P7,p8,p9 FROM menu_links WHERE link_title like '%%%s%%'";
$data = db_fetch_array(db_query($query, $titlE));
$mlid = $data["mlid"];
$i = 9;
while (($data["p". $i] == 0 || $data["p". $i] == $mlid) && $i >= 0)
{
$i--;
}
if ($i > 0)
{
$query = "SELECT `link_title` as parenttitle from `menu_links` WHERE mlid = " . $data["p" . $i];
$data = db_fetch_array(db_query($query));
$parenttitle = ($data["parenttitle"]);
}
else
{
$parenttitle = $title;
}
$node->content['#parenttitle'] = $parenttitle;
}
只要该项目的标题与菜单标题相同,它就起作用.但是我正在寻找一种将一直有效的解决方案.有任何想法吗?
解决方法:
您没有真正指定“父节点”是什么意思,但是菜单链接的父级的mlid存储在menu_links.plid中.现在,link_path将是node / nid,您可以从那里获取标题.
$mlid = db_result(db_query("SELECT plid FROM {menu_links} WHERE link_path = 'node/%d'", $node->nid));
$link_path = db_result(db_query("SELECT link_path FROM {menu_links} WHERE mlid = %d", $mlid));
$title = db_result(db_query("SELECT title FROM {nodE} WHERE nid = %d", substr($link_path, 5));
前两个查询可以通过JOIN进行统一,但是我强烈建议不要将第三个查询也加入其中(您可以使用CONCAT(‘node /’,nid)= parent.link_path),因为这将不可索引.这三个查询实际上应该是即时的.
附言您不会忘记在打印之前先检查一下check_plain($titlE),对吗?
以上是大佬教程为你收集整理的php-如何在Drupal中加载父项的标题全部内容,希望文章能够帮你解决php-如何在Drupal中加载父项的标题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。