1<?php 2 3/** 4 * Class ilMMItemTranslationTableGUI 5 * 6 * @author Fabian Schmid <fs@studer-raimann.ch> 7 */ 8class ilMMItemTranslationTableGUI extends ilTable2GUI 9{ 10 use \ILIAS\Modules\OrgUnit\ARHelper\DIC; 11 /** 12 * @var ilMMItemFacadeInterface 13 */ 14 private $item_facade; 15 16 17 /** 18 * ilMMItemTranslationTableGUI constructor. 19 * 20 * @param ilMMItemTranslationGUI $a_parent_obj 21 * @param ilMMItemFacadeInterface $item_facade 22 */ 23 public function __construct(ilMMItemTranslationGUI $a_parent_obj, ilMMItemFacadeInterface $item_facade) 24 { 25 $table_id = self::class; 26 $this->item_facade = $item_facade; 27 $this->setId($table_id); 28 $this->setPrefix($table_id); 29 $this->setFormName($table_id); 30 parent::__construct($a_parent_obj); 31 $this->ctrl()->saveParameter($a_parent_obj, $this->getNavParameter()); 32 $this->setRowTemplate("tpl.translation_row.html", "Services/MainMenu"); 33 $this->setFormAction($this->ctrl()->getFormAction($a_parent_obj)); 34 $this->setExternalSorting(true); 35 $this->setDefaultOrderField("id"); 36 $this->setDefaultOrderDirection("asc"); 37 $this->setExternalSegmentation(true); 38 $this->setEnableHeader(true); 39 $this->initColumns(); 40 $this->initCommands(); 41 $this->lng->loadLanguageModule("meta"); 42 43 $this->addCommandButton( 44 ilMMItemTranslationGUI::CMD_SAVE_TRANSLATIONS, 45 $this->lng() 46 ->txt("save") 47 ); 48 $this->addMultiCommand( 49 ilBiblTranslationGUI::CMD_DELETE_TRANSLATIONS, 50 $this->lng() 51 ->txt("delete") 52 ); 53 54 $this->parseData(); 55 } 56 57 58 protected function initColumns() 59 { 60 $this->addColumn($this->lng()->txt('mm_translation_select'), '', '15px', true); 61 $this->addColumn($this->lng()->txt('mm_translation_lang')); 62 $this->addColumn($this->lng()->txt('mm_translation_trans')); 63 } 64 65 66 protected function initCommands() 67 { 68 $this->addMultiCommand(ilBiblTranslationGUI::CMD_DELETE_TRANSLATIONS, $this->lng() 69 ->txt("delete")); 70 } 71 72 73 protected function parseData() 74 { 75 $this->setData(ilMMItemTranslationStorage::where(['identification' => $this->item_facade->getId()])->getArray()); 76 } 77 78 79 /** 80 * @inheritDoc 81 */ 82 protected function fillRow($a_set) 83 { 84 /** 85 * @var $translation ilMMItemTranslationStorage 86 */ 87 $translation = ilMMItemTranslationStorage::find($a_set['id']); 88 89 $this->tpl->setVariable('ID', $translation->getId()); 90 $this->tpl->setVariable('LANGUAGE', $this->lng()->txt("meta_l_" . $translation->getLanguageKey())); 91 $this->tpl->setVariable('TEXT', $translation->getTranslation()); 92 } 93} 94