99 lines
2.5 KiB
PHP
99 lines
2.5 KiB
PHP
<?php
|
|
/**
|
|
* @package solo
|
|
* @copyright Copyright (c)2014-2019 Nicholas K. Dionysopoulos / Akeeba Ltd
|
|
* @license GNU GPL version 3 or later
|
|
*/
|
|
|
|
namespace Solo\Controller;
|
|
|
|
|
|
use Awf\Text\Text;
|
|
|
|
class Alice extends ControllerDefault
|
|
{
|
|
public function ajax()
|
|
{
|
|
/** @var \Solo\Model\Alice $model */
|
|
$model = $this->getModel();
|
|
|
|
$model->setState('ajax', $this->input->get('ajax', '', 'cmd'));
|
|
$model->setState('log', $this->input->get('log', '', 'cmd'));
|
|
|
|
$ret_array = $model->runAnalysis();
|
|
|
|
@ob_end_clean();
|
|
header('Content-type: text/plain');
|
|
echo '###' . json_encode($ret_array) . '###';
|
|
flush();
|
|
|
|
$this->container->application->close();
|
|
}
|
|
|
|
public function domains()
|
|
{
|
|
$return = array();
|
|
$domains = \AliceUtilScripting::getDomainChain();
|
|
|
|
foreach($domains as $domain)
|
|
{
|
|
$return[] = array($domain['domain'], $domain['name']);
|
|
}
|
|
|
|
@ob_end_clean();
|
|
header('Content-type: text/plain');
|
|
echo '###'.json_encode($return).'###';
|
|
flush();
|
|
|
|
$this->container->application->close();
|
|
}
|
|
|
|
/**
|
|
* Translates language key in English strings
|
|
*/
|
|
public function translate()
|
|
{
|
|
$return = array();
|
|
$strings = $this->input->getString('keys', '');
|
|
$strings = json_decode($strings);
|
|
|
|
// Text always loads all the languages, so we have to convince him very hard to do what we want
|
|
// First of all let's empty the $strings variable
|
|
$property = new \ReflectionProperty('\Awf\Text\Text', 'strings');
|
|
$property->setAccessible(true);
|
|
$property->setValue(array());
|
|
|
|
// Then load only the English language
|
|
Text::loadLanguage('en-GB', 'akeebabackup', '.com_akeebabackup.ini', false, $this->container->languagePath);
|
|
Text::loadLanguage('en-GB', 'akeeba', '.com_akeeba.ini', false, $this->container->languagePath);
|
|
|
|
foreach ($strings as $string)
|
|
{
|
|
$temp['check'] = Text::_($string->check);
|
|
|
|
// If I have an array, it means that I have to use sprintf to translate the error
|
|
if (is_array($string->error))
|
|
{
|
|
$trans[] = Text::_($string->error[0]);
|
|
$args = array_merge($trans, array_slice($string->error, 1));
|
|
$error = call_user_func_array('sprintf', $args);
|
|
}
|
|
else
|
|
{
|
|
$error = Text::_($string->error);
|
|
}
|
|
|
|
$temp['error'] = $error;
|
|
|
|
$return[] = $temp;
|
|
}
|
|
|
|
@ob_end_clean();
|
|
header('Content-type: text/plain');
|
|
echo '###' . json_encode($return) . '###';
|
|
flush();
|
|
|
|
$this->container->application->close();
|
|
}
|
|
}
|