Страница отображения содержимого пресс-центра.
164969
public static function view($type = 'block') {
    $build = array();

    $view = Views::getView('site_press_centre_last');
    $content = '';
    if (is_object($view)) {
      $view->setDisplay($type);
      $content = $view->buildRenderable();
    }

    // Создает HTML отображение материалов.
    $build['site_press_centre'] = array(
      '#theme' => 'site_press_centre',
      '#content' => $content,
    );

    return $build;
  }
259905
private function move()
    {
        $item = Eresus_CMS::getLegacyKernel()->sections->get(arg('id', 'int'));
        if (!is_null(arg('to')))
        {
            $item['owner'] = arg('to', 'int');
            $item['position'] = count(Eresus_CMS::getLegacyKernel()->sections->children($item['owner']));

            /* Проверяем, нет ли в разделе назначения раздела с таким же именем */
            $q = Eresus_DB::getHandler()->createSelectQuery();
            $e = $q->expr;
            $q->select($q->alias($e->count('id'), 'count'));
            $q->from('pages');
            $q->where($e->lAnd(
                $e->eq('owner', $q->bindValue($item['owner'], null, PDO::PARAM_INT)),
                $e->eq('name', $q->bindValue($item['name']))
            ));
            $count = $q->fetch();
            if ($count['count'])
            {
                Eresus_Kernel::app()->getPage()->addErrorMessage(
                    'В разделе назначения уже есть раздел с таким же именем!');
                HTTP::goback();
            }

            Eresus_CMS::getLegacyKernel()->sections->update($item);
            HTTP::redirect(Eresus_Kernel::app()->getPage()->url(array('id'=>'')));
        }
        else
        {
            $select = $this->selectList($item['id']);
            array_unshift($select[0], 0);
            array_unshift($select[1], admPagesRoot);
            $form = array(
                'name' => 'MoveForm',
                'caption' => admPagesMove,
                'fields' => array(
                    array('type'=>'hidden', 'name'=>'mod', 'value' => 'pages'),
                    array('type'=>'hidden', 'name'=>'action', 'value' => 'move'),
                    array('type'=>'hidden', 'name'=>'id', 'value' => $item['id']),
                    array('type'=>'select', 'label'=>strMove.' "<b>'.$item['caption'].'</b>" в',
                        'name'=>'to', 'items'=>$select[1], 'values'=>$select[0], 'value' => $item['owner']),
                ),
                'buttons' => array('ok', 'cancel'),
            );
            /** @var TAdminUI $page */
            $page = Eresus_Kernel::app()->getPage();
            $result = $page->renderForm($form);
            return $result;
        }
        return '';
    }
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();
            }
        }
    }
623002
public function main()
    {
        $mainPageHTML = '';
        $dbMaterials = array();

        // Получим все материалы
        if (
        dbQuery('samsoncms\api\Material')
            ->join('user')
            ->cond('Active', 1)
            ->cond('Draft', 0)
            ->order_by('Created', 'DESC')
            ->cond('Name', "", dbRelation::NOT_EQUAL)
            ->limit(5)
            ->exec($dbMaterials)
        ) {
            // Render material rows
            $rowsHTML = '';
            foreach ($dbMaterials as $dbMaterial) {
                $rowsHTML .= $this->view('main/row')
                    ->set($dbMaterial, 'material')
                    ->set(isset($dbMaterial->onetoone['_user']) ? $dbMaterial->onetoone['_user'] : array(), 'user')
                    ->output();
            }

            for ($i = sizeof($dbMaterials); $i < 5; $i++) {
                $rowsHTML .= $this->view('main/row')->output();
            }

            // Render main template
            $mainPageHTML = $this->view('main/index')->set($rowsHTML, 'rows')->output();
        }

        // Return material block HTML on main page
        return $mainPageHTML;
    }
760320
public static function init()
    {
        /* Разрешаем только однократный вызов этого метода */
        if (self::$inited)
        {
            return;
        }

        // Устанавливаем кодировку по умолчанию для операций mb_*
        mb_internal_encoding('utf-8');

        /* Предотвращает появление ошибок, связанных с неустановленной временной зоной */
        @$timezone = date_default_timezone_get();
        date_default_timezone_set($timezone);

        self::initExceptionHandling();

        self::$inited = true;
    }
