Формирует форму отправки отзыва.
332795
public static function getReviewForm($submit_label = 'Send') {
    $form = \Drupal::formBuilder()->getForm('Drupal\site_reviews\Form\SiteReviewsCreateForm', $submit_label);
    return \Drupal::service('renderer')->render($form, FALSE);
  }
618327
public function postChangeData()
	{
		$data = Input::all();

		//проверяем данные
		$errors = $this->getErrorFromChangeData($data);
		if ($errors) {
			return $errors;
		}

		//Проверяем текущий пароль
		$user_id = Config::get('ff-qiwi-gate::user_id');
		$currentMerchant = Merchant::find($user_id);
		if ($data['oldPassword'] != $currentMerchant->password) {
			$result['errors'] = array(
				'username'        => '',
				'callback'        => '',
				'email'           => '',
				'key'             => '',
				'password'        => '',
				'confirmPassword' => '',
				'oldPassword'     => 'Неверный пароль',
			);

			return $result;
		}

		//Изменяем данные
		$merchant = Merchants::ChangeMerchant($currentMerchant, $data);
		if ($merchant) {
			$message = 'Данные изменены';

			return array('message' => $message);
		}
		$result['errors'] = array(
			'oldPassword' => 'Ошибка, попробуйте ещё раз.',
		);

		return $result;

	}
542447
function insert()
    {
        # Получение данных
        $item = array(
            'name' => arg('name', 'dbsafe'),
            'login' => arg('login', '/[^a-z0-9_]/'),
            'access' => arg('access', 'int'),
            'hash' => Eresus_CMS::getLegacyKernel()->password_hash(arg('pswd1')),
            'mail' => arg('mail', 'dbsafe'),
        );
        # Проверка входных данных
        $error = false;
        if (empty($item['name']))
        {
            Eresus_Kernel::app()->getPage()->addErrorMessage(admUsersNameInvalid);
            $error = true;
        }
        if (empty($item['login']))
        {
            Eresus_Kernel::app()->getPage()->addErrorMessage(admUsersLoginInvalid);
            $error = true;
        }
        if ($item['access'] <= ROOT)
        {
            Eresus_Kernel::app()->getPage()->addErrorMessage('Invalid access level!');
            $error = true;
        }
        if ($item['hash'] != Eresus_CMS::getLegacyKernel()->password_hash(arg('pswd2')))
        {
            Eresus_Kernel::app()->getPage()->addErrorMessage(admUsersConfirmInvalid);
            $error = true;
        }
        # Проверка данных на уникальность
        $check = $this->accounts->get("`login` = '{$item['login']}'");
        if ($check)
        {
            Eresus_Kernel::app()->getPage()->addErrorMessage(admUsersLoginExists);
            $error = true;
        }
        if ($error)
        {
            saveRequest();
            HTTP::redirect(Eresus_CMS::getLegacyKernel()->request['referer']);
        }
        if (!$this->accounts->add($item))
        {
            Eresus_Kernel::app()->getPage()->addErrorMessage('Error creating user account');
        }
        HTTP::redirect(arg('submitURL'));
    }
342612
public function register()
    {
        // Регистрируем конкретный сторэйдж из списка доступных.
        $this->app->singleton(StorageInterface::class, function (Container $app) {
            // Defined driver
            $selectedDriver = config('api-tester.storage_driver');
            $driverClassName = config('api-tester.storage_drivers')[$selectedDriver];
            $requestCollection = $app->make(RequestCollection::class);

            if ($selectedDriver === 'firebase'){
                $tokenGenerator = $app->make(TokenGenerator::class);
                $base = config('api-tester.storage_drivers.firebase.options.base');

                return new FireBaseStorage($requestCollection, $tokenGenerator, $base);
            }

            if ($selectedDriver === 'file'){
                $fileSystem = $app->make(Filesystem::class);
                $path = config('api-tester.storage_drivers.file.options.path');

                return new JsonStorage($fileSystem, $requestCollection, $path);
            }

            throw new Exception("Driver $selectedDriver doesn't exist. Use either 'firebase' or 'file'.");
        });

        // Регистрация токен-генератора. Привязывается к ключу а не классу,
        // чтобы не конфликтовать с пользовательским генератором токенов.
        $this->app->singleton('api-tester.token_generator', function (Container $app) {
            $config = $app['config']['api-tester.storage_drivers.firebase.token'];
            return (new TokenGenerator($config['secret']))
                ->setOptions($config['options'])
                ->setData($config['data']);
        });

        // Подсовываем генератор в сторэйдж
        $this->app
            ->when(FireBaseStorage::class)
            ->needs(TokenGenerator::class)
            ->give('api-tester.token_generator');
    }
