first commit

This commit is contained in:
2024-07-15 11:28:08 +02:00
commit f52d538ea5
21891 changed files with 6161164 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
use Awf\Html;
use Awf\Text\Text;
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
$router = $this->container->router;
$inCMS = $this->container->segment->get('insideCMS', false);
$token = $this->container->session->getCsrfToken()->getValue();
?>
{{-- Display various possible warnings about issues which directly affect the user's experience --}}
@include('Main/warnings')
{{-- Update notification container --}}
<div id="soloUpdateNotification"></div>
<div class="akeeba-container--66-33">
<div>
{{-- Active profile switch --}}
@include('Main/profile')
{{-- One Click Backup icons --}}
@if(!empty($this->quickIconProfiles) && $this->canAccess('backup', 'main'))
@include('Main/oneclick')
@endif
{{-- Basic operations --}}
@include('Main/icons_basic')
@include('Main/paypal')
{{-- Troubleshooting --}}
@include('Main/icons_troubleshooting')
{{-- Advanced operations --}}
@include('Main/icons_advanced')
{{-- Include / Exclude data --}}
@if ($this->container->userManager->getUser()->getPrivilege('akeeba.configure'))
@include('Main/icons_includeexclude')
@endif
@if ($this->container->userManager->getUser()->getPrivilege('akeeba.configure'))
@include('Main/icons_system')
@endif
</div>
<div>
@include('Main/status')
@include('Main/latest_backup')
</div>
</div>
<?php
if ($this->statsIframe)
{
echo $this->statsIframe;
}
?>

View File

@@ -0,0 +1,46 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
$router = $this->container->router;
?>
@if (AKEEBABACKUP_PRO)
<section class="akeeba-panel--info">
<header class="akeeba-block-header">
<h3>
<span class="akion-wand"></span>
@lang('COM_AKEEBA_CPANEL_HEADER_ADVANCED')
</h3>
</header>
<div class="akeeba-grid">
@if($this->canAccess('schedule', 'main'))
<a class="akeeba-action--teal" href="@route('index.php?view=schedule')">
<span class="akion-calendar"></span>
@lang('COM_AKEEBA_SCHEDULE')
</a>
@endif
@if($this->canAccess('discover', 'main'))
<a class="akeeba-action--orange" href="@route('index.php?view=discover')">
<span class="akion-ios-download"></span>
@lang('COM_AKEEBA_DISCOVER')
</a>
@endif
@if($this->canAccess('s3import', 'main'))
<a class="akeeba-action--orange" href="@route('index.php?view=s3import')">
<span class="akion-ios-cloud-download"></span>
@lang('COM_AKEEBA_S3IMPORT')
</a>
@endif
</div>
</section>
@endif

View File

@@ -0,0 +1,70 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
$router = $this->container->router;
?>
<section class="akeeba-panel--info">
<header class="akeeba-block-header">
<h3>
<span class="akion-home"></span>
@lang('SOLO_MAIN_LBL_HEAD_BACKUPOPS')
</h3>
</header>
<div class="akeeba-grid">
@if ($this->canAccess('backup', 'main'))
<a class="akeeba-action--green" href="@route('index.php?view=backup')">
<span class="akion-play"></span>
@lang('COM_AKEEBA_BACKUP')
</a>
@endif
@if (AKEEBABACKUP_PRO && $this->canAccess('transfer', 'main'))
<a class="akeeba-action--green" href="@route('index.php?view=transfer')">
<span class="akion-android-open"></span>
@lang('COM_AKEEBA_TRANSFER')
</a>
@endif
@if ($this->canAccess('manage', 'main'))
<a class="akeeba-action--teal" href="@route('index.php?view=manage')">
<span class="akion-ios-list"></span>
<span class="title">@lang('COM_AKEEBA_BUADMIN')</span>
</a>
@endif
@if ($this->canAccess('configuration', 'main'))
<a class="akeeba-action--teal" href="@route('index.php?view=configuration')">
<span class="akion-ios-gear"></span>
<span class="title">@lang('COM_AKEEBA_CONFIG')</span>
</a>
@endif
@if ($this->canAccess('profiles', 'main'))
<a class="akeeba-action--teal" href="@route('index.php?view=profiles')">
<span class="akion-person-stalker"></span>
<span class="title">@lang('COM_AKEEBA_PROFILES')</span>
</a>
@endif
@if (!$this->needsDownloadId && $this->canAccess('update', 'main'))
<a class="akeeba-action--orange" href="@route('index.php?view=update')" id="soloUpdateContainer">
<span class="akion-checkmark-circled" id="soloUpdateIcon"></span>
<span id="soloUpdateAvailable" style="display: none">
@lang('SOLO_UPDATE_SUBTITLE_UPDATEAVAILABLE')
</span>
<span id="soloUpdateUpToDate" style="display: none">
@lang('SOLO_UPDATE_SUBTITLE_UPTODATE')
</span>
</a>
@endif
</div>
</section>

View File

@@ -0,0 +1,71 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
use Awf\Html;
use Awf\Text\Text;
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
$router = $this->container->router;
?>
<section class="akeeba-panel--info">
<header class="akeeba-block-header">
<h3>
<span class="akion-funnel"></span>
@lang('COM_AKEEBA_CPANEL_HEADER_INCLUDEEXCLUDE')
</h3>
</header>
<div class="akeeba-grid">
@if(defined('AKEEBABACKUP_PRO') && AKEEBABACKUP_PRO)
@if($this->canAccess('multidb', 'main'))
<a class="akeeba-action--green" href="@route('index.php?view=multidb')">
<span class="akion-arrow-swap"></span>
@lang('COM_AKEEBA_MULTIDB')
</a>
@endif
@if($this->canAccess('extradirs', 'main'))
<a class="akeeba-action--green" href="@route('index.php?view=extradirs')">
<span class="akion-folder"></span>
@lang('COM_AKEEBA_INCLUDEFOLDER')
</a>
@endif
@endif
@if($this->canAccess('fsfilters', 'main'))
<a class="akeeba-action--red" href="@route('index.php?view=fsfilters')">
<span class="akion-filing"></span>
@lang('COM_AKEEBA_FILEFILTERS')
</a>
@endif
@if($this->canAccess('dbfilters', 'main'))
<a class="akeeba-action--red" href="@route('index.php?view=dbfilters')">
<span class="akion-ios-grid-view"></span>
@lang('COM_AKEEBA_DBFILTER')
</a>
@endif
@if(defined('AKEEBABACKUP_PRO') && AKEEBABACKUP_PRO)
@if($this->canAccess('regexfsfilters', 'main'))
<a class="akeeba-action--red" href="@route('index.php?view=regexfsfilters')">
<span class="akion-ios-folder"></span>
@lang('COM_AKEEBA_REGEXFSFILTERS')
</a>
@endif
@if($this->canAccess('regexdbfilters', 'main'))
<a class="akeeba-action--red" href="@route('index.php?view=regexdbfilters')">
<span class="akion-ios-box"></span>
@lang('COM_AKEEBA_REGEXDBFILTERS')
</a>
@endif
@endif
</div>
</section>

View File

@@ -0,0 +1,43 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
use Awf\Html;
use Awf\Text\Text;
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
$router = $this->container->router;
$inCMS = $this->container->segment->get('insideCMS', false);
?>
<section class="akeeba-panel--info">
<header class="akeeba-block-header">
<h3>
<span class="akion-ios-cog"></span>
@lang('SOLO_MAIN_LBL_SYSMANAGEMENT')
</h3>
</header>
<div class="akeeba-grid">
@if(!$inCMS)
@if($this->canAccess('users', 'main'))
<a class="akeeba-action--teal" href="@route('index.php?view=users')">
<span class="akion-ios-people"></span>
@lang('SOLO_MAIN_LBL_USERS')
</a>
@endif
@endif
@if($this->canAccess('sysconfig', 'main'))
<a class="akeeba-action--teal" href="@route('index.php?view=sysconfig')">
<span class="akion-ios-settings-strong"></span>
@lang('SOLO_MAIN_LBL_SYSCONFIG')
</a>
@endif
</div>
</section>

View File

@@ -0,0 +1,41 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
use Awf\Html;
use Awf\Text\Text;
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
$router = $this->container->router;
?>
<section class="akeeba-panel--info">
<header class="akeeba-block-header">
<h3>
<span class="akion-help-buoy"></span>
@lang('COM_AKEEBA_CPANEL_HEADER_TROUBLESHOOTING')
</h3>
</header>
<div class="akeeba-grid">
@if ($this->canAccess('log', 'main'))
<a class="akeeba-action--teal" href="@route('index.php?view=log')">
<span class="akion-ios-search-strong"></span>
@lang('COM_AKEEBA_LOG')
</a>
@endif
@if (AKEEBABACKUP_PRO && $this->canAccess('alice', 'main'))
<a class="akeeba-action--teal" href="@route('index.php?view=alice')">
<span class="akion-medkit"></span>
@lang('COM_AKEEBA_ALICE')
</a>
@endif
</div>
</section>

View File

@@ -0,0 +1,23 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
use Awf\Text\Text;
defined('_AKEEBA') or die();
/** @var \Solo\View\Main\Html $this */
?>
<div class="akeeba-panel">
<header class="akeeba-block-header">
<h3>
@lang('SOLO_MAIN_LBL_LATEST_BACKUP')
</h3>
</header>
<div>{{ $this->latestBackupCell }}</div>
</div>

View File

@@ -0,0 +1,35 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
use Awf\Html;
use Awf\Text\Text;
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
$router = $this->container->router;
$token = $this->container->session->getCsrfToken()->getValue();
?>
<section class="akeeba-panel--primary">
<header class="akeeba-block-header">
<h3>
<span class="akion-ios-play"></span>
@lang('COM_AKEEBA_CPANEL_HEADER_QUICKBACKUP')
</h3>
</header>
<div class="akeeba-grid">
@foreach($this->quickIconProfiles as $qiProfile)
<a class="akeeba-action--green" href="{{ $router->route('index.php?view=backup&autostart=1&profile=' . (int) $qiProfile->id) . '&' . $token . '=1' }}">
<span class="akion-play"></span>
<span>{{ $qiProfile->description }} </span>
</a>
@endforeach
</div>
</section>

View File

@@ -0,0 +1,55 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
// Only show in the Core version with a 10% probability
if (AKEEBABACKUP_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>
@if (!$this->getContainer()->segment->get('insideCMS', false))
<a href="https://www.akeeba.com/landing/akeeba-solo.html" class="akeeba-btn--large--primary">
<span class="aklogo-solo"></span>
@lang('COM_AKEEBA_CONTROLPANEL_BTN_LEARNMORE')
</a>
@else
<a href="https://www.akeeba.com/landing/akeeba-backup-wordpress.html"
class="akeeba-btn--large--primary">
<span class="aklogo-backup-wp"></span>
@lang('COM_AKEEBA_CONTROLPANEL_BTN_LEARNMORE')
</a>
@endif
<a href="@route('index.php?view=Main&task=dismissUpsell')" class="akeeba-btn--ghost--small">
<span class="akion-ios-alarm"></span>
@lang('COM_AKEEBA_CONTROLPANEL_BTN_HIDE')
</a>
</p>
</div>

View File

@@ -0,0 +1,37 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
use Awf\Html;
use Awf\Text\Text;
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
?>
<div class="akeeba-panel--info">
<form action="@route('index.php?view=main')" method="post" name="profileForm" class="akeeba-form--inline">
<div class="akeeba-form-group">
<label>
@lang('COM_AKEEBA_CPANEL_PROFILE_TITLE'): # {{ $this->profile }}
</label>
@html('select.genericlist', $this->profileList, 'profile', ['list.select' => $this->profile, 'id' => 'comAkeebaControlPanelProfileSwitch'])
</div>
<div class="akeeba-form-group--actions">
<button class="akeeba-btn--small--grey" type="submit">
<span class="akion-android-share"></span>
@lang('COM_AKEEBA_CPANEL_PROFILE_BUTTON')
</button>
</div>
<div class="akeeba-form-group--actions">
<input type="hidden" name="token" value="@token()">
<input type="hidden" name="task" value="switchProfile" />
</div>
</form>
</div>

View File

@@ -0,0 +1,84 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
use Akeeba\Engine\Factory;
use Awf\Text\Text;
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
$router = $this->container->router;
?>
<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('SOLO_APP_TITLE') {{ AKEEBABACKUP_PRO ? 'Professional ' : 'Core' }} {{ AKEEBABACKUP_VERSION }} ({{ AKEEBABACKUP_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( ! (AKEEBABACKUP_PRO))
<a
href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3NTKQ3M2DYPYW&source=url"
class="akeeba-btn-green">
Donate via PayPal
</a>
@endif
{{-- Pro upsell --}}
@if(!AKEEBABACKUP_PRO && (time() - $this->lastUpsellDismiss < 1296000))
<p style="margin-top: 0.5em">
@if (!$this->getContainer()->segment->get('insideCMS', false))
<a href="https://www.akeeba.com/landing/akeeba-solo.html" class="akeeba-btn--ghost--small">
<span class="akion-ios-star"></span>
@lang('COM_AKEEBA_CONTROLPANEL_BTN_LEARNMORE')
</a>
@else
<a href="https://www.akeeba.com/landing/akeeba-backup-wordpress.html" class="akeeba-btn--ghost--small">
<span class="akion-ios-star"></span>
@lang('COM_AKEEBA_CONTROLPANEL_BTN_LEARNMORE')
</a>
@endif
</p>
@endif
</div>
</div>

View File

@@ -0,0 +1,16 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
?>
<div id="adblock-warning" class="akeeba-block--failure" style="display: none;">
@lang('SOLO_SETUP_LBL_ADBLOCK_WARNING')
</div>

View File

@@ -0,0 +1,21 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
use Awf\Text\Text;
use \Awf\Date\Date;
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
?>
{{-- Old PHP version reminder --}}
@include('CommonTemplates/phpversion_warning', [
'softwareName' => $this->getContainer()->segment->get('insideCMS', false) ? 'Akeeba Backup' : 'Akeeba Solo',
'minPHPVersion' => '7.2.0',
])

View File

@@ -0,0 +1,213 @@
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
use Awf\Html;
use Awf\Text\Text;
defined('_AKEEBA') or die();
// Used for type hinting
/** @var \Solo\View\Main\Html $this */
$router = $this->container->router;
$inCMS = $this->container->segment->get('insideCMS', false);
$token = $this->container->session->getCsrfToken()->getValue();
?>
{{-- Configuration Wizard pop-up --}}
@if($this->promptForConfigurationWizard)
@include('Configuration/confwiz_modal')
@endif
{{-- AdBlock warning --}}
@include('Main/warning_adblock')
{{-- Stuck database updates warning --}}
@if ($this->stuckUpdates)
<?php $resetUrl = $router->route('index.php?view=Main&task=forceUpdateDb'); ?>
<div class="akeeba-block--failure">
<p>
<?php
echo Text::sprintf('COM_AKEEBA_CPANEL_ERR_UPDATE_STUCK',
$this->getContainer()->appConfig->get('prefix', 'solo_'),
$resetUrl
) ?>
</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 --}}
<div class="akeeba-block--failure" id="outDirSystem" style="display: none">
<h3>@lang('COM_AKEEBA_CPANEL_HEAD_OUTDIR_INVALID')</h3>
<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>
</div>
{{-- Output directory can be listed over the web --}}
<div class="akeeba-block--{{ $this->hasOutputDirectorySecurityFiles ? 'failure' : 'warning' }}" id="insecureOutputDirectory" style="display: none">
<h3>
@if ($this->hasOutputDirectorySecurityFiles)
@lang('COM_AKEEBA_CPANEL_HEAD_OUTDIR_UNFIXABLE')
@else
@lang('COM_AKEEBA_CPANEL_HEAD_OUTDIR_INSECURE')
@endif
</h3>
<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="@route('index.php?view=Main&task=fixOutputDirectory')" method="POST" class="akeeba-form--inline">
<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
</div>
{{-- Output directory cannot be listed over the web but I can download files --}}
<div class="akeeba-block--warning" id="missingRandomFromFilename" style="display: none">
<h3>
@lang('COM_AKEEBA_CPANEL_HEAD_OUTDIR_INSECURE_ALT')
</h3>
<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="@route('index.php?view=Main&task=addRandomToFilename')" method="POST" class="akeeba-form--inline">
<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>
</div>
@endif
{{-- mbstring warning --}}
@unless($this->checkMbstring)
<div class="akeeba-block--failure">
@sprintf('COM_AKEEBA_CPANEL_ERR_MBSTRING_' . ($inCMS ? 'WORDPRESS' : 'SOLO'), PHP_VERSION)
</div>
@endunless
{{-- Front-end backup secret word reminder --}}
@unless(empty($this->frontEndSecretWordIssue))
<div class="akeeba-block--warning">
<h3>@lang('COM_AKEEBA_CPANEL_ERR_FESECRETWORD_HEADER')</h3>
<p>@lang('COM_AKEEBA_CPANEL_ERR_FESECRETWORD_INTRO')</p>
<p>{{ $this->frontEndSecretWordIssue }}</p>
<p>
@lang('COM_AKEEBA_CPANEL_ERR_FESECRETWORD_WHATTODO_SOLO')
@sprintf('COM_AKEEBA_CPANEL_ERR_FESECRETWORD_WHATTODO_COMMON', $this->newSecretWord)
</p>
<p>
<a class="akeeba-btn--green--large"
href="@route('index.php?view=Main&task=resetSecretWord&' . $token . '=1')">
<span class="akion-android-refresh"></span>
@lang('COM_AKEEBA_CPANEL_BTN_FESECRETWORD_RESET')
</a>
</p>
</div>
@endunless
{{-- Old PHP version reminder --}}
@include('Main/warning_phpversion')
{{-- You need to enter your Download ID --}}
@if ($this->needsDownloadId)
<div class="akeeba-block--success">
<h3>
@lang('COM_AKEEBA_CPANEL_MSG_MUSTENTERDLID')
</h3>
<p>
@if($inCMS)
@sprintf('COM_AKEEBA_LBL_CPANEL_NEEDSDLID', 'https://www.akeeba.com/instructions/1557-akeeba-solo-download-id-2.html')
@else
@sprintf('COM_AKEEBA_LBL_CPANEL_NEEDSDLID', 'https://www.akeeba.com/instructions/1539-akeeba-solo-download-id.html')
@endif
</p>
<form name="dlidform" action="@route('index.php?view=main')" method="post"
class="akeeba-form--inline">
<input type="hidden" name="task" value="applyDownloadId"/>
<input type="hidden" name="token"
value="@token()">
<div class="akeeba-form-group">
<label for="dlid">
@lang('COM_AKEEBA_CPANEL_MSG_PASTEDLID')
</label>
<input type="text" id="dlid" name="dlid"
placeholder="@lang('COM_AKEEBA_CONFIG_DOWNLOADID_LABEL')" class="form-control">
</div>
<div class="akeeba-form-group--actions">
<button type="submit" class="akeeba-btn--green">
<span class="akion-checkmark"></span>
@lang('COM_AKEEBA_CPANEL_MSG_APPLYDLID')
</button>
</div>
</form>
</div>
@endif
{{-- You have CORE; you need to upgrade, not just enter a Download ID --}}
@if ($this->warnCoreDownloadId)
<div class="akeeba-block--failure">
@lang('SOLO_MAIN_LBL_NEEDSUPGRADE')
</div>
@endif
<div class="akeeba-block--failure" style="display: none;" id="cloudFlareWarn">
<h3>@lang('COM_AKEEBA_CPANEL_MSG_CLOUDFLARE_WARN')</h3>
<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>
</div>