1059457
private function parseSql()
    {
        // Разбор многострочных комментариев
        if (preg_match_all('#/\*([\w|]+)(.+?)\*/#s', $this->sql, $matches)) {
            $count = count($matches[0]);
            for ($i = 0; $i < $count; $i++) {
                $this->replaceComment($matches[0][$i], $matches[2][$i], $matches[1][$i]);
            }
        }

        // Многоитерационный разбор однострочных комментариев
        while (true) {
            if (preg_match_all('#--\*([\w|]+)(.+)#', $this->sql, $matches)) {
                $count = count($matches[0]);
                for ($i = 0; $i < $count; $i++) {
                    $this->replaceComment($matches[0][$i], $matches[2][$i], $matches[1][$i]);
                }
            } else {
                break;
            }
        }

        // разбор переменных - массивов, которые находились изначально вне комментариев
        if (preg_match_all('#:@(\w+)#', $this->sql, $matches)) {
            $count = count($matches[0]);
            for ($i = 0; $i < $count; $i++) {
                $this->replaceComment($matches[0][$i], $matches[0][$i], $matches[1][$i], false);
            }
        }

        $this->sql = preg_replace("/\n+/", "\n", trim($this->sql));
    }
1104581
public function initTablesList(array $schemas = null) : void
    {
        $dbName = $this->db->getDbName();

        if (!empty($_SESSION['databases'][$dbName]['tables'])) {
            $this->tables = $_SESSION['databases'][$dbName]['tables'];
            return;
        }

        static::initSessionStorage($dbName);

        $this->addAdditionTables();

        if ($this->db->getDBDriver() === 'pgsql') {
            $_SESSION['databases'][$dbName]['tables']
                = $this->tables
                = array_merge($this->tables, $this->getPostgresTables($schemas));
        } elseif ($this->db->getDBDriver() === 'mysql') {
            $_SESSION['databases'][$dbName]['tables']
                = $this->tables
                = array_merge($this->tables, $this->getMysqlTables($dbName));
        }

        if (!$this->tables) {
            throw new PDOConnectionException('Не удалось получить список таблиц');
        }
    }
628811
function _1CMethodDescription(parentModule) {

    // Идентификатор (имя) метода.
    this.Name = "";

    // Тип метода. Если истина - то это Процедура, иначе - это функция.
    this.IsProc = false;

    // Массив параметров метода.
    this.Params = new Array();

    // Массив явным образом объявленных переменных.
    this.DeclaredVars = new Array();

    // Массив автоматических локальных переменных (не объявленных явным образом).
    this.AutomaticVars = new Array();

    // Список вызовов: массив методов, вызываемых из данного метода.
    this.Calls = new Array();
    this._CallsUpper = new Array();
    this.CallsPosition = new Array();

    // Номер строки объявления метода.
    this.StartLine = 0;

    // Номер строки завершения объявления метода.
    this.EndLine = 0;

    // Ассоциативный массив Имя переменной -> Тип переменной (пока тип всегда null).
    this._varsTypes = {};

    // Контекст модуля, в котором объявлен данный метод (_1CModuleContextDescription).
    this.parentModule = parentModule;
    
    // Экспортная процедура или нет. 
    this.IsExport = false;
    
    this.description = "";
    
}
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;
        }
117529
public function start()
    {
        $file_info = (new FileToken($this->dic))->getFileInfo($this->request->get('token'));

        if (isset($file_info['errors'])) {
            $this->response->setData($file_info);
            $this->response->send();
        }

        $filepath = SettingsFile::FILE_FOLDER . $file_info['data']['path'];

        if (is_readable($filepath) && is_file($filepath)) {
            $response = new BinaryFileResponse($filepath);
            $response->headers->set('Content-type', mime_content_type($filepath));
            $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, $file_info['data']['name']);
            $response->send();
        } else {
            $this->response->setData(Response::error404('Файл не найден'));
            $this->response->send();
        }
    }
910967
public function validate()
    {
        $conditions = $this->getConditions();
        ValidationHelper::validate($conditions);


        $countConditions = $conditions->count();

        if ($countConditions === 0) {
            $desc = $this->getParent();
            if ($desc instanceof ConditionalResultDescriptor) {
                $destination = $desc->getDestination();

                $parentConditionalResult = $desc->getParent();
                $from = null;
                if (method_exists($parentConditionalResult, 'getName')) {
                    $from = call_user_func([$parentConditionalResult, 'getName']);
                }
                if (!$from) {
                    $from = get_class($parentConditionalResult);
                }


                $errMsg = sprintf(
                    'Действие %s ведущее на шаг %s, должно иметь не менее одного условия в блоке result',
                    $from,
                    $destination
                );

                throw new InvalidWorkflowDescriptorException($errMsg);
            }
        }

        if ($countConditions > 1 && null === $this->getType()) {
            $errMsg = 'В условие должен быть определен тип AND или OR';
            throw new InvalidWorkflowDescriptorException($errMsg);
        }
    }
