Chris@76: Chris@76:
Chris@76:

', $txt[($context['uninstalling'] ? 'un' : '') . 'install_mod'], '

Chris@76:
Chris@76:
'; Chris@76: Chris@76: if ($context['is_installed']) Chris@76: echo ' Chris@76: ', $txt['package_installed_warning1'], '
Chris@76:
Chris@76: ', $txt['package_installed_warning2'], '
Chris@76:
'; Chris@76: Chris@76: echo $txt['package_installed_warning3'], ' Chris@76:
'; Chris@76: Chris@76: // Do errors exist in the install? If so light them up like a christmas tree. Chris@76: if ($context['has_failure']) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76: ', $txt['package_will_fail_title'], '
Chris@76: ', $txt['package_will_fail_warning'], ' Chris@76:
'; Chris@76: } Chris@76: Chris@76: if (isset($context['package_readme'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:

', $txt['package_' . ($context['uninstalling'] ? 'un' : '') . 'install_readme'], '

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76: ', $context['package_readme'], ' Chris@76: ', $txt['package_available_readme_language'], ' Chris@76: Chris@76: Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $context['uninstalling'] ? $txt['package_uninstall_actions'] : $txt['package_install_actions'], ' "', $context['package_name'], '" Chris@76:

Chris@76:
'; Chris@76: Chris@76: // Are there data changes to be removed? Chris@76: if ($context['uninstalling'] && !empty($context['database_changes'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76: [', $txt['package_db_uninstall_details'], '] Chris@76:
Chris@76: ', $txt['package_db_uninstall_actions'], ': Chris@76:
    '; Chris@76: Chris@76: foreach ($context['database_changes'] as $change) Chris@76: echo ' Chris@76:
  • ', $change, '
  • '; Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: if (empty($context['actions']) && empty($context['database_changes'])) Chris@76: echo ' Chris@76: ', $txt['corrupt_compatible'], ' Chris@76:
'; Chris@76: else Chris@76: { Chris@76: echo ' Chris@76: ', $txt['perform_actions'], ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: $alternate = true; Chris@76: $i = 1; Chris@76: $action_num = 1; Chris@76: $js_operations = array(); Chris@76: foreach ($context['actions'] as $packageaction) Chris@76: { Chris@76: // Did we pass or fail? Need to now for later on. Chris@76: $js_operations[$action_num] = isset($packageaction['failed']) ? $packageaction['failed'] : 0; Chris@76: Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // Is there water on the knee? Operation! Chris@76: if (isset($packageaction['operations'])) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // Increase it. Chris@76: $action_num++; Chris@76: } Chris@76: $alternate = !$alternate; Chris@76: } Chris@76: echo ' Chris@76: Chris@76:
', $txt['package_install_type'], '', $txt['package_install_action'], '', $txt['package_install_desc'], '
', isset($packageaction['operations']) ? '' : '', '', $i++, '.', $packageaction['type'], '', $packageaction['action'], '', $packageaction['description'], '
Chris@76: '; Chris@76: Chris@76: // Show the operations. Chris@76: $alternate2 = true; Chris@76: $operation_num = 1; Chris@76: foreach ($packageaction['operations'] as $operation) Chris@76: { Chris@76: // Determine the position text. Chris@76: $operation_text = $operation['position'] == 'replace' ? 'operation_replace' : ($operation['position'] == 'before' ? 'operation_after' : 'operation_before'); Chris@76: Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: $operation_num++; Chris@76: $alternate2 = !$alternate2; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
', $operation_num, '.', $txt[$operation_text], '', $operation['action'], '', $operation['description'], !empty($operation['ignore_failure']) ? ' (' . $txt['operation_ignore'] . ')' : '', '
Chris@76:
Chris@76: '; Chris@76: Chris@76: // What if we have custom themes we can install into? List them too! Chris@76: if (!empty($context['theme_actions'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $context['uninstalling'] ? $txt['package_other_themes_uninstall'] : $txt['package_other_themes'], ' Chris@76:

