function renderd_gen_conf() { global $root_path; global $lists_dir; $conf=fopen("$root_path/data/renderd.conf", "w"); if(file_exists("$root_path/data/renderd.conf.template")) $template=file_get_contents("$root_path/data/renderd.conf.template"); else $template=file_get_contents("$root_path/src/renderd.conf.template"); fwrite($conf, $template); if(file_exists("$root_path/data/renderd.conf.local")) { $template=file_get_contents("$root_path/data/renderd.conf.local"); fwrite($conf, $template); } foreach(category_list() as $f=>$tags) { print "check state of category '$f'\n"; $category=new category($f); $cat_version=$category->get_newest_version(); $recompile=false; if(!file_exists("$lists_dir/$f.renderd")) { $recompile=true; } else { $c=$category->get_renderd_config(); if((!isset($c['VERSION']))||($cat_version!=$c['VERSION'])) $recompile=true; } if($recompile) { print " (re-)compiling $f\n"; $category->compile(); } $conf_part=file_get_contents("$lists_dir/$f.renderd"); fwrite($conf, $conf_part); } global $renderd_files; if($renderd_files) foreach($renderd_files as $file) { if(file_exists($file)) { fwrite($conf, file_get_contents($file)); } } $renderd=array(); call_hooks("renderd_get_maps", &$renderd); foreach($renderd as $id=>$entry) { fwrite($conf, renderd_print_entry($id, $entry)); } // generate dummy entry in renderd.conf to avoid renderd-bug global $data_path; fwrite($conf, "[dummy]\n"); fwrite($conf, "URI=/tiles/dummy/\n"); fwrite($conf, "XML=/home/osm/data/render_dummy.xml\n"); fwrite($conf, "HOST=dummy.host\n"); fclose($conf); }
function category_restore($id, $param=array()) { global $db_central; global $current_user; if(!isset($param['version'])) return false; $cat=new category($id); $newest=$cat->get_newest_version(); $pg_id=postgre_escape($id); $pg_version=postgre_escape($param['version']); $pg_newest=postgre_escape($newest); $future=uniqid(); $pg_future=postgre_escape($future); // compile version tags $version_tags=new tags(); $version_tags->set("user", $current_user->username); $version_tags->set("date", Date("c")); $version_tags->set("msg", "Restore version '{$param['version']}'"); $pg_version_tags=array_to_hstore($version_tags->data()); $sql ="begin;"; $sql.="insert into category (select $pg_id, tags, $pg_future, Array[$pg_newest], $pg_version_tags from category where version=$pg_version);"; $sql.="insert into category_rule (select $pg_id, rule_id, tags, $pg_future from category_rule where version=$pg_version);"; $sql.="delete from category_current where category_id=$pg_id;"; $sql.="insert into category_current values ($pg_id, $pg_future, now());"; $sql.="commit;"; sql_query($sql, $db_central); return array("status"=>true, "version"=>$future); }