Помощник вида для пагинатора со стилем вывода "JUMPING".
8071
public function jumping(IPaginator $paginator, $pagesCountInRange)
    {
        $this->checkPagesCountInRange($pagesCountInRange);

        return $this->buildContext($paginator) + [
            'pagesRange' => $this->jumpingBuildPagesRange($paginator, $pagesCountInRange)
        ];
    }
132916
function on() {
        if($this->is_used) {
            return true;
        }
        $route   = \Route::currentRouteName();
        $exclude = self::maxIs($this->exclude, $route);
        $include = self::maxIs($this->include, $route);
        if($exclude > $include || true === $exclude) {
            // исключаем
        } else {
            // подключаем
            //сперва подключим на страницу зависимости
            foreach((array) $this->require as $require => $scopes) {
                Manager::package($require)
                    ->on();
            }
            
            foreach($this->deferred_scopes as $scope) {
                $this->scope($scope);
            }
            
            //затем подключим CSS
            foreach($this->css as $url => $item) {
                $condition = Arr::get($item, 'condition', null);
                $media     = Arr::get($item, 'media', null);
                $no_build  = (bool) Arr::get($item, 'no_build', false);
                Css::instance()
                    ->add($url, $media, $condition, $no_build);
            }
            //затем подключим JS
            foreach($this->js as $url => $item) {
                $condition = Arr::get($item, 'condition', null);
                $no_build  = (int) Arr::get($item, 'no_build', false);
                Js::instance()
                    ->add($url, $condition, $no_build);
            }
        }
        $this->is_used = true;
        
        return true;
    }
1344179
function(model, requestId) {
        // модель надо запросить
        this._keys[model.key] = {
            status: this.STATUS.LOADING,
            model: model
        };
        model.prepareRequest(requestId);
    }
1156959
function () {
            // все аргументы, кроме последнего считаются необходимыми зависимостями
            var depsList = franky.toArray(arguments).slice(0, arguments.length - 1),
            // последний аргумент - функция в которую уйдут удовлетворенные зависимости
                callback = arguments[arguments.length - 1];
            // обработка зависимостей
            depsList = franky.map(depsList, function (depsItem) {
                if (!libs[depsItem]) {
                    throw new Error('Unmet dependency:' + depsItem);
                }
                // если модуль представляет из себя синглтон - кешируем его
                if (cached[depsItem]) {
                    libs[depsItem] = franky.isFunction(libs[depsItem]) ? libs[depsItem]() : libs[depsItem];
                    return libs[depsItem];
                } else {
                    return libs[depsItem]();
                }
            });

            // пробрасываем удовлетворенные зависимости
            callback.apply(this, depsList);

            return this;
        }
1253960
private function adminAddItem()
    {
        $request = Eresus_CMS::getLegacyKernel()->request;
        if ('POST' == $request['method'])
        {
            $image = new Gallery_Entity_Image();
            $image->section = arg('section');
            $image->groupId = arg('group') ? arg('group') : 0;
            $_SESSION['gallery_default_group'] = arg('group');
            $image->title = arg('title');
            $image->cover = arg('cover') ? arg('cover') : false;
            $image->active = arg('active');
            $image->posted = new DateTime();
            $image->image = 'image'; // $_FILES['image'];

            if ($this->isImageInputValid($image))
            {
                $table = ORM::getTable($this, 'Image');
                try
                {
                    $table->persist($image);
                }
                catch (Gallery_Exception_FileTooBigException $e)
                {
                    throw new DomainException('Размер загружаемого файла превышает максимально допустимый');
                }

                $url = 'admin.php?mod=content&section=' . $image->section;
                if (arg('pg'))
                {
                    $url .= '&pg=' . arg('pg', 'int');
                }
                HTTP::redirect($url);
            }
        }

        Eresus_Kernel::app()->getPage()->linkStyles($this->urlCode . 'admin.css');

        // Данные для подстановки в шаблон
        $data = array();
        $data['this'] = $this;
        $data['page'] = Eresus_Kernel::app()->getPage();
        $data['sectionId'] = arg('section', 'int');
        $data['defaultGroup'] = isset($_SESSION['gallery_default_group'])
            ? $_SESSION['gallery_default_group']
            : null;
        $data['image'] = isset($image) ? $image : null;

        if ($this->settings['useGroups'])
        {
            $data['groups'] = $this->dbSelect('groups', "`section` = " . arg('section', 'int'),
                'position');
        }

        // Создаём экземпляр шаблона
        $tmpl = $this->templates()->admin('add-image.html');

        // Компилируем шаблон и данные
        $html = $tmpl->compile($data);

        return $html;
    }
