Пример #1
0
 function testBase()
 {
     $tq = new folksoTagQuery();
     $this->assertPattern('/101/', $tq->related_tags(101));
     $this->assertPattern('/tag <> 101/', $tq->related_tags('101'));
     $this->assertPattern('/bobness/', $tq->related_tags('bobness'));
     $this->assertPattern("/normalize_tag\\('bobness'\\)/", $tq->related_tags('bobness'));
     $this->assertPattern("/tagnorm <> normalize_tag\\('bobness'\\)/", $tq->related_tags('bobness'));
 }
Пример #2
0
function relatedTags(folksoQuery $q, folksoDBConnect $dbc, folksoSession $fks)
{
    $r = new folksoResponse();
    try {
        $i = new folksoDBinteract($dbc);
        $tq = new folksoTagQuery();
        $i->query($tq->related_tags($q->tag));
    } catch (dbException $e) {
        return $r->handleDBexception($e);
    }
    if ($i->rowCount < 2) {
        $r->setOk(204, 'No related tags yet');
        return $r;
    }
    $r->setOk(200, 'Related tags found');
    $df = new folksoDisplayFactory();
    $dd = $df->TagList();
    $dd->activate_style('xml');
    $accum = $dd->startform();
    //pop title row
    $title_row = $i->result->fetch_object();
    //  $accum = $dd->title($title_row->display);
    while ($row = $i->result->fetch_object()) {
        $accum .= $dd->line($row->tagid, $row->tagnorm, $row->display, $row->popularity, '');
    }
    $accum .= $dd->endform();
    /** Default html output via xslt transformation. Content-type
        negotiation should be handled here. **/
    $accum_XML = new DOMDocument();
    $accum_XML->loadXML($accum);
    $loc = new folksoFabula();
    $xsl = new DOMDocument();
    $xsl->load($loc->xsl_dir . "reltags.xsl");
    $proc = new XsltProcessor();
    $proc->importStylesheet($xsl);
    $proc->setParameter('', 'tagviewbase', $loc->server_web_path . 'tagview.php?tag=');
    // by using transformToXML instead of transformToDoc, we avoid
    // putting an xml type declaration into the output doc.
    $reltags = $proc->transformToXML($accum_XML);
    //  $xml = $reltags->saveXML();
    $r->t($reltags);
    return $r;
}