Вызов метода API
9945
def _call(self, method, **kwargs):
        
        kwargs.update(dict(
            partnerid=self.partner_id,
            partnerkey=self.partner_key,
            method=method,
        ))

        url = options.ENDPOINT_URL + '?' + parse.urlencode(kwargs)
        try:
            raw_json = request.urlopen(url, timeout=self.timeout).read().decode('utf-8')
            res = json.loads(raw_json)
            if 'code' in res:
                if res['code'] == 4:
                    raise InvalidCredentialsException(res['msg'])
        except (HTTPError, URLError, timeout) as e:  # ошибка запроса
            raise APIRequestException(e.__class__.__name__, e)
        except (ValueError, ) as e:  # ошибка в данных
            raise APIDataException(e.__class__.__name__, e)
        return res, raw_json
1213582
function get_inline($as_html = true) {
        if (!$as_html) {
            return $this->js_inline;
        }
        if (!count($this->js_inline))
            return '';
        $js_code = '';
        foreach ($this->js_inline as $js) {
            $js_code .= $this->prepare($js, $this->get_need_min_inline());
        }
        $js_code = trim($this->prepare($js_code, $this->get_need_min_inline()));
        if (!$js_code)
            return '';
        if (!$this->get_need_build_inline()) {
            return '<script type="text/javascript">
' . trim($js_code) . '
</script>';
        }
        //если требуется собирать инлайн скрипты в один внешний файл
        $build_name = $this->make_file_name($this->js_inline, 'js/inline', 'js');
        $this->require_build($build_name, $js);
        return $this->get_link(Helper::build_url($build_name)) . PHP_EOL;
    }
427701
protected static function remind()
    {
        self::$user = null;
        if (!empty(self::$input['COOKIE']['ID'])){
            $ID = explode('|', self::$input['COOKIE']['ID']);
        }else{
            $ID = '';
        }
        // Период запоминания пользователя
        $duration = empty($ID[0])? 0 : $ID[0]; // не больше месяца (примерно)
        // Хэш пользователя для поиска (авторизации)
        $hash = empty($ID[1]) ? '' : $ID[1];
        // Если есть кука, то ищем пользователя в БД
        if ($hash){
            $result = Data::find(array(
                'from' => self::$config['users-list'],
                'select' => 'children',
                'depth' => 'max',
                'where' => array(
                    array('value', '=', $hash),
//                    array('not','is_link')
                ),
                'key' => false,
                'limit' => array(0, 1),
                'comment' => 'auth user by cookie',
            ), false);
            // Пользователь найден и не истекло время его запоминания
            if (!empty($result)){
                self::$user = $result[0];
            }
        }else{
            $hash = self::get_unique_hash();
        }
        // Новый гость
        if (!self::$user){
            self::$user = Data::create(self::$config['user'], self::$config['users-list']);
            self::$user->value($hash);
            $duration = 0;
        }
        self::remember($duration);
    }
403577
public function doSuccess()
	{
		$date = date('Y-m-d H:i:s', time() - 60);
		$dateRefund = $this->updated_at; //даём минуту для прохождения оплаты
		if ($date > $dateRefund) {
			Refund::find($this->id)
				->whereStatus(self::C_STATUS_PROCESSING)
				->update(array('status' => self::C_STATUS_SUCCESS));
		}

		return Refund::find($this->id);
	}
432993
function get_onload($as_html = true) {
        if (!$as_html) {
            return $this->js_onload;
        }
        if (!count($this->js_onload))
            return '';
        $js = '';
        foreach ($this->js_onload as $k => $_js) {
            $js .= trim($_js) . PHP_EOL;
        }
        $js = 'jQuery(document).ready(function(){' . PHP_EOL . $js . '});';
        $js = $this->prepare($js, $this->get_need_min_onload());
        if (!$this->get_need_build_onload()) {
            $ret = '<script>' . PHP_EOL . $js . PHP_EOL . '</script>';
            return $ret;
        }
        //если требуется собирать инлайн скрипты в один внешний файл
        $build_name = $this->make_file_name($this->js_onload, 'js/onload', 'js');
        $this->require_build($build_name, $js);
        return $this->get_link(Helper::build_url($build_name)) . PHP_EOL;
    }
