2014-03-27 69 views
0

我需要爲Drupal表單中的所有語言創建下拉列表,PHP中是否有任何函數來實現此目的。我想創建一個所有語言的數組並將其傳遞給drupal表單。如何在Drupal表單下拉列表中創建所有語言的數組

function video_upload_subtitles_form($form, &$form_state) { 
$form = array('#attributes' => array('enctype' => 'multipart/form-data')); 
$lang_list = array();//**how to create this array** 
$form['video_name'] = array(
    '#title' => t('Name Of the video'), 
    '#type' => 'textfield', 
); 

$form['sub_file'] = array(
     '#type' => 'file', 
     '#title' => t('Upload video'), 
     '#description' => t('Pick a video file to upload.'), 
    ); 
$form['user_list']=array(
    '#type'=>'select', 
    '#title' => t('Language'), 
    '#options' => $lang_list,//array of language 
    '#multiple' => false, 
    '#attributes'=>array('size'=>4), 
    '#weight'=>8, 
); 
$form['submit_button'] = array(
    '#type' => 'submit', 
    '#value' => t('Submit'), 
); 

return $form; 

} 

我知道語言的清單可在PHP通過上市手工製作陣列但有可能與任何PHP函數來做做,只是在尋找一些簡單的方法來節省時間。

得到這個很酷的網站Country List。有沒有像這樣的語言

+0

嘗試改變,我希望這是有用的 –

+0

@Mehul:謝謝!我會嘗試這個新的代碼:) – Hitesh

回答

1

試試這個,

$select = db_select('Your table name', 's'); 
    $select = $select->fields('s',array('languages_name','id')); 
    // 'languages_name' , 'id' this is a column 
    $queried_nodes = $select->execute() 
    ->fetchAllAssoc('id'); 
    $lang_list = array(); 
    foreach ($queried_nodes as $result) 
    { 
     $lang_list[$result->languages_name] = t($result->languages_name); 
    } 

設置$ lang_list變量

$form['user_list']=array(
    '#type'=>'select', 
    '#title' => t('Language'), 
    '#options' => $lang_list,//array of language 
    '#multiple' => false, 
    '#attributes'=>array('size'=>4), 
    '#weight'=>8, 
); 

你是創建一個新的語言表或內容類型和您使用Drupal的內置語言列表,以便嘗試這個代碼後。

include_once DRUPAL_ROOT . '/includes/iso.inc'; 
    $lang = _locale_get_predefined_list(); 

    $lang_list = array(); 

    foreach ($lang as $key => $value) 
    { 
    $lang_list[$value[0]] = t($value[0]); 
    } 

使用後$lang_list varible形式API

+0

我需要知道從哪裏獲得語言列表 – Hitesh

0

最簡單的方法可能是把你想要的所有語言放在你的數據庫的表中。

然後,你可以只使用下面的代碼來創建你的選擇框:

$languages = db_query("SELECT id, name FROM languages")->fetchAllKeyed(); 

$form['language'] = array(
    '#type' => 'select', 
    '#title' => t('Choose language'), 
    '#options' => $languages, 
); 

來填充您的語言表,你可以下載一個csv here

+0

你能改正你的csv並再次上傳它似乎有點不正確 – Hitesh

+0

不是我的csv我害怕 - 我只是谷歌搜索它... –

相關問題