Пример моего кода на PHP... И не только.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

191 lines
9.9KB

  1. <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
  2. <h1>Настройки взаимодействия с API v1 ChiefRed.com</h1>
  3. <form id="chiefred-options" action="" method="POST">
  4. <input type="hidden" name="chiefred_action" value="save">
  5. <?php wp_nonce_field( 'wp_rest', 'chiefred_token' ); ?>
  6. <h2 style="margin: 2em 0 1em 0;">Настройки сайта для взаимодействия с Редакцией</h2>
  7. <table cellspacing="0" class="chiefred-options">
  8. <tr>
  9. <th>ID этого cайта в Редакции</th>
  10. <td class="devider" />
  11. <td class="option">
  12. <span class="site-id"><input id="site_id" name="site_id" type="text" value="<?php echo esc_attr( $site_id ); ?>" class="regular-text code" placeholder="номер"></span>
  13. </td>
  14. </tr>
  15. <tr>
  16. <th>IP-адрес сервера API</th>
  17. <td class="devider" />
  18. <td class="option">
  19. <span class="api-ip"><input id="api_ip" name="api_ip" type="text" value="<?php echo esc_attr( $api_ip ); ?>" class="regular-text code" placeholder="IPv4-адрес"></span>
  20. </td>
  21. </tr>
  22. <tr>
  23. <th>Порт API (Редакции)</th>
  24. <td class="devider" />
  25. <td class="option">
  26. <span class="api-port"><input id="api_port" name="api_port" type="text" value="<?php echo esc_attr( $api_port ); ?>" class="regular-text code" placeholder="5 цифр"></span>
  27. </td>
  28. </tr>
  29. <tr>
  30. <th>Секрет синхронизации</th>
  31. <td class="devider" />
  32. <td class="option">
  33. <span class="api-secret"><input id="api_secret" name="api_secret" type="text" value="<?php echo esc_attr( $api_secret ); ?>" class="regular-text code" placeholder="до 64 знаков: a-zA-Z0-9"></span>
  34. </td>
  35. </tr>
  36. </table>
  37. <h2 style="margin: 2em 0 1em 0;">Реквизиты данного сайта для настройки Редакции</h2>
  38. <table cellspacing="0" class="chiefred-options">
  39. <tr>
  40. <th>IP-адрес сервера этого cайта</th>
  41. <td class="devider" />
  42. <td class="option">
  43. <span class="site-id"><input id="site_ip" name="site_ip" type="text" value="<?php echo esc_attr( $_SERVER['SERVER_ADDR'] ); ?>" class="regular-text code" readonly="readonly"></span>
  44. </td>
  45. </tr>
  46. <tr>
  47. <th>Скрипт канонического URL статьи</th>
  48. <td class="devider" />
  49. <td class="option">
  50. <span class="canonical_script_url"><input id="canonical_script_url" name="canonical_script_url" type="text" value="<?php echo esc_url( get_rest_url('', 'chiefred/canonical') ); ?>" class="regular-text code" readonly="readonly"></span>
  51. </td>
  52. </tr>
  53. <tr>
  54. <th>Скрипт сброса флага задержки</th>
  55. <td class="devider" />
  56. <td class="option">
  57. <span class="site-id"><input id="sync_script_url" name="sync_script_url" type="text" value="<?php echo esc_url( get_rest_url('', 'chiefred/sync') ); ?>" class="regular-text code" readonly="readonly"></span>
  58. </td>
  59. </tr>
  60. </table>
  61. <h2 style="margin: 2em 0 1em 0;">Параметры отображения статей</h2>
  62. <table cellspacing="0" class="chiefred-options">
  63. <tr>
  64. <th>Ссылка на статью-родителя</th>
  65. <td class="devider" />
  66. <td class="option">
  67. <select name="article_parent_link">
  68. <option value="0"<?php echo (0 == $article_parent_link)?' selected':'' ?>>Не добавлять</option>
  69. <option value="1"<?php echo (1 == $article_parent_link)?' selected':'' ?>>Добавить</option>
  70. </select>
  71. </td>
  72. </tr>
  73. <tr>
  74. <th>Подписи авторов</th>
  75. <td class="devider" />
  76. <td class="option">
  77. <select name="article_creators">
  78. <option value="0"<?php echo (0 == $article_creators)?' selected':'' ?>>Не добавлять</option>
  79. <option value="1"<?php echo (1 == $article_creators)?' selected':'' ?>>Добавить</option>
  80. </select>
  81. </td>
  82. </tr>
  83. <tr>
  84. <th>Анонсы дочерних статей</th>
  85. <td class="devider" />
  86. <td class="option">
  87. <select name="article_childrens">
  88. <option value="0"<?php echo (0 == $article_childrens)?' selected':'' ?>>Не добавлять</option>
  89. <option value="1"<?php echo (1 == $article_childrens)?' selected':'' ?>>Добавить</option>
  90. </select>
  91. </td>
  92. </tr>
  93. <tr>
  94. <th>Форма &laquo;Была ли статья полезна?&raquo;</th>
  95. <td class="devider" />
  96. <td class="option">
  97. <select name="article_was_useful">
  98. <option value="0"<?php echo (0 == $article_was_useful)?' selected':'' ?>>Не добавлять</option>
  99. <option value="1"<?php echo (1 == $article_was_useful)?' selected':'' ?>>Добавить</option>
  100. </select>
  101. </td>
  102. </tr>
  103. </table>
  104. <h2 style="margin: 2em 0 1em 0;">Параметры отображения иллюстраций</h2>
  105. <table cellspacing="0" class="chiefred-options">
  106. <tr>
  107. <th>Размер иллюстраций в тексте</th>
  108. <td class="devider" />
  109. <td class="option">
  110. <select name="illustration_size">
  111. <?php
  112. foreach ($image_sizes as $size_name => $size) {
  113. if ($size['width'] <= 800) echo '<option value="' . esc_attr($size_name) . '"' . (($size_name == $illustration_size)?' selected':'') . '>' . esc_attr($size['nname']) . ' (ширина ' . absint($size['width']) . ' пикселей)</option>';
  114. }
  115. ?>
  116. </select>
  117. </td>
  118. </tr>
  119. <tr>
  120. <th>CLASS тега IMG иллюстрации</th>
  121. <td class="devider" />
  122. <td class="option">
  123. <input id="illustration_class" name="illustration_class" type="text" value="<?php echo sanitize_html_class( $illustration_class ); ?>" />
  124. </td>
  125. </tr>
  126. <tr>
  127. <th>Ссылка на полный размер</th>
  128. <td class="devider" />
  129. <td class="option">
  130. <select name="illustration_link">
  131. <option value="0"<?php echo (0 == $illustration_link)?' selected':'' ?>>Не добавлять</option>
  132. <option value="1"<?php echo (1 == $illustration_link)?' selected':'' ?>>Добавить</option>
  133. </select>
  134. </td>
  135. </tr>
  136. <tr>
  137. <th>CLASS тега A ссылки</th>
  138. <td class="devider" />
  139. <td class="option">
  140. <input id="illustration_link_class" name="illustration_link_class" type="text" value="<?php echo sanitize_html_class( $illustration_link_class ); ?>" />
  141. </td>
  142. </tr>
  143. <tr>
  144. <th>REL тега A ссылки</th>
  145. <td class="devider" />
  146. <td class="option">
  147. <input id="illustration_link_rel" name="illustration_link_rel" type="text" value="<?php echo sanitize_html_class( $illustration_link_rel ); ?>" />
  148. </td>
  149. </tr>
  150. <tr>
  151. <th>TARGET тега A ссылки</th>
  152. <td class="devider" />
  153. <td class="option">
  154. <input id="illustration_link_target" name="illustration_link_target" type="text" value="<?php echo sanitize_html_class( $illustration_link_target ); ?>" />
  155. </td>
  156. </tr>
  157. </table>
  158. <input class="button button-primary chiefred-options-save-btn" value="Сохранить изменения" type="button">
  159. <b id="options-changed">Настройки были изменены!</b>
  160. <div class="utils">
  161. <h1 style="margin: 2em 0 1em 0;">Утилиты</h1>
  162. <?php if ($site_id && $api_ip && $api_port && $api_secret) { ?>
  163. <input class="button chiefred-synchronize-btn" value="Выполнить синхронизацию" type="button" title="Инициировать внеплановый сеанс синхронизации сайта с Редакцией. Не следует вызывать чаще чем один раз в 5 минут. Редакция может отклонить слишком частые запросы.">
  164. <input class="button chiefred-clear-synchronize-btn" value="Остановить синхронизацию" type="button" title="Отменить следующую инициированную внеплановую синхронизацию (сеансы могут назначаться сами, с интервалом в 5 минут, если в Редакции еще остался готовый, но неопубликованный контент). Не влияет на плановую синхронизацию, выполняемую каждые 4 часа.">
  165. <?php } ?>
  166. <a class="button thickbox chiefred-synchronize-log-btn" href="#TB_inline?width=600&height=650&inlineId=chiefred-synchronize-log">Журнал последней синхронизации</a>
  167. </div>
  168. </form>
  169. <?php add_thickbox(); ?>
  170. <div id="chiefred-synchronize-log" style="display:none;">
  171. <p>Загрузка...</p>
  172. </div>