227666
public function output()
    {
        if (strlen($this->redirect) > 0) {
            header("Location: " . $this->redirect);
            // echo "<script>window.location='{$this->redirect}'</script>";
            die;
        }
        if (WebApplication::$app->getRequest()->isBinaryRequest() == true) {
            // вывод  осуществляет  адресуемый   компонент
            return;
        }

        Header("Content-Type: text/html;charset=UTF-8");
        Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
        Header("Cache-Control: no-store,no-cache, must-revalidate");
        Header("Pragma: no-cache");
        Header("Last-Modified: Mon, 26 Jul 2100 05:00:00 GMT");

        if (WebApplication::$app->getRequest()->isAjaxRequest() == true) {
            echo $this->content;
            return;
        }

        if (strpos($this->content, "</head>") > 0) {
            $this->content = str_replace("</head>", $this->getJS() . "</head>", $this->content);
        } else {
            $this->content = $this->content . $this->getJS();
        }

        if (WebApplication::$app->getRequest()->isAjaxRequest() == false && $this->gzip === true && strpos($_SERVER["HTTP_ACCEPT_ENCODING"], "gzip") !== false) {
            Header("Content-Encoding: gzip");
            echo gzencode($this->content . $this->getJS());
            return;
        }
        echo $this->content;
    }
664421
function sectionIndex()
    {
        /** @var TAdminUI $page */
        $page = Eresus_Kernel::app()->getPage();
        $root = Eresus_CMS::getLegacyKernel()->root.'admin.php?mod=pages&amp;';
        $this->cache['index_controls'] =
            $page->control('setup', $root.'id=%d') . ' ' .
            $page->control('position',
                array($root.'action=up&amp;id=%d',$root.'action=down&amp;id=%d')) . ' ' .
            $page->control('add', $root.'action=create&amp;owner=%d') . ' ' .
            $page->control('move', $root.'action=move&amp;id=%d') . ' ' .
            $page->control('delete', $root.'action=delete&amp;id=%d');
        $types = $this->loadContentTypes();
        for ($i=0; $i<count($types[0]); $i++)
        {
            $this->cache['content_types'][$types[1][$i]] = $types[0][$i];
        }
        $table = new AdminList;
        $table->setHead(array('text'=>'Раздел', 'align'=>'left'), 'Имя', 'Тип', 'Доступ', '');
        $table->addRow(array(admPagesRoot, '', '', '',
            array($page->control('add', $root.'action=create&amp;owner=0'), 'align' => 'center')));
        $table->addRows($this->sectionIndexBranch(0, 1));
        $result = $table->render();
        return $result;
    }
940200
final static function p(Method $m) {
		$i = df_new(df_con_heir($m, __CLASS__), $m); /** @var self $i */
		/**
		 * 2017-01-05
		 * @uses \Df\Payment\Operation::id()
		 * @uses \Dfe\AllPay\Charge::id()
		 * Локальный внутренний идентификатор транзакции.
		 * Мы намеренно передаваём этот идентификатор локальным (без приставки с именем модуля)
		 * для удобства работы с этими идентификаторами в интерфейсе платёжной системы:
		 * ведь там все идентификаторы имели бы одинаковую приставку.
		 */
		$id = df_assert_sne($i->id()); /** @var string $id */
		$s = $i->s(); /** @var Settings $s */
		$p = df_clean_keys([
			$i->k_Amount() => $s->test() ? $i->testAmountF() : $i->amountF()
			,$i->k_Currency() => $i->currencyC()
			,$i->k_Email() => $i->customerEmail()
			,$i->k_MerchantId() => $s->merchantID()
			,$i->k_RequestId() => $id
	 	]) + $i->pCharge();  /** @var array(string => mixed) $p */
		/**
		 * 2017-09-25
		 * The Yandex.Kassa charge requests do not use a signature:
		 * @see \Dfe\YandexKassa\Charge::k_Signature()
		 * https://tech.yandex.com/money/doc/payment-solution/payment-form/payment-form-http-docpage
		 */
		return [$id, $p + ((!$kS = $i->k_Signature()) ? [] : [$kS => Signer::signRequest($i, $p)])];
	}
