require_once 'xn-app://xoxotools/OutlineClasses/OutlineFromXOXO.php';
require_once 'xn-app://xoxotools/OutlineClasses/OutlineFromHATOM.php';
header('Content-Type: text/javascript;charset=utf-8');
$pagedata = file_get_contents($_REQUEST['url']);
preg_match('/<!-- START ARCHIVE XOXO -->[^\\f]*?<!-- END ARCHIVE XOXO -->/', $pagedata, $xoxodata);
$xoxodata = $xoxodata[0];
$xoxodata = preg_replace('/<(img|meta|link|hr|br)([^<>]*?)([\\/]?)>/i', '<$1$2 />', $xoxodata);
$xoxodata = preg_replace('/&([^;]{10})/i', '&amp;$1', $xoxodata);
$xoxo = new OutlineFromXOXO($xoxodata, array('classes' => array('xoxo', 'posts')));
if (!$xoxo->getNumNodes()) {
    $xoxo = new OutlineFromXOXO($pagedata, array('classes' => array('xoxo', 'posts')));
}
if (!$xoxo->getNumNodes()) {
    $xoxo = new OutlineFromHATOM($pagedata);
}
if (!$xoxo->getNumNodes()) {
    $xoxo = new OutlineFromXOXO($pagedata, array('classes' => array()));
}
if (!$xoxo->getNumNodes()) {
    die('No valid XOXO data found!');
}
$tmp = $xoxo->getNode(0);
if ($tmp->getField('rel') == 'home') {
    $xoxo->unsetNode(0);
}
$xoxo->reindexNodes();
for ($i = 0; $i < $xoxo->getNumNodes(); $i++) {
    $node =& $xoxo->getNode($i);
    $node->unsetAllNodes();
}
//end for xoxo
示例#2
0
    $data = $body[0];
}
//$data = preg_replace('/<(img|meta|link|hr|br)([^<>]*?)([\/]?)>/i','<$1$2 />', $data);
//$data = preg_replace('/&([^;]{10})/i','&amp;$1', $data);
//$data = str_replace('<HEAD>','<head>',$data);
//$data = str_replace('</HEAD>','</head>',$data);
$xoxo = new OutlineFromXOXO($data, array('classes' => array('xoxo', 'posts')));
$hatom = new OutlineFromHATOM($data, array('resolve' => $_GET['url']));
$raw = new OutlineFromXOXO($data, array('classes' => array()));
$site = false;
if ($xoxo->getNumNodes() && in_array('home', explode(' ', $xoxo->getNode(0)->getField('rel')))) {
    $site = $xoxo->getNode(0)->toArray();
    $xoxo->unsetNode(0);
    $xoxo->reindexNodes();
}
if ($hatom->getNumNodes() && in_array('home', explode(' ', $hatom->getNode(0)->getField('rel')))) {
    $site = $hatom->getNode(0)->toArray();
    $hatom->unsetNode(0);
    $hatom->reindexNodes();
}
if ($raw->getNumNodes() && in_array('home', explode(' ', $raw->getNode(0)->getField('rel')))) {
    $site = $raw->getNode(0)->toArray();
    $raw->unsetNode(0);
    $raw->reindexNodes();
}
if ($xoxo->getNumNodes() && $hatom->getNumNodes()) {
    //fill in XOXO with hAtom
    for ($i = 0; $i < $xoxo->getNumNodes(); $i++) {
        $node = $xoxo->getNode($i);
        foreach ($node->getFields() as $name => $value) {
            $hatom->_subnodes[$i]->setField($name, $value);
$archivelist = preg_replace('/<(img|meta|link|hr|br)([^<>]*?)([\\/]?)>/i', '<$1$2 />', $archivelist);
$archivelist = preg_replace('/&([^;]{10})/i', '&amp;$1', $archivelist);
$xoxo = new OutlineFromXOXO($archivelist, array('classes' => array()));
for ($i = 0; $i < $xoxo->getNumNodes(); $i++) {
    $node =& $xoxo->getNode($i);
    $archivepage = file_get_contents($node->getField('href'));
    preg_match('/<!-- START ARCHIVE XOXO -->[^\\f]*?<!-- END ARCHIVE XOXO -->/', $archivepage, $xoxodata);
    $xoxodata = $xoxodata[0];
    if ($xoxodata) {
        $archivepage = $xoxodata;
    }
    $archivestruct = new OutlineFromXOXO($archivepage, array('classes' => array('xoxo', 'posts')));
    if (!$archivestruct->getNumNodes()) {
        $archivestruct = new OutlineFromHATOM($archivepage);
    }
    if (!$archivestruct->getNumNodes()) {
        $archivestruct = new OutlineFromXOXO($archivepage, array('classes' => array()));
    }
    $tmp = $archivestruct->getNode(0);
    if ($tmp && is_a($tmp, 'Outline') && $tmp->getField('rel') == 'home') {
        $archivestruct->unsetNode(0);
    }
    $node->setField('count', $archivestruct->getNumNodes());
}
//end for getNumNodes
if (!isset($_REQUEST['raw']) && !$_REQUEST['callback']) {
    echo 'if(typeof(BloggerArchive) != "object") BloggerArchive = {};' . "\n";
    echo 'BloggerArchive.list = ';
}
//end if ! raw && ! callback
if ($_REQUEST['callback']) {
示例#4
0
 if (in_array('home', explode(' ', $xoxo->getNode(0)->getField('rel')))) {
     $site = $xoxo->getNode(0)->toArray();
     $xoxo->unsetNode(0);
     $xoxo->reindexNodes();
 }
 if (in_array('home', explode(' ', $hatom->getNode(0)->getField('rel')))) {
     $site = $hatom->getNode(0)->toArray();
     $hatom->unsetNode(0);
     $hatom->reindexNodes();
 }
 if (in_array('home', explode(' ', $raw->getNode(0)->getField('rel')))) {
     $site = $raw->getNode(0)->toArray();
     $raw->unsetNode(0);
     $raw->reindexNodes();
 }
 if ($xoxo->getNumNodes() && $hatom->getNumNodes()) {
     //fill in XOXO with hAtom
     for ($i = 0; $i < $xoxo->getNumNodes(); $i++) {
         $node = $xoxo->getNode($i);
         foreach ($node->getFields() as $name => $value) {
             $hatom->_subnodes[$i]->setField($name, $value);
         }
     }
     //end for
     $xoxo = $hatom;
 } else {
     if ($xoxo->getNumNodes()) {
     } else {
         if ($hatom->getNumNodes()) {
             $xoxo = $hatom;
         } else {