Chris@76:
Chris@76:
Chris@76:
Chris@76: ', $txt['package_other_themes_desc'], ' Chris@76:
Chris@76: '; Chris@76: Chris@76: // Loop through each theme and display it's name, and then it's details. Chris@76: foreach ($context['theme_actions'] as $id => $theme) Chris@76: { Chris@76: // Pass? Chris@76: $js_operations[$action_num] = !empty($theme['has_failure']); Chris@76: Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: foreach ($theme['actions'] as $action) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // Is there water on the knee? Operation! Chris@76: if (isset($action['operations'])) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // Increase it. Chris@76: $action_num++; Chris@76: } Chris@76: } Chris@76: Chris@76: $alternate = !$alternate; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: if (!empty($context['themes_locked'])) Chris@76: echo ' Chris@76: '; Chris@76: echo ' Chris@76: Chris@76: Chris@76: ', $theme['name'], ' Chris@76:
', isset($packageaction['operations']) ? '' : '', ' Chris@76: Chris@76: ', $action['type'], '', $action['action'], '', $action['description'], '
Chris@76: '; Chris@76: Chris@76: $alternate2 = true; Chris@76: $operation_num = 1; Chris@76: foreach ($action['operations'] as $operation) Chris@76: { Chris@76: // Determine the possition text. Chris@76: $operation_text = $operation['position'] == 'replace' ? 'operation_replace' : ($operation['position'] == 'before' ? 'operation_after' : 'operation_before'); Chris@76: Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: $operation_num++; Chris@76: $alternate2 = !$alternate2; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
', $operation_num, '.', $txt[$operation_text], '', $operation['action'], '', $operation['description'], !empty($operation['ignore_failure']) ? ' (' . $txt['operation_ignore'] . ')' : '', '
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: } Chris@76: Chris@76: // Are we effectively ready to install? Chris@76: if (!$context['ftp_needed'] && (!empty($context['actions']) || !empty($context['database_changes']))) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
'; Chris@76: } Chris@76: // If we need ftp information then demand it! Chris@76: elseif ($context['ftp_needed']) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:

', $txt['package_ftp_necessary'], '

Chris@76:
Chris@76:
Chris@76: ', template_control_chmod(), ' Chris@76:
'; Chris@76: } Chris@76: echo ' Chris@76: Chris@76: ', (isset($context['form_sequence_number']) && !$context['ftp_needed']) ? ' Chris@76: ' : '', ' Chris@76:
Chris@76: Chris@76:
'; Chris@76: Chris@76: // Toggle options. Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: // And a bit more for database changes. Chris@76: if (!empty($context['database_changes'])) Chris@76: echo ' Chris@76: '; Chris@76: } Chris@76: function template_extract_package() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl; Chris@76: Chris@76: if (!empty($context['redirect_url'])) Chris@76: { Chris@76: echo ' Chris@76: '; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: if (empty($context['redirect_url'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:

', $context['uninstalling'] ? $txt['uninstall'] : $txt['extracting'], '

Chris@76:
Chris@76:
', $txt['package_installed_extract'], '
'; Chris@76: } Chris@76: else Chris@76: echo ' Chris@76:
Chris@76:

', $txt['package_installed_redirecting'], '

Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
'; Chris@76: Chris@76: // If we are going to redirect we have a slightly different agenda. Chris@76: if (!empty($context['redirect_url'])) Chris@76: { Chris@76: echo ' Chris@76: ', $context['redirect_text'], '