960372
public function handle($request)
    {
        $api_params = !empty($request->call->params) ? (array)$request->call->params : [];

        // подготавливаем аргументы для вызова метода
        $reflectionMethod = new \ReflectionMethod($request->controller, $request->method);
        $errors = [];
        $args = [];

        foreach ($reflectionMethod->getParameters() as $i => $parameter) {

            $value = $api_params[$parameter->getName()] ?? null;

            // если аргумент не передан
            if (null === $value) {
                // если он обязателен
                if (!$parameter->isOptional()) {
                    $errors[] = [
                        'code'        => 'required_field',
                        'message'     => 'Не передан либо пустой обязательный параметр',
                        'object_name' => $parameter->getName(),
                    ];
                } else {
                    // получим значение аргумента по умолчанию
                    $value = $parameter->getDefaultValue();
                }
            } else {
                // Проверяем тип
                $parameterType = strtolower(class_basename((string)$parameter->getType()));
                switch ($parameterType) {
                    case 'int':
                    case 'integer':
                        $parameterType = 'integer';
                        break;
                    case 'float':
                    case 'double':
                        $parameterType = 'double';
                        break;
                    case 'boolean':
                    case 'bool':
                        $parameterType = 'boolean';
                        break;
                    case 'stdclass':
                        $parameterType = 'object';
                        break;
                }

                if (null !== $parameter->getType() && \gettype($value) !== $parameterType) {
                    $errors[] = [
                        'code'        => 'invalid_parameter',
                        'message'     => 'Передан аргумент неверного типа',
                        'object_name' => $parameter->getName(),
                    ];
                }
            }

            // установим переданное значение
            $args[$i] = $value;
        }

        if (\count($errors) > 0) {
            throw new JsonRpcException(JsonRpcException::CODE_INVALID_PARAMETERS, null, $errors);
        }

        $request->params = $args;

        return true;
    }
688373
static function uri($value, &$error, $args)
    {
        if (is_string($value) || is_int($value)){
            if (empty($value) || trim($value, '/')===''){
                return $value;
            }
            $check = $value;
            if (!preg_match('#^([^:/]+://).*$#iu', $check)) $check = 'http://check/'.trim($check, '/');
            if (filter_var($check, FILTER_VALIDATE_URL)){
                return $value;
            }
        }
        $error = new Error(['"Некорректный URI', $value], 'uri');
        return $value;
    }
797093
public function execute($args)
    {
        $args = explode('/', urldecode($args));

        /* Отбрасываем пустые элементы с концов */
        array_shift($args);
        array_pop($args);

        // Получаем имя действия
        $method = 'action' . array_shift($args);

        if (!method_exists($this, $method))
        {
            throw new BadMethodCallException("Method $method does not exists in class " .
            get_class($this));
        }

        $result = call_user_func_array(array($this, $method), $args);

        $result = $this->prepareResponseData($result);

        $json = json_encode($result);
        die($json);
    }
477345
function compile(layout, params) {
        var t = {};
        if (typeof layout === 'string') {
            //  Строка 'folders' является шоткатом для:
            //
            //  {
            //      'folders': true
            //  }
            //
            t[layout] = true;
            layout = t;

        } else if ( Array.isArray(layout) ) {
            //  Массив вида [ 'folders', 'labels' ] является шоткатом для:
            //
            //      {
            //          'folders': true,
            //          'labels': true
            //      }
            //
            //  Преобразуем массив в объект.
            for (var i = 0, l = layout.length; i < l; i++) {
                t[ layout[i] ] = true;
            }
            layout = t;

        }

        //  Рекурсивно компилируем значение каждого ключа и создаем новый объект result.
        var result = {};

        for (var raw_key in layout) {
            var key = raw_key;

            // быстро проверяем возможность интерполяции, чтобы зря не вызывать компиляцию
            if (raw_key.indexOf('{') > -1) {
                //  Ключ может быть с интерполяцией, так что вычисляем его.
                key = no.jpath.string(raw_key)(params);
            }

            var raw_value = layout[raw_key];
            var value;

            //  Интерпретируем значение, соответствующее ключу.
            switch (typeof raw_value) {
                //  Это функция, ее нужно вызвать и скомпилировать результат.
                case 'function':
                    value = compile( raw_value(params), params );
                    break;

                //  Это объект.
                case 'object':
                case 'string':
                    value = compile(raw_value, params);
                    break;

                default:
                    value = {};
            }

            result[cleanKey(key)] = {
                'type': getViewType(key),
                'views': value
            };
        }

        return result;
    }
