diff options
Diffstat (limited to 'classes')
-rw-r--r-- | classes/File.php | 4 | ||||
-rw-r--r-- | classes/Notice.php | 5 | ||||
-rw-r--r-- | classes/Safe_DataObject.php | 24 | ||||
-rw-r--r-- | classes/Subscription.php | 8 |
4 files changed, 35 insertions, 6 deletions
diff --git a/classes/File.php b/classes/File.php index 33273bbdc..c9477f5f1 100644 --- a/classes/File.php +++ b/classes/File.php @@ -286,7 +286,9 @@ class File extends Memcached_DataObject if(! isset($this->filename)){ $notEnclosureMimeTypes = array(null,'text/html','application/xhtml+xml'); - $mimetype = strtolower($this->mimetype); + if($mimetype != null){ + $mimetype = strtolower($this->mimetype); + } $semicolon = strpos($mimetype,';'); if($semicolon){ $mimetype = substr($mimetype,0,$semicolon); diff --git a/classes/Notice.php b/classes/Notice.php index 0d8525637..d65f0da9a 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -172,7 +172,8 @@ class Notice extends Memcached_DataObject $id = $tag->insert(); if (!$id) { - throw new ServerException(sprintf(_('DB error inserting hashtag: %s'), + // TRANS: Server exception. %s are the error details. + throw new ServerException(sprintf(_('Database error inserting hashtag: %s'), $last_error->message)); return; } @@ -1509,6 +1510,8 @@ class Notice extends Memcached_DataObject { $author = Profile::staticGet('id', $this->profile_id); + // TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. + // TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. $content = sprintf(_('RT @%1$s %2$s'), $author->nickname, $this->content); diff --git a/classes/Safe_DataObject.php b/classes/Safe_DataObject.php index 08bc6846f..e926cb0d5 100644 --- a/classes/Safe_DataObject.php +++ b/classes/Safe_DataObject.php @@ -96,6 +96,30 @@ class Safe_DataObject extends DB_DataObject $this->_link_loaded = false; } + /** + * Magic function called when someone attempts to call a method + * that doesn't exist. DB_DataObject uses this to implement + * setters and getters for fields, but neglects to throw an error + * when you just misspell an actual method name. This leads to + * silent failures which can cause all kinds of havoc. + * + * @param string $method + * @param array $params + * @return mixed + * @throws Exception + */ + function __call($method, $params) + { + $return = null; + // Yes, that's _call with one underscore, which does the + // actual implementation. + if ($this->_call($method, $params, $return)) { + return $return; + } else { + throw new Exception('Call to undefined method ' . + get_class($this) . '::' . $method); + } + } /** * Work around memory-leak bugs... diff --git a/classes/Subscription.php b/classes/Subscription.php index 60c12cccc..0679c0925 100644 --- a/classes/Subscription.php +++ b/classes/Subscription.php @@ -88,8 +88,8 @@ class Subscription extends Memcached_DataObject self::blow('user:notices_with_friends:%d', $subscriber->id); - $subscriber->blowSubscriptionsCount(); - $other->blowSubscribersCount(); + $subscriber->blowSubscriptionCount(); + $other->blowSubscriberCount(); $otherUser = User::staticGet('id', $other->id); @@ -213,8 +213,8 @@ class Subscription extends Memcached_DataObject self::blow('user:notices_with_friends:%d', $subscriber->id); - $subscriber->blowSubscriptionsCount(); - $other->blowSubscribersCount(); + $subscriber->blowSubscriptionCount(); + $other->blowSubscriberCount(); Event::handle('EndUnsubscribe', array($subscriber, $other)); } |