42313
public function startImport(array &$form, FormStateInterface $form_state) {
        // Выполняет стандартную валидацию полей формы и добавляет примечания об ошибках.
        ConfigFormBase::validateForm($form, $form_state);

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

            $fid = $config->get('fid');
            $skip_first_line = $config->get('skip_first_line');
            $delimiter = $config->get('delimiter');
            $enclosure = $config->get('enclosure');
            $chunk_size = $config->get('chunk_size');
            $plugin_id = $form_state->getValue('import_plugin');

            if ($plugin_id != "") {
                $import = new SiteGeoCSVBatchImport($plugin_id, $fid, $skip_first_line, $delimiter, $enclosure, $chunk_size);
                $import->setBatch();
            }
        }
    }
1172870
function run()
	{
		if(!$this->is_initialized)
			$this->init();

		if(!defined('BORS_SITE'))
			define('BORS_SITE', COMPOSER_ROOT);

		// Пробуем искать по-новому
		// ...
		// https://github.com/phpixie/http
		// http://habrahabr.ru/post/256639/

//		PHPixie пока не трогаем, там какой-то свой PSR-7.
//		$slice = new \PHPixie\Slice();
//		$http = new \PHPixie\HTTP($slice);
//		$request = $http->request();
//		r($request->server()->get('http_host'));
//		r($request->query()->uri());
//		r((string)$request->uri());

		$view = NULL;

		if($this->cfg('view.preset'))
			$view = $this->cfg('view.preset');

		// composer: zendframework/zend-diactoros
		if(!$view && class_exists('\\Zend\\Diactoros\\ServerRequestFactory'))
		{
			$request = \Zend\Diactoros\ServerRequestFactory::fromGlobals();
//			$request = \Slim\Http\Request::createFromEnvironment(new \Slim\Http\Environment($_SERVER));

//			r((string)$request->getUri());
//			r((string)$request->getMethod());

			$view = $this->route_view($request);
		}

		if($view)
		{
			$ret = $view->pre_show();

			if($ret)
				return $ret;

//			r($view);
			$response = $view->response();
			if($response)
			{
				// composer: slim/slim>3
				$app = new \Slim\App;
				$app->respond($response);
				return;
			}
		}

		// Если ничего не нашли, то запускаем старый движок.
		return \bors::run();
	}
2664
public function actionSubmit()
    {
        if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
            \Yii::$app->response->format = Response::FORMAT_JSON;

            $response = [
                'success' => false,
                'message' => 'Произошла ошибка',
            ];

            if (\Yii::$app->request->post('sx-model') && \Yii::$app->request->post('sx-model-value')) {
                $modelClass = \Yii::$app->request->post('sx-model');
                $modelValue = \Yii::$app->request->post('sx-model-value');
                /**
                 * @var RelatedElementModel $modelForm
                 */
                $modelForm = $modelClass::find()->where(['id' => $modelValue])->one();

                if (method_exists($modelForm, "createPropertiesValidateModel")) {
                    $validateModel = $modelForm->createPropertiesValidateModel();
                } else {
                    $validateModel = $modelForm->getRelatedPropertiesModel();
                }

                if ($validateModel->load(\Yii::$app->request->post()) && $validateModel->validate()) {
                    $validateModel->save();
                    $response['success'] = true;
                    $response['message'] = 'Успешно отправлена';

                } else {
                    $response['message'] = 'Форма заполнена неправильно';
                }

                return $response;
            }
        }
    }
