ManageAttachments.template.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. <?php
  2. /**
  3. * Simple Machines Forum (SMF)
  4. *
  5. * @package SMF
  6. * @author Simple Machines
  7. * @copyright 2011 Simple Machines
  8. * @license http://www.simplemachines.org/about/smf/license.php BSD
  9. *
  10. * @version 2.1 Alpha 1
  11. */
  12. // Template template wraps around the simple settings page to add javascript functionality.
  13. function template_avatar_settings_above()
  14. {
  15. }
  16. function template_avatar_settings_below()
  17. {
  18. echo '
  19. <script type="text/javascript"><!-- // --><![CDATA[
  20. var fUpdateStatus = function ()
  21. {
  22. document.getElementById("avatar_max_width_external").disabled = document.getElementById("avatar_download_external").checked;
  23. document.getElementById("avatar_max_height_external").disabled = document.getElementById("avatar_download_external").checked;
  24. document.getElementById("avatar_action_too_large").disabled = document.getElementById("avatar_download_external").checked;
  25. document.getElementById("custom_avatar_dir").disabled = document.getElementById("custom_avatar_enabled").value == 0;
  26. document.getElementById("custom_avatar_url").disabled = document.getElementById("custom_avatar_enabled").value == 0;
  27. }
  28. addLoadEvent(fUpdateStatus);
  29. // ]]></script>
  30. ';
  31. }
  32. function template_browse()
  33. {
  34. global $context, $settings, $options, $scripturl, $txt;
  35. echo '
  36. <div id="manage_attachments">
  37. <div class="cat_bar">
  38. <h3 class="catbg">', $txt['attachment_manager_browse_files'], '</h3>
  39. </div>
  40. <div class="windowbg2">
  41. <span class="topslice"><span></span></span>
  42. <div class="content">
  43. <a href="', $scripturl, '?action=admin;area=manageattachments;sa=browse">', $context['browse_type'] === 'attachments' ? '<img src="' . $settings['images_url'] . '/selected.png" alt="&gt;" /> ' : '', $txt['attachment_manager_attachments'], '</a> |
  44. <a href="', $scripturl, '?action=admin;area=manageattachments;sa=browse;avatars">', $context['browse_type'] === 'avatars' ? '<img src="' . $settings['images_url'] . '/selected.png" alt="&gt;" /> ' : '', $txt['attachment_manager_avatars'], '</a> |
  45. <a href="', $scripturl, '?action=admin;area=manageattachments;sa=browse;thumbs">', $context['browse_type'] === 'thumbs' ? '<img src="' . $settings['images_url'] . '/selected.png" alt="&gt;" /> ' : '', $txt['attachment_manager_thumbs'], '</a>
  46. </div>
  47. <span class="botslice"><span></span></span>
  48. </div>
  49. </div>';
  50. template_show_list('file_list');
  51. echo '
  52. <br class="clear" />';
  53. }
  54. function template_maintenance()
  55. {
  56. global $context, $settings, $options, $scripturl, $txt, $modSettings;
  57. echo '
  58. <div id="manage_attachments">
  59. <div class="cat_bar">
  60. <h3 class="catbg">', $txt['attachment_stats'], '</h3>
  61. </div>
  62. <div class="windowbg">
  63. <span class="topslice"><span></span></span>
  64. <div class="content">
  65. <dl class="settings">
  66. <dt><strong>', $txt['attachment_total'], ':</strong></dt><dd>', $context['num_attachments'], '</dd>
  67. <dt><strong>', $txt['attachment_manager_total_avatars'], ':</strong></dt><dd>', $context['num_avatars'], '</dd>
  68. <dt><strong>', $txt['attachmentdir_size'], ':</strong></dt><dd>', $context['attachment_total_size'], ' ', $txt['kilobyte'], '</dd>
  69. <dt><strong>', $txt['attach_current_dir'], ':</strong></dt><dd>', $modSettings['attachmentUploadDir'][$modSettings['currentAttachmentUploadDir']], '</dd>
  70. <dt><strong>', $txt['attachmentdir_size_current'], ':</strong></dt><dd>', $context['attachment_current_size'], ' ', $txt['kilobyte'], '</dd>
  71. <dt><strong>', $txt['attachment_space'], ':</strong></dt><dd>', isset($context['attachment_space']) ? $context['attachment_space'] . ' ' . $txt['kilobyte'] : $txt['attachmentdir_size_not_set'], '</dd>
  72. <dt><strong>', $txt['attachmentdir_files_current'], ':</strong></dt><dd>', $context['attachment_current_files'], '</dd>
  73. <dt><strong>', $txt['attachment_files'], ':</strong></dt><dd>', isset($context['attachment_files']) ? $context['attachment_files'] : $txt['attachmentdir_files_not_set'], '</dd>
  74. </dl>
  75. </div>
  76. <span class="botslice"><span></span></span>
  77. </div>
  78. <br class="clear" />
  79. <div class="cat_bar">
  80. <h3 class="catbg">', $txt['attachment_integrity_check'], '</h3>
  81. </div>
  82. <div class="windowbg">
  83. <span class="topslice"><span></span></span>
  84. <div class="content">
  85. <form action="', $scripturl, '?action=admin;area=manageattachments;sa=repair;', $context['session_var'], '=', $context['session_id'], '" method="post" accept-charset="', $context['character_set'], '">
  86. <p>', $txt['attachment_integrity_check_desc'], '</p>
  87. <hr class="hrcolor" />
  88. <input type="submit" name="repair" value="', $txt['attachment_check_now'], '" class="button_submit" />
  89. <br class="clear_right" />
  90. </form>
  91. </div>
  92. <span class="botslice"><span></span></span>
  93. </div>
  94. <br class="clear" />
  95. <div class="cat_bar">
  96. <h3 class="catbg">', $txt['attachment_pruning'], '</h3>
  97. </div>
  98. <div class="windowbg">
  99. <span class="topslice"><span></span></span>
  100. <div class="content">
  101. <form action="', $scripturl, '?action=admin;area=manageattachments" method="post" accept-charset="', $context['character_set'], '" onsubmit="return confirm(\'', $txt['attachment_pruning_warning'], '\');" style="margin: 0 0 2ex 0;">
  102. ', $txt['attachment_remove_old'], ' <input type="text" name="age" value="25" size="4" class="input_text" /> ', $txt['days_word'], '<br />
  103. ', $txt['attachment_pruning_message'], ': <input type="text" name="notice" value="', $txt['attachment_delete_admin'], '" size="40" class="input_text" /><br />
  104. <input type="submit" name="remove" value="', $txt['remove'], '" class="button_submit" />
  105. <input type="hidden" name="type" value="attachments" />
  106. <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />
  107. <input type="hidden" name="sa" value="byAge" />
  108. <br class="clear_right" />
  109. </form>
  110. <hr />
  111. <form action="', $scripturl, '?action=admin;area=manageattachments" method="post" accept-charset="', $context['character_set'], '" onsubmit="return confirm(\'', $txt['attachment_pruning_warning'], '\');" style="margin: 0 0 2ex 0;">
  112. ', $txt['attachment_remove_size'], ' <input type="text" name="size" id="size" value="100" size="4" class="input_text" /> ', $txt['kilobyte'], '<br />
  113. ', $txt['attachment_pruning_message'], ': <input type="text" name="notice" value="', $txt['attachment_delete_admin'], '" size="40" class="input_text" /><br />
  114. <input type="submit" name="remove" value="', $txt['remove'], '" class="button_submit" />
  115. <input type="hidden" name="type" value="attachments" />
  116. <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />
  117. <input type="hidden" name="sa" value="bySize" />
  118. <br class="clear_right" />
  119. </form>
  120. <hr />
  121. <form action="', $scripturl, '?action=admin;area=manageattachments" method="post" accept-charset="', $context['character_set'], '" onsubmit="return confirm(\'', $txt['attachment_pruning_warning'], '\');" style="margin: 0 0 2ex 0;">
  122. ', $txt['attachment_manager_avatars_older'], ' <input type="text" name="age" value="45" size="4" class="input_text" /> ', $txt['days_word'], '<br />
  123. <input type="submit" name="remove" value="', $txt['remove'], '" class="button_submit" />
  124. <input type="hidden" name="type" value="avatars" />
  125. <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />
  126. <input type="hidden" name="sa" value="byAge" />
  127. <br class="clear_right" />
  128. </form>
  129. </div>
  130. <span class="botslice"><span></span></span>
  131. </div>
  132. </div>
  133. <br class="clear" />';
  134. echo '
  135. <div id="transfer" class="cat_bar">
  136. <h3 class="catbg">', $txt['attachment_transfer'], '</h3>
  137. </div>';
  138. if (!empty($context['results']))
  139. echo '
  140. <div class="noticebox">', $context['results'], '</div>';
  141. echo '
  142. <div class="windowbg">
  143. <div class="content">
  144. <form action="', $scripturl, '?action=admin;area=manageattachments;sa=transfer" method="post" accept-charset="', $context['character_set'], '">
  145. <p>', $txt['attachment_transfer_desc'], '</p>
  146. <hr class="hrcolor" />
  147. <dl class="settings">
  148. <dt>', $txt['attachment_transfer_from'], '</dt>
  149. <dd><select name="from">
  150. <option value="0">', $txt['attachment_transfer_select'], '</option>';
  151. foreach ($context['attach_dirs'] as $id => $dir)
  152. echo '
  153. <option value="', $id, '">', $dir, '</option>';
  154. echo '
  155. </select></dd>
  156. <dt>', $txt['attachment_transfer_auto'], '</dt>
  157. <dd><select name="auto">
  158. <option value="0">', $txt['attachment_transfer_auto_select'], '</option>
  159. <option value="-1">', $txt['attachment_transfer_forum_root'], '</option>';
  160. if (!empty($context['base_dirs']))
  161. foreach ($context['base_dirs'] as $id => $dir)
  162. echo '
  163. <option value="', $id, '">', $dir, '</option>';
  164. else
  165. echo '
  166. <option value="0" disabled="disabled">', $txt['attachment_transfer_no_base'], '</option>';
  167. echo '
  168. </select></dd>
  169. <dt>', $txt['attachment_transfer_to'], '</dt>
  170. <dd><select name="to">
  171. <option value="0">', $txt['attachment_transfer_select'], '</option>';
  172. foreach($context['attach_dirs'] as $id => $dir)
  173. echo '
  174. <option value="', $id, '">', $dir, '</option>';
  175. echo '
  176. </select></dd>';
  177. if (!empty($modSettings['attachmentDirFileLimit']))
  178. echo '
  179. <dt>', $txt['attachment_transfer_empty'], '</dt>
  180. <dd><input type="checkbox" name="empty_it"', $context['checked'] ? ' checked="checked"' : '', ' /></dd>';
  181. echo '
  182. </dl>
  183. <hr class="hrcolor"/>
  184. <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" />
  185. <input type="submit" onclick="start_progress()" name="transfer" value="', $txt['attachment_transfer_now'], '" class="button_submit" />
  186. <div id="progress_msg"></div>
  187. <div id="show_progress" class="padding"></div>
  188. <br class="clear_right" />
  189. </form>
  190. <script type="text/javascript"><!-- // --><![CDATA[
  191. function start_progress() {
  192. setTimeout(\'show_msg()\', 1000);
  193. }
  194. function show_msg() {
  195. $(\'#progress_msg\').html(\'<div><img src="', $settings['actual_images_url'], '/loading.gif" alt="loading.gif" width="35" height="35" />&nbsp; ', $txt['attachment_transfer_progress'] , '<\/div>\');
  196. show_progress();
  197. }
  198. function show_progress() {
  199. $(\'#show_progress\').load("progress.php");
  200. setTimeout(\'show_progress()\', 1500);
  201. }
  202. // ]]></script>
  203. </div>
  204. </div>
  205. <br class="clear" />';
  206. }
  207. function template_attachment_repair()
  208. {
  209. global $context, $txt, $scripturl, $settings;
  210. // If we've completed just let them know!
  211. if ($context['completed'])
  212. {
  213. echo '
  214. <div id="manage_attachments">
  215. <div class="cat_bar">
  216. <h3 class="catbg">', $txt['repair_attachments_complete'], '</h3>
  217. </div>
  218. <div class="windowbg">
  219. <span class="topslice"><span></span></span>
  220. <div class="content">
  221. ', $txt['repair_attachments_complete_desc'], '
  222. </div>
  223. <span class="botslice"><span></span></span>
  224. </div>
  225. </div>
  226. <br class="clear" />';
  227. }
  228. // What about if no errors were even found?
  229. elseif (!$context['errors_found'])
  230. {
  231. echo '
  232. <div id="manage_attachments">
  233. <div class="cat_bar">
  234. <h3 class="catbg">', $txt['repair_attachments_complete'], '</h3>
  235. </div>
  236. <div class="windowbg">
  237. <span class="topslice"><span></span></span>
  238. <div class="content">
  239. ', $txt['repair_attachments_no_errors'], '
  240. </div>
  241. <span class="botslice"><span></span></span>
  242. </div>
  243. </div>
  244. <br class="clear" />';
  245. }
  246. // Otherwise, I'm sad to say, we have a problem!
  247. else
  248. {
  249. echo '
  250. <div id="manage_attachments">
  251. <form action="', $scripturl, '?action=admin;area=manageattachments;sa=repair;fixErrors=1;step=0;substep=0;', $context['session_var'], '=', $context['session_id'], '" method="post" accept-charset="', $context['character_set'], '">
  252. <div class="cat_bar">
  253. <h3 class="catbg">', $txt['repair_attachments'], '</h3>
  254. </div>
  255. <div class="windowbg">
  256. <span class="topslice"><span></span></span>
  257. <div class="content">
  258. <p>', $txt['repair_attachments_error_desc'], '</p>';
  259. // Loop through each error reporting the status
  260. foreach ($context['repair_errors'] as $error => $number)
  261. {
  262. if (!empty($number))
  263. echo '
  264. <input type="checkbox" name="to_fix[]" id="', $error, '" value="', $error, '" class="input_check" />
  265. <label for="', $error, '">', sprintf($txt['attach_repair_' . $error], $number), '</label><br />';
  266. }
  267. echo ' <br />
  268. <input type="submit" value="', $txt['repair_attachments_continue'], '" class="button_submit" />
  269. <input type="submit" name="cancel" value="', $txt['repair_attachments_cancel'], '" class="button_submit" />
  270. </div>
  271. <span class="botslice"><span></span></span>
  272. </div>
  273. </form>
  274. </div>
  275. <br class="clear" />';
  276. }
  277. }
  278. function template_attachment_paths()
  279. {
  280. global $modSettings;
  281. if (!empty($modSettings['attachment_basedirectories']))
  282. {
  283. template_show_list('base_paths');
  284. echo '<br />';
  285. }
  286. template_show_list('attach_paths');
  287. }
  288. ?>