49911
public function save()
    {
        $this->_slug = trim(trim($this->_slug), '/');
        if (is_null($this->_slugModel) || $this->_slugModel->slug !== $this->_slug) {
            //Если уже есть запись с таким slug то обновим её присвоев её максимальный id + 1
            $model = SeoSlug::find()
                ->where([
                    'AND',
                    ['=', 'model', $this->owner->className()],
                    ['=', 'model_id', $this->owner->getPrimaryKey()],
                    ['=', 'slug', $this->_slug],
                ])
                ->one();
            if ($model) {
                $maxId = SeoSlug::find()
                    ->max('id');
                $oldId = $model->id;
                $model->id = ++$maxId;
                $model->save();
                SeoSlug::updateAllCounters(['id' => -1], [
                    'AND',
                    ['>', SeoSlug::tableName() . '.id', $oldId],
                ]);
            } else {
                $model = new SeoSlug();
                $model->model = $this->owner->className();
                $model->model_id = $this->owner->getPrimaryKey();
            }
            $model->slug = $this->_slug;
            $model->save();
            if (is_callable($this->afterSave)) {
                call_user_func($this->afterSave, $this);
            }
        }
    }
1128099
protected function checkEnvironment()
    {
        $errors = array();

        /* Проверяем наличие нужных файлов */
        $required = array('cfg/main.php');
        foreach ($required as $filename)
        {
            if (!file_exists($filename))
            {
                $errors []= array('file' => $filename, 'problem' => 'missing');
            }
        }

        /* Проверяем доступность для записи */
        $writable = array(
            'cfg/settings.php',
            'var',
            'data',
            'templates',
            'style'
        );
        foreach ($writable as $filename)
        {
            if (!is_writable($filename))
            {
                $errors []= array('file' => $filename, 'problem' => 'non-writable');
            }
        }

        if ($errors)
        {
            if (!Eresus_Kernel::isCLI())
            {
                require_once 'errors.html.php';
            }
            else
            {
                die("Errors...\n"); // TODO Доделать
            }
        }
    }
178604
public function actionForget()
    {
        $rr = new RequestResponse();
        $model = new PasswordResetRequestFormEmailOrLogin();
        //Не админка
        $model->isAdmin = false;

        //Запрос на валидацию ajax формы
        if ($rr->isRequestOnValidateAjaxForm()) {
            return $rr->ajaxValidateForm($model);
        }
        //Запрос ajax post
        if ($rr->isRequestAjaxPost()) {
            if ($model->load(\Yii::$app->request->post()) && $model->sendEmail()) {
                $rr->success = true;
                $rr->message = 'Проверьте ваш email, дальнейшие инструкции мы отправили туда';
            } else {
                $rr->message = 'Не удалось выполнить запрос на восстановление пароля';
            }

            return (array)$rr;

        } else {
            if (\Yii::$app->request->isPost) {
                if ($model->load(\Yii::$app->request->post()) && $model->sendEmail()) {
                    if ($ref = UrlHelper::getCurrent()->getRef()) {
                        return $this->redirect($ref);
                    } else {
                        return $this->goBack();
                    }
                }
            }
        }

        return $this->render('forget', [
            'model' => $model,
        ]);
    }
