File size: 5.89Kb
<?
/**
* Автор скрипта Орёл
* Распространение бесплатно
* icq: 952042
* E-mail [email protected]
*/
defined('IN_ACCESS') or die('<b>Access error</b>');
class Main {
/**
* Функция определения софта пользователя
* Если пользователь с ПК, возвращает true
* @return <type>
*/
static public function UserSoft() {
if (!empty($_SERVER['HTTP_USER_AGENT'])) {
if (stristr($_SERVER['HTTP_USER_AGENT'], 'windows') || stristr($_SERVER['HTTP_USER_AGENT'], 'linux') ||
stristr($_SERVER['HTTP_USER_AGENT'], 'macintosh') || stristr($_SERVER['HTTP_USER_AGENT'], 'unix') ||
stristr($_SERVER['HTTP_USER_AGENT'], 'macos') || stristr($_SERVER['HTTP_USER_AGENT'], 'bsd')) {
return true;
} else {
return false;
}
} else {
return false;
}
}
/**
* Получения ссылок на скачивание файла
* @param <type> $content_type
* @param <type> $filename
* @return <type>
*/
static function FileLinks($content_type, $filename) {
$file_module_links = ROOT . 'modules/' . ROUTE_MODULE_NAME . '/ini/' . $content_type . '.dat';
if (file_exists($file_module_links)) {
$ini_links = unserialize(file_get_contents($file_module_links));
if (count($ini_links['links']) > 1) {
$rand_keys = array_rand($ini_links['links'], 1);
$link = $ini_links['links'][$rand_keys];
} else {
$link = $ini_links['links'][0];
}
return str_replace('%name%', trim($filename), $link);
}
}
/**
* Ресайз картинок с кэшированием
* @param <type> $img
* @param <type> $x
* @param <type> $y
* @return <type>
*/
static function img_resize($img, $x = 0, $y = 0) {
if (file_exists($img)) {
if (file_exists(ROOT . 'files/images_cache/' . basename($img))) {
return URL . 'files/images_cache/' . basename($img);
} else {
$config = LoadConfigModule();
SetImgSize($img, ROOT . 'files/images_cache', $config['pictures_prev_x'], $config['pictures_prev_y']);
return URL . 'files/images_cache/' . basename($img);
}
}
}
/**
* Счётчик подсчёта онлайн пользователей
* @return <type>
*/
static function counter_online() {
$cacher = Registry :: get('cache');
$cache = $cacher->get('counter_online', 30);
if ($cache['counter_online']) {
return $cache['counter_online'];
} else {
$online = DB :: $dbh->querySingle('SELECT COUNT(*) FROM `counter_online` WHERE `counter_nowtime`>=?', array(SITETIME - 30));
$cacher->set('counter_online', array('counter_online' => $online));
return $online;
}
}
/**
* Изменения ini файлов
* @param <type> $inifile
* @param <type> $update_array
* @return <type>
*/
static function update_inifile($inifile, $update_array){
if (file_exists($inifile)){
$data_ini = parse_ini_file($inifile);
foreach ($update_array as $key => $value) {
$data_ini[$key] = $value;
}
$ini_list = '';
foreach ($data_ini as $key => $value){
$ini_list .= sprintf('%s="%s"', $key, $value) . N;
}
if (file_put_contents($inifile, $ini_list)){
return true;
} else {
return false;
}
} else {
die('Файл '. $inifile .' не найден');
}
}
/**
* Очистка temp дириктории
*/
static function tmp_clear(){
$files = scandir(DATADIR .'temp');
foreach ($files as $file){
if ($file == '.' || $file == '..') continue;
if (filemtime(DATADIR .'temp/'. $file) < SITETIME - 86400){
unlink(DATADIR .'temp/'. $file);
}
}
}
/**
* Запись новых условий роутинга
* @param <type> $module
* @param <type> $string
*/
static function WriteRules($module, $string){
if (file_exists(DATADIR .'route/'. $module .'.dat')){
$data = file_get_contents(DATADIR .'route/'. $module .'.dat');
}
if (!isset($data)){
$data = '';
}
if ($data){
$data .= PHP_EOL .$string;
}
file_put_contents(DATADIR .'route/'. $module .'.dat', $data);
}
}
?>