disconnect(); if ($page->need_update) { // проверка наличия временной заглушки $time = time(); $f_build = 'objects/popular/tmp_page_' . $id . '.txt'; if (file_exists($f_build)) { // проверяем актуальность создания $f_time = (integer)(unserialize(@file_get_contents($f_build))); if ((integer)($time) - $f_time > 60) @unlink($f_build); else return ''; } $f = @fopen($f_build, 'w'); $time = time(); @fputs($f, serialize($time)); @fclose($f); $page_folder = $config->root . 'objects/pages/' . ceil($page->point_id/100); $page_file_name = $page_folder . '/' . $page->point_id . '.txt'; if (!file_exists($page_folder)) { mkdir($page_folder, 0777); chmod($page_folder, 0777); } $f = @fopen($page_file_name, 'w'); @fputs($f, serialize($page)); @fclose($f); chmod($page_file_name, 0666); // удаляем временную заглушку if (file_exists($f_build)) { @unlink($f_build); } } $f = @fopen('objects/logs/' . $page->region_id . '.txt', 'a'); @fputs($f, $page->point_id . "\r\n"); @fclose($f); $t = microtime() - $t; $tm = time() - $tm; if ($t < 0) $t = $tm - $t; //print $t; /* ------------------------------------------------------------ */ function getDocument(&$page, &$config) { // Закоментированно по заявке Sergch 16.03.09 // $info_message = infoWin($page, $config); $info_message = ''; $tail = ''; # Хвост для описания района и области if ($page->point_name[$config->lang] !== $page->raion_name[$config->lang]) { $tail = ', ' . $page->raion_name[$config->lang]; } $tail .= ', ' . $page->region_name[$config->lang]; $config->TITLE = $config->translate('Расписание Погоды') . ' ' . $page->point_name2[$config->lang] . $tail; $config->KEYWORDS = $config->translate('Расписание Погоды') . ', Погода ' . $page->point_name2[$config->lang] . ', ' . $page->raion_name[$config->lang]. ', ' . $page->region_name[$config->lang]; $config->DESCRIPTION = $config->translate('Расписание Погоды') . ', Погода ' . $page->point_name2[$config->lang] . ', ' . $page->raion_name[$config->lang]. ', ' . $page->region_name[$config->lang]; $config->PAGE_TITLE = $page->point_name2[$config->lang]; $config->RSS_URL = 'http://' . $_SERVER['HTTP_HOST'] . '/rss/' . $page->point_id . '/' . $config->lang; $config->RSS_TITLE = $config->translate('Расписание Погоды') . ' ' . $page->point_name2[$config->lang] . $tail; $config->PAGE_INFO = ''; $config->CONTENT = ''; $config->BANNER_RIGHT = getBanner($page, 1, $config); $config->BANNER_TOP = getBanner($page, 0, $config); $config->BANNER_BOTTOM = getBanner($page, 2, $config); $config->FOR_PRINT = ""; $config->LINKS = ''; $config->NAVIGATOR = $page->history[$config->lang]; $config->CONTENT = getTable($page, $config); $config->MAP = "
"; // getLinks($page, $config) require_once('lib/template_' . $config->lang . '.php'); } function getBanner(&$page, $banner_pos, &$config) { $banner = 'banner' . $banner_pos; if (isset($page->$banner)) { $banner_log = $banner . "_need_log"; if ($page->$banner_log) { $banner_id = $banner . "_id"; $sql = "UPDATE banner_bnr SET `remain`=`remain`-1, `showing`=`showing`+1 WHERE `id`='" . $banner_id . "'"; $config->mysql_query ($result, $sql); } return $page->$banner; } // require_once($config->root . 'lib/functions.light.php'); $sql = "SELECT *, `priority`*1000 + rand() as r FROM banner_bnr WHERE MATCH(`zone`) AGAINST ('cnt{$page->country_id} rgn{$page->region_id} cit{$page->point_id}' IN BOOLEAN MODE) AND `position` = '$banner_pos' AND `remain` > 0 ORDER BY r DESC LIMIT 2"; $config->mysql_query ($result, $sql); $row = $config->mysql_fetch_array ($result); if ($row) $banner = 1; else { $sql = "SELECT *, `priority`*1000 + rand() as r FROM banner_bnr WHERE `random` = 1 AND `position` = '$banner_pos' AND `remain` > 0 ORDER BY r DESC LIMIT 2"; $config->mysql_query ($result, $sql); $row = $config->mysql_fetch_array ($result); if ($row) $banner = 1; } if ($banner == 1) { $sql = "UPDATE banner_bnr SET `remain`=`remain`-1, `showing`=`showing`+1 WHERE `id`='" . $row['id'] . "'"; $config->mysql_query ($result, $sql); $banner_log = $banner . "_need_log"; $banner_id = $banner . "_id"; $page->$banner_log = true; $page->$banner_id = $row['id']; switch($row['target']) { case 1: $target = '_blank'; break; case 2: $target = '_self'; break; default: $target = ''; } switch($row['type']) { case 0: return ''; break; case 1: return ' ' ; break; case 2: return $row['src']; break; } } else { $page->need_update = true; switch($banner_pos) { case 0: $page->$banner = ' '; break; case 1: $page->$banner = ' '; break; case 2: $page->$banner = ' '; break; default: $page->$banner = ''; } return $page->$banner; } } function getLinks(&$page, &$config) { if (isset($page->links)) { if (time() - $page->links_time_update < 3600) return $page->links; } define('_SAPE_USER', 'ba9c78c799144122a3afcbab5dc2196a'); @require_once($config->root._SAPE_USER.'/sape.php'); $sape = new SAPE_client(); $CODE = $sape->return_links(); $CODE = ''; $page->need_update = true; $page->links = $CODE; $page->links_time_update = time(); return $CODE; } function infoWin(&$page, &$config) { if (isset($page->info_win[$config->lang])) return $page->info_win[$config->lang]; include_once($config->root . 'lib/town_ignored.php'); if (array_search($page->point_id, $town_ignored) === false) { $page->info_win['ua'] = "

" . $config->translate('Если вы уверены, что эти данные ошибочны') . ", " . $config->translate('нажмите сюда') . ""; $page->info_win['ru'] = "

Если вы уверены, что эти данные ошибочны, нажмите сюда"; } else { $page->info_win['ru'] = ''; $page->info_win['ua'] = ''; } $page->need_update = true; return $page->info_win[$config->lang]; } function getTable(&$page, &$config) { $gmtime = mktime (gmdate ('H'), gmdate ('i'), 0, gmdate ('m'), gmdate ('d'), gmdate ('Y')); $row_date = ''; $row_time = ''; $row_pressure = ''; $row_temperature = ''; $row_humidity = ''; $row_wind_direction = ''; $row_wind_velocity = ''; $row_cloud_cover_img = ''; $row_precipitation = ''; $row_sun = ''; $row_moon = ''; $row_phase = ''; $column_id = 0; $days_count = count($page->table); foreach ($page->table as $key=>$day) { $col_count = 0; $classes = array(); foreach ($day->forecast as $forecast) { if ($forecast->gmtime > $gmtime) { // // print gmdate("F j, Y, g:i a", $forecast->gmtime) . ' : ' . gmdate("F j, Y, g:i a", $gmtime) . '
'; $col_count ++; if ($col_count == 1) $need_border = ''; else $need_border = '2'; $classes[] = $forecast->class; $row_time .= '' . $forecast->time . ''; $row_cloud_cover_img .= ''; $row_precipitation .= ''; $row_pressure .= '' . $forecast->pressure . ''; if ($forecast->temperature > 0) $row_temperature .= '+' . $forecast->temperature . ''; else $row_temperature .= '' . $forecast->temperature . ''; $row_humidity .= '' . $forecast->humidity . ''; if ($forecast->wind_velocity*10 < 5) { $row_wind_direction .= '
' . $config->translate('штл') . '
'; $row_wind_velocity .= '0'; } else { $row_wind_direction .= '' . $config->translate($forecast->wind_direction) . ''; if ($forecast->wind_velocity > 10) $row_wind_velocity .= '
' . $forecast->wind_velocity . ''; else $row_wind_velocity .= '' . $forecast->wind_velocity . ''; } } } switch ($col_count) { case 1: if ($column_id == 0) { $row_sun .= '' . $config->translate($day->sunset) . ''; $row_moon .= '' . $config->translate($day->moonset) . ''; } else { $row_sun .= '' . $config->translate($day->sunrise) . ''; $row_moon .= '' . $config->translate($day->moonrise) . ''; } $row_phase .= ''; break; case 2: if ($column_id == 0) { $row_sun .= '' . $config->translate($day->sunrise) . '' . $config->translate($day->sunset) . ''; $row_moon .= '' . $config->translate($day->moonrise) . '' . $config->translate($day->moonset) . ''; $row_phase .= ' '; } else { $row_sun .= '' . $config->translate($day->sunrise) . '' . $config->translate($day->sunset) . ''; $row_moon .= '' . $config->translate($day->moonrise) . '' . $config->translate($day->moonset) . ''; $row_phase .= ' '; } break; case 3: $row_sun .= '' . $config->translate($day->sunrise) . '' . $config->translate($day->sunset) . ' '; $row_moon .= '' . $config->translate($day->moonrise) . '' . $config->translate($day->moonset) . ' '; $row_phase .= '  '; break; case 4: $row_sun .= ' ' . $config->translate($day->sunrise) . '' . $config->translate($day->sunset) . ' '; $row_moon .= ' ' . $config->translate($day->moonrise) . '' . $config->translate($day->moonset) . ' '; $row_phase .= '   '; break; } if ($col_count > 0) { $col_count *= 2; if ($col_count == 2) $row_date .= "" . $day->dn_str2[$config->lang] . ""; elseif ($col_count == 4) $row_date .= "" . $day->dn_str3[$config->lang] . ""; else $row_date .= "" . $day->dn_str[$config->lang] . ""; $column_id ++; } } $now = gmdate('D, d M Y H:i:s') . ' GMT'; header('Expires: ' . $now); header('Last-Modified: ' . $now); header('Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0'); header('Pragma: no-cache'); $favorites = explode('|', $_COOKIE['i']); $titles_ua = explode('|', $_COOKIE['ua']); $titles_ru = explode('|', $_COOKIE['ru']); $arr_id = array_search($page->point_id, $favorites); if ($arr_id) { unset($favorites[$arr_id]); unset($titles_ru[$arr_id]); unset($titles_ua[$arr_id]); } $config->fav = ''; if (isset($favorites)) { $c = count($favorites); if ($c > 4) { unset($favorites[0]); unset($titles_ru[0]); unset($titles_ua[0]); $c --; } foreach ($favorites as $key=>$val){ $config->fav['ua'] = '' . $titles_ua[$key] . '
' . $config->fav['ua']; $config->fav['ru'] = '' . $titles_ru[$key] . '
' . $config->fav['ru']; } } $favorites[] = $page->point_id; $titles_ua[] = $page->point_name['ua']; $titles_ru[] = $page->point_name['ru']; $time = time() + 3600 * 24 * 30; setcookie("i", implode('|', $favorites), $time, '/'); setcookie("ru", implode('|', $titles_ru), $time, '/'); setcookie("ua", implode('|', $titles_ua), $time, '/'); setcookie('last_visited_page', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], $time, '/'); $archive = getArchive($page, $config); if ($archive != '') { $archive = "
$archive
"; } return "

{$page->point_name[$config->lang]} >> " . $config->translate('см. на карте') . "

lang}#1'\" alt='" . $config->translate('Местное время').' '.$page->point_name2[$config->lang] . "' title='" . $config->translate('Местное время').' '.$page->point_name2[$config->lang] . "'>". $config->translate('Местное время') ."
$archive $row_date$row_time$row_cloud_cover_img$row_precipitation$row_temperature$row_pressure$row_humidity$row_wind_direction$row_wind_velocity$row_moon$row_phase
 