Chris@76: ', $txt['package_installed_redirect_go_now'], ' | ', $txt['package_installed_redirect_cancel'], ''; Chris@76: } Chris@76: elseif ($context['uninstalling']) Chris@76: echo ' Chris@76: ', $txt['package_uninstall_done']; Chris@76: elseif ($context['install_finished']) Chris@76: { Chris@76: if ($context['extract_type'] == 'avatar') Chris@76: echo ' Chris@76: ', $txt['avatars_extracted']; Chris@76: elseif ($context['extract_type'] == 'language') Chris@76: echo ' Chris@76: ', $txt['language_extracted']; Chris@76: else Chris@76: echo ' Chris@76: ', $txt['package_installed_done']; Chris@76: } Chris@76: else Chris@76: echo ' Chris@76: ', $txt['corrupt_compatible']; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
'; Chris@76: Chris@76: // Show the "restore permissions" screen? Chris@76: if (function_exists('template_show_list') && !empty($context['restore_file_permissions']['rows'])) Chris@76: { Chris@76: echo '
'; Chris@76: template_show_list('restore_file_permissions'); Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_list() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

', $txt['list_file'], '

Chris@76:
Chris@76:
Chris@76:

', $txt['files_archive'], ' ', $context['filename'], ':

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
    '; Chris@76: Chris@76: foreach ($context['files'] as $fileinfo) Chris@76: echo ' Chris@76:
  1. ', $fileinfo['filename'], ' (', $fileinfo['size'], ' ', $txt['package_bytes'], ')
  2. '; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76: [ ', $txt['back'], ' ] Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_examine() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

', $txt['package_examine_file'], '

Chris@76:
Chris@76:
Chris@76:

', $txt['package_file_contents'], ' ', $context['filename'], ':

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
', $context['filedata'], '
Chris@76: [ ', $txt['list_files'], ' ] Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_view_installed() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

' . $txt['view_and_remove'] . '

Chris@76:
'; Chris@76: Chris@76: if (empty($context['installed_mods'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76: ', $txt['no_mods_installed'], ' Chris@76:
'; Chris@76: } Chris@76: else Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: $alt = false; Chris@76: foreach ($context['installed_mods'] as $i => $file) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: $alt = !$alt; Chris@76: } Chris@76: Chris@76: echo ' Chris@76: Chris@76:
', $txt['mod_name'], '', $txt['mod_version'], '
', ++$i, '.', $file['name'], '', $file['version'], '[ ', $txt['uninstall'], ' ]
Chris@76:
Chris@76: [ ', $txt['delete_list'], ' ]'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_browse() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl, $modSettings, $forum_version; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $txt['help'], ' ', $txt['packages_latest'], ' Chris@76:

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
', $txt['packages_latest_fetch'], '
Chris@76:
Chris@76: Chris@76:
Chris@76: Chris@76: '; Chris@76: Chris@76: if (empty($modSettings['disable_smf_js'])) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

', $txt['browse_packages'], '

Chris@76:
'; Chris@76: Chris@76: if (!empty($context['available_mods'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

', $txt['modification_package'], '

Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: $alt = false; Chris@76: foreach ($context['available_mods'] as $i => $package) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: $alt = !$alt; Chris@76: } Chris@76: Chris@76: echo ' Chris@76: Chris@76:
', $txt['mod_name'], '', $txt['mod_version'], '
', ++$i, '.', $package['name'], ' Chris@76: ', $package['version']; Chris@76: Chris@76: if ($package['is_installed'] && !$package['is_newer']) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: if ($package['can_uninstall']) Chris@76: echo ' Chris@76: [ ', $txt['uninstall'], ' ]'; Chris@76: elseif ($package['can_upgrade']) Chris@76: echo ' Chris@76: [ ', $txt['package_upgrade'], ' ]'; Chris@76: elseif ($package['can_install']) Chris@76: echo ' Chris@76: [ ', $txt['install_mod'], ' ]'; Chris@76: Chris@76: echo ' Chris@76: [ ', $txt['list_files'], ' ] Chris@76: [ ', $txt['package_delete'], ' ] Chris@76:
'; Chris@76: } Chris@76: Chris@76: if (!empty($context['available_avatars'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

