Ejemplo n.º 1
0
 /**
 * Return all relation objects ( LinkedObjects) for specific object
 *
 * @param ApplicationDataObject $object
 * @return array
 */
 static function getRelationsByObject(ApplicationDataObject $object) {
   return self::findAll(array(
     'conditions' => array('(`rel_object_id` = ?) or (`object_id` = ?)', 
     		$object->getObjectId(), $object->getObjectId()),
     'order' => '`created_on`'
   )); // findAll
 } // getRelationsByObject
Ejemplo n.º 2
0
 /**
 * Return all read objects ( ReadObjects) for specific object and user
 *
 * @param ApplicationDataObject $object
 * @return array
 */
 static function getReadByObject(ApplicationDataObject $object, int $contact_id) {
   return self::findAll(array(
     'conditions' => array('(`rel_object_id` = ?) and `contact_id` = ? and is_read = 1', 
     		$object->getObjectId(), $contact_id),
     'order' => '`created_on`'
   )); // findAll
 } // getReadByObject
Ejemplo n.º 3
0
 /**
  * Create new log entry and return it
  * 
  * Delete actions are automaticly marked as silent if $is_silent value is not provided (not NULL)
  *
  * @param ApplicationDataObject $object
  * @param Project $project
  * @param DataManager $manager
  * @param boolean $save Save log object before you save it
  * @return ApplicationLog
  */
 static function createLog(ApplicationDataObject $object, $project, $action = null, $is_private = false, $is_silent = null, $save = true)
 {
     if (is_null($action)) {
         $action = self::ACTION_ADD;
     }
     // if
     if (!self::isValidAction($action)) {
         throw new Error("'{$action}' is not valid log action");
     }
     // if
     if (is_null($is_silent)) {
         $is_silent = $action == self::ACTION_DELETE;
     } else {
         $is_silent = (bool) $is_silent;
     }
     // if
     $manager = $object->manager();
     if (!$manager instanceof DataManager) {
         throw new Error('Invalid object manager');
     }
     // if
     $log = new ApplicationLog();
     if ($project instanceof Project) {
         $log->setProjectId($project->getId());
     }
     // if
     $log->setTakenById(logged_user()->getId());
     $log->setRelObjectId($object->getObjectId());
     $log->setObjectName($object->getObjectName());
     $log->setRelObjectManager(get_class($manager));
     $log->setAction($action);
     $log->setIsPrivate($is_private);
     $log->setIsSilent($is_silent);
     if ($save) {
         $log->save();
     }
     // if
     // Update is private for this object
     if ($object instanceof ProjectDataObject) {
         ApplicationLogs::setIsPrivateForObject($object);
     }
     // if
     return $log;
 }
Ejemplo n.º 4
0
 /**
  * Return tags for specific object
  *
  * @access public
  * @param ApplicationDataObject $object
  * @param string $manager_class
  * @return array
  */
 function getTagsByObject(ApplicationDataObject $object, $manager_class)
 {
     return self::findAll(array('conditions' => array('`rel_object_id` = ? AND `rel_object_manager` = ?', $object->getObjectId(), get_class($object->manager())), 'order' => '`tag`'));
     // findAll
 }
 /**
  * Drop columns content from table related to $object
  *
  * @param ApplicationDataObject $object
  * @return boolean
  */
 static function dropContentByObjectColumns(ApplicationDataObject $object, $columns = array())
 {
     $columns_csv = "'" . implode("','", $columns) . "'";
     return SearchableObjects::delete(array('`rel_object_id` = ? AND `column_name` in (' . $columns_csv . ')', $object->getObjectId()));
 }
 /**
  * Clear all attachments by object
  *
  * @param ApplicationDataObject
  * @return boolean
  */
 static function clearAttachmentsByObject(ApplicationDataObject $object)
 {
     return self::delete(array('`rel_object_manager` = ? AND `rel_object_id` = ?', get_class($object->manager()), $object->getObjectId()));
 }
Ejemplo n.º 7
0
 /**
  * Return all read objects ( ReadObjects) for specific object and user
  *
  * @param ProjectDataObject $object
  * @return array
  */
 static function getReadByObject(ApplicationDataObject $object, int $user_id)
 {
     return self::findAll(array('conditions' => array('(`rel_object_manager` = ? and `rel_object_id` = ?) and `user_id` = ? and is_read = 1', get_class($object->manager()), $object->getObjectId(), $user_id), 'order' => '`created_on`'));
     // findAll
 }