| Current Path : /home/wuectly/www/03cbe/ |
| Current File : /home/wuectly/www/03cbe/ControlPanel.tar |
backup8_uninstall.blade.php 0000604 00000002214 15245624447 0011761 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
$eid = \Akeeba\Backup\Admin\Helper\Upgrade::getAkeebaBackup8ExtensionId();
$url = sprintf('index.php?option=com_installer&view=manage&filter[search]=id%%3A%d&filter[status]=&filter[client_id]=&filter[type]=&filter[folder]=&filter[core]=', $eid)
?>
<h1>🚨 Please complete your migration to Akeeba Backup 9 🚨</h1>
<p style="font-size: 1.5rem; margin: 1rem 0 0">
Please click on Components, Akeeba Backup for Joomla!™, Control Panel to open <a href="index.php?option=com_akeebabackup">Akeeba Backup 9</a>'s interface.
</p>
<p style="font-size: 1.5rem; margin: 1rem 0 0">
Follow the instructions shown in Akeeba Backup 9 to migrate your settings and backups from Akeeba Backup 8 to Akeeba Backup 9.
</p>
<p style="font-size: 1.5rem; margin: 1rem 0 0">
After you are done migrating please <a href="<?= $url ?>">uninstall Akeeba Backup 8</a>.
</p>
profile.blade.php 0000604 00000003250 15245624447 0007774 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
/**
* Call this template with:
* [
* 'returnURL' => 'index.php?......'
* ]
* to set up a custom return URL
*/
?>
@jhtml('formbehavior.chosen')
<div class="akeeba-panel">
<form action="index.php" method="post" name="switchActiveProfileForm" id="switchActiveProfileForm" class="akeeba-form--inline">
<input type="hidden" name="option" value="com_akeeba" />
<input type="hidden" name="view" value="ControlPanel" />
<input type="hidden" name="task" value="SwitchProfile" />
@if(isset($returnURL))
<input type="hidden" name="returnurl" value="{{ $returnURL }}" />
@endif
<input type="hidden" name="@token(true)" value="1" />
<div class="akeeba-form-group">
<label>
@lang('COM_AKEEBA_CPANEL_PROFILE_TITLE'): #{{ $this->profileId }}
</label>
{{-- Joomla 3.x: Chosen does not work with attached event handlers, only with inline event scripts (e.g. onchange) --}}
@jhtml('select.genericlist', $this->profileList, 'profileid', ['list.select' => $this->profileId, 'id' => 'comAkeebaControlPanelProfileSwitch', 'list.attr' => ['class' => 'advancedSelect', 'onchange' => 'document.forms.switchActiveProfileForm.submit();']])
</div>
<div class="akeeba-form-group--actions">
<button class="akeeba-btn akeeba-hidden-phone" type="submit">
<span class="akion-forward"></span>
@lang('COM_AKEEBA_CPANEL_PROFILE_BUTTON')
</button>
</div>
</form>
</div>
default.xml 0000604 00000000557 15245624447 0006732 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<!--~
~ @package akeebabackup
~ @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
~ @license GNU General Public License version 3, or later
-->
<metadata>
<layout title="COM_AKEEBA_VIEW_CPANEL_TITLE">
<message>
<![CDATA[COM_AKEEBA_VIEW_CPANEL_DESC]]>
</message>
</layout>
</metadata>
backup9_install.blade.php 0000604 00000012017 15245624447 0011421 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
if (version_compare(JVERSION, '4.1.0', 'ge'))
{
$css = <<< CSS
#akeebaBackup8Wrapper {
display: none;
}
CSS;
$js = <<< JS
function akeebaBackup8RegisterWrapperReveal(e) {
var elDiv = document.getElementById('akeebaBackup8Wrapper');
var elUpgradeWrapper = document.getElementById('akeebaBackup8UpgradeWrapper');
var elToggleWrapper = document.getElementById('akeebaBackup8WrapperToggleWrapper');
var elUnsafeWrapper = document.getElementById('akeebaBackup8UnsafeWrapper');
if (elDiv) {
elDiv.style.display = 'block';
}
if (elUnsafeWrapper) {
elUnsafeWrapper.style.display = 'block';
}
if (elUpgradeWrapper) {
elUpgradeWrapper.style.display = 'none';
}
if (elToggleWrapper) {
elToggleWrapper.style.display = 'none';
}
}
document.addEventListener("DOMContentLoaded", function () {
var elLink = document.getElementById('akeebaBackup8WrapperToggle');
if (!elLink) return;
elLink.addEventListener('click', akeebaBackup8RegisterWrapperReveal);
}, false);
var akeebaBackup8RegisterWrapperRevealTimer = setInterval(function () {
if(document.readyState !== "complete") return;
clearInterval(akeebaBackup8RegisterWrapperRevealTimer);
}, 300);
JS;
$this->addCssInline($css);
$this->addJavascriptInline($js);
}
?>
<div class="akeeba-block--warning--large" id="akeebaBackup8UpgradeWrapper">
<h1>🚨 🚨 🚨 Please upgrade to Akeeeba Backup 9 🚨 🚨 🚨</h1>
@if (version_compare(JVERSION, '4.1.0', 'ge'))
<p style="font-size: 1.5rem; margin: 1rem 0 0">
You are currently using Akeeba Backup 8. This version is only meant to allow you to upgrade from Joomla 3 to Joomla 4 without losing your backup archives and settings. <strong>It is not supported for taking on restoring backups with Joomla {{ JVERSION }}</strong>.
</p>
@else
<p style="font-size: 1.5rem; margin: 1rem 0 0">
You are currently using Akeeba Backup 8. This version was only made minimally compatible with Joomla 4 to allow you to upgrade from Joomla 3 to Joomla 4 without losing your backup archives and settings. We will not provide support for Akeeba Backup 8 running on Joomla 4.0 and later.
</p>
@endif
<p style="font-size: 1.5rem; margin: 1rem 0 0">
You need to <a href="https://www.akeeba.com/download.html" target="_blank">download</a> and install Akeeba Backup 9, our Joomla 4 native version of Akeeba Backup. It is fully supported for use on Joomla 4.
</p>
<p style="font-size: 1.5rem; margin: 1rem 0 0">
After installing Akeeba Backup 9 please click on Components, Akeeba Backup <small>for Joomla!™</small>, Control Panel from Joomla's sidebar and follow the instructions on your screen to migrate your settings and your backups from Akeeba Backup 8.
</p>
<p>
<a href="https://www.akeeba.com/download.html" class="akeeba-btn--green--big--block" style="font-size: 1.5rem; margin: 2rem 0">
<span class="akion akion-ios-download" aria-hidden="true"></span>
Download Akeeba Backup 9 now
</a>
</p>
</div>
@if (version_compare(JVERSION, '4.1.0', 'ge'))
<p class="small" id="akeebaBackup8WrapperToggleWrapper">
<a href="#" id="akeebaBackup8WrapperToggle">
I would like to use Akeeba Backup 8 <em>at my own risk</em>
</a>
<br/>
<span style="font-size: smaller">
By clicking this link you agree that you are doing something we explicitly told you NOT to do, you are fully responsible for your actions and their consequences, the interface or functionality might be broken, you might lose data or damage your site, and that you are not eligible for any support whatsoever.
</span>
</p>
<div class="akeeba-block--failure--large" id="akeebaBackup8UnsafeWrapper" style="display: none">
<h3>You are using Akeeba Backup in an UNSUPPORTED environment AT YOUR OWN RISK</h3>
<p>
Akeeba Backup 8 is NOT supported for use on Joomla! <?= JVERSION ?>.
</p>
<p>
You have chosen to use it anyway, AT YOUR OWN RISK. By doing this you understand that:
</p>
<ul>
<li>you are doing something we explicitly told you <u>NOT</u> to do.</li>
<li>you are fully responsible for your actions <strong>and</strong> their consequences.</li>
<li>the interface or the functionality of the component may be not work fully, correctly or at all.</li>
<li>you might lose data or otherwise damage your site.</li>
<li>you are not eligible for <em>ANY SUPPORT WHATSOEVER</em>.</li>
</ul>
<p>
We <strong>VERY STRONGLY</strong> advise you to upgrade to the latest version of Akeeba Backup 9 or later.
</p>
<p>
Consider yourself warned.
</p>
</div>
@endif
icons_basic.blade.php 0000604 00000003451 15245624447 0010613 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
?>
<section class="akeeba-panel--info">
<header class="akeeba-block-header">
<h3>@lang('COM_AKEEBA_CPANEL_HEADER_BASICOPS')</h3>
</header>
<div class="akeeba-grid">
@if($this->permissions['backup'])
<a class="akeeba-action--green"
href="index.php?option=com_akeeba&view=Backup">
<span class="akion-play"></span>
@lang('COM_AKEEBA_BACKUP')
</a>
@endif
@if($this->permissions['download'] && AKEEBA_PRO)
<a class="akeeba-action--green"
href="index.php?option=com_akeeba&view=Transfer">
<span class="akion-android-open"></span>
@lang('COM_AKEEBA_TRANSFER')
</a>
@endif
<a class="akeeba-action--teal"
href="index.php?option=com_akeeba&view=Manage">
<span class="akion-ios-list"></span>
@lang('COM_AKEEBA_BUADMIN')
</a>
@if($this->permissions['configure'])
<a class="akeeba-action--teal"
href="index.php?option=com_akeeba&view=Configuration">
<span class="akion-ios-gear"></span>
@lang('COM_AKEEBA_CONFIG')
</a>
@endif
@if($this->permissions['configure'])
<a class="akeeba-action--teal"
href="index.php?option=com_akeeba&view=Profiles">
<span class="akion-person-stalker"></span>
@lang('COM_AKEEBA_PROFILES')
</a>
@endif
</div>
</section>
sidebar_status.blade.php 0000604 00000004475 15245624447 0011362 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
?>
<div class="akeeba-panel">
<header class="akeeba-block-header">
<h3>@lang('COM_AKEEBA_CPANEL_LABEL_STATUSSUMMARY')</h3>
</header>
<div>
{{-- Backup status summary --}}
{{ $this->statusCell }}
{{-- Warnings --}}
@if($this->countWarnings)
<div>
{{ $this->detailsCell }}
</div>
<hr />
@endif
{{-- Version --}}
<p class="ak_version">
@lang('COM_AKEEBA') {{ AKEEBA_PRO ? 'Professional ' : 'Core'; }} {{ AKEEBA_VERSION }} ({{ AKEEBA_DATE }})
</p>
{{-- Changelog --}}
<a href="#" id="btnchangelog" class="akeeba-btn--primary">CHANGELOG</a>
<div id="akeeba-changelog" tabindex="-1" role="dialog" aria-hidden="true" style="display:none;">
<div class="akeeba-renderer-fef">
<div class="akeeba-panel--info">
<header class="akeeba-block-header">
<h3>
@lang('CHANGELOG')
</h3>
</header>
<div id="DialogBody">
{{ $this->formattedChangelog }}
</div>
</div>
</div>
</div>
{{-- Donation CTA --}}
@if( ! (AKEEBA_PRO))
<a
href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=KDVQPB4EREBPY&source=url"
class="akeeba-btn-green">
Donate via PayPal
</a>
@endif
{{-- Pro upsell --}}
@if(!AKEEBA_PRO && (time() - $this->lastUpsellDismiss < 1296000))
<p style="margin: 0.5em 0">
<a href="https://www.akeeba.com/landing/akeeba-backup.html"
class="akeeba-btn--ghost--small">
<span class="aklogo-backup-j"></span>
@lang('COM_AKEEBA_CONTROLPANEL_BTN_LEARNMORE')
</a>
</p>
@endif
</div>
</div>
icons_troubleshooting.blade.php 0000604 00000002063 15245624447 0012757 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
?>
<section class="akeeba-panel--info">
<header class="akeeba-block-header">
<h3>@lang('COM_AKEEBA_CPANEL_HEADER_TROUBLESHOOTING')</h3>
</header>
<div class="akeeba-grid">
@if($this->permissions['backup'])
<a class="akeeba-action--teal"
href="index.php?option=com_akeeba&view=Log">
<span class="akion-ios-search-strong"></span>
@lang('COM_AKEEBA_LOG')
</a>
@endif
@if(AKEEBA_PRO && $this->permissions['configure'])
<a class="akeeba-action--teal"
href="index.php?option=com_akeeba&view=Alice">
<span class="akion-medkit"></span>
@lang('COM_AKEEBA_ALICE')
</a>
@endif
</div>
</section>
warnings.blade.php 0000604 00000023066 15245624447 0010173 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
$cloudFlareTestFile = 'CLOUDFLARE::' . $this->getContainer()->template->parsePath('media://com_akeeba/js/ControlPanel.min.js');
$cloudFlareTestFile .= '?' . $this->getContainer()->mediaVersion;
?>
{{-- Configuration Wizard pop-up --}}
@if($this->promptForConfigurationWizard)
@include('admin:com_akeeba/Configuration/confwiz_modal')
@endif
{{-- Stuck database updates warning --}}
@if ($this->stuckUpdates)
<div class="akeeba-block--warning">
<p>
@sprintf('COM_AKEEBA_CPANEL_ERR_UPDATE_STUCK', $this->getContainer()->db->getPrefix(), 'index.php?option=com_akeeba&view=ControlPanel&task=forceUpdateDb')
</p>
</div>
@endif
{{-- Potentially web accessible output directory --}}
@if ($this->isOutputDirectoryUnderSiteRoot)
<!--
Oh, hi there! It looks like you got curious and are peeking around your browser's developer tools – or just the
source code of the page that loaded on your browser. Cool! May I explain what we are seeing here?
Just to let you know, the next three DIVs (outDirSystem, insecureOutputDirectory and missingRandomFromFilename) are
HIDDEN and their existence doesn't mean that your site has an insurmountable security issue. To the contrary.
Whenever Akeeba Backup detects that the backup output directory is under your site's root it will CHECK its security
i.e. if it's really accessible over the web. This check is performed with an AJAX call to your browser so if it
takes forever or gets stuck you won't see a frustrating blank page in your browser. If AND ONLY IF a problem is
detected said JavaScript will display one of the following DIVs, depending on what is applicable.
So, to recap. These hidden DIVs? They don't indicate a problem with your site. If one becomes visible then – and
ONLY then – should you do something about it, as instructed. But thank you for being curious. Curiosity is how you
get involved with and better at web development. Stay curious!
-->
{{-- Web accessible output directory that coincides with or is inside in a CMS system folder --}}
<details class="akeeba-block--failure" id="outDirSystem" style="display: none">
<summary>@lang('COM_AKEEBA_CPANEL_HEAD_OUTDIR_INVALID')</summary>
<p>
@sprintf('COM_AKEEBA_CPANEL_LBL_OUTDIR_LISTABLE', realpath($this->getModel()->getOutputDirectory()))
</p>
<p>
@lang('COM_AKEEBA_CPANEL_LBL_OUTDIR_ISSYSTEM')
</p>
<p>
@lang('COM_AKEEBA_CPANEL_LBL_OUTDIR_ISSYSTEM_FIX')
@lang('COM_AKEEBA_CPANEL_LBL_OUTDIR_DELETEORBEHACKED')
</p>
</details>
{{-- Output directory can be listed over the web --}}
<details class="akeeba-block--{{ $this->hasOutputDirectorySecurityFiles ? 'failure' : 'warning' }}" id="insecureOutputDirectory" style="display: none">
<summary>
@if ($this->hasOutputDirectorySecurityFiles)
@lang('COM_AKEEBA_CPANEL_HEAD_OUTDIR_UNFIXABLE')
@else
@lang('COM_AKEEBA_CPANEL_HEAD_OUTDIR_INSECURE')
@endif
</summary>
<p>
@sprintf('COM_AKEEBA_CPANEL_LBL_OUTDIR_LISTABLE', realpath($this->getModel()->getOutputDirectory()))
</p>
@if (!$this->hasOutputDirectorySecurityFiles)
<p>
@lang('COM_AKEEBA_CPANEL_LBL_OUTDIR_CLICKTHEBUTTON')
</p>
<p>
@lang('COM_AKEEBA_CPANEL_LBL_OUTDIR_FIX_SECURITYFILES')
</p>
<form action="index.php" method="POST" class="akeeba-form--inline">
<input type="hidden" name="option" value="com_akeeba">
<input type="hidden" name="view" value="ControlPanel">
<input type="hidden" name="task" value="fixOutputDirectory">
<input type="hidden" name="@token()" value="1">
<button type="submit" class="akeeba-btn--block--green">
<span class="akion-hammer"></span>
@lang('COM_AKEEBA_CPANEL_BTN_FIXSECURITY')
</button>
</form>
@else
<p>
@lang('COM_AKEEBA_CPANEL_LBL_OUTDIR_TRASHHOST')
@lang('COM_AKEEBA_CPANEL_LBL_OUTDIR_DELETEORBEHACKED')
</p>
@endif
</details>
{{-- Output directory cannot be listed over the web but I can download files --}}
<details class="akeeba-block--warning" id="missingRandomFromFilename" style="display: none">
<summary>
@lang('COM_AKEEBA_CPANEL_HEAD_OUTDIR_INSECURE_ALT')
</summary>
<p>
@sprintf('COM_AKEEBA_CPANEL_LBL_OUTDIR_FILEREADABLE', realpath($this->getModel()->getOutputDirectory()))
</p>
<p>
@lang('COM_AKEEBA_CPANEL_LBL_OUTDIR_CLICKTHEBUTTON')
</p>
<p>
@lang('COM_AKEEBA_CPANEL_LBL_OUTDIR_FIX_RANDOM')
</p>
<form action="index.php" method="POST" class="akeeba-form--inline">
<input type="hidden" name="option" value="com_akeeba">
<input type="hidden" name="view" value="ControlPanel">
<input type="hidden" name="task" value="addRandomToFilename">
<input type="hidden" name="@token()" value="1">
<button type="submit" class="akeeba-btn--block--green">
<span class="akion-hammer"></span>
@lang('COM_AKEEBA_CPANEL_BTN_FIXSECURITY')
</button>
</form>
</details>
@endif
{{-- mbstring warning --}}
@unless($this->checkMbstring)
<div class="akeeba-block--warning">
@sprintf('COM_AKEEBA_CPANL_ERR_MBSTRING', PHP_VERSION)
</div>
@endunless
{{-- Front-end backup secret word reminder --}}
@unless(empty($this->frontEndSecretWordIssue))
<details class="akeeba-block--failure">
<summary>@lang('COM_AKEEBA_CPANEL_ERR_FESECRETWORD_HEADER')</summary>
<p>@lang('COM_AKEEBA_CPANEL_ERR_FESECRETWORD_INTRO')</p>
<p>{{ $this->frontEndSecretWordIssue }}</p>
<p>
@lang('COM_AKEEBA_CPANEL_ERR_FESECRETWORD_WHATTODO_JOOMLA')
@sprintf('COM_AKEEBA_CPANEL_ERR_FESECRETWORD_WHATTODO_COMMON', $this->newSecretWord)
</p>
<p>
<a class="akeeba-btn--green akeeba-btn--big"
href="index.php?option=com_akeeba&view=ControlPanel&task=resetSecretWord&@token(true)=1">
<span class="akion-refresh"></span>
@lang('COM_AKEEBA_CPANEL_BTN_FESECRETWORD_RESET')
</a>
</p>
</details>
@endunless
{{-- Wrong media directory permissions --}}
@unless($this->areMediaPermissionsFixed)
<details id="notfixedperms" class="akeeba-block--failure">
<summary>@lang('COM_AKEEBA_CONTROLPANEL_WARN_WARNING')</summary>
<p>@lang('COM_AKEEBA_CONTROLPANEL_WARN_PERMS_L1')</p>
<p>@lang('COM_AKEEBA_CONTROLPANEL_WARN_PERMS_L2')</p>
<ol>
<li>@lang('COM_AKEEBA_CONTROLPANEL_WARN_PERMS_L3A')</li>
<li>@lang('COM_AKEEBA_CONTROLPANEL_WARN_PERMS_L3B')</li>
</ol>
<p>@lang('COM_AKEEBA_CONTROLPANEL_WARN_PERMS_L4')</p>
</details>
@endunless
{{-- You need to enter your Download ID --}}
@if($this->needsDownloadID)
<details class="akeeba-block--warning">
<summary>
@lang('COM_AKEEBA_CPANEL_MSG_MUSTENTERDLID')
</summary>
<p>
@sprintf('COM_AKEEBA_LBL_CPANEL_NEEDSDLID','https://www.akeeba.com/download/official/add-on-dlid.html')
</p>
<form name="dlidform" action="index.php" method="post" class="akeeba-form--inline">
<input type="hidden" name="option" value="com_akeeba" />
<input type="hidden" name="view" value="ControlPanel" />
<input type="hidden" name="task" value="applydlid" />
<input type="hidden" name="@token(true)" value="1" />
<div class="akeeba-form-group">
<label for="dlid">@lang('COM_AKEEBA_CPANEL_MSG_PASTEDLID')</label>
<input type="text" name="dlid" placeholder="@lang('COM_AKEEBA_CONFIG_DOWNLOADID_LABEL')"
class="akeeba-input--wide">
<button type="submit" class="akeeba-btn--green">
<span class="akion-checkmark-round"></span>
@lang('COM_AKEEBA_CPANEL_MSG_APPLYDLID')
</button>
</div>
</form>
</details>
@endif
{{-- You have CORE; you need to upgrade, not just enter a Download ID --}}
@if($this->coreWarningForDownloadID)
<div class="akeeba-block--warning">
@sprintf('COM_AKEEBA_LBL_CPANEL_NEEDSUPGRADE','http://akee.ba/abcoretopro')
</div>
@endif
{{-- Warn about CloudFlare Rocket Loader --}}
<details class="akeeba-block--failure" style="display: none;" id="cloudFlareWarn">
<summary>@lang('COM_AKEEBA_CPANEL_MSG_CLOUDFLARE_WARN')</summary>
<p>@sprintf('COM_AKEEBA_CPANEL_MSG_CLOUDFLARE_WARN1', 'https://support.cloudflare.com/hc/en-us/articles/200169456-Why-is-JavaScript-or-jQuery-not-working-on-my-site-')</p>
</details>
<?php
/**
* DO NOT USE INLINE JAVASCRIPT FOR THIS SCRIPT. DO NOT REMOVE THE ATTRIBUTES.
*
* This is a specialised test which looks for CloudFlare's completely broken RocketLoader feature and warns the user
* about it.
*/
?>
<script type="text/javascript" data-cfasync="true">
var test = localStorage.getItem('<?php echo $cloudFlareTestFile?>');
if (test)
{
document.getElementById("cloudFlareWarn").style.display = "block";
}
</script>
upgrade.blade.php 0000604 00000002760 15245624447 0007770 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
// Only show in the Core version with a 10% probability
if (AKEEBA_PRO) return;
// Only show if it's at least 15 days since the last time the user dismissed the upsell
if (time() - $this->lastUpsellDismiss < 1296000) return;
?>
<div class="akeeba-panel--orange">
<header class="akeeba-block-header">
<h3>
<span class="akion-ios-star"></span>
@lang('COM_AKEEBA_CONTROLPANEL_HEAD_PROUPSELL')
</h3>
</header>
<p>@lang('COM_AKEEBA_CONTROLPANEL_HEAD_LBL_PROUPSELL_1')</p>
<p class="akeeba-block--info">@sprintf('COM_AKEEBA_CONTROLPANEL_HEAD_LBL_DISCOUNT',
base64_decode('SVdBTlRJVEFMTA=='))</p>
<p>@lang('COM_AKEEBA_CONTROLPANEL_HEAD_LBL_PROUPSELL_2')</p>
<p>
<a href="https://www.akeeba.com/landing/akeeba-backup.html"
class="akeeba-btn--large--primary">
<span class="aklogo-backup-j"></span>
@lang('COM_AKEEBA_CONTROLPANEL_BTN_LEARNMORE')
</a>
<a href="@route('index.php?view=ControlPanel&task=dismissUpsell')" class="akeeba-btn--ghost--small">
<span class="akion-ios-alarm"></span>
@lang('COM_AKEEBA_CONTROLPANEL_BTN_HIDE')
</a>
</p>
</div>
sidebar_backup.blade.php 0000604 00000000756 15245624447 0011302 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
?>
<div class="akeeba-panel">
<header class="akeeba-block-header">
<h3>@lang('COM_AKEEBA_BACKUP_STATS')</h3>
</header>
<div>{{ $this->latestBackupCell }}</div>
</div>
oneclick.blade.php 0000604 00000001575 15245624447 0010133 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
?>
<section class="akeeba-panel--primary">
<header class="akeeba-block-header">
<h3>@lang('COM_AKEEBA_CPANEL_HEADER_QUICKBACKUP')</h3>
</header>
<div class=" akeeba-grid">
@foreach($this->quickIconProfiles as $qiProfile)
<a class="akeeba-action--green"
href="index.php?option=com_akeeba&view=Backup&autostart=1&profileid={{ (int) $qiProfile->id }}&@token(true)=1">
<span class="akion-play"></span>
<span>{{{ $qiProfile->description }}}</span>
</a>
@endforeach
</div>
</section>
default.blade.php 0000604 00000004107 15245624447 0007762 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
?>
@if (class_exists('Joomla\CMS\Component\ComponentHelper') && \Joomla\CMS\Component\ComponentHelper::isEnabled('com_akeebabackup'))
@include('admin:com_akeeba/ControlPanel/backup8_uninstall')
<?php return; ?>
@elseif (version_compare(JVERSION, '3.999.999', 'gt'))
@include('admin:com_akeeba/ControlPanel/backup9_install')
@endif
<div id="akeebaBackup8Wrapper">
{{-- Display various possible warnings about issues which directly affect the user's experience --}}
@include('admin:com_akeeba/ControlPanel/warnings')
{{-- Main area --}}
<div class="akeeba-container--66-33">
{{-- LEFT COLUMN (66% desktop width) --}}
<div>
{{-- Active profile switch --}}
@include('admin:com_akeeba/ControlPanel/profile')
{{-- One Click Backup icons --}}
@if( ! (empty($this->quickIconProfiles)) && $this->permissions['backup'])
@include('admin:com_akeeba/ControlPanel/oneclick')
@endif
{{-- Basic operations --}}
@include('admin:com_akeeba/ControlPanel/icons_basic')
{{-- Core Upgrade --}}
@include('admin:com_akeeba/ControlPanel/upgrade')
{{-- Troubleshooting --}}
@include('admin:com_akeeba/ControlPanel/icons_troubleshooting')
{{-- Advanced operations --}}
@include('admin:com_akeeba/ControlPanel/icons_advanced')
{{-- Include / Exclude data --}}
@if($this->permissions['configure'])
@include('admin:com_akeeba/ControlPanel/icons_includeexclude')
@endif
</div>
{{-- RIGHT COLUMN (33% desktop width) --}}
<div>
{{-- Status Summary --}}
@include('admin:com_akeeba/ControlPanel/sidebar_status')
{{-- Backup stats --}}
@include('admin:com_akeeba/ControlPanel/sidebar_backup')
</div>
</div>
{{-- Footer --}}
@include('admin:com_akeeba/ControlPanel/footer')
</div>
{{-- Usage statistics collection IFRAME --}}
@if ($this->statsIframe)
{{ $this->statsIframe }}
@endif icons_includeexclude.blade.php 0000604 00000003645 15245624447 0012534 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
?>
<section class="akeeba-panel--info">
<header class="akeeba-block-header">
<h3>@lang('COM_AKEEBA_CPANEL_HEADER_INCLUDEEXCLUDE')</h3>
</header>
<div class="akeeba-grid">
@if(AKEEBA_PRO)
<a class="akeeba-action--green"
href="index.php?option=com_akeeba&view=MultipleDatabases">
<span class="akion-arrow-swap"></span>
@lang('COM_AKEEBA_MULTIDB')
</a>
<a class="akeeba-action--green"
href="index.php?option=com_akeeba&view=IncludeFolders">
<span class="akion-folder"></span>
@lang('COM_AKEEBA_INCLUDEFOLDER')
</a>
@endif
<a class="akeeba-action--red"
href="index.php?option=com_akeeba&view=FileFilters">
<span class="akion-filing"></span>
@lang('COM_AKEEBA_FILEFILTERS')
</a>
<a class="akeeba-action--red"
href="index.php?option=com_akeeba&view=DatabaseFilters">
<span class="akion-ios-grid-view"></span>
@lang('COM_AKEEBA_DBFILTER')
</a>
@if(AKEEBA_PRO)
<a class="akeeba-action--red"
href="index.php?option=com_akeeba&view=RegExFileFilters">
<span class="akion-ios-folder"></span>
@lang('COM_AKEEBA_REGEXFSFILTERS')
</a>
<a class="akeeba-action--red"
href="index.php?option=com_akeeba&view=RegExDatabaseFilters">
<span class="akion-ios-box"></span>
@lang('COM_AKEEBA_REGEXDBFILTERS')
</a>
@endif
</div></section>
icons_advanced.blade.php 0000604 00000003146 15245624447 0011300 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
// All of the buttons in this panel require the Configure privilege
if (!$this->permissions['configure'])
{
return;
}
?>
@if(AKEEBA_PRO)
<section class="akeeba-panel--info">
<header class="akeeba-block-header">
<h3>@lang('COM_AKEEBA_CPANEL_HEADER_ADVANCED')</h3>
</header>
<div class="akeeba-grid">
@if($this->permissions['configure'])
<a class="akeeba-action--teal"
href="index.php?option=com_akeeba&view=Schedule">
<span class="akion-calendar"></span>
@lang('COM_AKEEBA_SCHEDULE')
</a>
@endif
@if($this->permissions['configure'])
<a class="akeeba-action--orange"
href="index.php?option=com_akeeba&view=Discover">
<span class="akion-ios-download"></span>
@lang('COM_AKEEBA_DISCOVER')
</a>
@endif
@if($this->permissions['configure'])
<a class="akeeba-action--orange"
href="index.php?option=com_akeeba&view=S3Import">
<span class="akion-ios-cloud-download"></span>
@lang('COM_AKEEBA_S3IMPORT')
</a>
@endif
</div>
</section>
@endif
warning_phpversion.blade.php 0000604 00000000774 15245624447 0012266 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
use FOF40\Date\Date;
?>
{{-- Old PHP version reminder --}}
@include('admin:com_akeeba/CommonTemplates/phpversion_warning', [
'softwareName' => 'Akeeba Backup',
'minPHPVersion' => '7.2.0',
])
footer.blade.php 0000604 00000002026 15245624447 0007632 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
/** @var $this \Akeeba\Backup\Admin\View\ControlPanel\Html */
// Protect from unauthorized access
defined('_JEXEC') || die();
?>
<div class="row-fluid footer akeebabackup-footer">
<div class="span12">
<p style="height: 6em">
@sprintf('Copyright ©2006-%s <a href="https://www.akeeba.com">Akeeba Ltd</a>. All Rights Reserved.', date('Y'))
<br/>
Akeeba Backup is Free Software and is distributed under the terms of the <a
href="http://www.gnu.org/licenses/gpl-3.0.html">GNU General Public License</a>, version 3 or - at
your option - any later version.
@if(AKEEBA_PRO != 1)
<br/>If you use Akeeba Backup Core, please post a rating and a review at the <a
href="https://extensions.joomla.org/extensions/extension/access-a-security/site-security/akeeba-backup/">Joomla!
Extensions Directory</a>.
@endif
</p>
</div>
</div>
Html.php 0000604 00000021444 15245662174 0006176 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
namespace Akeeba\Backup\Admin\View\ControlPanel;
// Protect from unauthorized access
defined('_JEXEC') || die();
use Akeeba\Backup\Admin\Helper\Status;
use Akeeba\Backup\Admin\Model\ControlPanel;
use Akeeba\Backup\Admin\Model\UsageStatistics;
use Akeeba\Backup\Admin\View\ViewTraits\ProfileIdAndName;
use Akeeba\Backup\Admin\View\ViewTraits\ProfileList;
use Akeeba\Engine\Factory;
use Akeeba\Engine\Platform;
use FOF40\View\DataView\Html as BaseView;
class Html extends BaseView
{
use ProfileList, ProfileIdAndName;
/**
* List of profiles to display as Quick Icons in the control panel page
*
* @var array Array of stdClass objects
*/
public $quickIconProfiles = [];
/**
* The HTML for the backup status cell
*
* @var string
*/
public $statusCell = '';
/**
* HTML for the warnings (status details)
*
* @var string
*/
public $detailsCell = '';
/**
* Details of the latest backup as HTML
*
* @var string
*/
public $latestBackupCell = '';
/**
* Do I have to ask the user to fix the permissions?
*
* @var bool
*/
public $areMediaPermissionsFixed = false;
/**
* Do I have to ask the user to provide a Download ID?
*
* @var bool
*/
public $needsDownloadID = false;
/**
* Did a Core edition user provide a Download ID instead of installing Akeeba Backup Professional?
*
* @var bool
*/
public $coreWarningForDownloadID = false;
/**
* Our extension ID
*
* @var int
*/
public $extension_id = 0;
/**
* Should I have the browser ask for desktop notification permissions?
*
* @var bool
*/
public $desktopNotifications = false;
/**
* If anonymous statistics collection is enabled and we have to collect statistics this will include the HTML for
* the IFRAME that performs the anonymous stats collection.
*
* @var string
*/
public $statsIframe = '';
/**
* If front-end backup is enabled and the secret word has an issue (too insecure) we populate this variable
*
* @var string
*/
public $frontEndSecretWordIssue = '';
/**
* In case the existing Secret Word is insecure we generate a new one. This variable contains the new Secret Word.
*
* @var string
*/
public $newSecretWord = '';
/**
* Is the mbstring extension installed and enabled? This is required by Joomla and Akeeba Backup to correctly work
*
* @var bool
*/
public $checkMbstring = true;
/**
* The fancy formatted changelog of the component
*
* @var string
*/
public $formattedChangelog = '';
/**
* Should I pormpt the user ot run the configuration wizard?
*
* @var bool
*/
public $promptForConfigurationWizard = false;
/**
* How many warnings do I have to display?
*
* @var int
*/
public $countWarnings = 0;
/**
* Do I have stuck updates pending?
*
* @var bool
*/
public $stuckUpdates = false;
/**
* Cache the user permissions
*
* @var array
*
* @since 5.3.0
*/
public $permissions = [];
/**
* Timestamp when the Core user last dismissed the upsell to Pro
*
* @var int
* @since 7.0.0
*/
public $lastUpsellDismiss = 0;
/**
* Is the output directory under the site's root?
*
* @var bool
* @since 7.0.3
*/
public $isOutputDirectoryUnderSiteRoot = false;
/**
* Does the output directory have the expected security files?
*
* @var bool
* @since 7.0.3
*/
public $hasOutputDirectorySecurityFiles = false;
/**
* Executes before displaying the control panel page
*/
public function onBeforeMain()
{
/** @var ControlPanel $model */
$model = $this->getModel();
$statusHelper = Status::getInstance();
$this->statsIframe = '';
try
{
/** @var UsageStatistics $usageStatsModel */
$usageStatsModel = $this->container->factory->model('UsageStatistics')->tmpInstance();
if (
is_object($usageStatsModel)
&& class_exists('Akeeba\\Backup\\Admin\\Model\\UsageStatistics')
&& ($usageStatsModel instanceof UsageStatistics)
&& method_exists($usageStatsModel, 'collectStatistics')
)
{
$this->statsIframe = $usageStatsModel->collectStatistics(true);
}
}
catch (\Exception $e)
{
// Don't give a crap if usage stats ain't loaded
}
$this->getProfileList();
$this->getProfileIdAndName();
$this->quickIconProfiles = $model->getQuickIconProfiles();
$this->statusCell = $statusHelper->getStatusCell();
$this->detailsCell = $statusHelper->getQuirksCell();
$this->latestBackupCell = $statusHelper->getLatestBackupDetails();
$this->areMediaPermissionsFixed = $model->fixMediaPermissions();
$this->checkMbstring = $model->checkMbstring();
$this->needsDownloadID = $model->needsDownloadID() ? 1 : 0;
$this->coreWarningForDownloadID = $model->mustWarnAboutDownloadIDInCore();
$this->extension_id = $model->getState('extension_id', 0, 'int');
$this->frontEndSecretWordIssue = $model->getFrontendSecretWordError();
$this->newSecretWord = $this->container->platform->getSessionVar('newSecretWord', null, 'akeeba.cpanel');
$this->desktopNotifications = $this->container->params->get('desktop_notifications', '0') ? 1 : 0;
$this->formattedChangelog = $this->formatChangelog();
$this->promptForConfigurationWizard = Factory::getConfiguration()->get('akeeba.flag.confwiz', 0) == 0;
$this->countWarnings = count(Factory::getConfigurationChecks()->getDetailedStatus());
$this->stuckUpdates = ($this->container->params->get('updatedb', 0) == 1);
$user = $this->container->platform->getUser();
$this->permissions = [
'configure' => $user->authorise('akeeba.configure', 'com_akeeba'),
'backup' => $user->authorise('akeeba.backup', 'com_akeeba'),
'download' => $user->authorise('akeeba.download', 'com_akeeba'),
];
$this->isOutputDirectoryUnderSiteRoot = $model->isOutputDirectoryUnderSiteRoot();
$this->hasOutputDirectorySecurityFiles = $model->hasOutputDirectorySecurityFiles();
$this->lastUpsellDismiss = $this->container->params->get('lastUpsellDismiss', 0);
// Load the version constants
Platform::getInstance()->load_version_defines();
// Add the Javascript to the document
$this->container->template->addJS('media://com_akeeba/js/ControlPanel.min.js', true, false, $this->container->mediaVersion);
$this->addJSScriptOptions();
}
/**
* Adds inline Javascript to the document
*/
protected function addJSScriptOptions()
{
$platform = $this->container->platform;
$platform->addScriptOptions('akeeba.System.notification.hasDesktopNotification', (bool)$this->desktopNotifications);
$platform->addScriptOptions('akeeba.ControlPanel.needsDownloadID', (bool) $this->needsDownloadID);
$platform->addScriptOptions('akeeba.ControlPanel.outputDirUnderSiteRoot', (bool) $this->isOutputDirectoryUnderSiteRoot);
$platform->addScriptOptions('akeeba.ControlPanel.hasSecurityFiles', (bool) $this->hasOutputDirectorySecurityFiles);
}
protected function formatChangelog($onlyLast = false)
{
$ret = '';
$file = $this->container->backEndPath . '/CHANGELOG.php';
$lines = @file($file);
if (empty($lines))
{
return $ret;
}
array_shift($lines);
foreach ($lines as $line)
{
$line = trim($line);
if (empty($line))
{
continue;
}
$type = substr($line, 0, 1);
switch ($type)
{
case '=':
continue 2;
break;
case '+':
$ret .= "\t" . '<li><span class="akeeba-label--green">Added</span> ' . htmlentities(trim(substr($line, 2))) . "</li>\n";
break;
case '-':
$ret .= "\t" . '<li><span class="akeeba-label--grey">Removed</span> ' . htmlentities(trim(substr($line, 2))) . "</li>\n";
break;
case '~':
case '^':
$ret .= "\t" . '<li><span class="akeeba-label--grey">Changed</span> ' . htmlentities(trim(substr($line, 2))) . "</li>\n";
break;
case '*':
$ret .= "\t" . '<li><span class="akeeba-label--red">Security</span> ' . htmlentities(trim(substr($line, 2))) . "</li>\n";
break;
case '!':
$ret .= "\t" . '<li><span class="akeeba-label--orange">Important</span> ' . htmlentities(trim(substr($line, 2))) . "</li>\n";
break;
case '#':
$ret .= "\t" . '<li><span class="akeeba-label--teal">Fixed</span> ' . htmlentities(trim(substr($line, 2))) . "</li>\n";
break;
default:
if (!empty($ret))
{
$ret .= "</ul>";
if ($onlyLast)
{
return $ret;
}
}
if (!$onlyLast)
{
$ret .= "<h4>$line</h4>\n";
}
$ret .= "<ul class=\"akeeba-changelog\">\n";
break;
}
}
return $ret;
}
}