120818
function get(passwd) {
    const users   = {};
    
    passwd
        .split('\n')
        .forEach((line) => {
            passwd = passwd.replace(line, '');
            
            /* получаем первое слово строки */
            const name = line.substr(line, line.indexOf(':'));
            
            line = line.replace(name + ':x:', '');
            
            /* получаем uid */
            const uid = line.substr(line, line.indexOf(':'));
            
            if (!uid)
                return;
            
            users[uid] = name;
        });
    
    return users;
}
1279198
function add($error, $message = '', $is_temp = false)
    {
        // Если был временным
        if (!$is_temp || ($error instanceof Error && !$error->is_temp)) $this->untemp();
        // Добавление подчиненного
        if (is_array($error)){
            foreach ($error as $e){
                $this->add($e, $message, $is_temp);
            }
        }else{
            if (!$error instanceof Error) $error = new Error($message, $error);
            if ($is_temp || $error->is_temp){
                $this->temps[$error->code] = $error;
                $this->temps[$error->code]->is_temp = true;
                $this->temps[$error->code]->parent = $this;
            }else{
                $this->children[$error->code] = $error;
                $this->children[$error->code]->parent = $this;
            }
            if ($message) $error->message = $message;
        }
        return $this;
    }
870112
public function actionRegisterByEmail()
    {
        if (!\Yii::$app->user->isGuest) {
            return $this->goHome();
        }

        $rr = new RequestResponse();
        $model = new SignupForm();

        $model->scenario = SignupForm::SCENARION_ONLYEMAIL;


        //Запрос на валидацию ajax формы
        if ($rr->isRequestOnValidateAjaxForm()) {
            return $rr->ajaxValidateForm($model);
        }
        //Запрос ajax post
        if ($rr->isRequestAjaxPost()) {

            $t = \Yii::$app->db->beginTransaction();

            try {

                if ($model->load(\Yii::$app->request->post()) && $registeredUser = $model->signup()) {

                    $t->commit();

                    $rr->success = true;
                    $rr->message = 'Для дальнейших действий, проверьте вашу почту.';

                    return $rr;

                } else {
                    $rr->message = 'Не удалось зарегистрироваться';
                }

            } catch (\Exception $e) {
                $t->rollBack();
                throw $e;
            }


            return (array)$rr;

        }

        return $this->render('register', [
            'model' => $model,
        ]);
    }
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'));
    }
