browse.html.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. /**
  3. * The browse view file of extension module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  5. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  6. * @author Tingting Dai <daitingting@easycorp.ltd>
  7. * @package extension
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $extensionItems = array();
  12. $i = 1;
  13. foreach($extensions as $extension)
  14. {
  15. $expiredDate = $this->extension->getExpireDate($extension);
  16. $extensionInfo = array();
  17. $extensionInfo[] = $lang->extension->version . ': ';
  18. $extensionInfo[] = h::i($extension->version);
  19. $extensionInfo[] = ' ' . $lang->extension->author . ': ';
  20. $extensionInfo[] = h::i($extension->author);
  21. if(!empty($expiredDate))
  22. {
  23. $extensionInfo[] = ' ' . $lang->extension->expiredDate . ': ';
  24. $extensionInfo[] = $expiredDate != 'life' ? h::i($expiredDate) : h::i($lang->extension->life);
  25. }
  26. $btnItems = array();
  27. if(isset($extension->viewLink))
  28. {
  29. $viewLink = str_replace('-info-client', '', $extension->viewLink);
  30. $btnItems[] = array('text' => $lang->extension->view, 'url' => $viewLink, 'target' => '_blank');
  31. }
  32. if($extension->status == 'installed') $btnItems[] = array('text' => $lang->extension->structure, 'url' => createLink('extension', 'structure', "extension={$extension->code}"), 'data-toggle' => 'modal');
  33. if($extension->status == 'installed' && !empty($extension->upgradeLink)) $btnItems[] = array('text' => $lang->extension->upgrade, 'url' => $extension->upgradeLink, 'data-toggle' => 'modal');
  34. if($extension->type != 'patch')
  35. {
  36. if($extension->status == 'installed') $btnItems[] = array('text' => $lang->extension->deactivate, 'url' => createLink('extension', 'deactivate', "extension={$extension->code}"), 'data-toggle' => 'modal');
  37. if($extension->status == 'deactivated') $btnItems[] = array('text' => $lang->extension->activate, 'url' => createLink('extension', 'activate', "extension={$extension->code}"), 'data-toggle' => 'modal');
  38. if($extension->status == 'available') $btnItems[] = array('text' => $lang->extension->install, 'url' => createLink('extension', 'install', "extension={$extension->code}"), 'data-toggle' => 'modal');
  39. if($extension->status == 'available') $btnItems[] = array('text' => $lang->extension->erase, 'url' => createLink('extension', 'erase', "extension={$extension->code}"), 'data-toggle' => 'modal');
  40. if($extension->status == 'installed' || $extension->status == 'deactivated') $btnItems[] = array('text' => $lang->extension->uninstall, 'url' => createLink('extension', 'uninstall', "extension={$extension->code}"), 'data-toggle' => 'modal');
  41. }
  42. $btnItems[] = array('text' => $lang->extension->site, 'url' => $extension->site, 'target' => '_blank');
  43. $extensionItems[] = div
  44. (
  45. setClass('mb-2'),
  46. div
  47. (
  48. setClass('font-bold mb-2'),
  49. $extension->name
  50. ),
  51. div
  52. (
  53. setClass('mb-2'),
  54. $extension->desc
  55. ),
  56. div
  57. (
  58. $extensionInfo,
  59. div
  60. (
  61. setClass('pull-right'),
  62. btnGroup
  63. (
  64. set::items($btnItems)
  65. )
  66. )
  67. ),
  68. $i < count($extensions) ? hr() : null
  69. );
  70. $i++;
  71. }
  72. featurebar
  73. (
  74. set::current($tab),
  75. set::linkParams("status={key}")
  76. );
  77. toolbar
  78. (
  79. hasPriv('extension', 'upload') ? item(set(array
  80. (
  81. 'icon' => 'cog',
  82. 'text' => $lang->extension->upload,
  83. 'class' => 'ghost',
  84. 'url' => createLink('extension', 'upload'),
  85. 'data-toggle' => 'modal'
  86. ))) : null,
  87. hasPriv('extension', 'obtain') ? item(set(array
  88. (
  89. 'icon' => 'download-alt',
  90. 'text' => $lang->extension->obtain,
  91. 'class' => 'primary',
  92. 'url' => createLink('extension', 'obtain')
  93. ))) : null
  94. );
  95. div
  96. (
  97. setClass('flex col gap-y-1 p-5 bg-white'),
  98. $extensionItems
  99. );
  100. render();