DomainAliases.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\App\UI\Client\DomainAlias\Pages;
  3. use ThurData\Servers\KerioEmail\App\Helpers\KerioManager;
  4. use ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\Domain;
  5. use ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Repository;
  6. use ThurData\Servers\KerioEmail\App\UI\Client\DomainAlias\Buttons\AddDomainAliasButton;
  7. use ThurData\Servers\KerioEmail\App\UI\Client\DomainAlias\Buttons\AddListButton;
  8. use ThurData\Servers\KerioEmail\App\UI\Client\DomainAlias\Buttons\DeleteDomainAliasButton;
  9. use ThurData\Servers\KerioEmail\App\UI\Client\DomainAlias\Buttons\MassDeleteDomainAliasButton;
  10. use ThurData\Servers\KerioEmail\Core\Models\Whmcs\Hosting;
  11. use ThurData\Servers\KerioEmail\Core\UI\Interfaces\ClientArea;
  12. use ThurData\Servers\KerioEmail\Core\UI\Widget\DataTable\Column;
  13. use ThurData\Servers\KerioEmail\Core\UI\Widget\DataTable\DataProviders\DataProvider;
  14. use ThurData\Servers\KerioEmail\Core\UI\Widget\DataTable\DataProviders\Providers\ArrayDataProvider;
  15. use ThurData\Servers\KerioEmail\Core\UI\Widget\DataTable\DataTable;
  16. use ThurData\Servers\KerioEmail\Api\KerioWhmcs;
  17. /**
  18. *
  19. * Created by PhpStorm.
  20. * User: ThurData
  21. * Date: 18.09.19
  22. * Time: 13:37
  23. * Class DomainAliases
  24. */
  25. class DomainAliases extends DataTable implements ClientArea
  26. {
  27. protected $id = 'lists';
  28. protected $name = 'lists';
  29. protected $title = null;
  30. protected function loadHtml()
  31. {
  32. $this
  33. ->addColumn((new Column('name'))
  34. ->setOrderable(DataProvider::SORT_ASC)
  35. ->setSearchable(true, Column::TYPE_STRING))
  36. ->addColumn((new Column('description'))
  37. ->setOrderable()
  38. ->setSearchable(true));
  39. }
  40. public function initContent()
  41. {
  42. $this->addMassActionButton(new MassDeleteDomainAliasButton());
  43. $this->addButton(new AddDomainAliasButton());
  44. $this->addActionButton(new DeleteDomainAliasButton());
  45. }
  46. public function loadData()
  47. {
  48. $api = new KerioWhmcs('whmcsKerioEmail', 'Thurdata', '1.0');
  49. try {
  50. $api->login($this->getWhmcsParamByKey('serverhostname'), $this->getWhmcsParamByKey('serverusername'), $this->getWhmcsParamByKey('serverpassword'));
  51. $domains = $api->getDomains(['id','name','aliasList']);
  52. } catch (KerioApiException $error) {
  53. logModuleCall(
  54. 'kerioEmail',
  55. __FUNCTION__,
  56. $error,
  57. 'Debug Error',
  58. $error->getMessage()
  59. );
  60. return ['error' => $error->getMessage()];
  61. }
  62. foreach($domains as $domain) {
  63. if(($domain['name']) === $this->getWhmcsParamByKey('domain')){
  64. $this->domainID = $domain['id'];
  65. $this->domainName = $domain['name'];
  66. $this->aliasList = $domain['name'];
  67. }
  68. }
  69. logModuleCall(
  70. 'kerioEmail',
  71. __FUNCTION__,
  72. $domains,
  73. 'Debug Error',
  74. $this->aliasList
  75. );
  76. /**
  77. *
  78. * prepare new array
  79. */
  80. $data = [];
  81. /**
  82. * parse aliases
  83. */
  84. // foreach ($aliases as $alias)
  85. // {
  86. /* @var $alias Alias */
  87. // $tmp = [
  88. // 'id' => $alias['id'],
  89. // 'name' => $alias['name'],
  90. // 'description' => $alias['description']
  91. // ];
  92. // $data[] = $tmp;
  93. // }
  94. $dataProv = new ArrayDataProvider();
  95. $dataProv->setDefaultSorting('name', 'ASC')->setData($data);
  96. $this->setDataProvider($dataProv);
  97. }
  98. }