/** * remove the entry on readObjects table for this object and the given user * or set is as read. * * @access public * @param void * @return boolean */ function setIsRead($contact_id, $isRead) { if ($isRead) { if ($this->getIsRead($contact_id)) { return; // object is already marked as read } $read_object = new ReadObject(); $read_object->setRelObjectId($this->getId()); $read_object->setContactId($contact_id); $read_object->setIsRead(true); $read_object->save(); $this->is_read[$contact_id] = true; } else { ReadObjects::delete('rel_object_id = ' . $this->getId() . ' AND contact_id = ' . logged_user()->getId()); } }
/** * Save object. If object is searchable this function will add content of searchable fields * to search index * * @param void * @return boolean */ function save() { $disk_space_used = config_option('disk_space_used'); if ($disk_space_used && $disk_space_used > config_option('disk_space_max')) { throw new Exception(lang('maximum disk space reached')); } if (parent::save()) { /*try { $user = logged_user(); if ($user instanceof User && $this->isCommentable()) { $this->subscribeUser($user); } } catch (Exception $e) {}*/ //remove all entries if (get_class($this->manager()) != 'MailContents') { $condition = ' `rel_object_manager` = \'' . get_class($this->manager()) . '\' AND `rel_object_id` = ' . $this->getObjectId(); ReadObjects::delete($condition); if (logged_user() instanceof User) { $read_object = new ReadObject(); $read_object->setRelObjectManager(get_class($this->manager())); $read_object->setRelObjectId($this->getObjectId()); $read_object->setUserId(logged_user()->getId()); $read_object->setIsRead(true); $read_object->save(); } } return true; } return false; }