Php 将语言添加到ExpressionEngine中的关系下拉列表
我正在使用ExpressionEngine创建一个多语言的产品网站。我用来控制多种语言。产品在不同的语言中具有相同的标题,这给我在关系字段中选择正确的产品带来了一些问题 该网站的建设者不仅在后端使用Php 将语言添加到ExpressionEngine中的关系下拉列表,php,relationship,expressionengine,backend,Php,Relationship,Expressionengine,Backend,我正在使用ExpressionEngine创建一个多语言的产品网站。我用来控制多种语言。产品在不同的语言中具有相同的标题,这给我在关系字段中选择正确的产品带来了一些问题 该网站的建设者不仅在后端使用标题作为唯一名称,而且在前端的任何地方都显示了该名称 下拉列表示例: 产品A 产品A 产品A 产品B 产品B 产品B 产品c 产品c 产品c 我发现在第59行的/system/expressionengine/fieldtypes/rel/ft.rel.php中填写了下拉信息 /** * Dis
标题
作为唯一名称,而且在前端的任何地方都显示了该名称
下拉列表示例:
- 产品A
- 产品A
- 产品A
- 产品B
- 产品B
- 产品B
- 产品c
- 产品c
- 产品c
/system/expressionengine/fieldtypes/rel/ft.rel.php
中填写了下拉信息
/**
* Display Relationship Field
*
* @access public
* @param string
* @return string
*/
function display_field($data)
{
if ($this->settings['field_related_orderby'] == 'date')
{
$this->settings['field_related_orderby'] = 'entry_date';
}
$this->EE->db->select('entry_id, title');
$this->EE->db->where('channel_id', $this->settings['field_related_id']);
$this->EE->db->order_by($this->settings['field_related_orderby'], $this->settings['field_related_sort']);
if ($this->settings['field_related_max'] > 0)
{
$this->EE->db->limit($this->settings['field_related_max']);
}
$relquery = $this->EE->db->get('channel_titles');
if ($relquery->num_rows() == 0)
{
return $this->EE->lang->line('no_related_entries');
}
else
{
if ( ! isset($_POST[$this->field_name]))
{
$this->EE->db->select('rel_child_id');
$relentry = $this->EE->db->get_where('relationships', array('rel_id' => $data));
if ($relentry->num_rows() == 1)
{
$data = $relentry->row('rel_child_id') ;
}
}
$field_options[''] = '--';
foreach ($relquery->result_array() as $relrow)
{
$field_options[$relrow['entry_id']] = $relrow['title'];
}
return form_dropdown($this->field_name, $field_options, $data, 'id="field_id_'.$this->field_id.'"');
}
}
如何将语言名称添加到第98行的下拉列表中
($field\u options[$relrow['entry\u id']]=$relrow['title'];)
?Transcribe在Expression Engine 2.5中未发现任何可能性。
我创建了一个变通方法,并在下拉菜单中添加了url_标题。这不是最好的解决方案,但在这种情况下是可行的
$this->EE->db->select('entry_id, title');
变成
$this->EE->db->select('entry_id, title, url_title');
改变
$field_options[$relrow['entry_id']] = $relrow['title'];
进入
如果您的问题没有得到您认为需要的注意,我建议您将其发布到我不熟悉Transcribe的数据结构的网站。它是否将列添加到频道标题表中?如果是,这些列的名称是什么?您希望将哪些列附加到下拉列表中?Transcribe添加多个表,其中数据相互链接。我将尝试EE的stackexchange,并尝试与转录团队联系。
$field_options[$relrow['entry_id']] = $relrow['title'] . " - " . $relrow['url_title'];