2013-09-27 3 views
1

제품이있는 다국어 웹 사이트에 ExpressionEngine을 사용하고 있습니다. 나는 다중 언어를 제어하기 위해 Transcribe을 사용했다. 제품의 언어가 다른 언어로 표시되기 때문에 관계 필드에서 올바른 제품을 선택하는 데 약간의 문제가 있습니다.ExpressionEngine의 관계 드롭 다운에 언어 추가

이 사이트의 빌더는 백엔드에서만 고유 한 이름으로 title을 사용하지 않았지만 프런트 엔드의 모든 곳에서도 표시했습니다.

드롭 다운 예 :

  • 부산물
  • 부산물
  • 부산물
  • 제품 B
  • 제품 B
  • 제품 B
  • 제품 C
  • 제품 C
  • 제품 (C)는

나는 드롭 다운 정보는 59

/** 
* 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_options[$relrow['entry_id']] = $relrow['title'];)에있는 드롭 다운에 언어 이름을 추가 할 수 있습니다 줄에서 /system/expressionengine/fieldtypes/rel/ft.rel.php에 가득 것을 발견?

+0

$field_options[$relrow['entry_id']] = $relrow['title']; 

를 변경 질문이 주목을 받고 있지 않은 경우 당신은 당신이 그것을 게시 내가 추천은 여기 필요 느낌 ~ http : //expressionengine.stackexcha nge.com/ – AllInOne

+0

필자는 Transcribe의 데이터 구조에 익숙하지 않습니다. channel_titles 테이블에 열을 추가합니까? 그렇다면이 열의 이름과 드롭 다운 목록에 어떤 열을 추가 하시겠습니까? – AllInOne

+0

Transcribe는 데이터가 서로 연결된 여러 테이블을 추가합니다. EE에서 stackexchange를 시도하고 Transcribe 팀과 연락을 시도합니다. – Pinquin

답변

0

Transcribe는 Expression Engine 2.5에서 어떤 가능성도 발견하지 못했습니다. 해결 방법을 만들고 드롭 다운 메뉴에 url_title을 추가했습니다. 그것은 최선의 해결책은 아니지만이 경우에는 실행 가능합니다.

$this->EE->db->select('entry_id, title'); 

$this->EE->db->select('entry_id, title, url_title'); 

로 변경 그리고

$field_options[$relrow['entry_id']] = $relrow['title'] . " - " . $relrow['url_title'];