1346779
function validateData(data){
  /* Создаем промис */
  return new Promise(function(resolve, reject){
    if(
      (data.password == "iddqd")
      &&(data.login == "Carmak")
    ){
      /* Все верно, пользователь авторизирован */
      resolve(data);
    }else{
      /* Ошибка при вводе данных */
      reject(new Error('Ошибка при вводе логина или пароля'));
    }
  });
}
1089302
function() {
        var builder = this.builder;

        builder.register( 'View', new ViewBuilder() );
        builder.register( 'InlineView', new InlineViewBuilder() );
        builder.register( 'AutoView', new MetadataViewBuilder() );

        builder.register( 'StackPanel', new StackPanelBuilder() );
        builder.register( 'GridPanel', new GridPanelBuilder() );
        builder.register( 'ScrollPanel', new ScrollPanelBuilder() );
        builder.register( 'Panel', new PanelBuilder() );
        builder.register( 'ScrollPanel', new ScrollPanelBuilder() );
        builder.register( 'ViewPanel', new ViewPanelBuilder() );
        builder.register( 'TabPanel', new TabPanelBuilder() );
        builder.register( 'TabPage', new TabPageBuilder() );

        builder.register( 'TablePanel', new TablePanelBuilder() );
        builder.register( 'Cell', new CellBuilder() );
        builder.register( 'Row', new RowBuilder() );

        builder.register( 'MenuBar', new MenuBarBuilder() );

        builder.register( 'DataGrid', new DataGridBuilder() );
        // служебный элемент, в документировании не нуждается
        builder.register( 'DataGridRow', new DataGridRowBuilder() );

        builder.register( 'DataGridColumn', new DataGridColumnBuilder() );
        builder.register( 'ListBox', new ListBoxBuilder() );

        builder.register( 'TextBox', new TextBoxBuilder() );
        builder.register( 'PasswordBox', new PasswordBoxBuilder() );
        builder.register( 'CheckBox', new CheckBoxBuilder() );
        builder.register( 'IndeterminateCheckBox', new IndeterminateCheckBoxBuilder() );
        builder.register( 'ImageBox', new ImageBoxBuilder() );
        builder.register( 'FileBox', new FileBoxBuilder() );
        builder.register( 'Label', new LabelBuilder() );
        builder.register( 'Link', new LinkBuilder() );
        builder.register( 'Form', new FormBuilder() );
        builder.register( 'Icon', new IconBuilder() );
        builder.register( 'DateTimePicker', new DateTimePickerBuilder() );
        builder.register( 'DatePicker', new DatePickerBuilder() );
        builder.register( 'TimePicker', new TimePickerBuilder() );
        builder.register( 'ToggleButton', new ToggleButtonBuilder() );
        builder.register( 'NumericBox', new NumericBoxBuilder() );
        builder.register( 'Button', new ButtonBuilder() );
        builder.register( 'ToolBar', new ToolBarBuilder() );
        builder.register( 'ToolBarButton', new ButtonBuilder() );
        builder.register( 'ComboBox', new ComboBoxBuilder() );
        builder.register( 'RadioGroup', new RadioGroupBuilder() );
        builder.register( 'ExtensionPanel', new ExtensionPanelBuilder() );
        builder.register( 'PopupButton', new PopupButtonBuilder() );
        builder.register( 'DataNavigation', new DataNavigationBuilder() );
        builder.register( 'TreeView', new TreeViewBuilder() );
        builder.register( 'Frame', new FrameBuilder() );
        builder.register( 'ButtonEdit', new ButtonEditBuilder() );

        builder.register( 'RestDataSource', new RestDataSourceBuilder() );
        builder.register( 'DocumentDataSource', new DocumentDataSourceBuilder() );
        builder.register( 'PropertyBinding', new DataBindingBuilder() );
        builder.register( 'ObjectDataSource', new ObjectDataSourceBuilder() );
        builder.register( 'Parameter', new ParameterBuilder() );

        builder.register( 'AcceptAction', new AcceptActionBuilder() );
        builder.register( 'AddAction', new AddActionBuilder() );
        builder.register( 'CreateItemAction', new CreateItemActionBuilder() );
        builder.register( 'CancelAction', new CancelActionBuilder() );
        builder.register( 'DeleteAction', new DeleteActionBuilder() );
        builder.register( 'EditAction', new EditActionBuilder() );
        builder.register( 'OpenAction', new OpenActionBuilder() );
        builder.register( 'SaveAction', new SaveActionBuilder() );
        builder.register( 'SelectAction', new SelectActionBuilder() );
        builder.register( 'UpdateAction', new UpdateActionBuilder() );
        builder.register( 'ServerAction', new ServerActionBuilder() );

        builder.register( 'RouteToAction', new RouteToActionBuilder() );

        builder.register( 'BooleanFormat', new BooleanFormatBuilder() );
        builder.register( 'DateTimeFormat', new DateTimeFormatBuilder() );
        builder.register( 'NumberFormat', new NumberFormatBuilder() );
        builder.register( 'ObjectFormat', new ObjectFormatBuilder() );

        builder.register( 'Script', new ScriptBuilder() );

        builder.register( 'Divider', new DividerBuilder() );
        builder.register( 'ContextMenu', new ContextMenuBuilder() );

        // служебный элемент, в документировании не нуждается
        builder.register( 'ToolTip', new InfinniUI.TooltipBuilder() );

        var registerQueue = ApplicationBuilder.registerQueue;

        for( var i = 0, ii = registerQueue.length; i < ii; i++ ) {
            builder.register( registerQueue[ i ].name, registerQueue[ i ].builder );
        }
    }