393475
function(){
		// this.bodyが空の場合はEncode.jsの仕様により対象外
		// カンペンには以下のパズルは存在しないのでURL_KANPENPも対象外
		if(!this.body || (this.type!==URL_PZPRV3 && this.type!==URL_PZPRAPP)){ return;}
		
		switch(this.pid){
		case 'ichimaga':
			if     (this.pflag.indexOf('m')>=0){ this.pid = 'ichimagam';}
			else if(this.pflag.indexOf('x')>=0){ this.pid = 'ichimagax';}
			else                               { this.pid = 'ichimaga'; }
			break;
		case 'icelom':
			if(this.pflag.indexOf('a')<0){ this.pid = 'icelom2';}
			break;
		case 'pipelink':
			if(this.body.match(/[0-9]/)){ this.pid = 'pipelinkr';}
			break;
		case 'bonsan':
			if(this.pflag.indexOf('c')<0){
				var col = this.cols, row = this.rows;
				if(this.body.substr(0,((((col-1)*row+4)/5)|0)+(((col*(row-1)+4)/5)|0)||0).match(/[^0]/)){
					this.pid = 'heyabon';
				}
			}
			break;
		case 'kramma':
			if(this.pflag.indexOf('c')<0){
				var len=(this.cols-1)*(this.rows-1), cc=0;
				for(var i=0;i<this.body.length;i++){
					var ca = this.body.charAt(i);
					if(ca.match(/\w/)){
						cc += parseInt(ca,36);
						if(cc<len){ this.pid = 'kramman'; break;}
					}
					else if(ca === '.'){ cc+=36;}
					if(cc>=len){ break;}
				}
			}
			break;
		}
	}
273618
static function activate()
    {
        if (get_magic_quotes_gpc()){
            $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
            while (list($key, $val) = each($process)){
                foreach ($val as $k => $v){
                    unset($process[$key][$k]);
                    if (is_array($v)){
                        $process[$key][stripslashes($k)] = $v;
                        $process[] = &$process[$key][stripslashes($k)];
                    }else{
                        $process[$key][stripslashes($k)] = stripslashes($v);
                    }
                }
            }
            unset($process);
        }
        // Нормализация массива $_FILES в соответствии с именованием полей формы
        if (isset($_FILES)){
            // Перегруппировка элементов массива $_FILES
            $rec_to_array = function ($array, $name) use (&$rec_to_array){
                $result = [];
                foreach ($array as $key => $value){
                    if (is_array($value)){
                        $result[$key] = $rec_to_array($value, $name);
                    }else{
                        $result[$key][$name] = $value;
                    }
                }
                return $result;
            };
            $files = [];
            foreach ($_FILES as $field => $data){
                $files[$field] = [];
                foreach ($data as $name => $value){
                    if (is_array($value)){
                        $files[$field] = F::arrayMergeRecursive($files[$field], $rec_to_array($value, $name));
                    }else{
                        $files[$field][$name] = $value;
                    }
                }
            }
        }else{
            $files = [];
        }

        self::$source = array(
            'REQUEST' => [],
            'FILES' => $files,
            'COOKIE' => isset($_COOKIE)? $_COOKIE : [],
            'RAW' => file_get_contents("php://input"), // Неформатированные данные
            'SERVER' => $_SERVER
        );
        if (isset($_SERVER['REQUEST_URI'])){
            $_SERVER['REQUEST_URI'] = preg_replace('#\?{1}#u', '&', $_SERVER['REQUEST_URI'], 1);
//            $request_uri = preg_replace('#^'.preg_quote(DIR_WEB).'#u', '/', $_SERVER['REQUEST_URI'], 1);
            parse_str('path='.$_SERVER['REQUEST_URI'], self::$source['REQUEST']);
            self::$source['SERVER']['argv'] = self::$source['REQUEST'];
            self::$source['SERVER']['argc'] = sizeof(self::$source['REQUEST']);
        }
        // Элементы пути URI
        if (isset(self::$source['REQUEST']['path']) && (self::$source['REQUEST']['path'] = rtrim(self::$source['REQUEST']['path'],'/ '))){
            self::$source['PATH'] = explode('/', trim(self::$source['REQUEST']['path'],' /'));
        }else{
            self::$source['PATH'] = [];
        }
        if (isset($_POST)){
            self::$source['REQUEST'] = array_replace_recursive(self::$source['REQUEST'], $_POST);
        }
        // Аргументы из консоли (режим CLI)
        if (php_sapi_name() == 'cli' && isset($_SERVER['argv'])){
            self::$source['REQUEST']['method'] = 'CLI';
            self::$source['SERVER']['argv'] = $_SERVER['argv'];
            self::$source['SERVER']['argc'] = $_SERVER['argc'];
        }
        self::$source['ARG'] = self::$source['SERVER']['argv'];
        // Метод запроса
        if (isset(self::$source['SERVER']['REQUEST_METHOD']) && !isset(self::$source['REQUEST']['method'])){
            self::$source['REQUEST']['method'] = self::$source['SERVER']['REQUEST_METHOD'];
        }
    }
