integration.phtml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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('conf.sharing') ?></h1>
  8. <form method="post" action="<?= _url('configure', 'integration') ?>" class="draggableList">
  9. <input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" />
  10. <template id="simple-share">
  11. <fieldset class="group-share dragbox">
  12. <legend draggable="true">##label##</legend>
  13. <input type="hidden" id="share_##key##_type" name="share[##key##][type]" value="##type##" data-leave-validation="" />
  14. <div class="form-group" id="group-share-##key##">
  15. <label class="group-name" for="share_##key##_name"><?= _t('conf.sharing.share_name') ?></label>
  16. <div class="group-controls">
  17. <input type="text" id="share_##key##_name" name="share[##key##][name]" value="##label##" />
  18. </div>
  19. </div>
  20. <div class="form-group">
  21. <div class="group-controls">
  22. <button type="button" class="remove btn btn-attention" title="<?= _t('conf.sharing.remove') ?>"><?= _t('gen.action.remove') ?></button>
  23. </div>
  24. </div>
  25. </fieldset>
  26. </template>
  27. <template id="advanced-share">
  28. <fieldset class="group-share dragbox">
  29. <legend draggable="true">##label##</legend>
  30. <input type="hidden" id="share_##key##_type" name="share[##key##][type]" value="##type##" data-leave-validation="" />
  31. <input type="hidden" id="share_##key##_method" name="share[##key##][method]" value="##method##" />
  32. <input type="hidden" id="share_##key##_field" name="share[##key##][field]" value="##field##" />
  33. <div class="form-group" id="group-share-##key##">
  34. <label class="group-name" for="share_##key##_name"><?= _t('conf.sharing.share_name') ?></label>
  35. <div class="group-controls">
  36. <input type="text" id="share_##key##_name" name="share[##key##][name]" value="" />
  37. </div>
  38. </div>
  39. <div class="form-group" id="group-share-##key##">
  40. <label class="group-name" for="share_##key##_url"><?= _t('conf.sharing.share_url') ?></label>
  41. <div class="group-controls">
  42. <input type="url" id="share_##key##_url" name="share[##key##][url]" class="long" value="" required />
  43. <p class="help"><?= _i('help') ?> <a href="##help##" target="_blank" rel="noreferrer"><?= _t('conf.sharing.more_information') ?></a></p>
  44. </div>
  45. </div>
  46. <div class="form-group">
  47. <div class="group-controls">
  48. <button type="button" class="remove btn btn-attention" title="<?= _t('conf.sharing.remove') ?>"><?= _t('gen.action.remove') ?></button>
  49. </div>
  50. </div>
  51. </fieldset>
  52. </template>
  53. <?php
  54. foreach (FreshRSS_Context::userConf()->sharing as $key => $share_options) {
  55. $share = FreshRSS_Share::get($share_options['type']);
  56. if ($share === null) {
  57. continue;
  58. }
  59. $share->update($share_options);
  60. ?>
  61. <fieldset class="group-share dragbox" id="group-share-<?= $key ?>">
  62. <legend draggable="true"><?= $share->name(true) ?></legend>
  63. <input type="hidden" id="share_<?= $key ?>_type" name="share[<?= $key ?>][type]" value="<?= $share->type() ?>" />
  64. <input type="hidden" id="share_<?= $key ?>_method" name="share[<?= $key ?>][method]" value="<?= $share->method() ?>" />
  65. <input type="hidden" id="share_<?= $key ?>_field" name="share[<?= $key ?>][field]" value="<?= $share->field() ?>" />
  66. <?php if ($share->isDeprecated()) { ?>
  67. <div class="prompt alert alert-warn">
  68. <p><?= _t('conf.sharing.deprecated') ?></p>
  69. </div>
  70. <?php } ?>
  71. <div class="form-group">
  72. <label class="group-name" for="share_<?= $key ?>_name">
  73. <?= _t('conf.sharing.share_name') ?>
  74. </label>
  75. <div class="group-controls">
  76. <input type="text" id="share_<?= $key ?>_name" name="share[<?= $key ?>][name]" value="<?= $share->name() ?>"
  77. data-leave-validation="<?= $share->name() ?>" />
  78. </div>
  79. </div>
  80. <div class="form-group">
  81. <?php if ($share->formType() === 'advanced') { ?>
  82. <label class="group-name" for="share_<?= $key ?>_url">
  83. <?= _t('conf.sharing.share_url') ?>
  84. </label>
  85. <div class="group-controls">
  86. <div class="stick">
  87. <input type="url" id="share_<?= $key ?>_url" name="share[<?= $key ?>][url]" class="long" value="<?= $share->baseUrl() ?>"
  88. data-leave-validation="<?= $share->baseUrl() ?>" required />
  89. <a class="btn open-url" target="_blank" rel="noreferrer" href="<?= $share->baseUrl() ?>" title="<?= _t('gen.action.open_url') ?>" data-input="share_<?= $key ?>_url"><?= _i('link') ?></a>
  90. </div>
  91. <p class="help"><?= _i('help') ?> <a href="<?= $share->help() ?>" target="_blank" rel="noreferrer"><?= _t('conf.sharing.more_information') ?></a></p>
  92. </div>
  93. <?php } ?>
  94. </div>
  95. <div class="form-group">
  96. <div class="group-controls">
  97. <button type="button" class="remove btn btn-attention" title="<?= _t('conf.sharing.remove') ?>"><?= _t('gen.action.remove') ?></button>
  98. </div>
  99. </div>
  100. </fieldset>
  101. <?php } ?>
  102. <fieldset>
  103. <legend><?= _t('conf.sharing.add') ?></legend>
  104. <div class="form-group">
  105. <div class="group-controls">
  106. <div class="stick">
  107. <select>
  108. <?php foreach (FreshRSS_Share::enum() as $share) { ?>
  109. <option value='<?= $share->type() ?>' data-form='<?= $share->formType() ?>' data-help='<?= $share->help() ?>'
  110. data-method='<?= $share->method() ?>' data-field='<?= $share->field() ?>'>
  111. <?= $share->name(true) ?>
  112. </option>
  113. <?php } ?>
  114. </select>
  115. <a href='#' class='share add btn' title="<?= _t('conf.sharing.add') ?>"><?= _i('add') ?></a>
  116. </div>
  117. </div>
  118. </div>
  119. </fieldset>
  120. <div class="form-group form-actions">
  121. <div class="group-controls">
  122. <button type="submit" class="btn btn-important"><?= _t('gen.action.submit') ?></button>
  123. </div>
  124. </div>
  125. </form>
  126. </main>