/** * GET, autotag */ function autoCompleteTags(folksoQuery $q, folksoDBconnect $dbc, folksoSession $fks) { $r = new folksoResponse(); try { $i = new folksoDBinteract($dbc); $req = substr($q->get_param('autotag'), 0, 3); $i->query("select tagdisplay\n from tag\n where tagdisplay like '" . $i->dbescape($req) . "%'"); } catch (dbException $e) { return $r->handleDBexception($e); } if ($i->result_status == 'NOROWS') { $r->setOk(204, 'No tags'); } else { $r->setOk(200, 'Tags found'); $df = new folksoDisplayFactory(); $dd = $df->singleElementList(); $dd->activate_style('xhtml'); $r->t($dd->startform()); while ($row = $i->result->fetch_object()) { $r->t($dd->line($row->tagdisplay) . "\n"); } $r->t($dd->endform()); } return $r; }
/** * Retrieve the tags associated with a given resource. Accepts uri or * id. * * Web parameters : GET + folksores * Optional: metas only * Optional: limit * Optional: ean13 Includes EAN13 information if available, tagged as 'EAN13'. */ function getTagsIds(folksoQuery $q, folksoDBconnect $dbc, folksoSession $fks) { $r = new folksoResponse(); try { $i = new folksoDBinteract($dbc); // check to see if resource is in db. if (!$i->resourcep($q->res)) { $r->setError(404, 'Resource not found'); $r->errorBody("Resource not present in database"); return $r; } $limit = 0; if ($q->is_param('limit') && is_numeric($q->get_param('limit'))) { $limit = $q->get_param('limit'); } $metaonly = false; if ($q->is_param('metaonly')) { $metaonly = true; } $include_eans = false; if ($q->is_param('ean13')) { $include_eans = true; } $rq = new folksoResQuery(); $select = $rq->getTags($i->dbescape($q->res), $limit, $metaonly, $include_eans); $i->query($select); } catch (dbException $e) { return $r->handleDBexception($e); } switch ($i->result_status) { case 'NOROWS': $r->setOk(204, 'No tags associated with resource'); return $r; break; case 'OK': $r->setOk(200, 'Resource found'); break; } // here everything should be ok (200) $df = new folksoDisplayFactory(); $dd = $df->singleElementList(); $xf = $df->Taglist(); switch ($q->content_type()) { case 'text': $r->setType('text'); $dd->activate_style('text'); break; case 'html': $r->setType('html'); $dd->activate_style('xhtml'); break; case 'xml': $r->setType('xml'); $xf->activate_style('xml'); $r->t($xf->startform()); while ($row = $i->result->fetch_object()) { $r->t($xf->line($row->id, $row->tagnorm, $row->tagdisplay, $row->popularity, $row->meta)); } $r->t($xf->endform()); return $r; break; default: $dd->activate_style('xhtml'); break; } // $row = $i->result->fetch_object(); //??? $r->t($dd->title($row->uri_normal)); $r->t($dd->startform()); while ($row = $i->result->fetch_object()) { $r->t($dd->line($row->tagdisplay)); } $r->t($dd->endform()); return $r; }