Example #1
0
 function getDistricsAndCities()
 {
     // используем кеширование для более быстрой генерации списка
     $my_cache_name = "districs_and_cities_list";
     if (!cache_table_test($my_cache_name, array('obj_locat_districts'), true)) {
         //Получим все МО
         $districs_mo = sql_getRows("SELECT id, name FROM `obj_locat_districts` WHERE pid='" . MO_DISTRICS . "' AND coordinat<>'' ORDER BY name", true);
         //Получим все города МО
         $ids_mo = "";
         foreach ($districs_mo as $key => $value) {
             $ids_mo .= $key . ",";
         }
         $ids_mo = substr($ids_mo, 0, -1);
         if ($ids_mo) {
             $ret['cities_mo'] = sql_getRows("SELECT id, name, pid FROM `obj_locat_districts` WHERE pid in (" . $ids_mo . ") ORDER BY pid, name", true);
         }
         $new_cities = array();
         foreach ($ret['cities_mo'] as $key => $value) {
             foreach ($ret['cities_mo'] as $k => $v) {
                 if ($value['pid'] == $v['pid'] && !in_array($k, $new_cities[$value['pid']])) {
                     $new_cities[$value['pid']][$k] = $v;
                 }
             }
         }
         $all_districs = array();
         foreach ($districs_mo as $key => $value) {
             $all_districs[$key] = $value;
             if (isset($new_cities[$key])) {
                 foreach ($new_cities[$key] as $val) {
                     $all_districs[$val['id']] = "--" . $val['name'];
                 }
             }
         }
         cache_save($my_cache_name, serialize($all_districs), true);
     } else {
         $all_districs = unserialize(cache_get($my_cache_name, true));
     }
     return $all_districs;
 }
Example #2
0
 /**
  * Функция поиска по схеме метро
  * Если в GET пришли данные о выбранных станциях метро, то передаем их в функцию search, иначе - формируем схему метро
  */
 function search_by_metro()
 {
     $metrostations = sql_getRows('SELECT * FROM obj_locat_metrostations WHERE id<>1 AND x<>0 AND y<>0');
     // Расставляем точки метро на карте
     $cache_name = 'metro_pp.cache';
     $filename = 'javascripts/pp.js';
     if (!is_file($filename) || !cache_table_test($cache_name, array('obj_locat_metrostations'), true)) {
         $rows = $metrostations;
         $script = "document.write('";
         foreach ($rows as $key => $val) {
             $script .= "<img src=\"/images/pp.gif\" id=\"pp" . $val['id'] . "\" style=\"position: absolute; top:" . ($val['y'] - 4) . "px; left: " . ($val['x'] - 4) . "px; border: 0; display: none; cursor: pointer\" onclick=\"checkMetro(" . $val['id'] . "); return false;\" title=\"" . $val['name'] . "\" alt=\"" . $val['name'] . "\">";
         }
         $script .= "');";
         $fp = fopen($filename, 'w');
         fwrite($fp, $script);
         fclose($fp);
         cache_save($cache_name, '', true);
     }
     // Рисуем area для map
     $cache_name = 'metro_area.cache';
     $filename = 'javascripts/area.js';
     if (!is_file($filename) || !cache_table_test($cache_name, array('obj_locat_metrolines', 'obj_locat_metrostations'), true)) {
         $rows = $metrostations;
         $script = "document.write('";
         foreach ($rows as $key => $val) {
             $script .= "<area shape=\"rect\" coords=\"" . ($val['x'] - 4) . ", " . ($val['y'] - 4) . ", " . ($val['x'] + 4) . ", " . ($val['y'] + 4) . "\" onclick=\"checkMetro(" . $val['id'] . "); return false;\" title=\"" . $val['name'] . "\" href=\"javascript: void(0);\">";
         }
         $script .= "');";
         $fp = fopen($filename, 'w');
         fwrite($fp, $script);
         fclose($fp);
         cache_save($cache_name, '', true);
     }
     //Генерируем привязки к округам
     $cache_name = 'metro_okrug_binds.cache';
     $filename = 'javascripts/okrug_binds.js';
     if (!is_file($filename) || !cache_table_test($cache_name, array('obj_locat_metrostations'), true)) {
         $okrug_binds = array();
         foreach ($metrostations as $station) {
             $okruga = explode(',', $station['okrug']);
             foreach ($okruga as $okrug) {
                 $okrug = intval($okrug);
                 if (!$okrug) {
                     continue;
                 }
                 $okrug_binds[$okrug] .= $station['id'] . ',';
             }
         }
         $script = "var okrug_binds={\n";
         foreach ($okrug_binds as $okr => $okrug_bind) {
             $script .= "\t" . $okr . ": [" . $okrug_bind . "],\n";
         }
         $script .= "};\n";
         $fp = fopen($filename, 'w');
         fwrite($fp, $script);
         fclose($fp);
         cache_save($cache_name, '', true);
     }
     return true;
 }
