Elgg的价值选择如何?

时间:2014-05-06 21:24:41

标签: php elgg

我有一个组合框,我不知道值选项是如何填充的。方法profile_manager_get_categorized_group_fields()如何工作?

// retrieve group fields
$group_fields = profile_manager_get_categorized_group_fields();

$ramosAtuacao = array('' => '-- Selecione --');
$opcoesObjetivos = $opcoesFranquia = array();
foreach($group_fields['fields'] as $field){

switch ( $field->metadata_name ) {
case 'ramoatuacao':
$ramosAtuacao = array_merge( $ramosAtuacao, $field->getOptions() );
break;
case 'franquia':
$opcoesFranquia = $field->getOptions();
break;
}
}

<?php echo elgg_view("input/dropdown", array(
'name' => 'ramoatuacao',
'value' => $vars['entity']->ramoatuacao,
'options' => $ramosAtuacao
)); ?>

1 个答案:

答案 0 :(得分:0)

首先,您在这里得到了答案:http://community.elgg.org/discussion/view/1648483/trying-understand-code

其次,阅读文件views/default/input/dropdown.php中的评论。如果您不知道为什么此文件会映射到视图名称,请阅读http://docs.elgg.org/wiki/Engine/Views

根据问题本身,我知道你实际上要求3件事:

  • 如何/哪个视图处理options参数中传递的选项:它要放入select的值数组。如果使用options_values,则可以传递关联数组以使标签具有不同的键
  • 如何生成$ramosAtuacao的内容:嗯,您主要使用的是已粘贴的代码和功能实现:https://github.com/ColdTrick/profile_manager/blob/master/lib/functions.php#L330
  • 如何更改profile_manager_get_categorized_group_fields的结果:通过profile_manager的管理界面或通过插件挂钩取决于您想要做什么。