106120
function __content() // пока не используется, т.к. более древнее в base_object
	{
		if(($render_class = $this->render_class()))
		{
			if($render_class == 'self')
				$render = $this;
			elseif(!($render = bors_load($render_class)))
				debug_exit("Can't load global render engine {$render_class} for object '{$this}'");

			return $render->rendering($this);
		}
	}
1062638
private function loadFromCookies()
    {
        if ($this->items !== null)
        {
            return;
        }
        $this->items = array();

        if (isset($_COOKIE[$this->getName()]))
        {
            $cookieValue = $_COOKIE[$this->getName()];
            @$items = unserialize($cookieValue);

            /* Проверяем, прошла ли десериализация */
            if ($items === false)
            {
                Eresus_Kernel::log(__METHOD__, LOG_NOTICE, 'Cannot unserialize cookie value: "%s"',
                    $cookieValue);
                return;
            }

            // Записываем результат
            $this->items = $items;
        }
    }
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;
    }
575809
public function actionUserRole ()
		{
			$userClass = $this->module->modelUser;
			$post = Yii::$app->request->post();
			$user = $userClass::findOne($post[ 'id' ]);
			if (!is_null($user))
			{

				LogManager::info(Yii::tr('Пользователю {user} забрали права {roles}', [ 'user' => Html::a($user->name, Url::toRoute([ 'user/view', 'id' => $user->id ])), 'roles' => implode(',', $user->getRolesNames()) ]));
				$user->revokeAllRoles();
				if (is_array($post[ 'roles' ]))
				{
					foreach ($post[ 'roles' ] as $item)
					{
						$user->assignRole($item);
					}
					LogManager::info(Yii::tr('Пользователю {user} добавили права {roles}', [ 'user' => Html::a($user->name, Url::toRoute([ 'user/view', 'id' => $user->id ])), 'roles' => implode(',', $post[ 'roles' ]) ]));
				}
			}
			Yii::$app->end();
		}
774899
private function getLinks()
	{
		if (!$this->objectId) return;

		// поля типа FIELD_MATERIAL
		$fields = self::getDbConnection()->fetchAll('SELECT * FROM types_fields WHERE type='.FIELD_MATERIAL.' and pseudo_type=0 and len='.$this->objectDefinition->id);		
		
		// поля типа PSEUDO_FIELD_TAGS
		$fields2 = self::getDbConnection()->fetchAll('SELECT * FROM types_fields WHERE pseudo_type='.PSEUDO_FIELD_TAGS.' and len='.$this->objectDefinition->id);		
		$fields = array_merge($fields, $fields2);		
		
		// поля типа FIELD_LINK или FIELD_LINKSET
		if ($this->catalog > 0) {		
			$catalog = Catalog::getById($this->catalog);			
			// итератор всех разделов имеющих тип материалов как у редактируемого материала
			$sections = new Iterator\Catalog\Catalog();
			$sections->where('typ='.$this->objectDefinition->id);
			if (!count($sections)) return;
			
			// получаем все поля, ссылающиеся на эти разделы
			$data = self::getDbConnection()->fetchAll('SELECT * FROM types_fields WHERE type IN ('.FIELD_LINK.','.FIELD_LINKSET.') and pseudo_type=0 and len IN ('.implode(',',$sections->idArray()).')');

			foreach ($data as $f) {				
				$c = Catalog::getById($f['len']);
				// оставляем только поля, ссылающиеся на раздел текущего материала или его родителей
				if ($catalog->path->has( $c )) {
					$fields[] = $f;
				}				
			}			
		}	
		
		ob_start();
		foreach ($fields as $f) try {			
			$od = ObjectDefinition::findById($f['id']);		
			$f['describ'] = $od->getDescriptionDisplay();
			$f['editor_str'] = 'editor_linkset_link';
			if ( file_exists('editors/'.$f['editor_str'].'.php') ) 
				include_once('editors/'.$f['editor_str'].'.php');
			$this->fields_def[] = $f;
		} catch (\Exception $e) {}
		$this->initData .= ob_get_contents();
		ob_end_clean();					
	}
