*/
static function initialize($user_id)
+ {
+ $inbox = Inbox::fromNoticeInbox($user_id);
+
+ unset($inbox->fake);
+
+ $result = $inbox->insert();
+
+ if (!$result) {
+ common_log_db_error($inbox, 'INSERT', __FILE__);
+ return null;
+ }
+
+ return $inbox;
+ }
+
+ static function fromNoticeInbox($user_id)
{
$ids = array();
$inbox->user_id = $user_id;
$inbox->notice_ids = call_user_func_array('pack', array_merge(array('N*'), $ids));
-
- $result = $inbox->insert();
-
- if (!$result) {
- common_log_db_error($inbox, 'INSERT', __FILE__);
- return null;
- }
+ $inbox->fake = true;
return $inbox;
}
{
$inbox = Inbox::staticGet('user_id', $user_id);
- if (empty($inbox)) {
+ if (empty($inbox) || $inbox->fake) {
$inbox = Inbox::initialize($user_id);
}
$inbox = Inbox::staticGet('user_id', $user_id);
if (empty($inbox)) {
- $inbox = Inbox::initialize($user_id);
+ $inbox = Inbox::fromNoticeInbox($user_id);
if (empty($inbox)) {
return array();
+ } else {
+ $inbox->encache();
}
}
{
global $config;
- static $alwaysRW = array('session', 'remember_me', 'inbox');
+ static $alwaysRW = array('session', 'remember_me');
if (common_config('db', 'mirror') && $action_obj->isReadOnly($args)) {
if (is_array(common_config('db', 'mirror'))) {