Warning: Undefined array key "HTTPS" in include() (line 29 of /opt/www/fdv2/drupal.stage/web/sites/default/settings.local.php).
include('/opt/www/fdv2/drupal.stage/web/sites/default/settings.local.php') (Line: 4)
require('/opt/www/fdv2/drupal.stage/web/sites/drupal001.net/settings.php') (Line: 145)
Drupal\Core\Site\Settings::initialize('/opt/www/fdv2/drupal.stage/web', 'sites/drupal001.net', Object) (Line: 1099)
Drupal\Core\DrupalKernel->initializeSettings(Object) (Line: 701)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
请问如何将vbo的操作表单放到内容下方去显示? - Drupal大学 - Drupal问答论坛
首页 / 帖子
请问如何将vbo的操作表单放到内容下方去显示?

https://drupal.org/files/project-images/views_pager_count.png

我偶然看到这个模块给的一个示例图片里,vbo的操作部分给弄到下方了,我记得vbo本身没有这样的设置,不知是如何实现的?

4个答案
AnnyO
发布于:2014-04-26 20:08

我的第一反应是在相关输出的.tpl.php文件中调整顺序

YOYO
发布于:2014-04-27 11:47

首先截图中的后台界面是Commerce体系的一个模块,Commerce Backoffice


其次我看了VBO的代码默认肯定是只有一个VBO的表单,但通过hook可以改变出现的位置,以下是Backoffice模块的做法:

function commerce_backoffice_views_bulk_operations_form_alter(&$form, &$form_state, $vbo) {
  if ($form_state['step'] == 'views_form_views_form' && strpos($vbo->view->name, 'commerce_backoffice_') !== FALSE) {
    $form['select']['#title'] = '';
    $form['select']['#collapsible'] = FALSE;
    $form['select']['submit']['#value'] = t('Apply');
    $form['select']['operation']['#options'][0] = t('Bulk operations');
    $form['select']['#weight'] = 99999;
  }
}


YOYO
发布于:2014-04-27 20:30

志成说的那个方法比较靠谱。

所以,总结一下,要么就是幽灵说的,修改tpl文件,要么就是志成说的,form_alter。

闻涛
发布于:2014-04-28 18:16

仔细看了一下,还是form_alter的方法比较好,如果修改tpl的话会牵扯到drupal的form的模版问题,其实也挺麻烦的。