/** * Render object assignees list * * @param array $params * @param Smarty $smarty * @return string */ function smarty_function_mobile_access_object_assignees($params, &$smarty) { $object = array_var($params, 'object'); if (!instance_of($object, 'ProjectObject')) { return new InvalidParamError('object', $object, '$object is expected to be an instance of ProjectObject class', true); } // if $owner = $object->getResponsibleAssignee(); if (!instance_of($owner, 'User')) { Assignments::deleteByObject($object); return lang('No one is responsible'); } // if require_once SYSTEM_MODULE_PATH . '/helpers/function.user_link.php'; $other_assignees = array(); $assignees = $object->getAssignees(); if (is_foreachable($assignees)) { foreach ($assignees as $assignee) { if ($assignee->getId() != $owner->getId()) { $other_assignees[] = '<a href="' . mobile_access_module_get_view_url($assignee) . '">' . clean($assignee->getName()) . '</a>'; } // if } // foreach } // if if (count($other_assignees)) { return '<a href="' . mobile_access_module_get_view_url($owner) . '">' . clean($owner->getName()) . '</a> ' . lang('is responsible') . '. ' . lang('Other assignees') . ': ' . implode(', ', $other_assignees); } else { return '<a href="' . mobile_access_module_get_view_url($owner) . '">' . clean($owner->getName()) . '</a> ' . lang('is responsible') . '.'; } // if }
/** * Delete this object * * If $drop_subitems is TRUE subitems will be delete from the database. If it * is false relation will be nullified * * @param boolean $drop_subitems * @return boolean * @throws DBQueryError */ function delete($drop_subitems = true) { db_begin_work(); $delete = parent::delete(); if (is_error($delete) || !$delete) { db_rollback(); return $delete; } // if $subitems = $this->getSubitems(); if (is_foreachable($subitems)) { foreach ($subitems as $subitem) { if ($drop_subitems) { $delete = $subitem->delete(); if (is_error($delete)) { db_rollback(); return $delete; } // if } else { $subitem->setParent(null, false); $save = $subitem->save(); if (is_error($save)) { db_rollback(); return $save; } // if } // if } // foreach } // if StarredObjects::deleteByObject($this); // Attachments if ($this->can_have_attachments) { Attachments::deleteByObject($this); } // if // Subscriptions if ($this->can_have_subscribers) { Subscriptions::deleteByParent($this); } // if // Asignments if ($this->can_have_assignees) { Assignments::deleteByObject($this); } // if // Activity log if ($this->log_activities) { ActivityLogs::deleteByObject($this); } // if // Reminders if ($this->can_send_reminders) { Reminders::deleteByObject($this); } // if search_index_remove($this->getId(), 'ProjectObject'); db_commit(); return true; }