', $txt['avatar_package'], '

Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: foreach ($context['available_avatars'] as $i => $package) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: } Chris@76: Chris@76: echo ' Chris@76: Chris@76:
', $txt['mod_name'], '', $txt['mod_version'], '
', ++$i, '.', $package['name'], '', $package['version']; Chris@76: Chris@76: if ($package['is_installed'] && !$package['is_newer']) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: if ($package['can_uninstall']) Chris@76: echo ' Chris@76: [ ', $txt['uninstall'], ' ]'; Chris@76: elseif ($package['can_upgrade']) Chris@76: echo ' Chris@76: [ ', $txt['package_upgrade'], ' ]'; Chris@76: elseif ($package['can_install']) Chris@76: echo ' Chris@76: [ ', $txt['install_mod'], ' ]'; Chris@76: Chris@76: echo ' Chris@76: [ ', $txt['list_files'], ' ] Chris@76: [ ', $txt['package_delete'], ' ] Chris@76:
'; Chris@76: } Chris@76: Chris@76: if (!empty($context['available_languages'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

' . $txt['language_package'] . '

Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: foreach ($context['available_languages'] as $i => $package) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: } Chris@76: Chris@76: echo ' Chris@76: Chris@76:
', $txt['mod_name'], '', $txt['mod_version'], '
' . ++$i . '.' . $package['name'] . '' . $package['version']; Chris@76: Chris@76: if ($package['is_installed'] && !$package['is_newer']) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: if ($package['can_uninstall']) Chris@76: echo ' Chris@76: [ ', $txt['uninstall'], ' ]'; Chris@76: elseif ($package['can_upgrade']) Chris@76: echo ' Chris@76: [ ', $txt['package_upgrade'], ' ]'; Chris@76: elseif ($package['can_install']) Chris@76: echo ' Chris@76: [ ', $txt['install_mod'], ' ]'; Chris@76: Chris@76: echo ' Chris@76: [ ', $txt['list_files'], ' ] Chris@76: [ ', $txt['package_delete'], ' ] Chris@76:
'; Chris@76: } Chris@76: Chris@76: if (!empty($context['available_other'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

' . $txt['unknown_package'] . '

Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: foreach ($context['available_other'] as $i => $package) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: } Chris@76: Chris@76: echo ' Chris@76: Chris@76:
', $txt['mod_name'], '', $txt['mod_version'], '
' . ++$i . '.' . $package['name'] . '' . $package['version']; Chris@76: Chris@76: if ($package['is_installed'] && !$package['is_newer']) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: if ($package['can_uninstall']) Chris@76: echo ' Chris@76: [ ', $txt['uninstall'], ' ]'; Chris@76: elseif ($package['can_upgrade']) Chris@76: echo ' Chris@76: [ ', $txt['package_upgrade'], ' ]'; Chris@76: elseif ($package['can_install']) Chris@76: echo ' Chris@76: [ ', $txt['install_mod'], ' ]'; Chris@76: Chris@76: echo ' Chris@76: [ ', $txt['list_files'], ' ] Chris@76: [ ', $txt['package_delete'], ' ] Chris@76:
'; Chris@76: } Chris@76: Chris@76: if (empty($context['available_mods']) && empty($context['available_avatars']) && empty($context['available_languages']) && empty($context['available_other'])) Chris@76: echo ' Chris@76:
', $txt['no_packages'], '
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76: ', $txt['package_installed_key'], ' Chris@76: ', $txt['package_installed_current'], ' Chris@76: ', $txt['package_installed_old'], ' Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_servers() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl; Chris@76: Chris@76: if (!empty($context['package_ftp']['error'])) Chris@76: echo ' Chris@76:
Chris@76: ', $context['package_ftp']['error'], ' Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

', $txt['download_new_package'], '

Chris@76:
'; Chris@76: Chris@76: if ($context['package_download_broken']) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:

', $txt['package_ftp_necessary'], '

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:

