function setGroup($uid, $gid, $member, $rid = '')
 {
     if ($rid) {
         if (!$member) {
             $o = new sotf_Object('sotf_user_groups', $rid);
             $o->delete();
         }
         return;
     }
     $o = new sotf_Object('sotf_user_groups');
     $o->set('user_id', $uid);
     $o->set('group_id', $gid);
     $o->find();
     debug("EXISTS", $o->exists());
     debug("MEM", $member);
     if ($member) {
         if (!$o->exists()) {
             $o->create();
         }
     } else {
         if ($o->exists()) {
             $o->delete();
         }
     }
 }
Esempio n. 2
0
    $x->set('name', $name);
    $x->create();
    $id = $x->getID();
}
if ($topic_name != "") {
    $x = new sotf_NodeObject("sotf_topics");
    $x->set('topic_id', $topic_id);
    $x->set('language', "en");
    $x->set('topic_name', $topic_name);
    $x->create();
    $id = $x->getID();
    print $id;
}
if ($topic_counter != "") {
    $x = new sotf_Object("sotf_topics_counter");
    $x->set('topic_id', $topic_id);
    $x->set('number', $topic_counter);
    $x->create();
    $id = $x->getID();
    print $id;
}
$query = "SELECT sotf_topic_tree_defs.*, sotf_topics.topic_name, sotf_topics_counter.number from sotf_topic_tree_defs" . " LEFT JOIN sotf_topics ON sotf_topics.topic_id = sotf_topic_tree_defs.id" . " LEFT JOIN sotf_topics_counter ON sotf_topics_counter.topic_id = sotf_topic_tree_defs.id";
$result = $db->getAll($query);
usort($result, "SORTIT");
$parentid;
$counter = 0;
$max = count($result);
for ($i = 0; $i < $max; $i++) {
    if ($result[$i]["supertopic"] == 0) {
        if ($i != 0) {
            $result[$parentid]["numberall"] = $counter;
 function addStat($fileId, $type)
 {
     global $db, $user;
     sotf_Statistics::addStat($this, $fileId, $type);
     if ($user) {
         $hist = new sotf_Object('sotf_user_history');
         $hist->set('user_id', $user->id);
         $hist->set('object_id', $this->id);
         $hist->set('action', $type);
         $hist->set('action_date', $db->getTimestampTz());
         $hist->create();
     }
 }
Esempio n. 4
0
    $vocabularies->addToTopic($id, $value);
    // doesnt work: print("<script type=\"text/javascript\">window.opener.opener.reload();</script>");
    print "success";
} elseif ($name == "editorpub") {
    $x = new sotf_Programme($id);
    if ($value == 'true') {
        $x->publish();
    } elseif ($value == 'false') {
        $x->withdraw();
    } else {
        print "<script type=\"text/javascript\" language=\"javascript1.1\">error();</script>";
    }
    print "success";
} elseif ($name == "editorflag") {
    $x = new sotf_Object("sotf_user_progs");
    $x->set('user_id', $user->id);
    $x->set('prog_id', $id);
    $x->find();
    $x->set('flags', $value);
    if ($x->id) {
        if ($value == "none") {
            $x->delete();
        } else {
            $x->update();
        }
    } else {
        $x->create();
    }
    //	else print("<script type=\"text/javascript\" language=\"javascript1.1\">error();</script>");
    print "success";
} elseif ($name == "addplaylist") {
 function processPortalEvent($event)
 {
     debug("processing event", $event);
     $progId = $event['prog_id'];
     if ($progId) {
         if ($this->looksLikeId($progId)) {
             $prg =& $this->getObject($progId);
         }
         if (!$prg) {
             debug("Invalid prog_id arrived in portal event", $progId);
             return -1;
         }
     }
     switch ($event['name']) {
         case 'programme_added':
             $obj = new sotf_NodeObject('sotf_prog_refs');
             $obj->set('prog_id', $event['value']);
             $obj->set('url', $event['url']);
             $obj->find();
             $obj->set('station_id', $prg->get('station_id'));
             $obj->set('start_date', $event['timestamp']);
             $obj->set('portal_name', $event['portal_name']);
             $obj->save();
             break;
         case 'programme_deleted':
             $obj = new sotf_NodeObject('sotf_prog_refs');
             $obj->set('prog_id', $event['value']);
             $obj->set('url', $event['url']);
             $obj->find();
             if (!$obj->exists()) {
                 debug("unknown prog ref arrives: " . $event['value'] . ' - ' . $event['url']);
                 $obj->set('portal_name', $event['portal_name']);
             }
             $obj->set('station_id', $prg->get('station_id'));
             $obj->set('end_date', $event['timestamp']);
             //$obj->set('portal_name', $event['portal_name']);
             $obj->save();
             break;
         case 'visit':
             $obj = new sotf_NodeObject('sotf_prog_refs');
             $obj->set('prog_id', $event['value']['prog_id']);
             $obj->set('url', $event['url']);
             $obj->find();
             if (!$obj->exists()) {
                 // TODO: how can this happen? It happens too many times!
                 debug("unknown prog ref arrives: " . $event['value']['prog_id'] . ' - ' . $event['url']);
                 $obj->set('start_date', $event['timestamp']);
                 $obj->set('portal_name', $event['portal_name']);
             }
             $obj->set('station_id', $prg->get('station_id'));
             $obj->set('visits', (int) $obj->get('visits') + 1);
             // TODO: count unique accesses
             $obj->save();
             break;
         case 'page_impression':
             $obj = new sotf_NodeObject('sotf_portals');
             $obj->set('url', $event['url']);
             $obj->find();
             $obj->set('name', $event['portal_name']);
             $obj->set('page_impression', $event['value']);
             $obj->set('last_access', $event['timestamp']);
             $obj->save();
             break;
         case 'portal_updated':
             $obj = new sotf_NodeObject('sotf_portals');
             $obj->set('url', $event['url']);
             $obj->find();
             $obj->set('name', $event['portal_name']);
             $obj->set('last_update', $event['timestamp']);
             $obj->save();
             break;
         case 'users':
             $obj = new sotf_NodeObject('sotf_portals');
             $obj->set('url', $event['url']);
             $obj->find();
             if (!$obj->exists()) {
                 $obj->set('name', $event['portal_name']);
             }
             $obj->set('last_update', $event['timestamp']);
             $obj->set('reg_users', $event['value']);
             if (!$obj->get('name') || !$obj->get('url')) {
                 logError("Bad portal even teceived", implode(" | ", $event));
             } else {
                 $obj->save();
             }
             break;
         case 'rating':
             // first save in prog_refs
             $obj = new sotf_NodeObject('sotf_prog_refs');
             $obj->set('prog_id', $event['value']['prog_id']);
             $obj->set('url', $event['url']);
             $obj->find();
             if (!$obj->exists()) {
                 debug("unknown prog ref arrives: " . $event['url']);
                 $obj->set('start_date', $event['timestamp']);
                 $obj->set('portal_name', $event['portal_name']);
             }
             $obj->set('station_id', $prg->get('station_id'));
             $obj->set('rating', $event['value']['RATING_VALUE']);
             $obj->set('raters', $event['value']['RATING_COUNT']);
             $obj->save();
             // TODO second, put into global rating database
             /*
             $rating = new sotf_Rating();
             $id = $event['value']['prog_id'];
             $obj = & $this->getObject($id);
             if($obj->isLocal()) {
               $data = $event['value'];
               $rating->setRemoteRating($data);
             } else {
               logError("received rating for non-local object!");
             }
             */
             break;
         case 'comment':
             // first save in prog_refs
             $obj = new sotf_NodeObject('sotf_prog_refs');
             $obj->set('prog_id', $event['value']['prog_id']);
             $obj->set('url', $event['url']);
             $obj->find();
             if (!$obj->exists()) {
                 logError("unknown prog ref arrives: " . $event['value']['prog_id'] . ' - ' . $event['url']);
                 $obj->set('start_date', $event['timestamp']);
                 $obj->set('portal_name', $event['portal_name']);
             }
             $obj->set('station_id', $prg->get('station_id'));
             $obj->set('comments', (int) $obj->get('comments') + 1);
             $obj->save();
             // save comment
             $obj = new sotf_Object('sotf_comments');
             $obj->set('prog_id', $event['value']['prog_id']);
             $obj->set('portal', $event['url']);
             $obj->set('entered', $event['timestamp']);
             $obj->set('comment_title', $event['value']['title']);
             $obj->set('comment_text', $event['value']['comment']);
             $obj->set('from_name', $event['value']['user_name']);
             $obj->set('from_email', $event['value']['email']);
             $obj->create();
             // TODO forward to authors
             break;
         case 'query_added':
             //debug("query from portal", $event);
         //debug("query from portal", $event);
         case 'query_deleted':
         case 'file_uploaded':
             // silently ignored
             break;
         default:
             logError("unknown portal event: " . $event['name']);
     }
 }