getTranslations() public static method

Get the translations
public static getTranslations ( string $application, string $module, array $types, array $languages, string $name, string $value ) : array
$application string The application.
$module string The module.
$types array The types of the translations to get.
$languages array The languages of the translations to get.
$name string The name.
$value string The value.
return array
Example #1
0
 /**
  * Load the datagrid
  */
 private function loadDataGrid()
 {
     // init vars
     $langWidth = 60 / count($this->filter['language']);
     // if nothing is submitted
     // we don't need to fetch all the locale
     $this->hasSubmissions = '' !== $this->filter['application'] . $this->filter['module'] . $this->filter['name'] . $this->filter['value'];
     if ($this->hasSubmissions) {
         // get all the translations for the selected languages
         $translations = BackendLocaleModel::getTranslations($this->filter['application'], $this->filter['module'], $this->filter['type'], $this->filter['language'], $this->filter['name'], $this->filter['value']);
     }
     // create datagrids
     $this->dgLabels = new BackendDataGridArray(isset($translations['lbl']) ? $translations['lbl'] : array());
     $this->dgMessages = new BackendDataGridArray(isset($translations['msg']) ? $translations['msg'] : array());
     $this->dgErrors = new BackendDataGridArray(isset($translations['err']) ? $translations['err'] : array());
     $this->dgActions = new BackendDataGridArray(isset($translations['act']) ? $translations['act'] : array());
     // put the datagrids (references) in an array so we can loop them
     $dataGrids = array('lbl' => &$this->dgLabels, 'msg' => &$this->dgMessages, 'err' => &$this->dgErrors, 'act' => &$this->dgActions);
     // loop the datagrids (as references)
     foreach ($dataGrids as $type => &$dataGrid) {
         /** @var $dataGrid BackendDataGridArray */
         $dataGrid->setSortingColumns(array('module', 'name', 'application'), 'name');
         // disable paging
         $dataGrid->setPaging(false);
         // set header label for reference code
         $dataGrid->setHeaderLabels(array('name' => \SpoonFilter::ucfirst(BL::lbl('ReferenceCode'))));
         // hide the application when only one application is shown
         if ($this->filter['application'] != '') {
             $dataGrid->setColumnHidden('application');
         }
         // hide edite_on
         $dataGrid->setColumnHidden('edited_on');
         // set column attributes for each language
         foreach ($this->filter['language'] as $lang) {
             // add a class for the inline edit
             $dataGrid->setColumnAttributes($lang, array('class' => 'translationValue'));
             // add attributes, so the inline editing has all the needed data
             $dataGrid->setColumnAttributes($lang, array('data-id' => '{language: \'' . $lang . '\',application: \'[application]\',module: \'[module]\',name: \'[name]\',type: \'' . $type . '\'}'));
             // escape the double quotes
             $dataGrid->setColumnFunction(array('SpoonFilter', 'htmlentities'), array('[' . $lang . ']', null, ENT_QUOTES), $lang, true);
             if ($type == 'act') {
                 $dataGrid->setColumnFunction('urldecode', array('[' . $lang . ']'), $lang, true);
             }
             // set header labels
             $dataGrid->setHeaderLabels(array($lang => \SpoonFilter::ucfirst(BL::lbl(mb_strtoupper($lang)))));
             // only 1 language selected?
             if (count($this->filter['language']) == 1) {
                 $dataGrid->setColumnAttributes($lang, array('style' => 'width: ' . $langWidth . '%'));
                 // add id of translation for the export
                 $dataGrid->setColumnAttributes($lang, array('data-numeric-id' => '[translation_id]'));
                 // Hide translation_id column (only if only one language is selected
                 // because the key doesn't exist if more than 1 language is selected)
                 $dataGrid->setColumnHidden('translation_id');
                 // check if this action is allowed
                 if (BackendAuthentication::isAllowedAction('Add')) {
                     // add copy button
                     $dataGrid->addColumnAction('copy', null, BL::lbl('Copy'), BackendModel::createURLForAction('Add') . '&id=[translation_id]' . $this->filterQuery);
                 }
                 // check if this action is allowed
                 if (BackendAuthentication::isAllowedAction('Edit')) {
                     // add edit button
                     $dataGrid->addColumn('edit', null, BL::lbl('Edit'), BackendModel::createURLForAction('Edit') . '&id=[translation_id]' . $this->filterQuery);
                 }
             } else {
                 // add id of translation for the export
                 $dataGrid->setColumnAttributes($lang, array('data-numeric-id' => '[translation_id_' . $lang . ']'));
                 $dataGrid->setColumnHidden('translation_id_' . $lang);
                 //ugly fix but the browser does funny things with the percentage when showing lots of languages
                 $dataGrid->setColumnAttributes($lang, array('style' => 'width: ' . $langWidth . '%; max-width: ' . 600 / count($this->filter['language']) . 'px;'));
             }
         }
     }
 }