>".substr($contenu,0,200)); $po=stripos($contenu,""); while ($po OR $pf){ #var_dump("$po:$pf"); if ($po>0 AND $po<$pf){ $out['content'] .= substr($contenu,0,$po); $contenu = substr($contenu,$po); $out['sub'][] = bookmarks_netscape_fast_parse($contenu); } else { $out['content'] .= substr($contenu,0,$pf); $contenu = substr($contenu,$pf+5); #var_dump("<<".substr($contenu,0,200)); $out['content'] = bookmarks_extract_links($out['content']); return $out; } $po=stripos($contenu,""); } $out['content'] = bookmarks_extract_links($out['content']); return $out; } function bookmarks_extract_links($contenu){ $out = array(); $contenu = str_ireplace("
","
",$contenu); $contenu = explode("
",$contenu); $h3 = array_shift($contenu); $h3 = extraire_balise($h3,"h3"); $out['titre'] = strip_tags($h3); foreach($contenu as $item){ $link = array(); if ($a = extraire_balise($item,'a')){ $link['url'] = extraire_attribut($a,'href'); $link['titre'] = strip_tags($a); $link['date'] = extraire_attribut($a,"add_date"); $link['descriptif'] = ""; if ($p=stripos($item,"
")){ $link['descriptif'] = textebrut(substr($item,$p)); } $out['links'][] = $link; } } return $out; } 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']."
"; site_modifier($id_syndic,$set); $nb ++; } else { #echo "existant site $id_syndic ".$link['url']."
"; $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; }