Chris@76: ', $txt['package_ftp_why_download'], ' Chris@76:

Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: ' . $txt['package_servers'] . ' Chris@76: Chris@76:
Chris@76:
Chris@76: ' . $txt['add_server'] . ' Chris@76:
Chris@76:
Chris@76:
Chris@76: ' . $txt['server_name'] . ': Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: ' . $txt['serverurl'] . ': Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76: ', $txt['package_download_by_url'], ' Chris@76:
Chris@76:
Chris@76:
Chris@76: ' . $txt['serverurl'] . ': Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: ', $txt['package_download_filename'], ': Chris@76:
Chris@76:
Chris@76:
Chris@76: ', $txt['package_download_filename_info'], ' Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:

' . $txt['package_upload_title'] . '

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76: ' . $txt['package_upload_select'] . ': Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_package_confirm() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

', $context['page_title'], '

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:

', $context['confirm_message'], '

Chris@76: [ ', $txt['package_confirm_proceed'], ' ] [ ', $txt['package_confirm_go_back'], ' ] Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_package_list() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl, $smcFunc; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

' . $context['page_title'] . '

Chris@76:
Chris@76:
Chris@76: Chris@76:
'; Chris@76: Chris@76: // No packages, as yet. Chris@76: if (empty($context['package_list'])) Chris@76: echo ' Chris@76:
    Chris@76:
  • ', $txt['no_packages'], '
  • Chris@76:
