smf-theme/ManageAttachments.template.php

277 lines
No EOL
10 KiB
PHP

<?php
/**
* Simple Machines Forum (SMF)
*
* @package SMF
* @author Simple Machines https://www.simplemachines.org
* @copyright 2022 Simple Machines and individual contributors
* @license https://www.simplemachines.org/about/smf/license.php BSD
*
* @version 2.1.0
*/
/**
* This template wraps around the simple settings page to add javascript functionality.
*/
function template_avatar_settings_above()
{
}
/**
* JavaScript to be output below the simple settings page
*/
function template_avatar_settings_below()
{
echo '
<script>
var fUpdateStatus = function ()
{
document.getElementById("avatar_max_width_external").disabled = document.getElementById("avatar_download_external").checked;
document.getElementById("avatar_max_height_external").disabled = document.getElementById("avatar_download_external").checked;
document.getElementById("avatar_action_too_large").disabled = document.getElementById("avatar_download_external").checked;
}
addLoadEvent(fUpdateStatus);
</script>';
}
/**
* The attachment maintenance page
*/
function template_maintenance()
{
global $context, $settings, $scripturl, $txt, $modSettings;
echo '
<div id="manage_attachments">
<div class="cat_bar">
<h2 class="catbg">', $txt['attachment_stats'], '</h2>
</div>
<div class="windowbg">
<dl class="settings">
<dt><strong>', $txt['attachment_total'], ':</strong></dt>
<dd>', $context['num_attachments'], '</dd>
<dt><strong>', $txt['attachment_manager_total_avatars'], ':</strong></dt>
<dd>', $context['num_avatars'], '</dd>
<dt><strong>', $txt['attachmentdir_size'], ':</strong></dt>
<dd>', $context['attachment_total_size'], ' ', $txt['kilobyte'], '</dd>
<dt><strong>', $txt['attach_current_dir'], ':</strong></dt>
<dd class="word_break">', $modSettings['attachmentUploadDir'][$modSettings['currentAttachmentUploadDir']], '</dd>
<dt><strong>', $txt['attachmentdir_size_current'], ':</strong></dt>
<dd>', $context['attachment_current_size'], ' ', $txt['kilobyte'], '</dd>
<dt><strong>', $txt['attachment_space'], ':</strong></dt>
<dd>', isset($context['attachment_space']) ? $context['attachment_space'] . ' ' . $txt['kilobyte'] : $txt['attachmentdir_size_not_set'], '</dd>
<dt><strong>', $txt['attachmentdir_files_current'], ':</strong></dt>
<dd>', $context['attachment_current_files'], '</dd>
<dt><strong>', $txt['attachment_files'], ':</strong></dt>
<dd>', isset($context['attachment_files']) ? $context['attachment_files'] : $txt['attachmentdir_files_not_set'], '</dd>
</dl>
</div>
<div class="cat_bar">
<h2 class="catbg">', $txt['attachment_integrity_check'], '</h2>
</div>
<div class="windowbg">
<form action="', $scripturl, '?action=admin;area=manageattachments;sa=repair;', $context['session_var'], '=', $context['session_id'], '" method="post" accept-charset="', $context['character_set'], '">
<p>', $txt['attachment_integrity_check_desc'], '</p>
<input type="submit" name="repair" value="', $txt['attachment_check_now'], '" class="button">
</form>
</div>
<div class="cat_bar">
<h2 class="catbg">', $txt['attachment_pruning'], '</h2>
</div>
<div class="windowbg">
<form action="', $scripturl, '?action=admin;area=manageattachments" method="post" accept-charset="', $context['character_set'], '" onsubmit="return confirm(\'', $txt['attachment_pruning_warning'], '\');">
<dl class="settings">
<dt>', $txt['attachment_remove_old'], '</dt>
<dd><input type="number" name="age" value="25" size="4"> ', $txt['days_word'], '</dd>
<dt>', $txt['attachment_pruning_message'], '</dt>
<dd><input type="text" name="notice" value="', $txt['attachment_delete_admin'], '" size="40"></dd>
<input type="submit" name="remove" value="', $txt['remove'], '" class="button">
<input type="hidden" name="type" value="attachments">
<input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '">
<input type="hidden" name="sa" value="byAge">
</dl>
</form>
<form action="', $scripturl, '?action=admin;area=manageattachments" method="post" accept-charset="', $context['character_set'], '" onsubmit="return confirm(\'', $txt['attachment_pruning_warning'], '\');">
<dl class="settings">
<dt>', $txt['attachment_remove_size'], '</dt>
<dd><input type="number" name="size" id="size" value="100" size="4"> ', $txt['kilobyte'], '</dd>
<dt>', $txt['attachment_pruning_message'], '</dt>
<dd><input type="text" name="notice" value="', $txt['attachment_delete_admin'], '" size="40"></dd>
<input type="submit" name="remove" value="', $txt['remove'], '" class="button">
<input type="hidden" name="type" value="attachments">
<input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '">
<input type="hidden" name="sa" value="bySize">
</dl>
</form>
<form action="', $scripturl, '?action=admin;area=manageattachments" method="post" accept-charset="', $context['character_set'], '" onsubmit="return confirm(\'', $txt['attachment_pruning_warning'], '\');">
<dl class="settings">
<dt>', $txt['attachment_manager_avatars_older'], '</dt>
<dd><input type="number" name="age" value="45" size="4"> ', $txt['days_word'], '</dd>
<input type="submit" name="remove" value="', $txt['remove'], '" class="button">
<input type="hidden" name="type" value="avatars">
<input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '">
<input type="hidden" name="sa" value="byAge">
</dl>
</form>
</div><!-- .windowbg -->
</div><!-- #manage_attachments -->';
if (!empty($context['results']))
echo '
<div class="noticebox">', $context['results'], '</div>';
echo '
<div id="transfer" class="cat_bar">
<h2 class="catbg">', $txt['attachment_transfer'], '</h2>
</div>
<div class="windowbg">
<form action="', $scripturl, '?action=admin;area=manageattachments;sa=transfer" method="post" accept-charset="', $context['character_set'], '">
<p>', $txt['attachment_transfer_desc'], '</p>
<dl class="settings">
<dt>', $txt['attachment_transfer_from'], '</dt>
<dd>
<select name="from">
<option value="0">', $txt['attachment_transfer_select'], '</option>';
foreach ($context['attach_dirs'] as $id => $dir)
echo '
<option value="', $id, '">', $dir, '</option>';
echo '
</select>
</dd>
<dt>', $txt['attachment_transfer_auto'], '</dt>
<dd>
<select name="auto">
<option value="0">', $txt['attachment_transfer_auto_select'], '</option>
<option value="-1">', $txt['attachment_transfer_forum_root'], '</option>';
if (!empty($context['base_dirs']))
foreach ($context['base_dirs'] as $id => $dir)
echo '
<option value="', $id, '">', $dir, '</option>';
else
echo '
<option value="0" disabled>', $txt['attachment_transfer_no_base'], '</option>';
echo '
</select>
</dd>
<dt>', $txt['attachment_transfer_to'], '</dt>
<dd>
<select name="to">
<option value="0">', $txt['attachment_transfer_select'], '</option>';
foreach ($context['attach_dirs'] as $id => $dir)
echo '
<option value="', $id, '">', $dir, '</option>';
echo '
</select>
</dd>';
if (!empty($modSettings['attachmentDirFileLimit']))
echo '
<dt>', $txt['attachment_transfer_empty'], '</dt>
<dd><input type="checkbox" name="empty_it"', $context['checked'] ? ' checked' : '', '></dd>';
echo '
</dl>
<input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '">
<input type="submit" onclick="start_progress()" name="transfer" value="', $txt['attachment_transfer_now'], '" class="button">
<div id="progress_msg"></div>
<div id="show_progress" class="padding"></div>
</form>
<script>
function start_progress() {
setTimeout(\'show_msg()\', 1000);
}
function show_msg() {
$(\'#progress_msg\').html(\'<div><img src="', $settings['actual_images_url'], '/loading_sm.gif" alt="', $txt['ajax_in_progress'], '" width="35" height="35"> ', $txt['attachment_transfer_progress'], '<\/div>\');
show_progress();
}
function show_progress() {
$(\'#show_progress\').on("load", "progress.php");
setTimeout(\'show_progress()\', 1500);
}
</script>
</div><!-- .windowbg -->';
}
/**
* The file repair page
*/
function template_attachment_repair()
{
global $context, $txt, $scripturl;
// If we've completed just let them know!
if ($context['completed'])
echo '
<div id="manage_attachments">
<div class="cat_bar">
<h2 class="catbg">', $txt['repair_attachments_complete'], '</h2>
</div>
<div class="windowbg">
', $txt['repair_attachments_complete_desc'], '
</div>
</div>';
// What about if no errors were even found?
elseif (!$context['errors_found'])
echo '
<div id="manage_attachments">
<div class="cat_bar">
<h2 class="catbg">', $txt['repair_attachments_complete'], '</h2>
</div>
<div class="windowbg">
', $txt['repair_attachments_no_errors'], '
</div>
</div>';
// Otherwise, I'm sad to say, we have a problem!
else
{
echo '
<div id="manage_attachments">
<form id="admin_form_wrapper" 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'], '">
<div class="cat_bar">
<h2 class="catbg">', $txt['repair_attachments'], '</h2>
</div>
<div class="windowbg">
<p>', $txt['repair_attachments_error_desc'], '</p>';
// Loop through each error reporting the status
foreach ($context['repair_errors'] as $error => $number)
if (!empty($number))
echo '
<input type="checkbox" name="to_fix[]" id="', $error, '" value="', $error, '">
<label for="', $error, '">', sprintf($txt['attach_repair_' . $error], $number), '</label><br>';
echo '
<br>
<input type="submit" value="', $txt['repair_attachments_continue'], '" class="button">
<input type="submit" name="cancel" value="', $txt['repair_attachments_cancel'], '" class="button">
</div>
</form>
</div><!-- #manage_attachments -->';
}
}
/**
* The page that handles managing attachment paths.
*/
function template_attachment_paths()
{
global $modSettings;
if (!empty($modSettings['attachment_basedirectories']))
template_show_list('base_paths');
template_show_list('attach_paths');
}
?>