/**
  * This method stores a persistent object in the database
  *
  * @param integer $userId
  * @param string $name
  * @param array $value
  */
 public static function set($userId, $name, $value)
 {
     $lVar = self::retrieveByUserIdAndName($name, $userId);
     if (!$lVar) {
         $lVar = new PersistentObject();
     }
     $lVar->setName($name);
     $lVar->setUserId($userId);
     $lVar->setValue(serialize($value));
     $lVar->save();
     return $lVar;
 }
Exemple #2
0
 /**
  * Uptates the database with all changes
  */
 function save()
 {
     global $_zp_gallery;
     if (DEBUG_LOGIN) {
         debugLogVar("Zenphoto_Administrator->save()", $this);
     }
     $objects = $this->getObjects();
     if (is_null($this->get('date'))) {
         $this->set('date', date('Y-m-d H:i:s'));
     }
     parent::save();
     $id = $this->getID();
     if (is_array($objects)) {
         $sql = "DELETE FROM " . prefix('admin_to_object') . ' WHERE `adminid`=' . $id;
         $result = query($sql, false);
         foreach ($objects as $object) {
             $edit = MANAGED_OBJECT_MEMBER;
             if (array_key_exists('edit', $object)) {
                 $edit = $object['edit'] | MANAGED_OBJECT_MEMBER;
             }
             switch ($object['type']) {
                 case 'album':
                     $album = newAlbum($object['data']);
                     $albumid = $album->getID();
                     $sql = "INSERT INTO " . prefix('admin_to_object') . " (adminid, objectid, type, edit) VALUES ({$id}, {$albumid}, 'albums', {$edit})";
                     $result = query($sql);
                     break;
                 case 'pages':
                     $sql = 'SELECT * FROM ' . prefix('pages') . ' WHERE `titlelink`=' . db_quote($object['data']);
                     $result = query_single_row($sql);
                     if (is_array($result)) {
                         $objectid = $result['id'];
                         $sql = "INSERT INTO " . prefix('admin_to_object') . " (adminid, objectid, type, edit) VALUES ({$id}, {$objectid}, 'pages', {$edit})";
                         $result = query($sql);
                     }
                     break;
                 case 'news':
                     if ($object['data'] == '`') {
                         $result = array('id' => 0);
                     } else {
                         $sql = 'SELECT * FROM ' . prefix('news_categories') . ' WHERE `titlelink`=' . db_quote($object['data']);
                         $result = query_single_row($sql);
                     }
                     if (is_array($result)) {
                         $objectid = $result['id'];
                         $sql = "INSERT INTO " . prefix('admin_to_object') . " (adminid, objectid, type, edit) VALUES ({$id}, {$objectid}, 'news', {$edit})";
                         $result = query($sql);
                     }
                     break;
             }
         }
     }
 }
Exemple #3
0
function set_torrent_tags($hashes, $add_tags, $remove_tags)
{
    global $private_storage_dir;
    if (is_array($hashes)) {
        if (!is_array($add_tags)) {
            $add_tags = array();
        }
        if (!is_array($remove_tags)) {
            $remove_tags = array();
        }
        $tags = new PersistentObject("{$private_storage_dir}/tags.txt");
        foreach ($hashes as $hash) {
            if (!is_array($tags->data[$hash])) {
                $tags->data[$hash] = array();
            }
            $tags->data[$hash] = array_unique(array_merge(array_diff($tags->data[$hash], $remove_tags), $add_tags));
            sort($tags->data[$hash]);
        }
        $tags->save();
    }
}