683
public function startImport(array &$form, FormStateInterface $form_state) {
        // Выполняет стандартную валидацию полей формы и добавляет примечания об ошибках.
        ConfigFormBase::validateForm($form, $form_state);

        if (!$form_state->getValue('validate_error')) {
            $config = $this->config('site_commerce.drupal7import');

            $fid = $config->get('fid');
            $skip_first_line = $config->get('skip_first_line');            
            $chunk_size = $config->get('chunk_size');            

            if ($fid) {
                $import = new SiteCommerceDrupal7BatchImport($fid, $skip_first_line, $chunk_size);
                $import->setBatch();
            }
        }
    }
1011068
public static function getExtension($mime_type)
    {
		// Обработаем тип получаемого файла и вернем его расширение если файл поддерживается
        if (isset(self::$MIMEExtension[$mime_type])) return self::$MIMEExtension[$mime_type];

		// Ничего не вышло =(
		return FALSE;
	}
213580
static function save_file($entity, $file)
    {
        // Обработка файла у объекта и его свойств
        $f = File::fileInfo($file['tmp_name']);
        $name = ($f['back'] ? '../' : '') . $entity->name();
        // расширение
        if (empty($file['name'])) {
            if ($f['ext']) $name .= '.' . $f['ext'];
        } else {
            $f = File::fileInfo($file['name']);
            if ($f['ext']) $name .= '.' . $f['ext'];
        }
        //
        $path = $entity->dir(true) . $name;
        if ($file['tmp_name'] != $path) {
            if (!File::upload($file['tmp_name'], $path)) {
                // @todo Проверить безопасность?
                // Копирование, если объект-файл создаётся из уже имеющихся на сервере файлов, например при импорте каталога
                if (!File::copy($file['tmp_name'], $path)) {
                    $name = null;
                }
            }
        }
        return $name;
    }
470180
function generate_log_message(parameters)
{
	// преобразовать все аргументы функции в текстовый вид
	return parameters.map(argument =>
	{
		// преобразование объектов в строку
		if (typeof argument === 'object')
		{
			// для ошибок - распечатывать стек вызовов
			if (argument instanceof Error)
			{
				return argument.stack
			}
			// для остальных объектов вызывать JSON.stringify()
			return JSON.stringify(argument, null, 2)
		}
		// если undefined
		if (typeof argument === 'undefined')
		{
			return '[undefined]'
		}
		// прочие переменные - просто .toString()
		return argument.toString()
	})
	// собрать всё это в одну строку через пробел
	.reduce((message, argument) =>
	{
		if (message.length > 0)
		{
			message += ' '
		}
		return message + argument
	},
	'')
}
401386
function send(data, params) {
    const p = params;
    const {
        name = '',
        cache,
        query,
        mime,
        response,
    } = params;
    
    checkParams(params);
    
    const isGzip = p.gzip && isGZIP(p.request);
    const head = generateHeaders({
        name,
        cache,
        query,
        mime,
        gzip: isGzip,
    });
    
    fillHeader(head, response);
    
    logData(data);
    
    /* если браузер поддерживает gzip-сжатие - сжимаем данные*/
    exec.if(!isGzip,
        () => {
            if (!p.data)
                p.data = data;
            
            response.statusCode = p.status || OK;
            response.end(p.data);
        },
        
        (callback) => {
            zlib.gzip(data, (error, data) => {
                if (!error)
                    p.data = data;
                else {
                    p.status = FILE_NOT_FOUND;
                    p.data = error.message;
                }
                
                callback();
            });
        });
}
314895
public function output()
    {
        // Получим последнюю ошибку системы
        $lerror = error_get_last();

        // Коды ошибок которые останавливают скрипт
        $fatal_codes = array(1, 4, 16, 64);

        // Если была фатальная ошибка преобразуем её для вывода
        if (isset($lerror) && in_array($lerror['type'], $fatal_codes)) {
            // Выполним обработчик ошибки и преобразование её в наше представление
            $this->handler($lerror['type'], $lerror['message'], $lerror['file'], $lerror['line'], null, debug_backtrace(FALSE));
        }

        // Соберем представление ошибок в HTML
        $html = '';

        // Выведем файл CSS стилей, если он есть! и были ошибки
        if (sizeof($this->errors) && isset(self::$css{0})) $html .= '<style>' . self::$css . '</style>';

        // Индекс
        $index = 0;

        // Переберем ошибки которые были при выполнения скрипта
        foreach ($this->errors as & $error) {
            if ($error['class'] == '_core_debug') $html .= '<div class="_core_error _core_debug">' . $error['message'] . '</div>';
            else {
                $id = rand(0, 999999999) . rand(0, 9999999999);
                // Выведем ошибку
                $html .= '<div class="_core_error ' . $error['class'] . '">
						<input type="checkbox" id="eb_' . $id . '" class="_core_error_check_box">
						<label for="eb_' . $id . '" class="_core_error_label">
						<span class="_core_error_type">' . $error['type'] . '</span>
						<span class="_core_error_file">' . $error['file'] . '</span>
						<span class="_core_error_line">, стр. ' . $error['line'] . '</span>
						' . $error['message'] . '</label>
					</div>';
            }

            // Удалим ошибку которую мы вывели что бы она не вылезла внизу страницы повторно
            unset($this->errors[$index++]);
        }

        // Выведем блок для завершения вывода
        if ($index) $html .= '<div style="clear:both;"></div>';

        /*
        // Если єто отпечаток сайта - отправим ошибку на почту
        if( isset($GLOBALS["__CORE_SNAPSHOT"]) && $index )
        try { 	mail_send( 'info@samsonos.com','error@samsonos.com', $html, 'Ошибка PHP:'.url()->build() );	}
        catch (Exception $e) {}
        */

        // Если вывод ошибок включен
        if (self::$OUTPUT) echo $html;
    }
