| Server IP : 81.19.159.101 / Your IP : 216.73.217.111 Web Server : Apache System : Linux www58.world4you.com 4.18.0-553.126.2.lve.el8.x86_64 #1 SMP Thu May 28 14:12:30 UTC 2026 x86_64 User : ftp8817043 ( 2681) PHP Version : 8.4.21 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/.sites/103/site8817043/web/wp-content/plugins/akeebabackupwp/app/Solo/View/Dbfilters/ |
Upload File : |
<?php
/**
* @package solo
* @copyright Copyright (c)2014-2025 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
namespace Solo\View\Dbfilters;
use Awf\Html\Select;
use Awf\Mvc\View;
use Awf\Text\Text;
use Awf\Uri\Uri;
use Awf\Utils\Template;
use Solo\Helper\Escape;
use Solo\Model\Dbfilters;
use Solo\View\ViewTraits\ProfileIdAndName;
class Html extends View
{
use ProfileIdAndName;
/**
* SELECT element for choosing a database root
*
* @var string
*/
public $root_select = '';
/**
* List of database roots
*
* @var array
*/
public $roots = [];
/**
* Prepare the view data for the main task
*
* @return boolean
*/
public function onBeforeMain()
{
Template::addJs('media://js/solo/fsfilters.js', $this->container->application);
Template::addJs('media://js/solo/dbfilters.js', $this->container->application);
/** @var Dbfilters $model */
$model = $this->getModel();
$task = $model->getState('browse_task', 'normal', 'cmd');
$router = $this->container->router;
// Add custom submenus
$toolbar = $this->container->application->getDocument()->getToolbar();
$toolbar->addSubmenuFromDefinition([
'name' => 'normal',
'title' => Text::_('COM_AKEEBA_FILEFILTERS_LABEL_NORMALVIEW'),
'url' => $router->route('index.php?view=dbfilters&task=normal'),
]);
$toolbar->addSubmenuFromDefinition([
'name' => 'tabular',
'title' => Text::_('COM_AKEEBA_FILEFILTERS_LABEL_TABULARVIEW'),
'url' => $router->route('index.php?view=dbfilters&task=tabular'),
]);
// Get a JSON representation of the available roots
$root_info = $model->get_roots();
$roots = [];
$options = [];
if (!empty($root_info))
{
// Loop all db definitions
foreach ($root_info as $def)
{
$roots[] = $def->value;
$options[] = $this->getContainer()->html->select->option( $def->value, $def->text);
}
}
$siteRoot = $roots[0];
$selectOptions = [
'list.select' => $siteRoot,
'id' => 'active_root',
];
$this->root_select = $this->getContainer()->html->select->genericList($options, 'root', $selectOptions);
$this->roots = $roots;
$document = $this->container->application->getDocument();
$document->addScriptOptions('akeeba.System.params.AjaxURL', $router->route('index.php?view=Dbfilters&task=ajax'));
switch ($task)
{
case 'normal':
default:
$this->setLayout('default');
// Get a JSON representation of the directory data
$document->addScriptOptions('akeeba.DatabaseFilters.guiData', $model->make_listing($siteRoot));
$document->addScriptOptions('akeeba.DatabaseFilters.viewType', 'list');
break;
case 'tabular':
$this->setLayout('tabular');
// Get a JSON representation of the tabular filter data
$document->addScriptOptions('akeeba.DatabaseFilters.guiData', [
'list' => $model->get_filters($siteRoot)
]);
$document->addScriptOptions('akeeba.DatabaseFilters.viewType', 'tabular');
break;
}
// Load the Javascript language strings
$doc = $this->container->application->getDocument();
$doc->lang('COM_AKEEBA_FILEFILTERS_LABEL_UIROOT');
$doc->lang('COM_AKEEBA_FILEFILTERS_LABEL_UIERRORFILTER');
$doc->lang('COM_AKEEBA_FILEFILTERS_LABEL_UIERRORFILTER');
$doc->lang('COM_AKEEBA_DBFILTER_TYPE_TABLES');
$doc->lang('COM_AKEEBA_DBFILTER_TYPE_TABLEDATA');
$doc->lang('COM_AKEEBA_DBFILTER_TABLE_MISC');
$doc->lang('COM_AKEEBA_DBFILTER_TABLE_TABLE');
$doc->lang('COM_AKEEBA_DBFILTER_TABLE_VIEW');
$doc->lang('COM_AKEEBA_DBFILTER_TABLE_PROCEDURE');
$doc->lang('COM_AKEEBA_DBFILTER_TABLE_FUNCTION');
$doc->lang('COM_AKEEBA_DBFILTER_TABLE_TRIGGER');
$doc->lang('COM_AKEEBA_DBFILTER_TABLE_META_ROWCOUNT');
$this->getProfileIdAndName();
return true;
}
/**
* The normal task simply calls the method for the main task
*
* @return boolean
*/
public function onBeforeNormal()
{
return $this->onBeforeMain();
}
/**
* The tabular task simply calls the method for the main task
*
* @return boolean
*/
public function onBeforeTabular()
{
return $this->onBeforeMain();
}
}