$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
if (!isset($_REQUEST['raw']) && !$_REQUEST['callback']) {
    echo 'if(typeof(BloggerArchive) != "object") BloggerArchive = {};' . "\n";
    echo 'BloggerArchive.posts = ';
    $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']) {
    echo $_REQUEST['callback'] . '(';
}
echo $xoxo->toJSON('BloggerArchive', false, false);
if ($_REQUEST['callback']) {
    echo ')';
}
if (!isset($_REQUEST['raw']) && !$_REQUEST['callback']) {
Example #3
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 {
Example #4
0
//$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);
        }
    }
    //end for
    $xoxo = $hatom;
} else {
Example #5
0
} elseif ($_GET['data']) {
    $data = $_GET['data'];
} else {
    ?>
      <form method="get" action="<?php 
    echo $_SERVER['PHP_SELF'];
    ?>
"><div>
         Enter a<br />
         URL: <input type="text" name="url" /><br />
         or<br />
         Data: <textarea name="data"></textarea><br />
         <input type="submit" name="submit" value="Validate!" />
      </div></form>
      <?php 
    exit;
}
//end if-elseif-else
$struct = new OutlineFromXOXO($data);
if ($struct->getError()) {
    echo '<h2 style="text-align:center;"><a href="http://www.hcrc.ed.ac.uk/~richard/xml-check.cgi?url=' . urlencode($_GET['url']) . '">Not Valid XML!</a> -- ' . xml_error_string($struct->getError()) . ' -- Error #' . $struct->getError() . '</h2>';
    $data = getTidy($_GET['url']);
    $struct = new OutlineFromXOXO($data);
}
//end if error
if ($struct->getNumNodes() || count($struct->getFields())) {
    echo '<h2 style="text-align:center;">Valid <a href="http://microformats.org/wiki/xoxo">XOXO</a> data found!</h2>';
} else {
    echo '<h2 style="text-align:center;">No valid <a href="http://microformats.org/wiki/xoxo">XOXO</a> data found</h2>';
}
//end if count || count