欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

字段大小(如CCK文本)

请添加支持设置文本字段的大小,就像核心文本字段。

这样做会使日期cck字段与CCK核心字段更加一致。

注释

Jackl85的图片

 

标题:提供“字段大小”»字段大小(如CCK文本)
分配:未分配» Jackl85
状态:活性»由社区审查和测试

做它!:)

注意:我使用 彩色文本的标签!不要抄袭!!!

1.编辑文件: date/date/date_admin.inc

第19行你发现:

    case 'save':
      return array('default_value', 'default_value_code', 'default_value2', 'default_value_code2', 'input_format', 'input_format_custom', 'increment', 'text_parts', 'year_range', 'label_position');

用。。。来代替:

    case 'save':
      return array('default_value', 'default_value_code', 'default_value2', 'default_value_code2', 'size', 'input_format', 'input_format_custom', 'increment', 'text_parts', 'year_range', 'label_position');

第109行你发现:

  foreach ($formats as $f) {
    $options[$f] = date_format_date($now, 'custom', $f);
  }

后添加:

    $size = (isset($widget['size']) && is_numeric($widget['size'])) ? $widget['size'] : 60;
	$form['input']['size'] = array(
	  '#type' => 'textfield',
	  '#title' => t('Size of textfield'),
	  '#default_value' => $size,
	  '#element_validate' => array('_element_validate_integer_positive'),
	  '#required' => TRUE,
	);

2.编辑文件: date/date_api_elements.inc

第147行你找到:

  $element['#tree'] = TRUE;
  $element['date']['#type'] = 'textfield';
  $element['date']['#weight'] = !empty($element['date']['#weight']) ? $element['date']['#weight'] : $element['#weight'];

后添加:

    $element['date']['#size'] =  !empty($element['date']['#size']) ? $element['date']['#size'] : $element['#field']['widget']['size'];
Jackl85的图片

 

状态:由社区审查和测试»补丁(待移植)

日期的维护者:你能插入下一个版本吗?

Jackl85的图片

 

状态:补丁(待移植)»需要工作

它使事情更容易和更快,如果有人会创建一个补丁文件...

Jackl85的图片

 

状态:需要工作»需要审查
文件尺寸
2.8 KB
无视 

这里是从#1的“补丁”放在请求的格式。

Jackl85的图片

 

状态:需要审查»需要工作
文件尺寸
2.89 KB
无视 

从#1(因此#4)的补丁已经完成了大部分工作,但是错过了几件事情。

首先,日期模块提供了使用文本框或选择列表的选项。

为了与核心选择列表一致,不能为选择列表的情况提供字段的大小。
我试图通过在以下if条件中包装输入字段来解决这个问题: 我猜这部分基于下面几行可以找到。 如果还有更多的情况需要由提到的if条件处理,请更正此补丁。
<?php if (in_array($widget['type'], array('date_popup', 'date_popup_repeat'))) { ?>
<?php if (in_array($widget['type'], array('date_select', 'date_popup', 'date_select_repeat', 'date_popup_repeat'))) { ?>

第二,使用60作为默认长度是完全正确的。但是,日期已经具有硬编码20作为值。为了保持向后兼容性,我将默认值从60更改为20.更改的代码如下所示:
<?php $size = (isset($widget['size']) && is_numeric($widget['size'])) ? $widget['size'] : 20; ?>

第三,关于原始补丁的一切工作,除了当尺寸作为属性应用时。
我已经确定立即问题发生在文件中的位置: 要查找的功能是 受影响的行是: 如果我手动更改20说30,我注意到要更改的日期字段的大小。 这意味着,由于某种原因没有填充。date_popup/date_popup.module
date_popup_process_date
<?php '#size' => !empty($element['#size']) ? $element['#size'] : 20, ?>

$element['#size']

我不知道为什么没有填充,也不需要做什么,以确保这是填充(除了已经做了)。 因此,我将这标记为需要工作。$element['#size']

附上是从#4的补丁,修复了本文中提到的第一种和第二种情况。

Jackl85的图片

 

状态:需要工作»需要审查
文件尺寸
4.25 KB
无视 

自定义监视器打印显示数组键'#size'从未出现在文件中$element函数数组date_popup_process_datedate_popup/date_popup.module

但是,确实出现在数组中。['#field']['widget']['size']$element

这下一个补丁改变 现在是date_popup/date_popup.module
<?php '#size' => !empty($element['#size']) ? $element['#size'] : 20, ?>

<?php '#size' => !empty($element['#field']['widget']['size']) ? $element['#field']['widget']['size'] : 20 ?>

随着这个变化,这个功能工作正常。

请查阅

Jackl85的图片

 

请添加支持将文本字段的大小和最大长度设置为Drupal 7版本的Date模块!

Chris Charlton的图片

 

我只是注意到D7版本的date_text小部件不支持size&maxlength强制他们默认为size = 60maxlength = 128

我提出这个问题为D7 - http://drupal.org/node/1105818

Jackl85的图片

 

零件:日期CCK字段»代码
分配:Jackl85»未分配
文件尺寸
3.25 KB
无视 

我添加了textfield小部件设置从#6的补丁。它为我工作良好。这似乎是一个明智的功能添加。

Jackl85的图片

 

标题:字段大小(如CCK文本)»它需要移植到d7
版:6.x-2.x-dev»7.x-2.x-dev
 
Jackl85的图片

 

标题:它需要移植到d7»字段大小(如CCK文本)

普通分类: