Drupal 执行任意menu url

    这段代码也纺强悍了,只需要一个menu地址就会车出这个url 的content. index.php 也刚好运行了这个函数:

    http://api.drupal.org/api/drupal/includes%21menu.inc/function/menu_execute_active_handler/7

    menu_execute_active_handler 这个是drupal 路径处理函数,当你把menu node/2设置成 Active以后就运行处理node/2 这个path

    
    

    其实这样也是可以的

    return menu_execute_active_handler('node/2', FALSE);
    

Drupal menu_set_active_item 使用Link出错

这个函数使我的链接错乱了
当node view 的时候将menu Active设置为event. 这样写当然没错,是正确的。
当我进行文章搜索的时候, 搜索到了content type 为 event的内容, 也就会运行menu_set_active_item. 结果导致我的搜索结果分页链接也就坏了.
http://api.drupal.org/api/drupal/includes%21menu.inc/function/menu_set_active_item/7

官方有提示如果使用不当会有意想不到的结果。果然出现错误了

/**
 * Impelments hook_node_view()
 */
function MYMODULE_node_view($node) {
  if ($node->type == 'event') {
    menu_set_active_item('event');
  }
}

随之我修改了我的代码:

/**
 * Impelments Hook_node_view()
 */
function sigvaris_global_node_view($node) {
  if (arg(0)=='node' && $node->type == 'event') {
    menu_set_active_item('event');
  }
}

Drupal 7 货币格式过滤和重写

在Drupal. 每一个货币格式都有一个format_callback,是用过后期处理的
以下是对货币增加class方便写样式。并且把CNY变成了¥符号

http://drupalcontrib.org/api/drupal/contributions!commerce!commerce.api.php/function/hook_commerce_currency_info_alter/7

/**
 * Implements hook_commerce_currency_info_alter()
 */
function sigvaris_product_commerce_currency_info_alter(&$currencies) {
  $currencies['CNY']['format_callback'] = 'sigvaris_commerce_currency_format';
}

function sigvaris_commerce_currency_format($amount, $currency, $object) {
  return ''.$amount.'';
}

相应的函数还有 hook_commerce_currency_info 定义一种货币
如果只需要替换显示的格式不同,可以直接使用以下方法

function sigvaris_product_commerce_currency_info_alter(&$currencies) {
  $currencies['CNY']['symbol'] = '¥';
}

Drupal 7 删除搜索结果中的 作者信息

1. 进入content type, 点击tab display settings. 将右边的 Display author and date information 勾去掉.

2. 在content type => manager dispaly 右下边tab custom display setting 中对Search result勾选中

3. 在search_result 选项中去掉 Author

4. 复制核心模块 search 中 search-result.tpl 到 YOUTHEME/templates 中. 将以下代码删除掉


  

Drupal 7 如何翻译用户注册邮件功能

在默认情况下用户注册发送的邮件是无法翻译的.
需要启用i18n 的子模块 variable translation. 然后进入

admin/config/regional/i18n/variable

选择左边的 User emails
右边列表分别对应用户信息里面的内容,将要翻译的勾选中并且保存

admin/config/people/accounts

然后可以根据切换语言来进行翻译内容

Drupal 去掉 Menu Link

/**
 * Overide theme_menu_link
 */
function sigvaris_menu_link(array $variables) {
  $element = $variables['element'];
  // 如果是footer_menu, 并且链接为, 那么就去掉链接
  if($element['#original_link']['menu_name'] == 'menu-footer-menu' && $element['#original_link']['link_path']=='') {
    $sub_menu = '';
    if ($element['#below']) {
      $sub_menu = drupal_render($element['#below']);
    }
    //$output = l($element['#title'], $element['#href'], $element['#localized_options']);
    return '' . $element['#title'] . $sub_menu . "\n";
  } else {
    //否则就使用默认的链接
    return theme_menu_link($variables);
  }
}