Php 将语言添加到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

我正在使用ExpressionEngine创建一个多语言的产品网站。我用来控制多种语言。产品在不同的语言中具有相同的标题,这给我在关系字段中选择正确的产品带来了一些问题

该网站的建设者不仅在后端使用
标题
作为唯一名称,而且在前端的任何地方都显示了该名称

下拉列表示例:

  • 产品A
  • 产品A
  • 产品A
  • 产品B
  • 产品B
  • 产品B
  • 产品c
  • 产品c
  • 产品c
我发现在第59行的
/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'];