예제 #1
0
파일: resupdate.php 프로젝트: josf/folkso
/**
 * Web interface for updating basic information about a resource by
 * repolling that resource.
 *
 * These functions are separated from resource.php because they use
 * the Curl libraries that do not usually need to be called.
 *
 * @package Folkso
 * @author Joseph Fahey
 * @copyright 2008 Gnu Public Licence (GPL)
 * @subpackage Tagserv
 */
require_once 'folksoUrl.php';
require_once 'folksoQuery.php';
$srv = new folksoServer(array('methods' => array('POST'), 'access_mode' => 'ALL'));
$srv->addResponseObj(new folksoResponse('post', array('required' => array('res')), 'reload'));
$srv->Respond();
/**
 * Given a resource, this function fetches that resource and updates
 * its status in the database if anything has changed, in particular
 * the title field.
 *
 * If the resource is no longer available (returns 404), the resource
 * is removed. Is this too radical?
 *
 */
function reload(folksoQuery $q, folksoWsseCreds $cred, folksoDBconnect $dbc)
{
    $i = new folksoDBinteract($dbc);
    if ($i->db_error()) {
예제 #2
0
파일: tagcomplete.php 프로젝트: josf/folkso
<?php

/**
 * Interface for responding to autocomplete tag requests from the
 * jquery.autocomplete plugin.
 *
 * @package Folkso
 * @author Joseph Fahey
 * @copyright 2008 Gnu Public Licence (GPL)
 * @subpackage Tagserv
 */
require_once 'folksoTags.php';
require_once 'folksoResponse.php';
require_once 'folksoResponder.php';
$srv = new folksoServer(array('methods' => array('GET'), 'access_mode' => 'ALL'));
$srv->addResponseObj(new folksoResponder('get', array('required' => array('q')), 'autocomplete'));
$srv->Respond();
function autocomplete(folksoQuery $q, folksoDBconnect $dbc, folksoSession $fks)
{
    $i = new folksoDBinteract($dbc);
    $r = new folksoResponse();
    if ($i->db_error()) {
        $r->dbConnectionError($i->error_info());
        return $r;
    }
    $sql = "SELECT tagdisplay " . "FROM tag " . "WHERE tagnorm like '" . $i->dbescape(strtolower($q->get_param('q'))) . "%'";
    $i->query($sql);
    switch ($i->result_status) {
        case 'DBERR':
            $r->dbQueryError($i->error_info());
            return $r;
예제 #3
0
파일: metatag.php 프로젝트: josf/folkso
<?php

require_once 'folksoTags.php';
/**
 *
 * @package Folkso
 * @author Joseph Fahey
 * @copyright 2008 Gnu Public Licence (GPL)
 */
$srv = new folksoServer(array('methods' => array('GET', 'POST'), 'access_mode' => 'ALL'));
$srv->addResponseObj(new folksoResponse('get', array('required_single' => array('all')), 'getAllMetas'));
$srv->addResponseObj(new folksoResponse('get', array('required_single' => array('q')), 'metacomplete'));
$srv->Respond();
function getAllMetas(folksoQuery $q, folksoWsseCreds $cred, folksoDBconnect $dbc)
{
    $i = new folksoDBinteract($dbc);
    if ($i->db_error()) {
        header('HTTP/1.1 501 Database error');
        die($i->error_info());
    }
    $sql = 'SELECT id, tagdisplay FROM metatag WHERE id <> 1';
    $i->query($sql);
    switch ($i->result_status) {
        case 'DBERR':
            header('HTTP/1.1 501 Database error');
            die($i->error_info());
            break;
        case 'NOROWS':
            header('HTTP/1.1 204 There is a problem with the metatag list');
            return;
            break;
예제 #4
0
파일: tag.php 프로젝트: josf/folkso
 * @subpackage Tagserv
 */
require_once 'folksoTags.php';
require_once 'folksoAlpha.php';
require_once 'folksoTagQuery.php';
require_once 'folksoSession.php';
/** 
 * When the tag's name or id is known, the field name "tag"
 * ("folksotag" if we maintain that system) will always be used. It
 * can be a multiple field (that is: "tag001, tag002, tag003...").
 *
 * The "tag" field should be able to accept either a numerical id or a
 * tag name. In this case the tag name is not necessarily normalized.
 *
 */
$srv = new folksoServer(array('methods' => array('POST', 'GET', 'HEAD', 'DELETE'), 'access_mode' => 'ALL'));
$srv->addResponseObj(new folksoResponder('get', array('required' => array('fancy'), 'required_single' => array('tag')), 'fancyResource'));
$srv->addResponseObj(new folksoResponder('get', array('required_single' => array('tag', 'resources')), 'getTagResources'));
$srv->addResponseObj(new folksoResponder('get', array('required' => array('tag'), 'exclude' => array('related')), 'getTag'));
$srv->addResponseObj(new folksoResponder('post', array('required_single' => array('newtag')), 'singlePostTag'));
$srv->addResponseObj(new folksoResponder('get', array('required' => array('autotag')), 'autoCompleteTags'));
$srv->addResponseObj(new folksoResponder('get', array('required' => array('related')), 'relatedTags'));
$srv->addResponseObj(new folksoResponder('get', array('required' => array('byalpha')), 'byalpha'));
$srv->addResponseObj(new folksoResponder('head', array('required' => array('tag')), 'headCheckTag'));
$srv->addResponseObj(new folksoResponder('get', array('required' => array('alltags')), 'allTags'));
/**
 * Note that the "tag" field here refers to the resource that will be
 * deleted during the merge.
 */
$srv->addResponseObj(new folksoResponder('post', array('required_single' => array('tag', 'target')), 'tagMerge'));
$srv->addResponseObj(new folksoResponder('delete', array('required_single' => array('tag')), 'deleteTag'));
예제 #5
0
파일: resource.php 프로젝트: josf/folkso
/**
 * Web service for accessing, creating and modifying tag information
 * about resources (URLs).
 *
 * @package Folkso
 * @author Joseph Fahey
 * @copyright 2008 Gnu Public Licence (GPL)
 * @subpackage Tagserv
 */
require_once 'folksoTags.php';
require_once 'folksoIndexCache.php';
require_once 'folksoUrl.php';
require_once 'folksoResQuery.php';
require_once 'folksoSession.php';
$srv = new folksoServer(array('methods' => array('POST', 'GET', 'HEAD'), 'access_mode' => 'ALL'));
$srv->addResponseObj(new folksoResponder('head', array('required' => array('res')), 'isHead'));
$srv->addResponseObj(new folksoResponder('get', array('required' => array('clouduri', 'res')), 'tagCloudLocalPop'));
$srv->addResponseObj(new folksoResponder('get', array('required' => array('res'), 'exclude' => array('clouduri', 'visit', 'note', 'ean13list')), 'getTagsIds'));
$srv->addResponseObj(new folksoResponder('get', array('required' => array('res', 'ean13list'), 'exclude' => array('delete', 'clouduri', 'note')), 'resEans'));
$srv->addResponseObj(new folksoResponder('post', array('required_single' => array('res', 'tag'), 'required' => array('delete'), 'exclude' => array('meta', 'newresource', 'ean13')), 'unTag'));
$srv->addResponseObj(new folksoResponder('post', array('required' => array('res', 'tag'), 'exclude' => array('delete', 'newresource')), 'tagResource'));
$srv->addResponseObj(new folksoResponder('post', array('required_single' => array('res'), 'required' => array('visit'), 'exclude' => array('tag', 'note')), 'visitPage'));
$srv->addResponseObj(new folksoResponder('post', array('required' => array('res', 'newtitle'), 'exclude' => array('note', 'delete')), 'addResource'));
$srv->addResponseObj(new folksoResponder('post', array('required' => array('res', 'ean13'), 'exclude' => array('newean13', 'oldean13', 'note', 'meta', 'tag', 'delete')), 'assocEan13'));
$srv->addResponseObj(new folksoResponder('post', array('required' => array('res', 'newean13', 'oldean13'), 'exclude' => array('ean13', 'tag', 'delete')), 'modifyEan13'));
$srv->addResponseObj(new folksoResponder('post', array('required' => array('delete', 'res', 'ean13'), 'exclude' => array('tag', 'note')), 'deleteEan13'));
$srv->addResponseObj(new folksoResponder('delete', array('required' => array('res', 'tag')), 'unTag'));
$srv->addResponseObj(new folksoResponder('delete', array('required_single' => array('res'), 'exclude' => array('tag')), 'rmRes'));
$srv->addResponseObj(new folksoResponder('post', array('required_single' => array('res', 'delete'), 'exclude' => array('tag')), 'rmRes'));
$srv->addResponseObj(new folksoResponder('post', array('required_single' => array('res', 'note'), 'exclude' => array('tag', 'delete')), 'addNote'));
예제 #6
0
파일: user.php 프로젝트: josf/folkso
/**
 * Web service for accessing users tags.
 *
 * @package Folkso
 * @author Joseph Fahey
 * @copyright 2008 Gnu Public Licence (GPL)
 * @subpackage Tagserv
 */
require_once 'folksoTags.php';
require_once 'folksoIndexCache.php';
require_once 'folksoUrl.php';
require_once 'folksoSession.php';
require_once 'folksoUser.php';
require_once 'folksoUserQuery.php';
$srv = new folksoServer(array('methods' => array('POST', 'GET', 'HEAD'), 'access_mode' => 'ALL'));
$srv->addResponseObj(new folksoResponder('get', array('required' => array('getmytags')), 'getMyTags'));
$srv->addResponseObj(new folksoResponder('get', array('required' => array('tag')), 'getUserResByTag'));
$srv->Respond();
/**
 * Just a list of tags
 */
function getMyTags(folksoQuery $q, folksoDBconnect $dbc, folksoSession $fks)
{
    $r = new folksoResponse();
    $u = $fks->userSession();
    if (!$u instanceof folksoUser) {
        if (!$q->is_param('uid')) {
            return $r->unAuthorized($u);
            // add message about logging in?
        } else {