'; Chris@76: // List out the packages... Chris@76: else Chris@76: { Chris@76: echo ' Chris@76:
    '; Chris@76: foreach ($context['package_list'] as $i => $packageSection) Chris@76: { Chris@76: echo ' Chris@76:
  • Chris@76: ', $packageSection['title'], ''; Chris@76: Chris@76: if (!empty($packageSection['text'])) Chris@76: echo ' Chris@76:
    ', $packageSection['text'], '
    '; Chris@76: Chris@76: echo ' Chris@76: <', $context['list_type'], ' id="package_section_', $i, '" class="packages">'; Chris@76: Chris@76: $alt = false; Chris@76: Chris@76: foreach ($packageSection['items'] as $id => $package) Chris@76: { Chris@76: echo ' Chris@76:
  • '; Chris@76: // Textual message. Could be empty just for a blank line... Chris@76: if ($package['is_text']) Chris@76: echo ' Chris@76: ', empty($package['name']) ? ' ' : $package['name']; Chris@76: // This is supposed to be a rule.. Chris@76: elseif ($package['is_line']) Chris@76: echo ' Chris@76:
    '; Chris@76: // A remote link. Chris@76: elseif ($package['is_remote']) Chris@76: { Chris@76: echo ' Chris@76: ', $package['link'], ''; Chris@76: } Chris@76: // A title? Chris@76: elseif ($package['is_heading'] || $package['is_title']) Chris@76: { Chris@76: echo ' Chris@76: ', $package['name'], ''; Chris@76: } Chris@76: // Otherwise, it's a package. Chris@76: else Chris@76: { Chris@76: // 1. Some mod [ Download ]. Chris@76: echo ' Chris@76: ', $package['can_install'] ? '' . $package['name'] . ' [ ' . $txt['download'] . ' ]': $package['name']; Chris@76: Chris@76: // Mark as installed and current? Chris@76: if ($package['is_installed'] && !$package['is_newer']) Chris@76: echo '', $package['is_current'] ? $txt['package_installed_current'] : $txt['package_installed_old'], ''; Chris@76: Chris@76: echo ' Chris@76: Chris@76:
      '; Chris@76: Chris@76: // Show the mod type? Chris@76: if ($package['type'] != '') Chris@76: echo ' Chris@76:
    • ', $txt['package_type'], ':  ', $smcFunc['ucwords']($smcFunc['strtolower']($package['type'])), '
    • '; Chris@76: // Show the version number? Chris@76: if ($package['version'] != '') Chris@76: echo ' Chris@76:
    • ', $txt['mod_version'], ':  ', $package['version'], '
    • '; Chris@76: // How 'bout the author? Chris@76: if (!empty($package['author']) && $package['author']['name'] != '' && isset($package['author']['link'])) Chris@76: echo ' Chris@76:
    • ', $txt['mod_author'], ':  ', $package['author']['link'], '
    • '; Chris@76: // The homepage.... Chris@76: if ($package['author']['website']['link'] != '') Chris@76: echo ' Chris@76:
    • ', $txt['author_website'], ':  ', $package['author']['website']['link'], '
    • '; Chris@76: Chris@76: // Desciption: bleh bleh! Chris@76: // Location of file: http://someplace/. Chris@76: echo ' Chris@76:
    • ', $txt['file_location'], ':  ', $package['href'], '
    • Chris@76:
    • ', $txt['package_description'], ':  ', $package['description'], '
    • Chris@76:
    '; Chris@76: } Chris@76: $alt = !$alt; Chris@76: echo ' Chris@76:
  • '; Chris@76: } Chris@76: echo ' Chris@76: Chris@76: '; Chris@76: } Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: ', $txt['package_installed_key'], ' Chris@76: ', $txt['package_installed_current'], ' Chris@76: ', $txt['package_installed_old'], ' Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76: '; Chris@76: // Now go through and turn off all the sections. Chris@76: if (!empty($context['package_list'])) Chris@76: { Chris@76: $section_count = count($context['package_list']); Chris@76: echo ' Chris@76: '; Chris@76: } Chris@76: } Chris@76: Chris@76: function template_downloaded() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

', $context['page_title'], '

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:

', (empty($context['package_server']) ? $txt['package_uploaded_successfully'] : $txt['package_downloaded_successfully']), '

Chris@76:
    Chris@76:
  • ', $context['package']['name'], ' Chris@76: ', $context['package']['list_files']['link'], ' Chris@76: ', $context['package']['install']['link'], ' Chris@76:
  • Chris@76:
Chris@76:

Chris@76:

[ ', $txt['back'], ' ]

Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_install_options() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

', $txt['package_install_options'], '

Chris@76:
Chris@76:
Chris@76: ', $txt['package_install_options_ftp_why'], ' Chris@76:
Chris@76: Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:

Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_control_chmod() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl; Chris@76: Chris@76: // Nothing to do? Brilliant! Chris@76: if (empty($context['package_ftp'])) Chris@76: return false; Chris@76: Chris@76: if (empty($context['package_ftp']['form_elements_only'])) Chris@76: { Chris@76: echo ' Chris@76: ', sprintf($txt['package_ftp_why'], 'document.getElementById(\'need_writable_list\').style.display = \'\'; return false;'), '
Chris@76:
Chris@76: ', $txt['package_ftp_why_file_list'], ' Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
Chris@76: ', !empty($context['package_ftp']['error']) ? $context['package_ftp']['error'] : '', ' Chris@76:
'; Chris@76: Chris@76: if (!empty($context['package_ftp']['destination'])) Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
'; Chris@76: Chris@76: if (empty($context['package_ftp']['form_elements_only'])) Chris@76: echo ' Chris@76: Chris@76:
Chris@76: Chris@76: Chris@76:
'; Chris@76: Chris@76: if (!empty($context['package_ftp']['destination'])) Chris@76: echo ' Chris@76: Chris@76:
'; Chris@76: Chris@76: // Hide the details of the list. Chris@76: if (empty($context['package_ftp']['form_elements_only'])) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: // Quick generate the test button. Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: // Make sure the button gets generated last. Chris@76: $context['insert_after_template'] .= ' Chris@76: '; Chris@76: } Chris@76: Chris@76: function template_ftp_required() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76: ', $txt['package_ftp_necessary'], ' Chris@76: Chris@76:
Chris@76: ', template_control_chmod(), ' Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_view_operations() Chris@76: { Chris@76: global $context, $txt, $settings; Chris@76: Chris@76: echo ' Chris@76: Chris@76: Chris@76: ', $txt['operation_title'], ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76: ', $context['operations']['search'], ' Chris@76:
Chris@76:
Chris@76: ', $context['operations']['replace'], ' Chris@76:
Chris@76:
Chris@76: Chris@76: '; Chris@76: } Chris@76: Chris@76: function template_file_permissions() Chris@76: { Chris@76: global $txt, $scripturl, $context, $settings; Chris@76: Chris@76: // This will handle expanding the selection. Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76: ', $txt['package_file_perms_warning'], ': Chris@76:
Chris@76:
    Chris@76: ', $txt['package_file_perms_warning_desc'], ' Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $txt['package_file_perms'], '', $txt['package_file_perms_new_status'], ' Chris@76:

Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: foreach ($context['file_tree'] as $name => $dir) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: if (!empty($dir['contents'])) Chris@76: template_permission_show_contents($name, $dir['contents'], 1); Chris@76: } Chris@76: Chris@76: echo ' Chris@76: Chris@76:
 ', $txt['package_file_perms_name'], ' ', $txt['package_file_perms_status'], '', $txt['package_file_perms_status_read'], '', $txt['package_file_perms_status_write'], '', $txt['package_file_perms_status_execute'], '', $txt['package_file_perms_status_custom'], '', $txt['package_file_perms_status_no_change'], '
'; Chris@76: Chris@76: if (!empty($dir['type']) && ($dir['type'] == 'dir' || $dir['type'] == 'dir_recursive')) Chris@76: echo ' Chris@76: *'; Chris@76: Chris@76: echo ' Chris@76: ', $name, ' Chris@76: Chris@76: ', ($dir['perms']['chmod'] ? $txt['package_file_perms_writable'] : $txt['package_file_perms_not_writable']), ' Chris@76: ', ($dir['perms']['perms'] ? ' (' . $txt['package_file_perms_chmod'] . ': ' . substr(sprintf('%o', $dir['perms']['perms']), -4) . ')' : ''), ' Chris@76:
Chris@76:
Chris@76:
Chris@76:

', $txt['package_file_perms_change'], '

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76: ', $txt['package_file_perms_custom'], ':  (?) Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76: ', $txt['package_file_perms_predefined_note'], ' Chris@76:
Chris@76:
Chris@76:
'; Chris@76: Chris@76: // Likely to need FTP? Chris@76: if (empty($context['ftp_connected'])) Chris@76: echo ' Chris@76:

Chris@76: ', $txt['package_file_perms_ftp_details'], ': Chris@76:

Chris@76: ', template_control_chmod(), ' Chris@76:
', $txt['package_file_perms_ftp_retain'], '
'; Chris@76: Chris@76: echo ' Chris@76: Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
'; Chris@76: Chris@76: // Any looks fors we've already done? Chris@76: foreach ($context['look_for'] as $path) Chris@76: echo ' Chris@76: '; Chris@76: echo ' Chris@76:

'; Chris@76: } Chris@76: Chris@76: function template_permission_show_contents($ident, $contents, $level, $has_more = false) Chris@76: { Chris@76: global $settings, $txt, $scripturl, $context; Chris@76: $js_ident = preg_replace('~[^A-Za-z0-9_\-=:]~', ':-:', $ident); Chris@76: // Have we actually done something? Chris@76: $drawn_div = false; Chris@76: Chris@76: foreach ($contents as $name => $dir) Chris@76: { Chris@76: if (isset($dir['perms'])) Chris@76: { Chris@76: if (!$drawn_div) Chris@76: { Chris@76: $drawn_div = true; Chris@76: echo ' Chris@76: Chris@76: '; Chris@76: } Chris@76: Chris@76: $cur_ident = preg_replace('~[^A-Za-z0-9_\-=:]~', ':-:', $ident . '/' . $name); Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: if (!empty($dir['contents'])) Chris@76: { Chris@76: template_permission_show_contents($ident . '/' . $name, $dir['contents'], $level + 1, !empty($dir['more_files'])); Chris@76: Chris@76: } Chris@76: } Chris@76: } Chris@76: Chris@76: // We have more files to show? Chris@76: if ($has_more) Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: if ($drawn_div) Chris@76: { Chris@76: // Hide anything too far down the tree. Chris@76: $isFound = false; Chris@76: foreach ($context['look_for'] as $tree) Chris@76: { Chris@76: if (substr($tree, 0, strlen($ident)) == $ident) Chris@76: $isFound = true; Chris@76: } Chris@76: Chris@76: if ($level > 1 && !$isFound) Chris@76: echo ' Chris@76:
' . str_repeat(' ', $level * 5), ' Chris@76: ', (!empty($dir['type']) && $dir['type'] == 'dir_recursive') || !empty($dir['list_contents']) ? '' : ''; Chris@76: Chris@76: if (!empty($dir['type']) && ($dir['type'] == 'dir' || $dir['type'] == 'dir_recursive')) Chris@76: echo ' Chris@76: *'; Chris@76: Chris@76: echo ' Chris@76: ', $name, ' Chris@76: ', (!empty($dir['type']) && $dir['type'] == 'dir_recursive') || !empty($dir['list_contents']) ? '' : '', ' Chris@76: Chris@76: ', ($dir['perms']['chmod'] ? $txt['package_file_perms_writable'] : $txt['package_file_perms_not_writable']), ' Chris@76: ', ($dir['perms']['perms'] ? ' (' . $txt['package_file_perms_chmod'] . ': ' . substr(sprintf('%o', $dir['perms']['perms']), -4) . ')' : ''), ' Chris@76:
' . str_repeat(' ', $level * 5), ' Chris@76: « ', $txt['package_file_perms_more_files'], ' » Chris@76:
Chris@76: Chris@76: '; Chris@76: } Chris@76: } Chris@76: Chris@76: function template_action_permissions() Chris@76: { Chris@76: global $txt, $scripturl, $context, $settings; Chris@76: Chris@76: $countDown = 3; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:
Chris@76:

', $txt['package_file_perms_applying'], '

Chris@76:
'; Chris@76: Chris@76: if (!empty($context['skip_ftp'])) Chris@76: echo ' Chris@76:
Chris@76: ', $txt['package_file_perms_skipping_ftp'], ' Chris@76:
'; Chris@76: Chris@76: // How many have we done? Chris@76: $remaining_items = count($context['method'] == 'individual' ? $context['to_process'] : $context['directory_list']); Chris@76: $progress_message = sprintf($context['method'] == 'individual' ? $txt['package_file_perms_items_done'] : $txt['package_file_perms_dirs_done'], $context['total_items'] - $remaining_items, $context['total_items']); Chris@76: $progress_percent = round(($context['total_items'] - $remaining_items) / $context['total_items'] * 100, 1); Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: ', $progress_message, ' Chris@76:
Chris@76:
', $progress_percent, '%
Chris@76:
 
Chris@76:
Chris@76:
'; Chris@76: Chris@76: // Second progress bar for a specific directory? Chris@76: if ($context['method'] != 'individual' && !empty($context['total_files'])) Chris@76: { Chris@76: $file_progress_message = sprintf($txt['package_file_perms_files_done'], $context['file_offset'], $context['total_files']); Chris@76: $file_progress_percent = round($context['file_offset'] / $context['total_files'] * 100, 1); Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76: ', $file_progress_message, ' Chris@76:
Chris@76:
', $file_progress_percent, '%
Chris@76:
 
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: // Put out the right hidden data. Chris@76: if ($context['method'] == 'individual') Chris@76: echo ' Chris@76: Chris@76: Chris@76: '; Chris@76: else Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // Are we not using FTP for whatever reason. Chris@76: if (!empty($context['skip_ftp'])) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: // Retain state. Chris@76: foreach ($context['back_look_data'] as $path) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76: Chris@76: Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: // Just the countdown stuff Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: } Chris@76: Chris@76: ?>