作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个自定义模块,它实现钩子(Hook) nodeapi 以在创建或更新节点时执行一些代码。
基本上我想根据节点保存或更新时自动生成的别名创建一个别名。
现在我正在使用对 path_set_alias 的调用,我只想使用特定类型的内容“产品”来执行此操作。
这是我的 nodeapi 调用让我开始
function product_url_helper_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
if($node->type == 'product'){
switch($op){
case 'insert':
_create_alternate_url($node);
break;
case 'update':
_create_alternate_url($node);
break;
case 'view':
//do nothing
break;
default:
break;
}
}
return;
}
function _create_alternate_url($node){
$aliasExists = db_fetch_object(db_query("SELECT count(dst) as total FROM {url_alias} WHERE dst = 'alternate/".$node->path."'"));
if($aliasExists->total == 0){
$product_url = $node->path;
$alternate_url = "alt/" . $node->path;
$default_node_path = "node/" . $node->nid;
path_set_alias($default_node_path, $alternate_url, 0, '');
drupal_set_message("Created Alternate path for Product: " . $node->title . " <br/> Path <a href='/" . $default_node_path ."'>" . $default_node_path . "</a> is now aliased by <a href='/" . $alternate_url . "'>". $alternate_url ."</a>");
}
最佳答案
JR,在 Drupal7 中改进您的代码,db_query 很昂贵。更好的方法是使用 lookup_path drupal 函数:
$urlAlias = drupal_lookup_path('alias',"node/".$node->nid . '/prices');
if( urlAlias == '' )
path_set_alias($default_node_path, $alternate_url, 0, '');
关于Drupal:如何以编程方式为节点保存时已具有别名的节点创建 URL 别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4811065/
我是一名优秀的程序员,十分优秀!