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