Файловый менеджер - Редактировать - /home/bourgleram/www/plugins-dist/sites/action/importer_bookmarks_netscape.php
Назад
<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2016 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined("_ECRIRE_INC_VERSION")) return; function action_importer_bookmarks_netscape_dist($fichier_ok,$id_parent,$importer_statut_publie,$importer_tags){ $nb = 0; if (autoriser('importer','_bookmarks')){ $out = bookmarks_netscape_fast_parse($fichier_ok['contenu']); // le premier content ne nous interesse pas $out = reset($out['sub']); $nb = bookmarks_insert($out,$id_parent,$importer_statut_publie,$importer_tags); } return $nb; } function bookmarks_netscape_fast_parse(&$contenu){ $out = array(); #var_dump(">>".substr($contenu,0,200)); $po=stripos($contenu,"<h3",4); $pf=stripos($contenu,"</dl>"); 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,"<h3"); $pf=stripos($contenu,"</dl>"); } $out['content'] = bookmarks_extract_links($out['content']); return $out; } function bookmarks_extract_links($contenu){ $out = array(); $contenu = str_ireplace("<DT>","<dt>",$contenu); $contenu = explode("<dt>",$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,"<dd>")){ $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']." <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; }
| ver. 1.4 |
Github
|
.
| PHP 5.6.40 | Генерация страницы: 0.02 |
proxy
|
phpinfo
|
Настройка