Drupal Views 添加默认过滤

经常我们的Views会暴露出一些字段让用户过滤,但是在默认的时候过滤肯定是空的. 可能你想添加一些默认的过滤怎么办?

function mymodule_views_query_alter(&$view, &$query) {
  if ($view->name == 'myviews' && $view->current_display == 'mypage') {
    // 如果以下的field和table不知道的话,可以先在views页面选择一个值来过滤. 然后使用dpm($query);来看
    if(!isset($view->exposed_input['myfield'])) {
      $query->add_table('myfield_table');
      $query->add_where(1, 'myfield_table.myfield.xxx', $default_fileter_array, 'IN');
    }
  }
}

Drupal 用户锁定以后怎么办?

用户登陆的信息主要保存在flood表,所以当你登陆失败以后最简单的办法就是清空flood表

1. 如果你安装了drush?
以下两种方法都可以.

$drush sqlq "DELETE FROM flood" 
$drush php-eval 'db_query("DELETE FROM `flood`");'

2. 如果你安装了devel?
直接打开 /devel/php,然后运行以下代码

db_query("DELETE FROM `flood`");

3. 如果以上你都没有? 你可以登陆到phpmyadmin。找到你的flood表,然后清空

Drupal 图片404用默认的图片代替显示

/**
 * Override theme_image_style().
 */
function YOURTHEMENAME_image_style($variables) {
  // Determine the dimensions of the styled image.
  $dimensions = array(
    'width' => $variables['width'],
    'height' => $variables['height'],
  );

  image_style_transform_dimensions($variables['style_name'], $dimensions);

  $variables['width'] = $dimensions['width'];
  $variables['height'] = $dimensions['height'];

  // Determine the URL for the styled image.
  $variables['path'] = image_style_url($variables['style_name'], $variables['path']);

  // Load default image for 404's
  if(!file_exists($variables['path'])) {
    // your image url.
    $variables['path'] = file_create_url('/sites/default/themes/YOURTHEMENAME/images/image_404.png');
  }

  return theme('image', $variables);
}

Drupal 开发函数参考

字段
1. 获取一个Entity类型里面的所有字段信息.
$instances = field_info_instances($entity_type, $bundle);

2.获取所有可用的字段类型, 此函数将遍历所有的hook_field_info().
$field_types = field_info_field_types();

3.获取指定的字段名信息
$fieldinfo = field_info_field(‘myfield_name’);

4. 获取所有的字段widget, 此函数将遍历所有的hook_field_widget_info().
$widget_types = field_info_widget_types();