| 1 | #!/usr/bin/php5 |
| 2 | <?php |
| 3 | require_once 'connect.db.inc.php'; |
| 4 | |
| 5 | $globals->debug = 0; //do not store backtraces |
| 6 | |
| 7 | $data = implode('', file('arbo-UTF8.xml')); |
| 8 | $parser = xml_parser_create(); |
| 9 | xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); |
| 10 | xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); |
| 11 | xml_parse_into_struct($parser, $data, $values, $tags); |
| 12 | xml_parser_free($parser); |
| 13 | |
| 14 | XDB::execute('INSERT INTO `profile_job_term_enum` (`name`, `full_name`) VALUES ("Emplois", "Emplois")'); |
| 15 | |
| 16 | $opened_nodes = array(); |
| 17 | $broader_ids = array(XDB::insertId()); |
| 18 | |
| 19 | XDB::execute('INSERT INTO profile_job_term_relation VALUES (0, {?}, "narrower", "original"), ({?}, {?}, "narrower", "computed")', |
| 20 | $broader_ids[0], $broader_ids[0], $broader_ids[0]); |
| 21 | |
| 22 | // loop through the structures |
| 23 | foreach ($values as $val) { |
| 24 | if (($val['type'] == 'open' || $val['type'] == 'complete') && !empty($val['attributes']['intitule'])) { |
| 25 | $intitule = $val['attributes']['intitule']; |
| 26 | if (mb_strtoupper($intitule) == $intitule) { |
| 27 | $intitule = ucfirst(mb_strtolower($intitule)); |
| 28 | } |
| 29 | $res = XDB::execute('INSERT INTO profile_job_term_enum (name, full_name) |
| 30 | VALUES ({?}, {?})', |
| 31 | $intitule, $intitule.' (emploi'.(($val['type'] == 'open')?'s':'').')'); |
| 32 | $newid = XDB::insertId(); |
| 33 | array_unshift($broader_ids, $newid); |
| 34 | array_unshift($opened_nodes, $val['tag']); |
| 35 | foreach ($broader_ids as $i => $bid) { |
| 36 | XDB::execute('INSERT INTO profile_job_term_relation VALUES ({?}, {?}, "narrower", {?})', |
| 37 | $bid, $newid, ($i == 1)?'original':'computed'); |
| 38 | } |
| 39 | } |
| 40 | if (count($opened_nodes) > 0 && $val['tag'] == $opened_nodes[0] && ($val['type'] == 'close' || $val['type'] == 'complete')) { |
| 41 | array_shift($broader_ids); |
| 42 | array_shift($opened_nodes); |
| 43 | } |
| 44 | } |
| 45 | |
| 46 | /* vim:set et sw=4 sts=4 ts=4: */ |
| 47 | ?> |