' . sprintf(T_('Кредит выдается 1 раз в течении 1 календарного месяца на период %d дней.'), $this->_attributesOut['user']['do_credit_swing_date_days']) . '
' . sprintf(T_('Кредит выдается на период с %d по %d число, под %d %% ежедневно и будет снят %d числа.'), $this->_attributesOut['user']['start_credit_procent_date'], $this->_attributesOut['user']['stop_credit_procent_date'], $this->_attributesOut['user']['credit_procent'], $this->_attributesOut['user']['stop_credit_procent_date']) . '
' . sprintf(T_('Кредит выдается на период с %d по %d число, и будет снят %d числа.'), $this->_attributesOut['user']['start_credit_date'], $this->_attributesOut['user']['stop_credit_date'], $this->_attributesOut['user']['stop_credit_date']) . '.
';
}
$this->_attributesOut['credit'] = Array(
'cab_credit_info_alert' => $alertInfoCredit,
'cab_credit_alert' => $alertCredit,
'cab_credit_active_cena' => $piceActivateCredit,
'cab_do_fixed_credit_summa' => $summaCredit,
'typeCredit' => $type_limit,
'alertDoCredit' => $alertDoCredit
);
}
public function doUnfreeze($oldPass)
{
$url = $this->_billLink['dounfreezeuserfl'];
$param = array(
"password2" => $oldPass,
"us_uid" => $this->_attributesOut['user']['uid']
);
$responseQuery = $this->sendQuery($url, 'post', $param, 0);
$buferRespone = $this->xmlParser2($responseQuery);
$response = $buferRespone['ok'];
return $response;
}
public function doFreeze($oldPass, $freezeDoEver, $doFreezeNow, $freezeDateStart, $freezeDateStop, $freezeFixedMonthNum)
{
$url = $this->_billLink['dofreezeuserfl'];
$param = array(
"freeze_do_ever" => $freezeDoEver,
"do_freeze_now" => $doFreezeNow,
"do_return_abonplata" => $this->_attributesOut['user']['freeze_do_return_abonolata'],
"password2" => $oldPass,
"freeze_date_start" => $freezeDateStart,
"us_uid" => $this->_attributesOut['user']['uid'],
"freeze_date_stop" => $freezeDateStop,
"freezefixedmonthnum" => $freezeFixedMonthNum
);
$responseQuery = $this->sendQuery($url, 'post', $param, 0);
$buferRespone = $this->xmlParser2($responseQuery);
$response = $buferRespone['ok'];
return $response;
}
/**
* Выпилить услуги указанных мидлвар из массива
*
* @param $services
* @param $unsetServicePortal
* @return array
*/
private function unsetService($services, $unsetServicePortal)
{
$response = array();
foreach($services AS $service){
if(!in_array($service['service_portal'], $unsetServicePortal)){
$response[] = $service;
}
}
return $response;
}
/**
* Оставить услуги указанных мидлвар из массива
*
* @param $services
* @param $unsetServicePortal
* @return array
*/
private function filterService($services, $unsetServicePortal)
{
$response = array();
foreach($services AS $service){
if(in_array($service['service_portal'], $unsetServicePortal)){
$response[] = $service;
}
}
return $response;
}
/**
* Остальные доп.услуги
*/
public function menuOtherServices()
{
$this->_outPage = 'services';
$megogo_info_on = 0;
$megogo_info = array("on" => "0");
/**
* 7 - omegaTV
* 6 - TRINITY-TV
*/
$filterArray = array(6,7);
// Получаем все услуги доступные
$getAllPersonalServicesUser = $this->getAllPersonalServicesUser();
// Отфильтруем мидлвары
$getAllPersonalServicesUser = $this->unsetService($getAllPersonalServicesUser,$filterArray);
// Получаем включенные услуги абонента
$getPersonalServicesUser = $this->getPersonalServicesUser();
// Отфильтруем мидлвары
$getPersonalServicesUser = $this->unsetService($getPersonalServicesUser,$filterArray);
//Получаем активные(оплаченные) услуги
$getActiveServicesUser = $this->getActiveServicesUser();
// Активные услуги
$activeServicesId = array();
foreach ($getActiveServicesUser as $item) {
$activeServicesId[] = $item['serviceid'];
}
// Включенные услуги
$usedServicesId = array();
foreach ($getPersonalServicesUser as $item) {
$usedServicesId[] = $item['serviceid'];
}
// Активация/деактивации услуг
if (!empty($this->_paramsInput['services'])) {
$inputEnableService = array();
foreach ($this->_paramsInput as $key => $value) {
$search = strpos($key, "service_select_");
if ($search !== false) {
$inputEnableService[] = $value;
}
}
// Список ID котрые необходимо деактивировать
foreach ($usedServicesId as $item) {
if (!in_array($item, $inputEnableService)) {
$this->unSetPersonalServiceUser($item);
}
}
// Список ID котрые необходимо активировать
foreach ($inputEnableService as $item) {
if (!in_array($item, $usedServicesId)) {
$this->setPersonalServiceUser($item);
}
}
// Получаем включенные услуги абонента
$getPersonalServicesUser = $this->getPersonalServicesUser();
// Отфильтруем мидлвары
$getPersonalServicesUser = $this->unsetService($getPersonalServicesUser,$filterArray);
//Получаем активные услуги
$getActiveServicesUser = $this->getActiveServicesUser();
// Активные услуги
$activeServicesId = array();
foreach ($getActiveServicesUser as $item) {
$activeServicesId[] = $item['serviceid'];
}
// Включенные услуги
$usedServicesId = array();
foreach ($getPersonalServicesUser as $item) {
$usedServicesId[] = $item['serviceid'];
}
}
// Сформируем список всех услуг для фронта
$tmp = array();
foreach ($getAllPersonalServicesUser as $services) {
if (in_array($services['serviceid'], $activeServicesId)) {
$services['active'] = 1;
} else {
$services['active'] = 0;
}
if (in_array($services['serviceid'], $usedServicesId)) {
$services['used'] = 1;
if ($item['service_portal'] == 4) {
$megogo_info_on = 1;
}
} else {
$services['used'] = 0;
}
if ($services['tarifservice'] == 1) {
$type = '1_tariff';
} elseif ($services['tarifservice'] == 2) {
$type = '2_packet';
} else {
$type = '3_none';
}
$tmp[$services['service_groupid']][$type][] = $services;
}
// Сортировка
$allservices = array();
foreach ($tmp AS $key => $item) {
ksort($item);
$allservices[$key] = $item;
}
if ($megogo_info_on == 1) {
$info = $this->getMegogoUserInfo();
$megogo_info = array(
"on" => $megogo_info_on,
"login" => $info['login'],
"password" => $info['password']
);
}
if (!empty($this->_paramsInput['megogo_action']) AND $this->_paramsInput['megogo_action'] == 'resetpass') {
$this->resetMegogoUserPass();
}
$this->_attributesOut['user']['services'] = array(
"userservices" => $allservices,
"alluserservices" => $getAllPersonalServicesUser,
"megogo_info" => $megogo_info
);
}
/**
* OmegaTV Service
*/
public function menuOmegaTvServices()
{
$this->_outPage = 'omegatv';
/**
* 7 - omegaTV
*/
$filterArray = array(7);
// Получаем пользователя из ОмегаТВ
$customer = $this->getOmegaTvCustomer();
// Получаем все услуги доступные
$getAllPersonalServicesUser = $this->getAllPersonalServicesUser();
// Отфильтруем мидлвары
$getAllPersonalServicesUser = $this->filterService($getAllPersonalServicesUser,$filterArray);
// Получаем включенные услуги абонента
$getPersonalServicesUser = $this->getPersonalServicesUser();
// Отфильтруем мидлвары
$getPersonalServicesUser = $this->filterService($getPersonalServicesUser,$filterArray);
//Получаем активные услуги
$getActiveServicesUser = $this->getActiveServicesUser();
// Активные услуги
$activeServicesId = array();
foreach ($getActiveServicesUser as $item) {
$activeServicesId[] = $item['serviceid'];
}
// Включенные услуги
$usedServicesId = array();
foreach ($getPersonalServicesUser as $item) {
$usedServicesId[] = $item['serviceid'];
}
// Активация/деактивации услуг
if (!empty($this->_paramsInput['services'])) {
$inputEnableService = array();
foreach ($this->_paramsInput as $key => $value) {
$search = strpos($key, "service_select_");
if ($search !== false) {
$inputEnableService[] = $value;
}
}
// Список ID котрые необходимо деактивировать
foreach ($usedServicesId as $item) {
if (!in_array($item, $inputEnableService)) {
$this->unSetPersonalServiceUser($item);
}
}
// Список ID котрые необходимо активировать
foreach ($inputEnableService as $item) {
if (!in_array($item, $usedServicesId)) {
$this->setPersonalServiceUser($item);
}
}
//Получаем активные услуги
$getActiveServicesUser = $this->getActiveServicesUser();
// Получаем включенные услуги абонента
$getPersonalServicesUser = $this->getPersonalServicesUser();
// Активные услуги
$activeServicesId = array();
foreach ($getActiveServicesUser as $item) {
$activeServicesId[] = $item['serviceid'];
}
// Включенные услуги
$usedServicesId = array();
foreach ($getPersonalServicesUser as $item) {
$usedServicesId[] = $item['serviceid'];
}
}
// Сформируем список всех услуг для фронта
$tmp = array();
foreach ($getAllPersonalServicesUser as $services) {
if (in_array($services['serviceid'], $activeServicesId)) {
$services['active'] = 1;
} else {
$services['active'] = 0;
}
if (in_array($services['serviceid'], $usedServicesId)) {
$services['used'] = 1;
} else {
$services['used'] = 0;
}
if ($services['tarifservice'] == 1) {
$type = '1_tariff';
} elseif ($services['tarifservice'] == 2) {
$type = '2_packet';
} else {
$type = '3_none';
}
$tmp[$services['service_groupid']][$type][] = $services;
}
// Сортировка
$allservices = array();
foreach ($tmp AS $key => $item) {
ksort($item);
$allservices[$key] = $item;
}
$code = '';
if (!empty($this->_paramsInput['code'])) {
$code = $this->getOmegaTvCode();
}
if (!empty($this->_paramsInput['getplaylist'])) {
$this->getOmegaTvUrlAdd();
$customer = $this->getOmegaTvCustomer();
}
if(!empty($this->_paramsInput['remove_device'])){
$this->delOmegaTvDevice($this->_paramsInput['remove_device']);
}
if(!empty($this->_paramsInput['remove_playlist'])){
$this->delOmegaTvPlaylist($this->_paramsInput['remove_playlist']);
$customer = $this->getOmegaTvCustomer();
}
// Редиректим на URL просмотра
if(!empty($this->_paramsInput['geturl'])){
if(!empty($customer['result']['web_url'])){
$url = $customer['result']['web_url'];
header("Location: ".$url);
die();
}
}
if(!empty($customer['result']['playlists'])){
$playlists = $customer['result']['playlists'];
} else {
$playlists = array();
}
$devices = $this->getOmegaTvDevice();
$this->_attributesOut['user']['services'] = array(
"userservices" => $allservices,
"alluserservices" => $getAllPersonalServicesUser,
"code_activation" => $code,
"devices" => $devices,
"playlists" => $playlists
);
}
/**
* TrinityTV Service
*/
public function menuTrinityTvServices()
{
$this->_outPage = 'trinitytv';
/**
* 6 - TRINITY-TV
*/
$filterArray = array(6);
// Получаем все услуги доступные
$getAllPersonalServicesUser = $this->getAllPersonalServicesUser();
// Отфильтруем мидлвары
$getAllPersonalServicesUser = $this->filterService($getAllPersonalServicesUser,$filterArray);
// Получаем включенные услуги абонента
$getPersonalServicesUser = $this->getPersonalServicesUser();
// Отфильтруем мидлвары
$getPersonalServicesUser = $this->filterService($getPersonalServicesUser,$filterArray);
//Получаем активные услуги
$getActiveServicesUser = $this->getActiveServicesUser();
// Активные услуги
$activeServicesId = array();
foreach ($getActiveServicesUser as $item) {
$activeServicesId[] = $item['serviceid'];
}
// Включенные услуги
$usedServicesId = array();
foreach ($getPersonalServicesUser as $item) {
$usedServicesId[] = $item['serviceid'];
}
// Активация/деактивации услуг
if (!empty($this->_paramsInput['services'])) {
$inputEnableService = array();
foreach ($this->_paramsInput as $key => $value) {
$search = strpos($key, "service_select_");
if ($search !== false) {
$inputEnableService[] = $value;
}
}
// Список ID котрые необходимо деактивировать
foreach ($usedServicesId as $item) {
if (!in_array($item, $inputEnableService)) {
$this->unSetPersonalServiceUser($item);
}
}
// Список ID котрые необходимо активировать
foreach ($inputEnableService as $item) {
if (!in_array($item, $usedServicesId)) {
$this->setPersonalServiceUser($item);
}
}
//Получаем активные услуги
$getActiveServicesUser = $this->getActiveServicesUser();
// Получаем включенные услуги абонента
$getPersonalServicesUser = $this->getPersonalServicesUser();
// Активные услуги
$activeServicesId = array();
foreach ($getActiveServicesUser as $item) {
$activeServicesId[] = $item['serviceid'];
}
// Включенные услуги
$usedServicesId = array();
foreach ($getPersonalServicesUser as $item) {
$usedServicesId[] = $item['serviceid'];
}
}
// Сформируем список всех услуг для фронта
$tmp = array();
foreach ($getAllPersonalServicesUser as $services) {
if (in_array($services['serviceid'], $activeServicesId)) {
$services['active'] = 1;
} else {
$services['active'] = 0;
}
if (in_array($services['serviceid'], $usedServicesId)) {
$services['used'] = 1;
} else {
$services['used'] = 0;
}
if ($services['tarifservice'] == 1) {
$type = '1_tariff';
} elseif ($services['tarifservice'] == 2) {
$type = '2_packet';
} else {
$type = '3_none';
}
$tmp[$services['service_groupid']][$type][] = $services;
}
// Сортировка
$allservices = array();
foreach ($tmp AS $key => $item) {
ksort($item);
$allservices[$key] = $item;
}
// Удалить ус-во
if(!empty($this->_paramsInput['remove_device'])){
$this->deleteUserDev($this->_paramsInput['remove_device']);
}
// Добавить ус-во
if(!empty($this->_paramsInput['dev_mac']) AND !empty($this->_paramsInput['dev_type'])){
$this->addUserDev($this->_paramsInput['dev_type'], $this->_paramsInput['dev_mac']);
}
// Добавить ус-во по коду
if(!empty($this->_paramsInput['code']) AND !empty($this->_paramsInput['dev_type'])){
$this->addUserDevByCode($this->_paramsInput['dev_type'], $this->_paramsInput['code']);
}
$deviceTypes = $this->getUserDeviceTypes(6);
$devices = $this->getUserDevices(6);
$this->_attributesOut['user']['services'] = array(
"userservices" => $allservices,
"alluserservices" => $getAllPersonalServicesUser,
"devices" => $devices,
"device_types" => $deviceTypes
);
}
private function resetMegogoUserPass()
{
$url = $this->_billLink['megogoserviceuserpass'];
$responseQuery = $this->sendQuery($url, 'post', array(), 0);
$response = json_decode($responseQuery, true);
return $response['data'][0];
}
private function getMegogoUserInfo()
{
$url = $this->_billLink['megogoserviceuserinfo'];
$responseQuery = $this->sendQuery($url, 'post', array(), 0);
$response = json_decode($responseQuery, true);
return $response['data'][0];
}
private function getOmegaTvCode()
{
$url = $this->_billLink['omegatvcode'];
$responseQuery = $this->sendQuery($url, 'post', array(), 0);
$response = json_decode($responseQuery, true);
if(isset($response['code'])){
return $response['code'];
}else{
return 'error';
}
}
private function getOmegaTvCustomer()
{
$url = $this->_billLink['omegatvcustomer'];
$responseQuery = $this->sendQuery($url, 'post', array(), 0);
$response = json_decode($responseQuery, true);
return $response;
}
private function delOmegaTvDevice($uniq)
{
$url = $this->_billLink['omegatvdevicedel'];
$responseQuery = $this->sendQuery($url, 'post', array("uniq" => $uniq), 0);
return $responseQuery;
}
private function delOmegaTvPlaylist($uniq)
{
$url = $this->_billLink['omegatvurldel'];
$responseQuery = $this->sendQuery($url, 'post', array("uniq" => $uniq), 0);
return $responseQuery;
}
/**
* Получить типы ус-в пользователя
*
* @return array
*/
private function getUserDeviceTypes($service_portal = 0)
{
$url = $this->_billLink['getdevtypeslist'];
$responseQuery = $this->sendQuery($url, 'post', array("service_portal"=> $service_portal), 0);
$response = json_decode($responseQuery, true);
if(isset($response['data'])){
return $response['data'];
}else{
return array();
}
}
/**
* Получить ус-ва пользователя
*
* @return array
*/
private function getUserDevices($service_portal = 0)
{
$url = $this->_billLink['getuserdevices'];
$responseQuery = $this->sendQuery($url, 'post', array("service_portal"=> $service_portal), 0);
$response = json_decode($responseQuery, true);
if(isset($response['data'])){
return $response['data'];
}else{
return array();
}
}
/**
* Удалить ус-во пользователя
*
* @param $devid
* @return string
*/
private function deleteUserDev($devid)
{
$url = $this->_billLink['deleteuserdev'];
$responseQuery = $this->sendQuery($url, 'post', array("devid" => $devid), 0);
return $responseQuery;
}
/**
* Добавить ус-во пользователя
*
* @param $devtypeid
* @param $dev_mac
* @return string
*/
private function addUserDev($devtypeid, $dev_mac)
{
$url = $this->_billLink['adduserdev'];
$responseQuery = $this->sendQuery($url, 'post', array("devtypeid" => $devtypeid, "dev_mac" =>$dev_mac), 0);
return $responseQuery;
}
/**
* Добавить ус-во по коду
*
* @param $devtypeid
* @param $code
* @return string
*/
private function addUserDevByCode($devtypeid, $code)
{
$url = $this->_billLink['adduserdevbycode'];
$responseQuery = $this->sendQuery($url, 'post', array("devtypeid" => $devtypeid, "code" => $code), 0);
return $responseQuery;
}
private function getOmegaTvUrlAdd()
{
$url = $this->_billLink['omegatvurladd'];
$responseQuery = $this->sendQuery($url, 'post', array(), 0);
$response = json_decode($responseQuery, true);
return $response;
}
private function getOmegaTvDevice()
{
$url = $this->_billLink['omegatvdevice'];
$responseQuery = $this->sendQuery($url, 'post', array(), 0);
$response = json_decode($responseQuery, true);
if(isset($response['device'])){
return $response['device'];
}else{
return array();
}
}
public function setPersonalServiceUser($serviceid)
{
$url = $this->_billLink['setpersonalserviceuser'];
$param = array(
"serviceid" => $serviceid
);
$responseQuery = $this->sendQuery($url, 'post', $param, 0);
$response = json_decode($responseQuery, true);
return $response['data'];
}
public function unSetPersonalServiceUser($serviceid)
{
$url = $this->_billLink['unsetpersonalserviceuser'];
$param = array(
"serviceid" => $serviceid
);
$responseQuery = $this->sendQuery($url, 'post', $param, 0);
$response = json_decode($responseQuery, true);
return $response['data'];
}
public function getPersonalServicesUser()
{
$url = $this->_billLink['getpersonalservicesuser'];
$param = array();
$responseQuery = $this->sendQuery($url, 'post', $param, 0);
$response = json_decode($responseQuery, true);
return $response['data'];
}
public function getAllPersonalServicesUser()
{
$url = $this->_billLink['getallpersonalservicesuser'];
$param = array();
$responseQuery = $this->sendQuery($url, 'post', $param, 0);
$response = json_decode($responseQuery, true);
return $response['data'];
}
public function getActiveServicesUser()
{
$url = $this->_billLink['getactiveservicesuser'];
$param = array();
$responseQuery = $this->sendQuery($url, 'post', $param, 0);
$response = json_decode($responseQuery, true);
return $response['data'];
}
public function menuFreeze()
{
$this->_outPage = 'freeze';
$cab_freeze_alert = '';
$freezeDateStart = '';
$freezeDateStop = '';
$oldPass = '';
$cab_freeze_active_alert = '
' . T_("Внимание! При подтверждении заказа услуга Заморозка будет активирована с 1 числа следующего месяца!") . '
';
if (isset($this->_paramsInput['freeze_date_start'])) {
$freezeDateStart = $this->_paramsInput['freeze_date_start'];
}
if (isset($this->_paramsInput['freeze_date_stop'])) {
$freezeDateStop = $this->_paramsInput['freeze_date_stop'];
}
if (isset($this->_paramsInput['oldpass'])) {
$oldPass = $this->_paramsInput['oldpass'];
}
if (isset($this->_paramsInput['oldpass'])) {
# Пользователь заморожен. Необходимо разморозить
if (isset($this->_attributesOut['user']['frezetable']) and $this->_attributesOut['user']['frezetable'] == 1) {
$statusDoUnFreeze = $this->doUnfreeze($this->_paramsInput['oldpass']);
if ($statusDoUnFreeze == '1') {
$cab_freeze_alert = '
' . T_('Услуга Заморозка успешно деактивирована.') . '
' . T_('Ошибка деактивации услуги Заморозка. Запрещено размораживаться раньше, чем минимальное количество дней действия услуги Заморозка. Обратитесь в тех. поддержку.') . '
';
} else {
$cab_freeze_alert = '
' . T_('Ошибка деактивации услуги Заморозка. Неверный пароль.') . '
';
}
$this->_attributesOut['ticketAll'] = Array(
'ticket_all' => $result
);
}
public function multisortArray($array, $index)
{
$result = Array();
$i = 0;
if ($array != $result) {
while ($el_arr = $array[$i]['@attributes'][$index]) {
$new_arr[] = $el_arr;
$i++;
if (!isset($array[$i])) {
break;
}
}
asort($new_arr);
$keys = array_keys($new_arr);
for ($key = 0; $key < count($keys); $key++)
$result[] = $array[$keys[$key]];
}
return $result;
}
}
data/lib/LangDetectClass.php 0100777 0000000 0000000 00000003000 13146746663 013215 0 ustar 00 language = array_combine($list[1], $list[2]);
foreach ($this->language as $n => $v)
$this->language[$n] = $v ? $v : 1;
arsort($this->language, SORT_NUMERIC);
}
} else $this->language = array();
}
public function getBestMatch($default, $langs)
{
$languages=array();
foreach ($langs as $lang => $alias) {
if (is_array($alias)) {
foreach ($alias as $alias_lang) {
$languages[strtolower($alias_lang)] = $lang;
}
}else $languages[strtolower($alias)]= $lang;
}
foreach ($this->language as $l => $v) {
$s = strtok($l, '-'); // убираем то что идет после тире в языках вида "en-us, ru-ru"
if (isset($languages[$s]))
return $languages[$s];
}
return $default;
}
}
data/lib/Rentsoft.php 0100777 0000000 0000000 00000035512 13313373764 012030 0 ustar 00
{$cookieTransportGet}
");
}
/**
* Called at Agent's side.
*
* Implements a mutex which restricts parallel queries (or charges) to the same
* user account. Mutex lock files are created at session_save_path, so deletion of
* old files are performed by PHP automatically.
*
* @param string $id
* @return resource $mutex
*/
public static function aquireMutex($id)
{
if (!ctype_alnum($id)) $id = md5($id);
// We create the lock file in session directory, because it is
// auto-cleaned by PHP session engine on expiration.
$fname = session_save_path() . "/sess_rs_{$id}.lck";
$f = @fopen($fname, "a+");
if (!$f) {
die(
"Cannot create a lock file at $fname: make sure you have a writable " .
"directory in session.save_path of php.ini " .
"(current value: \"" . session_save_path() . "\" is invalid)."
);
}
flock($f, LOCK_EX);
return $f;
}
/**
* Called at Agent's side.
*
* Releases the mutex. This method is essential for PHP 5.3+ - earlier versions
* were releasing mutexes automatically when you free the resource variable.
*
* @param resource $mutex
*/
public static function releaseMutex($mutex)
{
flock($mutex, LOCK_UN);
fclose($mutex);
}
/**
* Called at RentSoft side, do not use at Agent's side.
* This source code is here only as a sample.
*
* Returns javascript-code which implements auto-adjustable IFRAME height
* at RentSoft sift.
*
* @param bool $useCookieTransport If true, use CookieTransport for height adjusting.
* @return string HTML code which adjust IFRAME height at RentSoft sidt.
*/
public static function getStretchingIframeRSSide($useCookieTransport = false)
{
$useCookieTransport = intval($useCookieTransport);
return trim("
");
}
public static function getCookieTransportGetJsCode()
{
return "
";
}
/**
* Called at RentSoft side, do not use at Agent's side.
* This source code is here only as a sample.
*
* Parses REQUEST_URI and HTTP_HOST, checks IFRAME digital signature etc.
*
* @param string $httpHost
* @param string $requestUri
* @param string $rsSecretCallback Callback to get a secret key by Agent's name.
* @param callback $nonceCallback Callback to control double-requesting
* @return array Parsed arguments
* @throws Exception
*/
public static function readArgs($httpHost, $requestUri, $rsSecretCallback, $nonceCallback)
{
$agName = preg_replace('/\..*$/s', '', $httpHost);
$rsSecret = call_user_func($rsSecretCallback, $agName);
$expireDelta = 2 * 24 * 3600; // must be > 2 days, because we know nothing about time zone here
$args = array();
parse_str(parse_url($requestUri, PHP_URL_QUERY), $args);
$prefix = preg_replace('/&ag_sign=.*$/s', '', $requestUri);
if (md5($rsSecret . $prefix) !== @$args['ag_sign']) {
throw new Exception("Invalid digital signature!");
}
$agTimestamp = @$args['ag_timestamp'];
$dt = time() - $agTimestamp;
// Check if the request is knowingly expired.
if ($dt > $expireDelta) {
throw new Exception("The request is expired (age is $dt seconds which is more than $expireDelta seconds)");
}
// Check nonce (typically all used URIs are stored in DB).
if (!call_user_func($nonceCallback, $prefix)) {
throw new Exception("This request was already used: $prefix");
}
return array(
'agName' => $agName,
'agUuid' => @$args['ag_uuid'],
'agWsdl' => @$args['ag_wsdl'],
'agRef' => @$args['ag_ref'],
'agTimestamp' => $agTimestamp,
'agSign' => @$args['ag_sign'],
);
}
}
data/lib/SystemsClass.php 0100777 0000000 0000000 00000021766 13440477567 012676 0 ustar 00 $value) {
$locale[$key] = $value;
}
}
if (isset($locale[$msgid])) {
return $locale[$msgid];
} else {
return $msgid;
}
}
# Установка языка
function setLanguage($config)
{
global $nameLocale;
$locales = array();
$lang_cookie = '';
# Получаем локаль из куков
if (isset($_COOKIE['lang'])) {
$lang_cookie = $_COOKIE['lang'];
}
#Запись выбранного языка в куки
if (isset($_GET['lang'])) {
$lang_cookie = $_GET['lang'];
SetCookie("lang", $lang_cookie, time() + (1000 * 24 * 60 * 60));
}
if (isset($config['config']['locales'])) {
foreach ($config['config']['locales'] as $k => $v) {
if (stristr($k, 'name_') !== false) {
$key_name = str_replace('name_', '', $k);
$val_en = 'enable_' . $key_name;
$locales[$v] = array(
'enable' => $config['config']['locales'][$val_en]
);
}
}
}
# Базовый язык ru-RU (на случай если по умолчанию язык недоступен или не включен)
$defaultNameLocale = 'ru_RU';
# Локализациия по умолчанию.
if (isset($config['config']['locales_options']['default']) and $config['config']['locales_options']['default'] <> '') {
$temp_default = $config['config']['locales_options']['default'];
# Проверяем активированна ли локализация по умолчанию
if (isset($locales[$temp_default])) {
$defaultNameLocale = $temp_default;
}
}
# Если включен автодетект
if (isset($config['config']['locales_options']['autoDetect']) and $config['config']['locales_options']['autoDetect'] == 1) {
$langDetect = new LangDetect();
$langs = array(
'ru_RU' => array('ru'),
'uk_UA' => array('uk'),
'en_GB' => array('en')
);
$detectNameLocale = $langDetect->getBestMatch($defaultNameLocale, $langs);
# Проверяем активированна ли определенная локаль
if (isset($locales[$detectNameLocale]) and $locales[$detectNameLocale]['enable'] == 1) {
$nameLocale = $detectNameLocale;
} else {
$nameLocale = $defaultNameLocale;
}
} else {
$nameLocale = $defaultNameLocale;
}
#Если язык из куков включен то используем его
if (isset($locales[$lang_cookie]) and $locales[$lang_cookie]['enable'] == 1) {
$nameLocale = $lang_cookie;
}
}
class SystemsClass
{
function get_input_data()
{
$params_input = array();
if (!empty($_POST) AND is_array($_POST)) {
foreach ($_POST as $k => $v) {
$params_input[$k] = $v;
}
}
if (!empty($_GET) AND is_array($_GET)) {
foreach ($_GET as $k => $v) {
$params_input[$k] = $v;
}
}
return $params_input;
}
public function getBillLink($cabinetPath)
{
$result_array = array(
'getserverdate' => $cabinetPath . '/json/index/getserverdate',
'authfl' => $cabinetPath . '/ajax/index/authfl',
'logoutfl' => $cabinetPath . '/ajax/index/logoutfl',
'gendogovorflex' => $cabinetPath . '/ajax/users/gendogovorflex',
'geninvoice' => $cabinetPath . '/ajax/users/geninvoice',
'usevaucherfl' => $cabinetPath . '/ajax/users/usevaucherfl',
'getticketslist2x' => $cabinetPath . '/ajax/ticketview/getticketslist2x',
'getmessages' => $cabinetPath . '/ajax/ticketview/getmessages',
'addticket' => $cabinetPath . '/ajax/ticketedit/addticket',
'updateticket' => $cabinetPath . '/ajax/ticketedit/updateticket',
'addmessage' => $cabinetPath . '/ajax/ticketedit/addmessage',
'statpaymfl' => $cabinetPath . '/ajax/users/statpaymfl',
'getcabinetnews' => $cabinetPath . '/ajax/users/getcabinetnewsdb',
'stattrafflex' => $cabinetPath . '/ajax/users/stattrafflex',
'tarifchangelistflex' => $cabinetPath . '/ajax/users/tarifchangelistflex',
'howmatchpayperehodflex' => $cabinetPath . '/ajax/users/howmatchpayperehodflex',
'dochangerealipflex' => $cabinetPath . '/ajax/users/dochangerealipflex',
'dochangetarifflex' => $cabinetPath . '/ajax/users/dochangetarifflex',
'getturboflex' => $cabinetPath . '/ajax/users/getturboflex',
'getcreditflex' => $cabinetPath . '/ajax/users/getcreditflex',
'getcreditprocentflex' => $cabinetPath . '/ajax/users/getcreditprocentflex',
'dochangedataflex' => $cabinetPath . '/ajax/users/dochangedataflex',
'dochangepassflex' => $cabinetPath . '/ajax/users/dochangepassflex',
'getuserdatafl' => $cabinetPath . '/ajax/users/getuserdatafl',
'dofreezeuserfl' => $cabinetPath . '/ajax/users/dofreezeuserfl',
'dounfreezeuserfl' => $cabinetPath . '/ajax/users/dounfreezeuserfl',
'doperevodfl' => $cabinetPath . '/ajax/users/doperevodfl',
'dochangedatebirthflex' => $cabinetPath . '/ajax/users/dochangedatebirthflex',
'config_xml' => $cabinetPath . '/res/config.xml',
'getconfightml' => $cabinetPath . '/ajax/index/getconfightml',
'getcopaycourl' => $cabinetPath . '/ajax/users/getcopaycourl',
'authip' => $cabinetPath . '/ajax/index/authip',
'getotphtml' => $cabinetPath . '/ajax/index/getotphtml',
'applyotphtml' => $cabinetPath . '/ajax/index/applyotphtml',
'getpacketslistregistrationhtml' => $cabinetPath . '/ajax/index/getpacketslistregistrationhtml',
'registrationType2' => $cabinetPath . '/ajax/index/registrationType2',
'restorepasswordsms' => $cabinetPath . '/ajax/index/restorepasswordsms',
'checkloggedin' => $cabinetPath . '/ajax/users/checkloggedin',
'megogoserviceuserinfo' => $cabinetPath . '/json/users/megogoserviceuserinfo',
'megogoserviceuserpass' => $cabinetPath . '/json/users/megogoserviceuserpass',
'omegatvcode' => $cabinetPath . '/json/users/omegatvcode',
'omegatvdevice' => $cabinetPath . '/json/users/omegatvdevice',
'omegatvdevicedel' => $cabinetPath . '/json/users/omegatvdevicedel',
'omegatvcustomer' => $cabinetPath . '/json/users/omegatvcustomer',
'omegatvurladd' => $cabinetPath . '/json/users/omegatvurladd',
'omegatvurldel' => $cabinetPath . '/json/users/omegatvurldel',
'getuserdevices' => $cabinetPath . '/json/users/getuserdevices',
'deleteuserdev' => $cabinetPath . '/json/users/deleteuserdev',
'adduserdev' => $cabinetPath . '/json/users/adduserdev',
'adduserdevbycode' => $cabinetPath . '/json/users/adduserdevbycode',
'getdevtypeslist' => $cabinetPath . '/json/users/getdevtypeslist',
'getactiveservicesuser' => $cabinetPath . '/json/users/getactiveservicesuser',
'getpersonalservicesuser' => $cabinetPath . '/json/users/getpersonalservicesuser',
'getallpersonalservicesuser' => $cabinetPath . '/json/users/getallpersonalservicesuser',
'setpersonalserviceuser' => $cabinetPath . '/ajax/users/setpersonalserviceuser',
'unsetpersonalserviceuser' => $cabinetPath . '/ajax/users/unsetpersonalserviceuser',
'getreplacelistpersonalservicesuser' => $cabinetPath . '/json/users/getreplacelistpersonalservicesuser',
'checkchangemac' => $cabinetPath . '/ajax/users/checkchangemac'
);
return $result_array;
}
} data/lib/TemplateClass.php 0100777 0000000 0000000 00000005475 13146746663 013000 0 ustar 00 dir_tmpl = $dir_tmpl;
}
/* Метод для добавления новых значений в данные для вывода */
public function set($name, $value)
{
$this->data[$name] = $value;
// $this->data = $value;
}
/* Метод для удаления значений из данных для вывода */
public function delete($name)
{
unset($this->data[$name]);
}
/* При обращении, например, к $this->title будет выводиться $this->data["title"] */
public function __get($name)
{
if (isset($this->data[$name])) {
return $this->data[$name];
}
// if (isset($this->data)) return $this->data[$name];
return "";
}
/* Вывод tpl-файла, в который подставляются все данные для вывода */
public function display($template, $module = 0)
{
if(file_exists($this->dir_tmpl . '/modules/'. $module . '/' . $template . '.tpl')){
$template = $this->dir_tmpl . '/modules/'. $module . '/' . $template . '.tpl';
}elseif (file_exists($this->dir_tmpl . '/customtpls/' . $template . ".tpl")) {
$template = $this->dir_tmpl . '/customtpls/' . $template . ".tpl";
} else {
$template = $this->dir_tmpl . '/' . $template . ".tpl";
}
ob_start();
include($template);
echo ob_get_clean();
}
/* Вывод tpl-файла, в который подставляются все данные для вывода */
public function out($template)
{
if (file_exists($this->dir_tmpl . '/customtpls/' . $template . ".tpl")) {
$template = $this->dir_tmpl . '/customtpls/' . $template . ".tpl";
} else {
$template = $this->dir_tmpl . '/' . $template . ".tpl";
}
ob_start();
include($template);
return ob_get_clean();
}
public function createMenu($menu)
{
$outMenu = array();
foreach ($menu as $value) {
if ($value['id_parent'] == false) {
$outMenu[$value['id']] = $value;
$outMenu[$value['id']]['child'] = array();
} else {
if ($outMenu[$value['id_parent']] != false) {
$outMenu[$value['id_parent']]['child'][] = $value;
} else {
$outMenu[] = $value;
}
}
}
return $outMenu;
}
public function addMenu($arrayItems, $id, $name, $link, $parent = false, $icon = false, $left_zona = false, $right_zona = false)
{
$newItem = array(
'id' => $id,
'name' => $name,
'link' => $link,
'left_zona' => $left_zona,
'right_zona' => $right_zona,
'icon' => $icon,
'id_parent' => $parent
);
$arrayItems[$id] = $newItem;
return $arrayItems;
}
} data/locale/ 0040777 0000000 0000000 00000000000 13474676112 010177 5 ustar 00 data/locale/bg_BG/ 0040777 0000000 0000000 00000000000 13474676112 011137 5 ustar 00 data/locale/bg_BG/bg_BG.json 0100777 0000000 0000000 00000066065 13330256330 012772 0 ustar 00 {
"Cooбщение": "Съобщение",
"E-mail": "E-mail",
"ID": "ID",
"IP\/MAC": "IP\/MAC",
"MAC адрес успешно изменен": "MAC адрес е променен успешно",
"On-line поддержка": "Онлайн поддръжка",
"UID": "UID",
"Абонент с данным номером не обнаружен": "Абонат с такъв номер не е намерен",
"Абонплата в новом тарифе": "Предварително заплащане по текущата тарифа",
"Абонплата в текущем тарифе": "Предварително заплащане по текущата тарифа",
"Абонплата за реальный IP": "Предварително заплащане на реалния IP",
"Абонплата по тарифу": "Предварително плащане по тарифата",
"Адрес": "Адрес",
"Активен": "Активен",
"Активна": "Активна",
"Активные диалоги отсутствуют": "Активните диалози отсъстват",
"Активные диалоги:": "Активни диалози:",
"Без ограничения": "Без ограничение",
"Бесконечный Интернет": "Безкраен интернет",
"Бессрочная заморозка": "Безсрочно замразяване",
"В активации услуги Заморозка отказано. Минимум дней для заморозки %d .": "Активирането на услуга Замразяване е отказано. Най-малък брой дни за замразяване е %d.",
"В активации услуги Заморозка отказано. Недостаточно средств.": "Активирането на услуга Замразяване е отказано. Нямате достатъчно средства.",
"В работе": "В работата",
"В таблице отсутствуют данные": "В таблицата няма данни",
"Ваш Реальный IP: %s. Для деактивации услуги введите Ваш пароль.": "Вашият реален IP: %s. За деактивиране на услугата въведете паролата.",
"Ваш пароль успешно изменен.": "Вашата парола е променена успешно.",
"Ваш реальный IP": "Вашият реален IP",
"Ваш счет успешно пополнен.": "Успешно презареждане.",
"Ваш тариф будет изменён со следующего месяца.": "Вашата оценка ще бъде променено на следващия месец.",
"Ваш тариф успешно изменён.": "Тарифата Ви е променена успешно.",
"Ваши данные успешно изменены.": "Вашите данни са променени успешно. ",
"Введите Ваш номер телефона": "Въведете Вашия телефонен номер",
"Введите логин": "Въведете потребителско име",
"Введите новый пароль": "Въведете нова парола",
"Введите новый пароль еще раз": "Въведете новата парола още веднаж ",
"Введите номер телефона для получения кода активации.": "Въведете телефонния номер за да получите код за активиране.",
"Введите пароль": "Въведете парола",
"Введите старый пароль": "Въведете старата парола",
"Внимание! Кабинет будет доступен в": "Внимание! Кабинетът ще бъде достъпен в",
"Внимание! При подтверждении заказа услуга Заморозка будет активирована с 1 числа следующего месяца!": "Внимание! Ако, за потвърждение на замръзване услугата ще се активира от 1-во число на следващия месец!",
"Вопрос": "Въпрос",
"Восстановление пароля": "Възстановяване на паролата",
"Время": "Време",
"Все диалоги": "Всички диалози",
"Всего использовано заморозок": "Общ брой използвания замразявания",
"Всего к снятию": "Общо за отстраняване",
"Вход": "Вход",
"Вход в личный кабинет": "Вход в личния кабинет",
"Входящая скорость": "Входяща скорост",
"Входящий": "Входящ",
"Выберите способ пополнения": "Изберете начина на презареждане",
"Выберите тариф": "Изберете тарифа",
"Выбор тарифа": "Избор на тарифа.",
"Выйти": "Изход",
"Выполнено": "Изпълнено",
"Главная": "Главна",
"Далее": "Нататък",
"Данные пользователя": "Данните за потребителя",
"Дата": "Дата ",
"Дата окончания услуг": "Дата на прекратяване услугите",
"Дата рождения": "Дата на раждане",
"Дата создания": "Дата на създаване",
"Диалог ID ": "ID диалог",
"Для правильной работы услуги необходимо переподключиться к интернету.": "За правилно функциониране на услугата е необходимо да направите повторна връзка с интернет.",
"До платежа": "Преди плащане",
"Договор": "Договор",
"Доп. услуги": "Доп. услуги",
"Дополнительные услуги": "Допълнителни услуги",
"Ежедневная стоимость услуги": "Ежедневна стойност на услугата",
"За более детальной информацией Вы можете обратиться в Отдел технической поддержки.": "За повече информация можете да се свържете с отдела за техническа поддръжка.",
"Заблокирован": "Блокиран",
"Забыли пароль?": "Забравена парола?",
"Загрузка записей": "Зареждане на записите",
"Задать вопрос": "Задайте въпрос",
"Заказ услуги": "Ред на обслужване",
"Заказом услуги Кредит вы подтверждаете ваше согласие оплатить в полном объеме абонплату за текущий месяц!": "Като поръчвате услугата, потвърждавате съгласието си да извършите в пълен обем предварително заплащане за текущия месец!",
"Закладки": "Маркери",
"Закрыто": "Затворено",
"Закрыть": "Близо",
"Замер скорости": "измерване на скоростта",
"Замер скорости интернета": "Измерване на скоростта интернет",
"Заморожен": "Замразен",
"Заморозить с": "Замразете от",
"Заморозка": "Замразяване",
"Записи отсутствуют": "Записи отсъстват",
"Записи с 0 до 0 из 0 записей": "Записи от 0 до 0 от 0 записи",
"Записи с _START_ до _END_ из _TOTAL_ записей": "Записи от _START_ до _END_ от _TOTAL_ записи",
"ИНН": "Индивидуален данъчен номер",
"Изменение MAC адреса": "Промяна на MAC адрес",
"Изменить": "Променете ",
"Изменить MAC": "Промяна на MAC",
"Изменить пароль": "Променете профила",
"Имя": "Име",
"Интернет отключится через": "Интернетът ще бъде изключен след",
"Информация о выбранном тарифе": "Информация за избраната тарифа",
"Информация о текущем тарифе": "Информация за избраната тарифа",
"Информация по счету": "Информация по сметката",
"Информация по услуге Заморозка": "Информация по услуга Замразяване",
"Информация по услуге Кредит": "Информация по услуга Кредит",
"Информация по услуге Реальный IP": "Информация по услуга Реален IP",
"Информация по услуге Турбо": "Информация за услуга Турбо",
"Информация по услуге пополнение телефона": "Информация на телефона презареждане на услугата",
"История": "История",
"История платежей": "История на плащанията",
"История сессий": "История на сесиите",
"Исходящая скорость": "Изходяща скорост",
"Исходящий": "Изходящ",
"Итого будет снято со счета": "Общо изтеглено от сметката",
"Карта проезда": "Маршрутна карта",
"Код активации": "Код за активиране",
"Код ваучера": "Код на ваучера",
"Кол-во бесплатных заморозок в год": "Брой безплатни замразявания годишно",
"Количество восстановления пароля в день исчерпано": "Дневният брой опити за възстановяване на пароли е изчерпан",
"Количество восстановления пароля в месяц исчерпано": "Месечният брой опити за възстановяване на пароли е изчерпан",
"Коммисия пополнения": "Попълване на комисията",
"Компания": "Компания",
"Конец регистрации": "Край на регистрацията",
"Контактная информация": "Контактна информация",
"Контакты": "Контакти",
"Кредит": "Кредит",
"Кредит выдается 1 раз в течении 1 календарного месяца на период %d дней.": "Заемът се предоставя еднократно в течение на 1 календарен месец за период %d дни.",
"Кредит выдается на период с %d по %d число, и будет снят %d числа.": "Заемът се предостая за период от %d до %d дата, и ще бъде изтеглен на %d дата.",
"Кредит выдается на период с %d по %d число, под %d %% ежедневно и будет снят %d числа.": "Заемът се предоставя за период от %d до %d дата, под %d всекидневно и ще бъде изтеглен на %d дата.",
"Личный кабинет": "Личен кабинет",
"Логин": "Потребителско име",
"МЕНЮ": "МЕНЮ",
"Месячная стоимость услуги": "Месечна такса за обслужване",
"Мой профиль": "Моят профил",
"Мы заметили что Вы авторизовались с неизвестного (нового) устройства. Если Вы желаете использовать данное устройство для выхода в Интернет нажмите кнопку \"Изменить MAC\"<\/b>, в противном случае выход в Интернет не возможен.": "Забелязахме, че сте влезли в с неизвестен (нов) устройство. Ако желаете да използвате това устройство за достъп до интернет, кликнете \"Промяна MAC \" <\/b>, в противен случай достъпът до интернет не е възможно.",
"На Ваш телефон отправлено смс с кодом активации.": "На Вашия телефон е изпратено SMS с код за активиране.",
"На Ваш телефон отправлено сообщение с данными для авторизации.": "На Вашия телефон е изпратено съобщение с данните за оторизиране.",
"На Ваш телефон уже ранее был отправлен код активации": "На Вашия телефон вече е бил изпратен кодът за активиране",
"Назад": "Назад",
"Название выбранного тарифа": "Името на избрания тарифа",
"Название текущего тарифа": "Название на тарифата",
"Неактивна": "Неактивен",
"Неверный код активации": "Грешен код за активиране",
"Неверный номер телефона": "Грешно въведен телефонен номер",
"Немедленная заморозка": "Незабавно замразяване",
"Нет доступных тарифов для смены": "Няма достъпни тарифи за промяна.",
"Новости": "Новини",
"Новый пароль": "Нова парола",
"Номер телефона": "Телефонен номер",
"Описание": "Описание",
"Отключен": "Изключен",
"Отключена": "Прекратена",
"Отключено": "Връзката е прекъсната",
"Открыто": "Отворено",
"Отмена": "Отмяна ",
"Отмена заморозки": "Отмяна на замразяването",
"Отменить": "Отменете",
"Отменить заморозку с": "Отменете замразяването от",
"Отправить": "Изпратете",
"Ошибка": "Грешка",
"Ошибка SMS регистрации": "Грешка при SMS регистриране",
"Ошибка активации услуги Заморозка. Неверный пароль.": "Грешка при активиране на услуга Замразяване. Грешна парола.",
"Ошибка активации услуги Кредит.": "Грешка при активиране на услуга Кредит.",
"Ошибка активации услуги Реальный IP.": "Грешка при активиране на услуга Реален IP.",
"Ошибка активации услуги Турбо.": "Грешка при активиране на услуга Турбо.",
"Ошибка деактивации услуги Заморозка. <\/br>Запрещено размораживаться раньше, чем минимальное количество дней действия услуги Заморозка. Обратитесь в тех. поддержку.": "Грешка при деактивиране на услуга Замразяване. <\/br> Забранено е размразяването по- рано от минималния брой дни на услуга Замразяване. Обадете се в техническата поддръжка.",
"Ошибка деактивации услуги Заморозка. Неверный пароль.": "Грешка при деактивиране на услуга Замразяване. Грешна парола. ",
"Ошибка деактивации услуги Реальный IP.": "Грешка при деактивиране на услуга Реален IP.",
"Ошибка изменения MAC адреса": "Не може да се променя MAC адреса",
"Ошибка изменения данных.": "Грешка при промяна на данните.",
"Ошибка изменения пароля.": "Грешка при промяна на паролата.",
"Ошибка перевода средств.": "Грешка при превеждане на средствата. ",
"Ошибка перевода средств. Абонент не найден.": "Грешка при превеждане на средствата. Абонатът не е намерен.",
"Ошибка пополнение телефона": "Грешка при актуализирането на телефон",
"Ошибка сервиса": "Грешка на услугата",
"Ошибка сетевого транспорта. Попробуйте зайти позже...": "Грешка при мрежово транспортиране. Опитайте да влезете по-късно.",
"Ошибка смены тарифа.": "Грешка при промяна на тарифа.",
"Ошибка. Логин или пароль неверный.": "Грешен потребител или парола.",
"Ошибка. Пароль неверный.": "Грешно въведена парола.",
"Ошибка. Услуга Турбо уже была подключена.": "Грешка. Услуга Турбо вече е била абонирана. ",
"Пароль": "Парола",
"Первая": "Първият",
"Перевод средств": "Превод на средства",
"Перевод успешно осуществлен.": "Успешен превод.",
"Перейти сейчас": "Преминете сега",
"Перейти со следующего месяца": "Преминете от следващия месец",
"Период заморозки": "Замразяване период",
"Печать договора": "Печат на договора",
"Платежная система": "Платежна система",
"По данному номеру уже была зарегистрирована учетная запись": "Този номер вече има регистриран акаунт",
"Повторите пароль": "Повторете паролата",
"Подключено": "Връзката е направена",
"Подождите": "Изчакайте",
"Подтвердите заказ услуги Заморозка": "Потвърдете поръчването на услуга Замразяване",
"Подтвердите заказ услуги Кредит": "Потвърдете поръчването на услуга Кредит",
"Подтвердите заказ услуги Реальный IP": "Потвърдете поръчването на услуга Реален IP",
"Подтвердите заказ услуги Турбо": "Потвърдете поръчването на услуга Турбо",
"Подтвердите отказ от услуги Заморозка": "Потвърдете отказа от услуга Замразяване",
"Подтвердите перевод средств": "Потвърдете превеждането на средствата",
"Подтвердить": "Потвърдете",
"Поиск": "Търсене",
"Показать _MENU_ записей": "Покажете _MENU_ на записите",
"Показать все диалоги": "Покажете всички диалози",
"Получатель UID": "Получател UID",
"Пополнение": "Презареждане",
"Пополнение ваучером": "Презареждане с ваучер",
"Пополнение счета": "Презареждане ",
"Пополнение телефона": "Актуализиране на телефона",
"Пополнение телефона успешно поставлено в очередь.": "Актуализиране на телефона успешно опашката.",
"Пополнить": "Презаредете",
"Последняя": "Последният",
"Предыдущая": "Предишният",
"Примечание": "Бележка",
"Профиль": "Профил",
"Реальный IP": "Реален IP",
"Регистрация": "Регистрация ",
"Регистрация успешно завершена.": "Регистрацията е завършена успешно.",
"Редактировать профиль": "Редактирайте профила",
"Рекомендованная сумма платежа составляет: ": "Препоръчвана сума на плащането е:",
"СМС с данными": "SMS с данни",
"Система восстановления паролей не активна": "Системата за възстановяване на пароли не е активна",
"Следующая": "Следващият",
"Смена тарифа": "Смяна на тарифа",
"Снято": "Свалено",
"Способ пополнения": "Начин на презареждане",
"Старый пароль": "Старата парола",
"Статус": "Статут",
"Статус пользователя": "Статут на потребителя",
"Статус услуги": "Статут на услугата",
"Стоимость активации услуги": "Стойност на активиране на услугата",
"Стоимость деактивации услуги": "Стойност на деактивиране на услугата",
"Стоимость перехода итого": "Обща стойност на преминаването",
"Сумма": "Сума",
"Сумма к оплате": "Сума за плащане",
"Сумма комиссии составит": "Сумата на комисията е",
"Сумма кредита": "Сума на заема",
"Сумма перевода": "Сума на превода",
"Сумма пополнения": "Сума за презареждане",
"Тариф": "Тарифа",
"Тарифный план": "Тарифен план",
"Текущий баланс": "Текущият баланс",
"Телефон": "Телефон",
"Телефон (дом.)": "Телефон (дом.)",
"Телефон (моб.)": "Телефон (моб.)",
"Телефон (смс)": "Телефон (SMS)",
"Телефон пополнения": "Телефон презареждане",
"Телефоны": "Телефони",
"Тип платежа": "Тип плащане",
"Турбо": "Турбо",
"Уважаемый": "Уважаван",
"Удален": "Отстранен",
"Услуга Заморозка успешно активирована.": "Услуга Замразяване е активирана успешно.",
"Услуга Заморозка успешно деактивирована.": "Услуга Замразяване е деактивирана успешно.",
"Услуга Интернет будет доступна в течении 1-5 минут. Для мгновенного получения услуги - перезагрузите Ваш роутер\/подключение.": "Интернет услуга ще бъде на разположение в рамките на 1-5 минути. Апартаменти за миг на получателя на услугата - рестартиране на рутера \/ връзка.",
"Услуга Интернет недоступна": "Услуга Интернет е недостъпна",
"Услуга Кредит успешно активирована.": "Услуга Кредит е активирана успешно.",
"Услуга Реальный IP успешно активирована.": "Услуга Реален IP е успешно активирана.",
"Услуга Реальный IP успешно деактивирована.": "Услуга Реален IP е успешно деактивирана.",
"Услуга Турбо": "Услуга Турбо",
"Услуга Турбо уже активирована.": "Услуга Турбо вече е активирана.",
"Услуга Турбо успешно активирована.": "Услуга Турбо е активирана успешно.",
"Услуга выдается на период": "Услугата се предоставя за период",
"Услуга кредит будет доступна через %d дней.": "Услуга Кредит ще бъде достъпна след %d дни.",
"Услуга кредит уже была активирована.": "Кредитът за услуга вече е активирана.",
"Услуги": "Услуги",
"Ф.И.О.": "Имена - собствено, бащино, фамилно",
"ШАГ 1": "СТЪПКА 1",
"ШАГ 2": "СТЪПКА 2",
"ШАГ 3": "СТЪПКА 3",
"Шаг 1. Выберите тариф": "Стъпка 1. Изберете тарифа",
"Шаг 2. Подтвердите смену тарифа": "Стъпка 2. Потвърдете смяна на тарифа",
"Я согласен перевести средства указанному получателю.": "Съгласен съм да преведа средствата на посочения получател",
"Я согласен с изменениями": "Съгласен съм с промените",
"Я согласен с условиями": "Съгласен съм с условията",
"активировать для сортировки столбца по возрастанию": "активирайте за подреждане на колоната във възходящ ред",
"активировать для сортировки столбца по убыванию": "активирайте за подреждане на колоната в низходящ ред",
"дней": "дни",
"отфильтровано из _MAX_ записей": "филтрирано от _MAX_ записи"
} data/locale/bg_BG/flag.png 0100777 0000000 0000000 00000001634 13146746662 012566 0 ustar 00 PNG
IHDR H]q PLTE
M
M PPRR&")$
' '"( D : D \ E E V L S \ V \ N L F K r n o t d \ a a t \ o l c l a e b \ g B _ G f \ l g a . n p g ȂWw [L u G yY uu X 8 w--
w u= u \\ff @ 8s bKGD- pHYs .# .#x?v 5IDATxm X 쿪{g`e69Ti\]nW6 IENDB` data/locale/en_GB/ 0040777 0000000 0000000 00000000000 13474676112 011151 5 ustar 00 data/locale/en_GB/en_GB.json 0100777 0000000 0000000 00000050742 13330256330 013011 0 ustar 00 {
"Cooбщение": "Message",
"E-mail": "E-mail",
"ID": "ID",
"IP\/MAC": "IP\/MAC",
"MAC адрес успешно изменен": "MAC address changed successfully",
"On-line поддержка": "On-line support",
"UID": "UID",
"Абонент с данным номером не обнаружен": "The User with this number is not found",
"Абонплата в новом тарифе": "New tariff cost",
"Абонплата в текущем тарифе": "Current tariff cost",
"Абонплата за реальный IP": "Cost of real IP",
"Абонплата по тарифу": "Tariff cost",
"Адрес": "Address",
"Активен": "Active",
"Активна": "Active",
"Активные диалоги отсутствуют": "There are no active dialogs",
"Активные диалоги:": "Active dialogs:",
"Без ограничения": "Unlimited",
"Бесконечный Интернет": "The Infinite Internet",
"Бессрочная заморозка": "Termless freezing",
"В активации услуги Заморозка отказано. Минимум дней для заморозки %d .": "Activation of Freeze service is denied. The minimum number of days for freezing is %d.",
"В активации услуги Заморозка отказано. Недостаточно средств.": "Activation of Freeze service is denied. There isn't enough money.",
"В работе": "Pending",
"В таблице отсутствуют данные": "There is no data in the table",
"Ваш Реальный IP: %s. Для деактивации услуги введите Ваш пароль.": "Your Real IP is: %s. For deactivation of the service enter your password.",
"Ваш пароль успешно изменен.": "Your password has been successfully changed.",
"Ваш реальный IP": "Your real IP",
"Ваш счет успешно пополнен.": "Your account has been successfully refilled.",
"Ваш тариф будет изменён со следующего месяца.": "Your tariff will be changed from next month.",
"Ваш тариф успешно изменён.": "Your tariff has been successfully changed.",
"Ваши данные успешно изменены.": "Your data has been successfully changed.",
"Введите Ваш номер телефона": "Enter Your phone number",
"Введите логин": "Enter login",
"Введите новый пароль": "Enter a new password",
"Введите новый пароль еще раз": "Enter the new password again",
"Введите номер телефона для получения кода активации.": "Enter your cellphone number to get an activation code.",
"Введите пароль": "Enter your password",
"Введите старый пароль": "Enter your old password",
"Внимание! Кабинет будет доступен в": "Attention! The cabinet will be active at",
"Внимание! При подтверждении заказа услуга Заморозка будет активирована с 1 числа следующего месяца!": "Attention! When you confirm the order, the Frost service will be activated from the 1st of the following month!",
"Вопрос": "Question",
"Восстановление пароля": "Password restore",
"Время": "Time",
"Все диалоги": "All dialogs",
"Всего использовано заморозок": "Freezings used in total",
"Всего к снятию": "Total to Withdrawal",
"Вход": "Log in",
"Вход в личный кабинет": "Login to personal cabinet",
"Входящая скорость": "Download speed",
"Входящий": "Incoming",
"Выберите способ пополнения": "Choose a way to refill",
"Выберите тариф": "Choose a tariff",
"Выбор тарифа": "Tariff choice",
"Выйти": "Exit",
"Выполнено": "Completed",
"Главная": "Main",
"Далее": "Next",
"Данные пользователя": "User data",
"Дата": "Date",
"Дата окончания услуг": "Service expiration date ",
"Дата рождения": "Date of birth",
"Дата создания": "Date of creation",
"Диалог ID ": "Dialog ID",
"Для правильной работы услуги необходимо переподключиться к интернету.": "To use the service, please make sure you are reconnected to the Internet",
"До платежа": "Before payment",
"Договор": "Contract",
"Доп. услуги": "Add. services",
"Дополнительные услуги": "Additional services",
"Ежедневная стоимость услуги": "Daily cost of the service",
"За более детальной информацией Вы можете обратиться в Отдел технической поддержки.": "For more detailed information, you can contact the Technical Support Department.",
"Заблокирован": "Blocked",
"Забыли пароль?": "Forgot password?",
"Загрузка записей": "Records loading",
"Задать вопрос": "Ask a question",
"Заказ услуги": "Order of service",
"Заказом услуги Кредит вы подтверждаете ваше согласие оплатить в полном объеме абонплату за текущий месяц!": "If you order Credit service, you agree to pay the service fee for this month!",
"Закладки": "Bookmarks",
"Закрыто": "Closed",
"Закрыть": "Close",
"Замер скорости": "Speed measurement",
"Замер скорости интернета": "Internet speed measurement",
"Заморожен": "Frozen",
"Заморозить с": "Freeze from",
"Заморозка": "Freeze",
"Записи отсутствуют": "There are no records",
"Записи с 0 до 0 из 0 записей": "Records from 0 to 0 of 0 records",
"Записи с _START_ до _END_ из _TOTAL_ записей": "Records from _START_ to _END_ of _TOTAL_ records",
"ИНН": "INN",
"Изменение MAC адреса": "Change the MAC address",
"Изменить": "Change",
"Изменить MAC": "Edit MAC",
"Изменить пароль": "Change password",
"Имя": "Name",
"Интернет отключится через": "You will be disconnected from the Internet in",
"Информация о выбранном тарифе": "Chosen tariff information",
"Информация о текущем тарифе": "Information about the current tariff",
"Информация по счету": "Account Information",
"Информация по услуге Заморозка": "Freeze service information",
"Информация по услуге Кредит": "Credit service information",
"Информация по услуге Реальный IP": "Real IP service information",
"Информация по услуге Турбо": "Turbo service information",
"Информация по услуге пополнение телефона": "Information on the phone recharge service",
"История": "History",
"История платежей": "Payment history",
"История сессий": "Session history",
"Исходящая скорость": "Upload speed",
"Исходящий": "Outgoing",
"Итого будет снято со счета": "Will be drawn from account in total",
"Карта проезда": "Get Directions",
"Код активации": "Activation code",
"Код ваучера": "Voucher code",
"Кол-во бесплатных заморозок в год": "Number of free freezings per year",
"Количество восстановления пароля в день исчерпано": "Number of attempts to recover passwords for a day exhausted",
"Количество восстановления пароля в месяц исчерпано": "Number password recovery has been exhausted in a month",
"Коммисия пополнения": "Recharge Commission",
"Компания": "Company",
"Конец регистрации": "End of registration",
"Контактная информация": "Contact information",
"Контакты": "Contact Us",
"Кредит": "Credit",
"Кредит выдается 1 раз в течении 1 календарного месяца на период %d дней.": "Credit is issued once a month for %d of days.",
"Кредит выдается на период с %d по %d число, и будет снят %d числа.": "Credit is issued for the period from %d to %d , and will be removed %d .",
"Кредит выдается на период с %d по %d число, под %d %% ежедневно и будет снят %d числа.": "Credit is issued for the period from %d to %d , under %d %% daily and will be removed %d .",
"Личный кабинет": "Personal cabinet",
"Логин": "Login",
"МЕНЮ": "MENU",
"Месячная стоимость услуги": "Monthly service cost",
"Мой профиль": "My profile",
"Мы заметили что Вы авторизовались с неизвестного (нового) устройства. Если Вы желаете использовать данное устройство для выхода в Интернет нажмите кнопку \"Изменить MAC\"<\/b>, в противном случае выход в Интернет не возможен.": "We noticed that you were authorized from an unknown (new) device. If you want to use this device to access the Internet, click the \"Change MAC\" <\/ b> button, otherwise Internet connection is not possible.",
"На Ваш телефон отправлено смс с кодом активации.": "An SMS with the activation code has been sent to your phone.",
"На Ваш телефон отправлено сообщение с данными для авторизации.": "A message with an authorization data has been sent to your phone.",
"На Ваш телефон уже ранее был отправлен код активации": "On your phone has previously been sent to the activation code",
"Назад": "Back",
"Название выбранного тарифа": "Name of the selected tariff",
"Название текущего тарифа": "Name of the current tariff",
"Неактивна": "Inactive",
"Неверный код активации": "Invalid activation code",
"Неверный номер телефона": "Wrong phone number",
"Немедленная заморозка": "Immediate freezing",
"Нет доступных тарифов для смены": "No other tariffs are available",
"Новости": "News",
"Новый пароль": "New password",
"Номер телефона": "Cellphone number",
"Описание": "Description",
"Отключен": "Disabled",
"Отключена": "Disabled",
"Отключено": "Disconnected",
"Открыто": "Open",
"Отмена": "Cancel",
"Отмена заморозки": "Cancel freezing",
"Отменить": "Cancel",
"Отменить заморозку с": "Cancel freezing from",
"Отправить": "Send",
"Ошибка": "Error",
"Ошибка SMS регистрации": "Error SMS registration",
"Ошибка активации услуги Заморозка. Неверный пароль.": "Freeze service activation error. Invalid password.",
"Ошибка активации услуги Кредит.": "Credit service activation error.",
"Ошибка активации услуги Реальный IP.": "Real IP service activation error.",
"Ошибка активации услуги Турбо.": "Turbo service activation error",
"Ошибка деактивации услуги Заморозка. <\/br>Запрещено размораживаться раньше, чем минимальное количество дней действия услуги Заморозка. Обратитесь в тех. поддержку.": "Freeze service deactivation error. <\/br> It's forbidden to defreeze earlier than in the certain amount of days of Freeze service activity. Please contact tech support.",
"Ошибка деактивации услуги Заморозка. Неверный пароль.": "Freeze service deactivation error. Invalid password.",
"Ошибка деактивации услуги Реальный IP.": "Real IP service deactivation error.",
"Ошибка изменения MAC адреса": "MAC address change error",
"Ошибка изменения данных.": "Data change error.",
"Ошибка изменения пароля.": "Password change error.",
"Ошибка перевода средств.": "Money transaction error.",
"Ошибка перевода средств. Абонент не найден.": "Money transaction error. User not found.",
"Ошибка пополнение телефона": "Phone Recharge Error",
"Ошибка сервиса": "Error service",
"Ошибка сетевого транспорта. Попробуйте зайти позже...": "Network Transport error. Try again later...",
"Ошибка смены тарифа.": "Tariff change error",
"Ошибка. Логин или пароль неверный.": "Login Error. Invalid Username\/Password",
"Ошибка. Пароль неверный.": "Login Error. Invalid Password",
"Ошибка. Услуга Турбо уже была подключена.": "Error. Turbo service is already activated.",
"Пароль": "Password",
"Первая": "First",
"Перевод средств": "Money transaction",
"Перевод успешно осуществлен.": "The transfer has been successfully made.",
"Перейти сейчас": "Start now",
"Перейти со следующего месяца": "Start next month",
"Период заморозки": "Freezing period",
"Печать договора": "Print the contract",
"Платежная система": "Payment system",
"По данному номеру уже была зарегистрирована учетная запись": "As this number has already been registered account",
"Повторите пароль": "Repeat password",
"Подключено": "Connected",
"Подождите": "Wait",
"Подтвердите заказ услуги Заморозка": "Confirm order of Freeze service",
"Подтвердите заказ услуги Кредит": "Confirm the Credit service order",
"Подтвердите заказ услуги Реальный IP": "Confirm order of Real IP service",
"Подтвердите заказ услуги Турбо": "Confirm the order of Turbo service",
"Подтвердите отказ от услуги Заморозка": "Confirm Freeze service refusal.",
"Подтвердите перевод средств": "Confirm money transfer",
"Подтвердить": "Confirm",
"Поиск": "Search",
"Показать _MENU_ записей": "Show _MENU_ of records",
"Показать все диалоги": "Show all dialogs",
"Получатель UID": "Recipient of UID",
"Пополнение": "Refill",
"Пополнение ваучером": "Voucher refill",
"Пополнение счета": "Account refilling",
"Пополнение телефона": "Recharge your phone",
"Пополнение телефона успешно поставлено в очередь.": "Replenishment of the phone has been successfully queued.",
"Пополнить": "Refill",
"Последняя": "Last",
"Предыдущая": "Previous",
"Примечание": "Note",
"Профиль": "Profile",
"Реальный IP": "Real IP",
"Регистрация": "Registration",
"Регистрация успешно завершена.": "Registration has been successfully completed.",
"Редактировать профиль": "Edit profile",
"Рекомендованная сумма платежа составляет: ": "Recommended payment sum is:",
"СМС с данными": "SMS Data",
"Система восстановления паролей не активна": "The system password recovery is not active",
"Следующая": "Next",
"Смена тарифа": "Tariff change",
"Снято": "Withdrawn",
"Способ пополнения": "A way to refill",
"Старый пароль": "Old password",
"Статус": "Status",
"Статус пользователя": "User status",
"Статус услуги": "The service status",
"Стоимость активации услуги": "Service activation cost",
"Стоимость деактивации услуги": "Service deactivation cost",
"Стоимость перехода итого": "Total cost of the transition",
"Сумма": "Amount",
"Сумма к оплате": "Amount to be paid",
"Сумма комиссии составит": "The commission sum will be",
"Сумма кредита": "Credit amount",
"Сумма перевода": "Transfer sum",
"Сумма пополнения": "Refilling sum",
"Тариф": "Tariff",
"Тарифный план": "Tariff plan",
"Текущий баланс": "Current balance",
"Телефон": "Cellphone",
"Телефон (дом.)": "Home telephone",
"Телефон (моб.)": "Cellphone number",
"Телефон (смс)": "Cellphone (SMS)",
"Телефон пополнения": "Phone replenishment",
"Телефоны": "Phone numbers",
"Тип платежа": "Payment type",
"Турбо": "Turbo",
"Уважаемый": "Respected",
"Удален": "Deleted",
"Услуга Заморозка успешно активирована.": "Freeze service has been successfully activated.",
"Услуга Заморозка успешно деактивирована.": "Freeze service has been successfully deactivated.",
"Услуга Интернет будет доступна в течении 1-5 минут. Для мгновенного получения услуги - перезагрузите Ваш роутер\/подключение.": "Internet service will be available within 1-5 minutes. For instant service reception - restart your router \/ connection.",
"Услуга Интернет недоступна": "The Internet service is not available",
"Услуга Кредит успешно активирована.": "Credit service has been successfully activated.",
"Услуга Реальный IP успешно активирована.": "Real IP service has been successfully activated.",
"Услуга Реальный IP успешно деактивирована.": "Real IP service has been successfully deactivated.",
"Услуга Турбо": "Turbo service",
"Услуга Турбо уже активирована.": "Turbo service is already activated.",
"Услуга Турбо успешно активирована.": "Turbo service has been successfully activated.",
"Услуга выдается на период": "Service is given for the period",
"Услуга кредит будет доступна через %d дней.": "Credit service will be available in %d days.",
"Услуга кредит уже была активирована.": "The credit service has already been activated.",
"Услуги": "Services",
"Ф.И.О.": "First, Middle, Second Names",
"ШАГ 1": "STEP 1",
"ШАГ 2": "STEP 2",
"ШАГ 3": "STEP 3",
"Шаг 1. Выберите тариф": "Step 1. Choose a tariff",
"Шаг 2. Подтвердите смену тарифа": "Step 2. Confirm the tariff change",
"Я согласен перевести средства указанному получателю.": "I agree to transfer money to the specified recipient.",
"Я согласен с изменениями": "I accept changes",
"Я согласен с условиями": "I agree with the conditions",
"активировать для сортировки столбца по возрастанию": "Sort Column Ascending",
"активировать для сортировки столбца по убыванию": "Sort Column Descending",
"дней": "days",
"отфильтровано из _MAX_ записей": "Filtered from _MAX_ of records"
} data/locale/en_GB/flag.png 0100777 0000000 0000000 00000000466 13146746663 012603 0 ustar 00 PNG
IHDR k: pHYs .# .#x?v IDATxc i
m" # 6*n[p ڏ1DEG"Pt[dXkXp9> Bg_j6GE Xs[X` N(j
ie}_=7b̞>!5cBVd 2ܼbrË?hG>w0`ւl>_R-W)y?4 L;: IENDB` data/locale/en_GB/readme.txt 0100777 0000000 0000000 00000001464 13330256330 013137 0 ustar 00
--- КАСТОМИЗАЦИЯ ЛОКАЛИЗАЦИИ ---
Для кастомизации локализации необходимо создать файл custom.json
Вот содержимое файла :
**************************************************************************
{
"Demo1": "Test1"
}
***************************************************************************
где в место "Demo1" пишем нам нужное слово а вместо "Test1" на что его заменить.
К примеру нам необходимо в русской локали заменить слово "On-line поддержка" на "Тикеты",
тогда массив будет выглядеть следующим образом:
{
"On-line поддержка": "Тикеты"
}
data/locale/ru_RU/ 0040777 0000000 0000000 00000000000 13474676112 011233 5 ustar 00 data/locale/ru_RU/flag.png 0100777 0000000 0000000 00000000207 13146746663 012656 0 ustar 00 PNG
IHDR pHYs .# .#x?v 9IDATxcO`~@6b`0]J>b\F>P
Q/وᶶ4و᪶h4 bf IENDB` data/locale/ru_RU/readme.txt 0100777 0000000 0000000 00000001463 13330256330 013220 0 ustar 00
--- КАСТОМИЗАЦИЯ ЛОКАЛИЗАЦИИ ---
Для кастомизации локализации необходимо создать файл custom.json
Вот содержимое файла :
**************************************************************************
{
"Demo1": "Test1"
}
***************************************************************************
где в место "Demo1" пишем нам нужное слово а вместо "Test1" на что его заменить.
К примеру нам необходимо в русской локали заменить слово "On-line поддержка" на "Тикеты",
тогда массив будет выглядеть следующим образом:
{
"On-line поддержка": "Тикеты"
}
data/locale/ru_RU/ru_RU.json 0100777 0000000 0000000 00000000004 13330256330 013137 0 ustar 00 {
} data/locale/tr_TR/ 0040777 0000000 0000000 00000000000 13474676112 011231 5 ustar 00 data/locale/tr_TR/flag.png 0100777 0000000 0000000 00000000444 13146746663 012657 0 ustar 00 PNG
IHDR /<