index.phtml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. declare(strict_types=1);
  3. /** @var FreshRSS_View $this */
  4. $this->partial('aside_configure');
  5. ?>
  6. <main class="post">
  7. <h1><?= _t('admin.extensions.title') ?></h1>
  8. <form id="form-extension" method="post">
  9. <input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
  10. <?php if (!empty($this->extension_list['system'])) { ?>
  11. <h2><?= _t('admin.extensions.system') ?></h2>
  12. <ul class="manage-list">
  13. <?php
  14. foreach ($this->extension_list['system'] as $ext) {
  15. $this->ext_details = $ext; ?>
  16. <li>
  17. <?php $this->renderHelper('extension/details'); ?>
  18. </li>
  19. <?php } ?>
  20. </ul>
  21. <?php } ?>
  22. <?php if (!empty($this->extension_list['user'])) { ?>
  23. <h2><?= _t('admin.extensions.user') ?></h2>
  24. <ul class="manage-list">
  25. <?php
  26. foreach ($this->extension_list['user'] as $ext) {
  27. $this->ext_details = $ext; ?>
  28. <li>
  29. <?php $this->renderHelper('extension/details'); ?>
  30. </li>
  31. <?php } ?>
  32. </ul>
  33. <?php }
  34. if (empty($this->extension_list['system']) && empty($this->extension_list['user'])) {
  35. ?>
  36. <p class="alert alert-warn"><?= _t('admin.extensions.empty_list') ?></p>
  37. <?php } ?>
  38. </form>
  39. <?php if (!empty($this->available_extensions)) { ?>
  40. <h2><?= _t('admin.extensions.community') ?></h2>
  41. <div class="table-wrapper scrollbar-thin">
  42. <table>
  43. <tr>
  44. <th><?= _t('admin.extensions.name') ?></th>
  45. <th><?= _t('admin.extensions.version') ?></th>
  46. <th><?= _t('admin.extensions.author') ?></th>
  47. <th><?= _t('admin.extensions.description') ?></th>
  48. <th><?= _t('admin.extensions.is_compatible') ?></th>
  49. </tr>
  50. <?php foreach ($this->available_extensions as $ext) { ?>
  51. <tr>
  52. <td><a href="<?= $ext['url'] ?>" target="_blank"><?= $ext['name'] ?></a></td>
  53. <td><?= $ext['version'] ?></td>
  54. <td><?= $ext['author'] ?></td>
  55. <td>
  56. <?= $ext['description'] ?>
  57. <?php if (isset($this->extensions_installed[$ext['entrypoint']])) { ?>
  58. <?php if (version_compare(strval($this->extensions_installed[$ext['entrypoint']]), strval($ext['version'])) >= 0) { ?>
  59. <span class="alert alert-success">
  60. <?= _t('admin.extensions.latest') ?>
  61. </span>
  62. <?php } elseif (strval($this->extensions_installed[$ext['entrypoint']]) !== strval($ext['version'])) { ?>
  63. <span class="alert alert-warn">
  64. <?= _t('admin.extensions.update') ?>
  65. </span>
  66. <?php } ?>
  67. <?php } ?>
  68. </td>
  69. <td><?= $ext['compatibility'] ?></td>
  70. </tr>
  71. <?php } ?>
  72. </table>
  73. </div>
  74. <?php } else { ?>
  75. <p class="alert alert-warn"><?= _t('admin.extensions.empty_list_help') ?></p>
  76. <?php } ?>
  77. </main>
  78. <?php $class = isset($this->extension) ? ' active' : ''; ?>
  79. <?php $closelink = isset($this->extension) ? _url('extension', 'index') : ''; ?>
  80. <aside id="slider">
  81. <a class="toggle_aside" href="<?= $closelink ?>#close"><?= _i('close') ?></a>
  82. <div id="slider-content">
  83. <?php
  84. if (isset($this->extension)) {
  85. $this->renderHelper('extension/configure');
  86. }
  87. ?>
  88. </div>
  89. </aside>
  90. <a href="#close" id="close-slider">
  91. <?= _i('close') ?>
  92. </a>