intval(reset($url)), 'url' => end($url)); if (!sql_updateq('spip_urls', $set, "id_parent=" . intval($row['id_parent']) . " AND url=" . sql_quote($row['url'])) ) { if ($set['id_parent'] == 0 and sql_countsel('spip_urls', "id_parent=" . intval($set['id_parent']) . " AND url=" . sql_quote($set['url']) . " AND type=" . sql_quote($row['type']) . " AND id_objet=" . sql_quote($row['id_objet'])) ) { spip_log('suppression url doublon ' . var_export($row, 1), 'urls.' . _LOG_INFO_IMPORTANTE); sql_delete('spip_urls', "id_parent=" . intval($row['id_parent']) . " AND url=" . sql_quote($row['url'])); } else { spip_log('Impossible de convertir url doublon ' . var_export($row, 1), 'urls.' . _LOG_ERREUR); echo "Impossible de convertir l'url " . $row['url'] . ". Verifiez manuellement dans spip_urls"; } } if (time() >= _TIME_OUT) { sql_free($res); return; } } } function urls_migre_urls_segments() { sql_updateq('spip_urls', array('segments' => 1), "segments<1 OR NOT(url REGEXP '\/')"); $res = sql_select('DISTINCT url', 'spip_urls', "url REGEXP '\/' AND segments=1"); while ($row = sql_fetch($res)) { $segments = count(explode('/', $row['url'])); sql_updateq('spip_urls', array('segments' => $segments), "url=" . sql_quote($row['url'])); if (time() >= _TIME_OUT) { sql_free($res); return; } } } /** * Desinstallation/suppression des tables urls * * @param string $nom_meta_base_version */ function urls_vider_tables($nom_meta_base_version) { // repasser dans les urls par defaut ecrire_meta('type_urls', 'page'); sql_drop_table("spip_urls"); effacer_meta($nom_meta_base_version); }