lang}#1'\" alt='" . $config->translate('Время в данном населённом пункте. Учитывается летнее/зимнее время') . "' title='" . $config->translate('Время в данном населённом пункте. Учитывается летнее/зимнее время') . "'>" . $config->translate('Местное время') . "
lang}#2'\" title='" . $config->translate('Общее количество облаков всех ярусов (%)') . "'>" . $config->translate('Облачность') . "
% ?
lang}#3'\" title='" . $config->translate('Толщина слоя выпавшей воды (мм), накопленной между указанными моментами времени') . "'>" . $config->translate('Осадки') . "
мм ?
lang}#5'\" title='" . $config->translate('Температура воздуха на высоте 1.5 м (градусы Цельсия)') . "'>" . $config->translate('Температура') . "
oC ?
lang}#4'\" title='" . $config->translate('Атмосферное давление у поверхности земли (мм рт. ст.)') . "'>" . $config->translate('Давление') . "
мм ?
lang}#6'\" title='" . $config->translate('Относительная влажность на высоте 1.5 м (%)') . "'>" . $config->translate('Влажность') . "
% ?
lang}#7'\" title='" . $config->translate('Ветер на высоте 10 м') . "'>" . $config->translate('Ветер') . "
" . $config->translate('м/с') . " ?
" . $config->translate('Солнце') . "
" . $config->translate('восход') . "/" . $config->translate('заход') . " lang}#8'\">?
$row_sun
" . $config->translate('Луна') . "
" . $config->translate('восход') . "/" . $config->translate('заход') . " lang}#9'\">?
" . $config->translate('фаза') . " lang}#10'\">?
"; } ?>