addColumn((new Column('name')) ->setOrderable(DataProvider::SORT_ASC) ->setSearchable(true, Column::TYPE_STRING)); } public function initContent() { $this->addMassActionButton(new MassDeleteDomainAliasButton()); $this->addButton(new AddDomainAliasButton()); $this->addActionButton(new DeleteDomainAliasButton()); } public function loadData() { $maildomain = $this->getWhmcsParamByKey('domain'); $api = new KerioWhmcs('whmcsKerioEmail', 'Thurdata', '1.0'); try { $api->login($this->getWhmcsParamByKey('serverhostname'), $this->getWhmcsParamByKey('serverusername'), $this->getWhmcsParamByKey('serverpassword')); $domains = $api->getDomains(['id','name','aliasList']); } catch (KerioApiException $error) { logModuleCall( 'kerioEmail', __FUNCTION__, $error, 'Debug Error', $error->getMessage() ); return ['error' => $error->getMessage()]; } foreach($domains as $domain) { if(($domain['name']) === $maildomain){ $aliasList = $domain['aliasList']; } } /** * * prepare new array */ $data = []; /** * parse aliases */ foreach ($aliasList as $alias) { /* @var $alias Alias */ $tmp = [ 'id' => $alias, 'name' => $alias, ]; $data[] = $tmp; } $dataProv = new ArrayDataProvider(); $dataProv->setDefaultSorting('name', 'ASC')->setData($data); $this->setDataProvider($dataProv); } }