1346779
function validateData(data){
  /* Создаем промис */
  return new Promise(function(resolve, reject){
    if(
      (data.password == "iddqd")
      &&(data.login == "Carmak")
    ){
      /* Все верно, пользователь авторизирован */
      resolve(data);
    }else{
      /* Ошибка при вводе данных */
      reject(new Error('Ошибка при вводе логина или пароля'));
    }
  });
}
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;
            }
        }
    }
1069410
function load($object)
	{
		$set    = popval($where, '*set');
		$must_be_configured = $object->get('must_be_configured');
		$select = array();
		$post_functions = array();

		$table_prefix = '`'.$object->table_name().'`.';

//		if(Cfg::get('is_developer')) { bors_use('debug/print_dd'); echo "<b>Load: {$object->class_name()}</b><br/>"; print_dd($where); print_dd(bors_lib_orm::main_fields($object)); }
		foreach(bors_lib_orm::main_fields($object) as $f)
		{
			if(preg_match('/^\w+$/', $sql_name = $f['sql_name']))
				$x = $table_prefix.'`'.$sql_name.'`'; // убирать апострофы нельзя, иначе тупо не работабт поля с некорректными именами
			elseif(preg_match('/^(\w+)\+(\w+)$/', $f['sql_name'], $m)) // id => forum_id+group_id
				// http://forums.airbase.ru/2008/06/t62054,12--poslednij-pokhod-unikalnogo-korablya.html
				$x = "CONCAT({$m[1]},':',{$m[2]})";
			elseif(preg_match('/^`\w+`$/', $sql_name))
				$x = $table_prefix.$sql_name;
			else
				$x = $sql_name;

			if($f['sql_name'] != ($property = $f['property']))
				$x .= " AS `{$property}`";

			$select[] = $x;

			if(!empty($f['post_function']))
				$post_functions[$f['property']] = $f['post_function'];
		}

		$where = array('`'.$object->table_name().'`.`'.$object->id_field().'`=' => $object->id());

		$dummy = array();
		self::__join('inner', $object, $select, $where, $post_functions, $dummy);
		self::__join('left',  $object, $select, $where, $post_functions, $dummy);

		// формат: array(..., '*set' => 'MAX(create_time) AS max_create_time, ...')
		if($set)
			foreach(preg_split('/,\s*/', $set) as $s)
				$select[] = $s;

		$dbh = new driver_mysql($object->db_name());

		$data = $dbh->select($object->table_name(), join(',', $select), $where);

		if(!$data)
			return $object->set_is_loaded(false);

		$object->data = $data;

		if($must_be_configured)
			$object->b2_configure();

		if(!empty($post_functions))
			self::post_functions_do($object, $post_functions);

		$object->set_is_loaded(true);
		save_cached_object($object);

		return true;
	}