function bookmarks_opml_insert($tree, $id_parent, $importer_statut_publie, $importer_tags)
{
    include_spip('action/editer_rubrique');
    include_spip('action/editer_site');
    $nb = 0;
    if (count($tree)) {
        foreach ($tree as $key => $item) {
            // cas d'un flux
            if (array_key_exists('XMLURL', $item)) {
                $statut = 'prop';
                if ($importer_statut_publie and autoriser('publierdans', 'rubrique', $id_parent)) {
                    $statut = 'publie';
                }
                $now = time();
                if (!($id_syndic = sql_getfetsel('id_syndic', 'spip_syndic', 'id_rubrique=' . intval($id_parent) . " AND url_site=" . sql_quote($item['HTMLURL'])))) {
                    $id_syndic = site_inserer($id_parent);
                    $set = array('url_site' => $item['HTMLURL'], 'nom_site' => $item['TITLE'], 'url_syndic' => $item['XMLURL'], 'syndication' => 'oui', 'resume' => 'non', 'date' => date('Y-m-d H:i:s', $now), 'statut' => $statut);
                    site_modifier($id_syndic, $set);
                    $nb++;
                } else {
                    $nb++;
                }
            } else {
                // cas d'un dossier
                $titre = $key;
                $id_rubrique = sql_getfetsel('id_rubrique', 'spip_rubriques', 'id_parent=' . intval($id_parent) . " AND titre=" . sql_quote($titre));
                if (!$id_rubrique and $id_rubrique = rubrique_inserer($id_parent)) {
                    rubrique_modifier($id_rubrique, array('titre' => $titre));
                }
                if ($id_rubrique) {
                    $nb += bookmarks_opml_insert($item, $id_rubrique, $importer_statut_publie, $importer_tags);
                }
            }
        }
    }
    return $nb;
}
function bookmarks_insert($tree, $id_parent, $importer_statut_publie, $importer_tags, $level = 0)
{
    include_spip('action/editer_rubrique');
    include_spip('action/editer_site');
    $nb = 0;
    if (count($tree['content']['links']) or isset($tree['sub'])) {
        $titre = $tree['content']['titre'] ? $tree['content']['titre'] : _T('info_sans_titre');
        $id_rubrique = sql_getfetsel('id_rubrique', 'spip_rubriques', 'id_parent=' . intval($id_parent) . " AND titre=" . sql_quote($titre));
        if (!$id_rubrique and $id_rubrique = rubrique_inserer($id_parent)) {
            rubrique_modifier($id_rubrique, array('titre' => $titre));
        }
        if ($id_rubrique) {
            $statut = 'prop';
            if ($importer_statut_publie and autoriser('publierdans', 'rubrique', $id_rubrique)) {
                $statut = 'publie';
            }
            $now = time();
            foreach ($tree['content']['links'] as $link) {
                if (!($id_syndic = sql_getfetsel('id_syndic', 'spip_syndic', 'id_rubrique=' . intval($id_rubrique) . " AND url_site=" . sql_quote($link['url'])))) {
                    $id_syndic = site_inserer($id_rubrique);
                    $set = array('url_site' => $link['url'], 'nom_site' => $link['titre'], 'date' => date('Y-m-d H:i:s', $link['date'] ? $link['date'] : $now), 'statut' => $statut, 'descriptif' => $link['descriptif']);
                    #echo "creation site $id_syndic ".$set['url_site']." <br />";
                    site_modifier($id_syndic, $set);
                    $nb++;
                } else {
                    #echo "existant site $id_syndic ".$link['url']." <br />";
                    $nb++;
                }
            }
            if ($level < 30) {
                if (isset($tree['sub'])) {
                    foreach ($tree['sub'] as $sub) {
                        $nb += bookmarks_insert($sub, $id_rubrique, $importer_statut_publie, $importer_tags, $level + 1);
                    }
                }
            }
        }
    }
    return $nb;
}
Пример #3
0
function revisions_sites($id_syndic, $set = false)
{
    return site_modifier($id_syndic, $set);
}