273973
private function edit()
    {
        $Eresus = Eresus_CMS::getLegacyKernel();
        $item = $Eresus->db->selectItem($this->table['name'], "`id`='" . arg('id') . "'");
        $item['section'] = explode('|', $item['section']);
        $sections = $this->menuBranch();
        array_unshift($sections[0], 'ВСЕ РАЗДЕЛЫ');
        array_unshift($sections[1], 'all');
        $form = array(
            'name' => 'formEdit',
            'caption' => 'Изменить баннер',
            'width' => '95%',
            'fields' => array(
                array('type' => 'hidden', 'name' => 'update', 'value' => $item['id']),
                array('type' => 'edit', 'name' => 'caption', 'label' => '<b>Заголовок</b>',
                    'width' => '100%', 'maxlength' => '255', 'pattern' => '/.+/',
                    'errormsg' => 'Заголовок не может быть пустым!'),
                array('type' => 'listbox', 'name' => 'section', 'label' => '<b>Разделы</b>', 'height' => 5,
                    'items' => $sections[0], 'values' => $sections[1]),
                array('type' => 'edit', 'name' => 'block', 'label' => '<b>Блок баннера</b>',
                    'width' => '100px', 'maxlength' => 15,
                    'comment' => 'Для вставки баннера используйте макрос <b>$(Banners:имя_блока)</b>',
                    'pattern' => '/.+/', 'errormsg' => 'Не указан блок баннера!'),
                array('type' => 'edit', 'name' => 'priority', 'label' => 'Приоритет', 'width' => '20px',
                    'comment' => 'Если для одного раздела и одного блока задано несколько баннеров, будет ' .
                        'показан с большим приоритетом', 'default' => 0, 'pattern' => '/\d+/',
                    'errormsg' => 'Приоритет задается только цифрами!'),
                array('type' => 'edit', 'name' => 'showFrom', 'label' => 'Начало показов',
                    'width' => '100px', 'comment' => 'ГГГГ-ММ-ДД', 'default' => gettime('Y-m-d'),
                    'pattern' => '/[12]\d{3,3}-[01]\d-[0-3]\d/', 'errormsg' => 'Неправильный формат даты!'),
                array('type' => 'edit', 'name' => 'showTill', 'label' => 'Конец показов',
                    'width' => '100px', 'comment' => 'ГГГГ-ММ-ДД; Пустое - без ограничений',
                    'pattern' => '/(\d{4,4}-[01]\d-[0-3]\d)|(^$)/', 'errormsg' => 'Неправильный формат даты!'),
                array('type' => 'edit', 'name' => 'showCount', 'label' => 'Макс. кол-во показов',
                    'width' => '100px', 'comment' => '0 - без ограничений', 'default' => 0,
                    'pattern' => '/(\d+)|(^$)/', 'errormsg' => 'Кол-во показов задается только цифрами!'),
                //array ('type' => 'edit', 'name' => 'mail', 'label' => 'e-mail владельца',
                //'width' => '200px', 'maxlength' => '63'),
                array('type' => 'checkbox', 'name' => 'active', 'label' => 'Активировать'),
                array('type' => 'header', 'value' => 'Свойства баннера'),
                array('type' => 'file', 'name' => 'image', 'label' => 'Картинка или Flash', 'width' => '50',
                    'comment' => '<a></a>'),
                array('type' => 'edit', 'name' => 'width', 'label' => 'Ширина', 'width' => '100px',
                    'comment' => 'только для Flash'),
                array('type' => 'edit', 'name' => 'height', 'label' => 'Высота', 'width' => '100px',
                    'comment' => 'только для Flash'),
                array('type' => 'edit', 'name' => 'url', 'label' => 'URL для ссылки', 'width' => '100%',
                    'maxlength' => '255'),
                array('type' => 'select', 'name' => 'target', 'label' => 'Открывать',
                    'items' => array('в новом окне', 'в том же окне')),
                array('type' => 'header', 'value' => 'HTML-код баннера'),
                array('type' => 'memo', 'name' => 'html',
                    'label' => 'HTML-код (Если задан HTML-код, то предыдущие свойства игнорируются и могут' .
                        'не заполняться)',
                    'height' => '4'),
                array('type' => 'divider'),
                array('type' => 'checkbox', 'name' => 'flushShowCount',
                    'label' => 'Обнулить кол-во показов'),
            ),
            'buttons' => array('ok', 'apply', 'cancel'),
        );

        /** @var TAdminUI $page */
        $page = Eresus_Kernel::app()->getPage();
        $result = $page->renderForm($form, $item);
        return $result;
    }