Example #3
0
 /**
  * Проверка свежести курса и возвращение его значения
  *
  * @param array $params
  * @return double
  */
 function getKurs(&$params)
 {
     $kurs = sql_getValue('SELECT value FROM currencies WHERE name="USD"');
     $cache_name = 'currencies';
     // Проверка - если менялся курс, надо обновить все цены
     if (!cache_table_test($cache_name, array('currencies'), true) && $kurs > 0) {
         $sql = 'UPDATE objects SET price_dollar = price_rub / ' . $kurs . ', price_dollar_print = price_rub_print / ' . $kurs;
         sql_query($sql);
         $sql = 'UPDATE obj_elem_free SET price_metr = price / ' . $kurs;
         sql_query($sql);
         cache_save($cache_name, '', true);
     }
     return $kurs;
 }
Example #4
0
 /**
  * ‘ункци¤ поиска по схеме метро
  * ≈сли в GET пришли данные о выбранных станци¤х метро, то передаем их в функцию search, иначе - формируем схему метро
  *
  * @param array $params - все параметры из адресной строки
  */
 function search_by_metro($params)
 {
     $metrostations = sql_getRows('SELECT * FROM obj_locat_metrostations WHERE id<>1 AND x<>0 AND y<>0');
     // –асставл¤ем точки метро на карте
     $cache_name = 'metro_pp.cache';
     $filename = 'javascripts/pp.js';
     if (!is_file($filename) || !cache_table_test($cache_name, array('obj_locat_metrostations'), true)) {
         $rows = $metrostations;
         $script = "document.write('";
         foreach ($rows as $key => $val) {
             $script .= "<img src=\"/images/pp.gif\" id=\"pp" . $val['id'] . "\" style=\"position: absolute; top:" . ($val['y'] - 4) . "px; left: " . ($val['x'] - 4) . "px; border: 0; display: none; cursor: pointer\" onclick=\"checkMetro(" . $val['id'] . "); return false;\" title=\"" . $val['name'] . "\" alt=\"" . $val['name'] . "\">";
         }
         $script .= "');";
         $fp = fopen($filename, 'w');
         fwrite($fp, $script);
         fclose($fp);
         cache_save($cache_name, '', true);
     }
     // –исуем area дл¤ map
     $cache_name = 'metro_area.cache';
     $filename = 'javascripts/area.js';
     if (!is_file($filename) || !cache_table_test($cache_name, array('obj_locat_metrolines', 'obj_locat_metrostations'), true)) {
         $rows = $metrostations;
         $script = "document.write('";
         foreach ($rows as $key => $val) {
             $script .= "<area shape=\"rect\" coords=\"" . ($val['x'] - 4) . ", " . ($val['y'] - 4) . ", " . ($val['x'] + 4) . ", " . ($val['y'] + 4) . "\" onclick=\"checkMetro(" . $val['id'] . "); return false;\" title=\"" . $val['name'] . "\" href=\"javascript: void(0);\">";
         }
         $script .= "');";
         $fp = fopen($filename, 'w');
         fwrite($fp, $script);
         fclose($fp);
         cache_save($cache_name, '', true);
     }
     return true;
 }