1351910
function onFormInitialized() {
		parent::onFormInitialized();
		$this->addClass('df-font'); // 2016-07-30 This CSS class will be applied to the <fieldset> DOM node.
		$this->checkbox(O::enabled, 'Setup?');
		$row1 = $this->fieldsetInline('df-checkboxes')->hide(); /** @var FInline $row1 */
		$row1->checkbox(O::bold, 'B', ['title' => 'Bold']);
		$row1->checkbox(O::italic, 'I', ['title' => 'Italic']);
		$row1->checkbox(O::underline, 'U', ['title' => 'Underline']);
		$row1->color(O::color, null, ['title' => 'Font Color']);
		$row2 = $this->fieldsetInline('df-family')->hide(); /** @var FInline $row2 */
		$row2->field(O::family, GoogleFont::class, null, ['title' => 'Font Family']);
		/** @var array(array(string => string)) $sizeValues */
		$sizeValues = [Q::P__VALUES => SizeUnit::s()->toOptionArray()];
		$row2->quantity(O::size, null, $sizeValues + ['title' => 'Font Size']);
		$row3 = $this->fieldsetInline('row3')->hide(); /** @var FInline $row3 */
		// 2015-12-13
		// Намеренно указываем в качестве подписи пустую строку, а не null,
		// чтобы получить пустые теги <label><span></span></label>
		// и потом стилизовать их своей иконкой.
		$row3->quantity(O::letter_spacing, '', $sizeValues + ['title' => 'Letter Spacing']);
		/**
		 * 2015-12-13
		 * Передаём в качестве подписи название класса Font Awesome.
		 * Такое стало возможным благодаря моему плагину
		 * @used-by \Df\Framework\Plugin\Data\Form\Element\AbstractElement::aroundGetLabelHtml()
		 * https://github.com/mage2pro/core/tree/73bed4fbb751ab47ad1bb70a8d90f455da26b500/Framework/Data/Form/Element/AbstractElementPlugin.php#L53
		 */
		/**
		 * 2015-12-13
		 *	.test {
		 *		transform : scale(1,1.5);
		 *		-webkit-transform:scale(1,1.5); // Safari and Chrome
		 *		-moz-transform:scale(1,1.5); // Firefox
		 *		-ms-transform:scale(1,1.5); // IE 9+
		 *		-o-transform:scale(1,1.5); // Opera
		 *		letter-spacing: 10px;
		 *	}
		 * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function#scale()
		 * http://stackoverflow.com/a/16447826
		 */
		$row3->percent(O::scale_horizontal, 'fa-text-width', 100, ['title' => 'Horizontal Scale']);
		$row3->percent(O::scale_vertical, 'fa-text-height', 100, ['title' => 'Vertical Scale']);
		/**
		 * 2015-12-13
		 * Намеренно указываем в качестве подписи пустую строку, а не null,
		 * чтобы получить пустые теги <label><span></span></label>
		 * и потом стилизовать их своей иконкой.
		 */
		df_hide($this->select(O::letter_case, '', LetterCase::s(), ['title' => 'Letter Case']));
		df_fe_init($this, __CLASS__, df_fa());
	}
320364
public function fire()
    {
        $models = ManagerMigrator::get();
        foreach ($models as $class => $migrators) {
            foreach ($migrators as $data) {
                $this->rows = [];
                //            $this->error(str_repeat('=', 80));
                $this->error(str_pad(' ' . $class . ' ', 80, '=', STR_PAD_BOTH));
                //            $this->error(str_repeat('=', 80));
                $vendor = Arr::get($data, 'vendor');
                $type = Arr::get($data, 'type');
                $v = $vendor ? $vendor . '::' : '';
                $key = $v . 'migrator/' . $type;
                $config = \Config::get($key, false);
                if(!$config) {
                    $this->error('Не обнаружен конфиг мигратора ' . $key);
                    continue;
                }
                $indexes = Arr::get($config, 'indexes', []);
                $fields = Arr::get($config, 'fields', []);
                /** @var Model $model */
                $model = new  $class;
                $table_name = $model->getTable();
                $this->syncFields($table_name, $fields);
                $this->rows[] = new TableSeparator();
                $this->syncIndexes($table_name, $indexes);
                $this->table([
                    '[#]',
                    'Тип',
                    'Имя',
                    'Дополнительные характеристики',
                    'Результат',
                ], $this->rows
                );
            }
        }

        echo PHP_EOL;
        $this->question('Синхронизация зарегистрированных типов структур завершена');
    }
999011
public function endSpaceless()
    {
        if ($this->isEnabled()) {

            $buffer = ob_get_clean();
            $expelled_tags = implode('|', config('spaceless.expelled_tags', []));

            // Все пробелы/переносы конвертируются в одинарный
            $regexp = '~(?>[^\S]\s*|\s{2,})(?=[^<]*+(?:<(?!/?(?:' . $expelled_tags . ')\b)[^<]*+)*+(?:<(?>' . $expelled_tags . ')\b|\z))~Six';
            $result = preg_replace($regexp, ' ', $buffer);

            return ($result !== null) ? $result : $buffer;
        }

        return null;
    }