1055287
function get_external() {
        if (!count($this->js_external))
            return '';
        //если не надо собирать все в один билд-файл
        if (!$this->get_need_build_external()) {
            $js_code = '';
            foreach ($this->js_external as $js => $_js) {
                $condition = \Arr::get($_js, 'condition');
                //если надо подключать все по отдельности
                $js_code .= $this->get_link($js, $condition) . "\n";
            }
            return $js_code;
        } else {
            $build = array();
            $no_build = array();
            $js_code = '';
            foreach ($this->js_external as $js => $_js) {
                $condition = \Arr::get($_js, 'condition');
                if (\Arr::get($_js, 'no_build')) {
                    $no_build[$condition][] = $js;
                } else {
                    $build[$condition][] = $js;
                }
            }
            foreach ($no_build as $condition => $js) {
                $condition = \Arr::get($_js, 'condition');
                foreach ($js as $url) {
                    $js_code .= $this->get_link($url, $condition) . "<!-- no build -->" . PHP_EOL;
                }
            }
            foreach ($build as $condition => $js) {
                $build_name = $this->make_file_name($this->js_external, 'js/external' . ($condition ? '/' . $condition : ''), 'js');
                $build_file = Helper::build_file($build_name);
                if (!file_exists($build_file)) {
                    //соберем билд в первый раз
                    $build = array();
                    foreach ($js as $url) {
                        $_js = $this->get_source($url);
                        $_js = $this->prepare($_js, $this->get_need_min_external());
                        $build[] = $_js;
                    }
                    //если требуется собирать инлайн скрипты в один внешний файл
                    $this->require_build($build_name, implode("\n", $build));
                }
                $js_code .= $this->get_link(Helper::build_url($build_name), $condition) . PHP_EOL;
            }
            //$build_name = $this->make_file_name($this->js_inline, 'js/onload', 'js');
            return $js_code;
        }
    }
