/** * 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; }
/** * 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; } } } }
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(); } }