X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FStatus_network.php;h=9874030ba0472d83177092952991e76d56a4933c;hb=29f09227053a0f39b812230adc36871c79f0c9e9;hp=d1ca454e227c101f6a4ed61f761ba5821974917a;hpb=772018810b7b6ea2b8cf18a1b9275fbac8c78343;p=quix0rs-gnu-social.git diff --git a/classes/Status_network.php b/classes/Status_network.php index d1ca454e22..9874030ba0 100644 --- a/classes/Status_network.php +++ b/classes/Status_network.php @@ -42,7 +42,8 @@ class Status_network extends Safe_DataObject public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* Static get */ - function staticGet($k,$v=NULL) { + static function getKV($k,$v=NULL) { + // TODO: This must probably be turned into a non-static call $i = DB_DataObject::staticGet('Status_network',$k,$v); // Don't use local process cache; if we're fetching multiple @@ -56,8 +57,9 @@ class Status_network extends Safe_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - static $cache = null; - static $cacheInitialized = false; + // XXX: made public so Status_network_tag can eff with it + public static $cache = null; + public static $cacheInitialized = false; static $base = null; static $wildcard = null; @@ -68,13 +70,16 @@ class Status_network extends Safe_DataObject * @param string $dbname * @param array $servers memcached servers to use for caching config info */ - static function setupDB($dbhost, $dbuser, $dbpass, $dbname, $servers) + static function setupDB($dbhost, $dbuser, $dbpass, $dbname, array $servers) { global $config; $config['db']['database_'.$dbname] = "mysqli://$dbuser:$dbpass@$dbhost/$dbname"; $config['db']['ini_'.$dbname] = INSTALLDIR.'/classes/status_network.ini'; - $config['db']['table_status_network'] = $dbname; + + foreach (array('status_network', 'status_network_tag', 'unavailable_status_network') as $table) { + $config['db']['table_'.$table] = $dbname; + } if (class_exists('Memcache')) { self::$cache = new Memcache(); @@ -88,12 +93,18 @@ class Status_network extends Safe_DataObject // or a single-process script which is switching // configurations. $persist = php_sapi_name() != 'cli' || self::$cacheInitialized; - if (is_array($servers)) { - foreach($servers as $server) { - self::$cache->addServer($server, 11211, $persist); + if (!is_array($servers)) { + $servers = array($servers); + } + foreach($servers as $server) { + $parts = explode(':', $server); + $server = $parts[0]; + if (count($parts) > 1) { + $port = $parts[1]; + } else { + $port = 11211; } - } else { - self::$cache->addServer($servers, 11211, $persist); + self::$cache->addServer($server, $port, $persist); } self::$cacheInitialized = true; } @@ -108,7 +119,7 @@ class Status_network extends Safe_DataObject static function memGet($k, $v) { if (!self::$cache) { - return self::staticGet($k, $v); + return self::getKV($k, $v); } $ck = self::cacheKey($k, $v); @@ -116,7 +127,7 @@ class Status_network extends Safe_DataObject $sn = self::$cache->get($ck); if (empty($sn)) { - $sn = self::staticGet($k, $v); + $sn = self::getKV($k, $v); if (!empty($sn)) { self::$cache->set($ck, clone($sn)); } @@ -136,12 +147,12 @@ class Status_network extends Safe_DataObject } } - function update($orig=null) + function update($dataObject=false) { - if (is_object($orig)) { - $orig->decache(); # might be different keys + if (is_object($dataObject)) { + $dataObject->decache(); # might be different keys } - return parent::update($orig); + return parent::update($dataObject); } /** @@ -167,18 +178,17 @@ class Status_network extends Safe_DataObject ' WHERE nickname = ' . $this->_quote($this->nickname); $orig->decache(); $result = $this->query($qry); - if ($result) { - $this->encache(); - } + $this->decache(); + return $result; } - - function delete() + + function delete($useWhere=false) { $this->decache(); # while we still have the values! - return parent::delete(); + return parent::delete($useWhere); } - + /** * @param string $servername hostname * @param string $wildcard hostname suffix to match wildcard config @@ -308,35 +318,29 @@ class Status_network extends Safe_DataObject */ function getTags() { - $result = array(); - - $tags = new Status_network_tag(); - $tags->site_id = $this->site_id; - if ($tags->find()) { - while ($tags->fetch()) { - $result[] = $tags->tag; - } - } - - return $result; + return Status_network_tag::getTags($this->site_id); } /** * Save a given set of tags * @param array tags + * @fixme only add/remove differentials */ - function setTags($tags) + function setTags(array $tags) { $this->clearTags(); foreach ($tags as $tag) { - $snt = new Status_network_tag(); - $snt->site_id = $this->site_id; - $snt->tag = $tag; - $snt->created = common_sql_now(); - - $id = $snt->insert(); - if (!$id) { - throw new Exception(_("Unable to save tag.")); + if (!empty($tag)) { + $snt = new Status_network_tag(); + $snt->site_id = $this->site_id; + $snt->tag = $tag; + $snt->created = common_sql_now(); + + $id = $snt->insert(); + if (!$id) { + // TRANS: Exception thrown when a tag cannot be saved. + throw new Exception(_("Unable to save tag.")); + } } } @@ -356,7 +360,7 @@ class Status_network extends Safe_DataObject $tag->free(); } - + /** * Check if this site record has a particular meta-info tag attached. * @param string $tag