1238532
protected function adaptVisitsUsersSearchEngine()
    {
        $dataArray = [];

        //Формируем массив
        foreach ($this->data['data'] as $item) {
            $dataArray['data'][] = [
                'searchEngine' => $item['dimensions'][0]['name'],
                'users'        => $item['metrics'][0]              //Юзеры
            ];
        }

        //Итого
        $dataArray['totals'] = [
            'users' => $this->data['totals'][0],
        ];

        $this->adaptData = $dataArray;
    }
1182613
public function adminRenderContent()
    {
        $result = '';
        /* @var TAdminUI $page */
        $page = Eresus_Kernel::app()->getPage();
        switch (true)
        {
            /*
             * Управление группами
             * Этот блок должен располагаться до блока управления изображениями из-за того что иначе
             * наличие аргумента id может быть ошибочно расценено как запрос на диалог изменения
             * изображения.
             */
            case arg('action') == 'group':
                $result = $this->adminRenderGroupsList();
                break;
            case arg('group_id') !== null:
                $result = $this->adminEditGroupDialog();
                break;
            case arg('action') == 'group_create':
                $result = $this->adminAddGroupDialog();
                break;
            case arg('action') == 'group_insert':
                $this->adminInsertGroup();
                break;
            case arg('action') == 'group_update':
                $this->adminUpdateGroup();
                break;
            case arg('group_up') !== null:
                $this->adminMoveUpGroup();
                break;
            case arg('group_down') !== null:
                $this->adminMoveDownGroup();
                break;
            case arg('group_delete') !== null:
                $this->adminDeleteGroup();
                break;
            /* Управление изображениями */
            case arg('action') == 'create':
                $result = $this->adminAddItem();
                break;
            case arg('id') !== null:
                $result = $this->adminEditItem();
                break;
            case arg('update') !== null:
                $this->adminUpdateImage();
                break;
            case arg('toggle') !== null:
                $this->adminImageToggle(arg('toggle', 'int'));
                break;
            case arg('cover') !== null:
                $this->coverAction();
                break;
            case arg('delete') !== null:
                $this->delete(arg('delete', 'int'));
                break;
            case arg('up') !== null:
                $this->up(arg('up', 'int'));
                break;
            case arg('down') !== null:
                $this->down(arg('down', 'int'));
                break;
            /* Управление свойствами галереи */
            case arg('action') == 'props':
                $result = $this->adminRenderProperties();
                break;
            case arg('action') == 'props_update':
                $this->updateProperties();
                break;
            /* Действие по умолчанию */
            default:
                $result = $this->adminRenderImagesList();
                break;
        }

        /*
         * Кнопки-"вкладки"
         */
        $tabs = array('width' => '14em', 'items' => array());
        $tabs['items'] []= array(
            'caption' => 'Изображения',
            'url' => preg_replace('/&(id|pg)=\d+/', '', $page->url(null)),
        );

        if ($this->settings['useGroups'])
        {
            $tabs['items'] []= array(
                'caption' => 'Группы',
                'url' => preg_replace('/&(id|pg)=\d+/', '', $page->url(array('action' => 'group'))),
            );
        }

        $tabs['items'] []= array(
            'caption' => 'Свойства галереи',
            'url' => preg_replace('/&(id|pg)=\d+/', '', $page->url(array('action' => 'props'))),
        );

        $result = $page->renderTabs($tabs) . $result;

        return $result;
    }
1361899
protected function fileOlderTokens()
    {
        // Выполняем задачу каждые 5 минут
        try {
            $this->jobby->add(SettingsCron::NAME_PREFIX . 'FileOlderTokens', [
                'enabled'  => true,
                'schedule' => '*/5 * * * *', // Каждые 5 минут
                'closure'  => function () {
                    new Cron();

                    (new FileOlderTokens)->clear();

                    return true;
                },
            ]);
        } catch (Exception $e) {
            file_put_contents(SettingsCron::LOG_FILE, $e->getMessage());
        }
    }