Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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);
}