public function get_company_kpis_values($term, $calc_type, $reportType, $period, $includePeer, $active_xaxes, $active_yaxes, $chat_type, $company, $companies, $kpis = array(), $segments = 'year') { $this->benchmark->mark('benchmark_model-get_company_kpis_values_benchmark_start'); $all_periods = $this->rperiods->list_records(); $quarters = array(); $years = array(); foreach ($all_periods as $k => $p) { if (strpos($p->reporting_period, 'Q') === false) { $years[] = $p->reporting_period; } else { $quarters[] = $p->reporting_period; } } if ($segments == 'quarter') { $periods = $quarters; } else { $periods = $years; } $entityID = sprintf("%06d", $company); $termID = array_to_string($kpis); $FYFQ = array_to_string($periods); $companies = array_to_string($companies); $result = $this->get_data($term, $calc_type, $reportType, $period, $includePeer, $active_xaxes, $active_yaxes, $chat_type, $entityID, $companies, $termID, $FYFQ, TRUE); $this->benchmark->mark('benchmark_model-get_company_kpis_values_benchmark_end'); log_message('debug', 'get_company_kpis_values_benchmark: ' . $this->benchmark->elapsed_time('benchmark_model-get_company_kpis_values_benchmark_start', 'benchmark_model-get_company_kpis_values_benchmark_end')); return $result; }
protected function doFinalize($PAGE_CONTENT) { //Сначала выделим то, что не должно попасть под нормализацию $this->addReplaces($PAGE_CONTENT); /* * Далее: * 1. Заменяем контент на макросы * 2. Проводим нормализацию * 3. Заменяем обратно макросы на контент */ $hasReplaces = !empty($this->REPLACES); $replaceMacroses = array_to_string($this->REPLACES); if ($hasReplaces) { foreach ($this->REPLACES as $content => $replace) { $PAGE_CONTENT = str_replace($content, $replace, $PAGE_CONTENT); } } if ($hasReplaces && $this->LOGGER->isEnabled()) { $this->LOGGER->infoBox('PAGE WITH REPLACES ' . $replaceMacroses, $PAGE_CONTENT); } $PAGE_CONTENT = normalize_string($PAGE_CONTENT); if ($hasReplaces && $this->LOGGER->isEnabled()) { $this->LOGGER->infoBox('NORMALIZED PAGE WITH REPLACES ' . $replaceMacroses, $PAGE_CONTENT); } if ($hasReplaces) { foreach ($this->REPLACES as $content => $replace) { $PAGE_CONTENT = str_replace($replace, $content, $PAGE_CONTENT); } } if ($hasReplaces && $this->LOGGER->isEnabled()) { $this->LOGGER->infoBox('PAGE AFTER BACKREPLACE ' . $replaceMacroses, $PAGE_CONTENT); } return $PAGE_CONTENT; }
/** @return ADORecordSet */ private static function executeQuery($query, $params = false, &$queryFinal = null, array &$paramsFinal = null) { $queryFinal = $query instanceof Query ? $query->build($params) : $query; $queryFinal = normalize_string($queryFinal); $paramsFinal = to_array($params); $LOGGER = PsLogger::inst(__CLASS__); $PROFILER = PsProfiler::inst(__CLASS__); $PROFILER->start(strtolower($queryFinal)); try { if ($LOGGER->isEnabled()) { $LOGGER->info("[{$queryFinal}]" . ($paramsFinal ? ', PARAMS: ' . array_to_string($paramsFinal) : '')); } $rs = PsConnectionPool::conn()->execute($queryFinal, $paramsFinal); if (is_object($rs)) { $PROFILER->stop(); return $rs; } $error = PsConnectionPool::conn()->ErrorMsg(); $LOGGER->info('ERROR: {}', $error); throw new DBException($error, DBException::ERROR_NOT_CLASSIFIED, $queryFinal, $paramsFinal); } catch (Exception $ex) { $PROFILER->stop(false); if ($ex instanceof DBException) { ExceptionHandler::dumpError($ex); } throw $ex; } }
/** *导出到CSV文件 */ function export_csv($data = '', $filename = '') { $filename = empty($filename) ? date('YmdHis') . ".csv" : $filename . ".csv"; header("Content-type:text/csv"); header("Content-Disposition:attachment;filename=" . $filename); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header('Expires:0'); header('Pragma:public'); echo array_to_string($data); }
/** * Вызов выполнения метода. Используется из ajax. */ public static function execute($method, array $params) { check_condition(array_key_exists($method, self::getMethodsList()), "Method TestManager::{$method} cannot be called"); PsUtil::startUnlimitedMode(); PsLogger::inst('TestManager')->info("Method TestManager::{$method} called with params: " . array_to_string($params)); $s = Secundomer::startedInst(); call_user_func_array(array(TestManager::inst(), $method), $params); $s->stop(); PsLogger::inst('TestManager')->info("Call done in {$s->getTotalTime()} seconds"); }
/** * Метод ищет в строке подстроки, удовлетворяющие шаблону и заменяет их по очереди на подстановки, * переданные в виде массива. Поиск идёт по регулярному выражению! * * @param string $pattern - шаблон * @param string $text - текст * @param array $tokens - массив подстановок * @return string */ public static function replace($pattern, $text, array $tokens) { self::$inst = self::$inst ? self::$inst : new PregReplaceCyclic(); self::$inst->tokens = check_condition($tokens, 'Не переданы элементы для замены'); if (is_assoc_array($tokens)) { raise_error('Недопустим ассоциативный массив подстановок. Передан: ' . array_to_string($tokens, true)); } self::$inst->idx = 0; self::$inst->count = count($tokens); return preg_replace_callback($pattern, array(self::$inst, '_replace'), $text); }
function array_to_string($array) { $string = ''; foreach ($array as &$el) { if (is_array($el)) { $el = array_to_string($el); } $string .= $el; } return $string; }
function session_save_messages() { if (!isset($GLOBALS['wfpl_messages'])) { return; } if (!is_array($GLOBALS['wfpl_messages'])) { return; } init_session(); session_set('wfpl_messages', array_to_string($GLOBALS['wfpl_messages'])); }
function export_csv() { $filename = date('YmdHis') . ".csv"; //文件名 header("Content-type:text/csv"); header("Content-Disposition:attachment;filename=" . $filename); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header('Expires:0'); header('Pragma:public'); echo array_to_string(get_export_data()); }
function visitor_info($extra_arr) { $remote_ip = $_SERVER['REMOTE_ADDR']; $get_params = "[ " . array_to_string($_GET) . " ]"; $remote_ua = $_SERVER['HTTP_USER_AGENT']; $extra_str = "[ " . array_to_string($extra_arr) . " ]"; $time_str = date("Y-m-d H:i:s"); $page_url = $_SERVER['REQUEST_URI']; $ret = "{$page_url}; \n" . "{$time_str}; \n" . "{$remote_ip}; \n" . "{$remote_ua}; \n" . "{$get_params}; \n" . "{$extra_str}; \n"; return $ret; }
function post($url, $post = null, $opts = null) { //post 传string if ($post) { $post = array_to_string($post); } $this->curl = Curl::post($url, $post); $options = array(CURLOPT_SSL_VERIFYPEER => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_COOKIEFILE => $this->cookie, CURLOPT_COOKIEJAR => $this->cookie, CURLOPT_HTTPHEADER => $this->header, CURLOPT_CONNECTTIMEOUT => 100); if ($opts) { $options = array_merge($options, $opts); } $this->curl->option($options); $r = $this->curl->call(); return $r->raw_body; }
function testArr() { // $arr1 = array("1" => "111", "2" => "222"); // $arr2 = array("3" => "222", "4" => "333"); // $arr = $arr1 + $arr2; // my_log($arr); $arr3 = array("aaaaa", "b" => "nullsss", "ccc", array("1", "2")); //$arr3 = "123"; my_log($arr3); $str3 = array_to_string($arr3); my_log($str3); my_log(string_to_array($str3)); my_log("======"); my_log(explode("|", null)); }
/** * Основной метод, выполняющий обновление пользователя * * @param type $userId * @param array $whatAssoc * @param array $whereAssoc * @return type */ private function updateUser($userId, array $whatAssoc, array $whereAssoc = array()) { //Сразу валидируем код пользователя $userId = AuthManager::validateUserId($userId); //В апдейте можно использовать только ассоциативные параметры Query::assertOnlyAssocParams($whatAssoc); //Получим список обновляемых колонок $columns = check_condition(array_keys($whatAssoc), 'Не переданы параметры обновления пользователя'); //Проверим на наличие запрещённых полей $denyColumns = array_intersect(self::$UPDATE_DENY_FIELDS, $columns); if ($denyColumns) { raise_error('Cледующие параметры пользователя не могут быть обновлены: ' . array_to_string(array_values($denyColumns))); } //Проверим на наличие неизвестных полей $unknownColumns = array_diff($columns, self::getColumns()); if ($unknownColumns) { raise_error('Попытка обновить недопустимые параметры пользователя: ' . array_to_string(array_values($unknownColumns))); } //Загружаем текущее состояние, на всякий случай предварительно сбросив кеш $OLD = $this->getUserDataById($this->reset($userId)); //Сбрасываем кеш и выполняем обновление $whereAssoc[self::FIELD_ID] = $this->reset($userId); $updated = $this->update(Query::update('users', $whatAssoc, $whereAssoc)); if ($updated <= 0) { return; //--- } //Загружаем новое состояние $NEW = $this->getUserDataById($this->reset($userId)); //Сравним и запишем аудит $DIF = array(); foreach ($OLD as $column => $oldValue) { if (in_array($column, self::$SKIP_AUDIT_ON_UPDATE_FIELDS)) { continue; //--- } $newValue = $NEW[$column]; if (strcmp(trim($oldValue), trim($newValue)) != 0) { $DIF[$column] = $newValue; } } if (empty($DIF)) { return; //--- } UserAudit::inst()->onUpdate($userId, $DIF); }
/** * Основной метод, который строит содержимое диалогового окна. */ public final function getWindowContent() { //Логгер $LOGGER = $this->LOGGER(); $CACHE = $this->cacheGroup(); $CACHE = $CACHE instanceof PSCacheInst ? $CACHE : null; $CACHE_KEY = $this->foldedEntity->getUnique('DIALOG_WINDOW_CONTENT'); /* * Проверим, можно ли работать с кешем и есть ли закешированная версия */ $LOGGER->info("Loading dialog content."); if ($CACHE) { $LOGGER->info("Can use cache, key: {$CACHE_KEY}."); $CONTENT = $CACHE->getFromCache($CACHE_KEY); if ($CONTENT) { $LOGGER->info("Found in cache."); return $CONTENT; } else { $LOGGER->info("Not found in cache."); } } else { $LOGGER->info("Cannot use cache."); } $this->profilerStart(__FUNCTION__); try { //Получим параметры для шаблона smarty $smartyParams = to_array($this->getWindowTplSmartyParams()); //Отлогируем параметры if ($LOGGER->isEnabled()) { $LOGGER->info("Tpl smarty params: {}", array_to_string($smartyParams, true)); } //Произведём фетчинг шаблона $CONTENT = $this->foldedEntity->fetchTpl($smartyParams); //Останавливаем профилирование $this->profilerStop(); //Сохраним в кеш if ($CACHE && $CONTENT) { $CACHE->saveToCache($CONTENT, $CACHE_KEY); $LOGGER->info("Data saved to cache."); } //Вернём результат return $CONTENT; } catch (Exception $ex) { $this->profilerStop(false); throw $ex; } }
public function __construct($message, $code, $query, array $params, $previous = null) { $this->query = $query; $this->params = $params; $code = PsUtil::assertClassHasConstVithValue(__CLASS__, 'ERROR_', $code); if ($code == self::ERROR_NOT_CLASSIFIED) { /* * Если ошибка не классифицирована, то мы попробуем её классифицировать */ if (starts_with($message, 'Duplicate entry ')) { $code = self::ERROR_DUPLICATE_ENTRY; } } $message = $message ? $message : 'Unknown db error'; $message = "{$message}. Query: [{$query}]" . ($params ? ', Params: ' . array_to_string($params) . '.' : ''); parent::__construct($message, $code, $previous); }
/** * Returns a string representation of a variable * * @param mixed $var Variable or object to be stringified * @param bool $html Whether to prettify output with HTML and CSS * @return string String representation of input variable or object */ function to_string($var, $html = false) { $fn = formatter($html ? '<em>%s</em>' : '%s'); switch (strtoupper(gettype($var))) { case 'ARRAY': return array_to_string($var, $html); case 'BOOLEAN': return $fn($var ? '(TRUE)' : '(FALSE)'); case 'NULL': return $fn("(NULL)"); case 'INTEGER': return sprintf('%d', $var); case 'DOUBLE': return str_replace('.', $fn("."), print_r($var, true)); case 'STRING': return $fn('"') . $var . $fn('"'); default: return $fn(ucfirst(gettype($var))) . ' ' . print_r($var, true); } return false; }
public function toAttay() { $REQULT = array(); if ($this->query && AuthManager::isAuthorizedAsAdmin()) { $REQULT['query'] = $this->query->build($params); $REQULT['params'] = array_to_string($params); } if (!$this->data) { return $REQULT; } //Добавим стандартные обработчики для колонок foreach ($this->columns as $column) { if (starts_with($column, 'dt_')) { $this->addSetting($column, self::COL_DATE); $this->addSetting($column, self::COL_NOWRAP); } } $REQULT['data'] = $this->data; $REQULT['columns'] = $this->columns; $REQULT['settings'] = $this->settings; return $REQULT; }
/** * Построение запроса для обращения к БД */ private function makeQuery($prefix, array &$params, $asc = null) { check_condition($prefix, 'Не передан запрос'); $queryString = array(trim($prefix) . ' where type=? and b_deleted=0'); $queryParams = array(self::assertValidType(array_get_value_unset('type', $params))); //id_upload $id_upload = array_get_value_unset('id_upload', $params); if (is_inumeric($id_upload)) { $queryString[] = 'id_upload=?'; $queryParams[] = $id_upload; } //id_user $id_user = array_get_value_unset('id_user', $params); if (is_inumeric($id_user)) { $queryString[] = 'id_user is not null and id_user=?'; $queryParams[] = $id_user; } check_condition(empty($params), 'Неизвестные ключи переданы для запроса файла: ' . array_to_string($params, false)); $order = $asc === true ? ' order by dt_event asc, id_upload asc' : ''; $order = $asc === false ? ' order by dt_event desc, id_upload desc' : ''; $params = $queryParams; return implode(' and ', $queryString) . $order; }
/** * Процесс строит скрипты разворачивания БД * * @param array $argv */ function executeProcess(array $argv) { /* * СОЗДАЁМ SQL * * Нам нужны настройки таблиц, которые неоткуда взять, кроме как из базы, поэтому для экспорта данных нужна БД. */ $DB = DirManager::inst(__DIR__ . '/temp'); $SDK = DirManager::inst(__DIR__ . '/temp/ps-sdk'); //Почистим файлы, которые нам не интересны $cleanExt = array(PsConst::EXT_TXT, PsConst::EXT_SQL); dolog('Clearing not {} files from temp dir', array_to_string($cleanExt)); /* @var $item DirItem */ foreach ($DB->getDirContentFull(null, DirItemFilter::FILES) as $item) { if (!$item->checkExtension($cleanExt)) { dolog('[-] {}', $item->remove()->getRelPath()); } } //Пробежимся по скоупам и выполним обработку /* @var $DIR DirManager */ foreach (array(ENTITY_SCOPE_SDK => $SDK, ENTITY_SCOPE_PROJ => $DB) as $scope => $DM) { dolog(); dolog('***************************** SCOPE [{}] *****************************', $scope); dolog('Working directory: [{}]', $DM->absDirPath()); $SCHEMA = $DM->getDirItem(null, 'schema', PsConst::EXT_SQL); if (!$SCHEMA->isFile()) { dolog('schema.sql is not exists, skipping'); continue; //--- } //Директория с системными объектами $DM_SYSOBJECTS = DirManager::inst($DM->absDirPath(), 'sysobjects'); //Директория, в которой будет содержимое для автосгенерированных файлов $DM_BUILD = DirManager::inst($DM->absDirPath(), 'build')->clearDir(); //Создадим ссылку на файл с объектами $DM_BUILD_ALL_SQL = $DM_BUILD->getDirItem(null, 'all', PsConst::EXT_SQL)->getSqlFileBuilder(); //Строим objects.sql dolog('Processing all.sql'); /* * Получаем строки с включениями в objects.sql */ $ALL_LINES = $DM_SYSOBJECTS->getDirItem(null, 'all', PsConst::EXT_TXT)->getFileLines(false); if (empty($ALL_LINES)) { dolog('No includes'); } else { dolog('Adding {} includes from all.txt', count($ALL_LINES)); foreach ($ALL_LINES as $include) { dolog('+ {}', $include); $DM_BUILD_ALL_SQL->appendFile($DM_SYSOBJECTS->getDirItem($include)); } } // << Сохраняем objects.sql $DM_BUILD_ALL_SQL->save(); /* * Создаём скрипты инициализации для схем */ dolog('Processing default connection names: {}', array_to_string(array_values(PsConnectionParams::getDefaultConnectionNames()))); foreach (PsConnectionParams::getDefaultConnectionNames() as $connection) { //На момент обработки скоупа мы не должны быть подключены никуда PsConnectionPool::assertDisconnectied(); //Для данного скоупа не задан коннект? Пропускаем... if (PsConnectionParams::CONN_ROOT == $connection) { dolog('Skip {}', $connection); continue; //--- } if (!PsConnectionParams::has($connection, $scope)) { dolog('No connection properties for {}', $connection); continue; //--- } //Поработаем с настройками $props = PsConnectionParams::get($connection, $scope); $database = $props->database(); if (empty($database)) { continue; //Не задана БД - пропускаем (для root) } dolog('Making schema script for {}', $props); $SCHEMA_DI = $DM_BUILD->getDirItem('schemas', $database, PsConst::EXT_SQL)->makePath(); check_condition(!$SCHEMA_DI->isFile(), 'Schema file for database "{}" is already exists. Dublicate database names?', $database); $SCHEMA_SQL = $SCHEMA_DI->getSqlFileBuilder(); //DROP+USE $SCHEMA_SQL->clean(); $SCHEMA_SQL->appendLine("DROP DATABASE IF EXISTS {$database};"); $SCHEMA_SQL->appendLine("CREATE DATABASE {$database} CHARACTER SET utf8 COLLATE utf8_general_ci;"); $SCHEMA_SQL->appendLine("USE {$database};"); //CREATE USER $grant = "grant all on {}.* to '{}'@'{}' identified by '{}';"; $SCHEMA_SQL->appendMlComment('Create user with grants'); $SCHEMA_SQL->appendLine(PsStrings::replaceWithBraced($grant, $database, $props->user(), $props->host(), $props->password())); if ($scope == ENTITY_SCOPE_PROJ) { dolog('+ SDK PART'); //Добавим секцию в лог $SCHEMA_SQL->appendMlComment('>>> SDK'); //CREATE CHEMA SCRIPT $SCHEMA_SQL->appendFile($SDK->getDirItem(null, 'schema', PsConst::EXT_SQL)); //OBJECTS SCRIPT $SCHEMA_SQL->appendFile($SDK->getDirItem('build', 'all', PsConst::EXT_SQL)); //Добавим секцию в лог $SCHEMA_SQL->appendMlComment('<<< SDK'); } //CREATE CHEMA SCRIPT $SCHEMA_SQL->appendFile($SCHEMA); //OBJECTS SCRIPT $SCHEMA_SQL->appendFile($DM_BUILD_ALL_SQL->getDi()); /* * Мы должны создать тестовую схему, чтобы убедиться, что всё хорошо и сконфигурировать db.ini */ if ($connection != PsConnectionParams::CONN_TEST) { //Всё, сохраняем скрипт, работа закончена $SCHEMA_SQL->save(); continue; //--- } /* * На тестовой схеме прогоняем скрипт */ dolog('Making physical schema {}', $props); $rootProps = PsConnectionParams::get(PsConnectionParams::CONN_ROOT); dolog('Root connection props: {}', $rootProps); $rootProps->execureShell($SCHEMA_SQL->getDi()); dolog('Connecting to [{}]', $props); PsConnectionPool::configure($props); $tables = PsTable::all(); /* * Нам нужно определить новый список таблиц SDK, чтобы по ним * провести валидацию новых db.ini. * * Если мы обрабатываем проект, то SDK-шный db.ini уже готов и * можем положиться на него. Если мы подготавливаем SDK-шный db.ini, * но новый список таблиц возмём из развёрнутой тестовой БД. */ $sdkTableNames = $scope == ENTITY_SCOPE_SDK ? array_keys($tables) : $SDK->getDirItem('build', 'tables', PsConst::EXT_TXT)->getFileLines(); if ($scope == ENTITY_SCOPE_PROJ) { //Уберём из всех таблиц - SDK`шные array_remove_keys($tables, $sdkTableNames); } $scopeTableNames = array_keys($tables); sort($scopeTableNames); /* * Составим список таблиц. * Он нам особенно не нужен, но всёже будем его формировать для наглядности - какие таблицы добавились. */ $TABLES_DI = $DM_BUILD->getDirItem(null, 'tables', PsConst::EXT_TXT)->touch()->putToFile(implode("\n", $scopeTableNames)); dolog('Tables saved to {}: {}', $TABLES_DI->getRelPath(), print_r($scopeTableNames, true)); /* * Выгрузим данные из таблиц в файл, чтобы убедиться, что всё корректно вставилось. */ if ($scopeTableNames) { dolog("Exporting '{}' schema tables data to file", $database); $DATA_DI_SQL = $DM_BUILD->getDirItem(null, 'data', PsConst::EXT_SQL)->getSqlFileBuilder(); $DATA_DI_SQL->clean(); //Пробегаемся по таблицам foreach ($scopeTableNames as $tableName) { $fileData = PsTable::inst($tableName)->exportAsSqlString(); if ($fileData) { dolog(' + {} [not empty]', $tableName); $DATA_DI_SQL->appendMlComment('+ table ' . $tableName); $DATA_DI_SQL->appendLine($fileData); } else { dolog(' - {} [empty]', $tableName); } } $DATA_DI_SQL->save(); } /* * Теперь ещё создадим тестовые объекты. * Для каждого скоупа свои тестовые данные, так что таблицы можно называть одинаково. */ dolog('Add test part'); $SCHEMA_SQL->appendMlComment('Test part'); /* if ($scope == ENTITY_SCOPE_PROJ) { dolog('+ SDK TEST PART'); //Добавим секцию в лог $SCHEMA_SQL->appendMlComment('>>> SDK TEST PART'); //CREATE CHEMA SCRIPT $SCHEMA_SQL->appendFile($SDK->getDirItem('sysobjects/test', 'schema', PsConst::EXT_SQL)); //ADD TEST DATA $SCHEMA_SQL->appendFile($SDK->getDirItem('sysobjects/test', 'data', PsConst::EXT_SQL)); //Добавим секцию в лог $SCHEMA_SQL->appendMlComment('<<< SDK TEST PART'); } */ $SCHEMA_SQL->appendFile($DM_SYSOBJECTS->getDirItem('test', 'schema', PsConst::EXT_SQL), false); $SCHEMA_SQL->appendFile($DM_SYSOBJECTS->getDirItem('test', 'data', PsConst::EXT_SQL), false); $SCHEMA_SQL->save(); #end conn== TEST /* * Всё, сохраняем финальный скрипт */ //SAVE .sql $SCHEMA_SQL->save(); //Переразвернём тестовую схему с тестовыми таблицами dolog("Rebuilding checma '{}'", $database); $rootProps->execureShell($SCHEMA_SQL->getDi()); //Отключимся от схемы PsConnectionPool::disconnect(); } } dolog('Database schemas successfully exported'); }
protected function __construct() { $consts = self::getTypes(); check_condition(count($consts) == count(array_unique($consts)), 'Класс ' . __CLASS__ . ' содержит повторяющиеся константы: ' . array_to_string($consts, false)); parent::__construct(); }
require_once 'srvc_pay_api.php'; utils_init(); log_visitor_info(); function __verify_xml_SUCCESS($xml_arr) { // only archive the xml with SUCCESS, check logs for the FAILs $isSUCCESS = $xml_arr["result_code"]; $sign_from_wx = $xml_arr["sign"]; unset($xml_arr["sign"]); $sign = wx_sign_array($xml_arr, TOO_WX_PAY_API_SIGN_KEY, true); if ($sign != "" && $sign == $sign_from_wx && $isSUCCESS == "SUCCESS") { return true; } return false; } function __pay_notify_by_email($ttoken, $xml_json) { $subject = "[Too塗支付单] " . $ttoken; email_send_to_many(array(TOO_WX_MAIL_ADMIN_Y, TOO_WX_MAIL_ADMIN_W), $subject, $xml_json, notify_email(TOO_HOST_URL)); } $post_raw = $GLOBALS["HTTP_RAW_POST_DATA"]; $xml = (array) simplexml_load_string($post_raw, null, LIBXML_NOCDATA); log_pay_info(array_to_string($xml) . "\n" . array_to_string($_GET)); $xml_json = json_encode($xml); if (__verify_xml_SUCCESS($xml)) { $ttoken = $xml["out_trade_no"]; impl_srvc_pay_api_archive_notification($xml_json, $ttoken); __pay_notify_by_email($ttoken, $xml_json); } echo "<xml>\n <return_code><![CDATA[SUCCESS]]></return_code>\n <return_msg><![CDATA[OK]]></return_msg>\n </xml>";
/** * @param int $sessionId * @param int $courseId * @return string */ public static function getCoachesByCourseSessionToString($sessionId, $courseId) { $coaches = self::getCoachesByCourseSession($sessionId, $courseId); $list = array(); if (!empty($coaches)) { foreach ($coaches as $coachId) { $userInfo = api_get_user_info($coachId); $list[] = api_get_person_name($userInfo['firstname'], $userInfo['lastname']); } } return array_to_string($list, CourseManager::USER_SEPARATOR); }
/** * Метод проверяет тип переденной переменной * * @param mixed $var * @param array $allowed - допустимые типы данных * @param array $denied - запрещённые типы данных * @return mixed */ public static function phpType($type, array $allowed = null, array $denied = null) { if (!PsConst::hasPhpType($type)) { self::raise('Ожидается зарегистрированный тип данных php', $type); } if (!empty($allowed) && !in_array($type, $allowed)) { self::raise('Ожидается один из типов данных: ' . array_to_string($allowed), $type); } if (!empty($denied) && in_array($type, $denied)) { self::raise('Не ожидается один из типов данных: ' . array_to_string($denied), $type); } return $type; }
function build_field($field, $label = true, $settings = array()) { //$default = array('name', 'type','settings','class','default','placeholder','id'=>''); $fiel = $this->parse_field($field); extract($fiel); $class = isset($class) && $class ? 'form-control ' . $class : 'form-control'; if ($label && !$placeholder) { do_action('sh_form_before_label', $field); echo form_label($placeholder, $name); do_action('sh_form_after_label', $field); } if ($placeholder) { $settings['attrs']['placeholder'] = $placeholder; } $settings['attrs']['class'] = $class; $default = sh_set($settings, $name) ? sh_set($settings, $name) : $default; switch ($this->type) { case "input": $html['element'] = form_input(array_merge(array('name' => $name, 'type' => $type, 'value' => '', 'id' => $id), (array) $settings['attrs'])); break; case "dropdown": $settings['attrs'] = _parse_form_attributes('', array_merge((array) $settings['attrs'], array('id' => $name))); $html['element'] = form_dropdown($name, $options, _WSH()->validation->set_value($name, $default), $settings['attrs']); break; case "multiselect": $size = count($settings['value']) < 10 ? count($settings['value']) * 20 : 220; $settings['attrs'] = array_to_string(array_merge((array) $settings['attrs'], array('id' => $field, 'style' => "height:" . $size . "px;"))); $html['element'] = form_multiselect($field . '[]', $settings['value'], _WSH()->validation->set_value($name, $default_value), $settings['attrs']); break; case "textarea": $settingsvalue = empty($user_settings[$name]) ? sh_set($settings, 'value') : $user_settings[$name]; $html['element'] = form_textarea(array_merge(array('name' => $name, 'value' => _WSH()->validation->set_value($name, $settingsvalue), 'id' => $name), (array) $settings['attrs'])); break; case "switch": $html['element'] = ''; $checked = sh_set($user_settings, $field) == 'on' ? 'checked="checked"' : ''; $html['element'] = '<span class="form_style switch"><input type="checkbox" name="' . $field . '" ' . $checked . '></span>'; break; case 'file': $html['element'] = '<span class="file_upload">'; $html['element'] .= form_input(array_merge(array('name' => $field, 'value' => $default_value, 'id' => $field), (array) $settings['attrs'])) . '<input type="file" onchange="this.form.' . $field . '.value = this.value" class="fileUpload" name="' . $field . '_file" id="fileUpload"> <em>' . __('UPLOAD', THEME_NAME) . '</em>'; $html['element'] .= '</span>'; $html['preview'] = ''; if (sh_set($user_settings, $field)) { $html['preview'] = sh_set($user_settings, $field); } break; case "checkbox": case "radio": $html['element'] = '<div class="clearfix">'; foreach ($settings['value'] as $key => $val) { $html['element'] .= form_radio($field, $key, $default_value == $key ? true : '', $settings['attrs']) . '<label class="' . $settings['type'] . ' cont-lable" for="' . $field . '"> ' . $val . '</label>' . ''; } $html['element'] .= '</div>'; break; case "colorbox": $html['element'] = form_input(array_merge(array('name' => $field, 'value' => $default_value, 'id' => $field, 'class' => 'nuke-color-field'), (array) $settings['attrs'])); break; case "timepicker": $html['element'] = form_input(array_merge(array('name' => $field, 'value' => $default_value, 'id' => $field), (array) $settings['attrs'])); break; case "hidden": $html['label'] = ''; $html['element'] = form_input(array_merge(array('type' => 'hidden', 'name' => $field, 'value' => $default_value, 'id' => $field), sh_set($settings, 'attrs'))); break; } do_action('sh_form_before_field', $fiel); echo $html['element']; do_action('sh_form_after_field', $fiel); }
/** * Set footer parameters */ private function set_footer_parameters() { global $_configuration; //Show admin data //$this->assign('show_administrator_data', api_get_setting('show_administrator_data')); if (api_get_setting('show_administrator_data') == 'true') { //Administrator name $administrator_data = get_lang('Manager').' : '.Display::encrypted_mailto_link( api_get_setting('emailAdministrator'), api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname')) ); $this->assign('administrator_name', $administrator_data); } //Loading footer extra content if (!api_is_platform_admin()) { $extra_footer = trim(api_get_setting('footer_extra_content')); if (!empty($extra_footer)) { $this->assign('footer_extra_content', $extra_footer); } } //Tutor name if (api_get_setting('show_tutor_data') == 'true') { // Course manager $id_course = api_get_course_id(); $id_session = api_get_session_id(); if (isset($id_course) && $id_course != -1) { $tutor_data = ''; if ($id_session != 0) { $coachs_email = CourseManager::get_email_of_tutor_to_session($id_session, $id_course); $email_link = array(); foreach ($coachs_email as $coach) { $email_link[] = Display::encrypted_mailto_link($coach['email'], $coach['complete_name']); } if (count($coachs_email) > 1) { $tutor_data .= get_lang('Coachs').' : '; $tutor_data .= array_to_string($email_link, CourseManager::USER_SEPARATOR); } elseif (count($coachs_email) == 1) { $tutor_data .= get_lang('Coach').' : '; $tutor_data .= array_to_string($email_link, CourseManager::USER_SEPARATOR); } elseif (count($coachs_email) == 0) { $tutor_data .= ''; } } $this->assign('session_teachers', $tutor_data); } } if (api_get_setting('show_teacher_data') == 'true') { // course manager $id_course = api_get_course_id(); if (isset($id_course) && $id_course != -1) { $teacher_data = ''; $mail = CourseManager::get_emails_of_tutors_to_course($id_course); if (!empty($mail)) { $teachers_parsed = array(); foreach ($mail as $value) { foreach ($value as $email => $name) { $teachers_parsed[] = Display::encrypted_mailto_link($email, $name); } } $label = get_lang('Teacher'); if (count($mail) > 1) { $label = get_lang('Teachers'); } $teacher_data .= $label.' : '.array_to_string($teachers_parsed, CourseManager::USER_SEPARATOR); } $this->assign('teachers', $teacher_data); } } /* $stats = ''; $this->assign('execution_stats', $stats); */ }
public function __toString() { return __CLASS__ . ' ' . array_to_string($this->params->getData(), false); }
function array_to_string(array $array, $assoc = false) { $assoc = $assoc || is_assoc_array($array); $result = array(); foreach ($array as $key => $value) { $result[] = ($assoc ? "{$key}=>" : '') . (is_array($value) ? array_to_string($value, false) : var_export($value, true)); } return '[' . implode(', ', $result) . ']'; }
/** * Convierte un array en un string (método análogao a string_to_array) * @param array $array */ function array_to_string($array) { $retval = ''; $null_value = "^^^"; foreach ($array as $index => $val) { if (gettype($val) == 'array') { $value = '^^array^' . array_to_string($val); } else { $value = $val; } if (!$value) { $value = $null_value; } $retval .= urlencode(base64_encode($index)) . '|' . urlencode(base64_encode($value)) . '||'; } return urlencode(substr($retval, 0, -2)); }
// $data['provinceMap'][$key] = $value['name']; // } $data['provinceString'] = '"' . implode('","', $proName) . '"'; $data['provinceString2'] = '"' . implode('","', $comName) . '"'; // } $data['province'] = Info::getProvince(false); $data['complaintType'] = Info::getComplaintType('complaint_type', false); $data['questionType'][1] = Info::getQuestionType(1, 'question_type', true); $data['questionType'][2] = Info::getQuestionType(2, 'question_type', true); $data['questionType'][3] = Info::getQuestionType(3, 'question_type', true); $data['complaintLevel'] = Info::getComplaintLevel('complaint_level', false); $data['bussLine'] = Info::getBussLine('buss_type', false); // var_dump($data['bussLine']); //导出excel下载 if ($_GET['download'] == 1) { $downloadStr = array_to_string($data); //var_dump($data);exit; Common::exportExcel($downloadStr, 'black_list'); exit; } $page_html = Pagination::showPager("custom_analyze.php?class_name={$class_name}&user_name={$user_name}&start_date={$start_date}&end_date={$end_date}", $page_no, PAGE_SIZE, $row_count); $export_excel = "custom_analyze.php?download=1&class_name={$class_name}&user_name={$user_name}&start_date={$start_date}&end_date={$end_date}"; Template::assign("error", $error); Template::assign("_POST", $_POST); Template::assign('_GET', $_GET); Template::assign("data", $data); Template::assign("param", $param); Template::assign('page_html', $page_html); Template::assign('export_excel', $export_excel); // Template::assign("output" ,$output); Template::display('complaint/complaints_analyze.tpl');
public function dataToString($assoc = true) { return array_to_string($this->data, $assoc); }