function get($reference_object = null, $reference_id = null) { //there's nothing to do if we don't have a reference object if ($reference_object == null || $reference_id == null) { return false; } $reference_table = $reference_object . "s"; $name_field = $this->name_field($reference_object); $sql = "SELECT messages.*, CONCAT(users.first_name, ' ', users.last_name) AS user_name, {$reference_table}.{$name_field} AS entity_name\n FROM messages\n LEFT JOIN users ON messages.user_id = users.id\n LEFT JOIN {$reference_table} ON messages.reference_id = {$reference_table}.id\n WHERE reference_object = '{$reference_object}' AND reference_id = '{$reference_id}'"; $sql = $this->modify_sql_for_user_type($sql); $messages = parent::get($sql); User::set_profile_images($messages); return $messages; }
function get($criteria = null) { //todo:make sure the user has access, filter by type, there are probably some activity items clients cant see? $sql = "SELECT activity.*,\n CONCAT(users.first_name, ' ', users.last_name) AS user_name,\n projects.name AS project_name\n FROM activity\n LEFT JOIN users on activity.user_id = users.id\n LEFT JOIN projects on activity.project_id = projects.id"; $sql = isset($criteria) ? "{$sql} {$criteria}" : $sql; //todo: does this make sense for activity? Both clients and admins can access all activity for a project. Plus it looks like it would build invalid sql with two where statements (see projectdetails class) $sql = $this->modify_sql_for_user_type($sql, $criteria); $sql .= " ORDER BY activity_date DESC LIMIT 100"; $activity = parent::get($sql); User::set_profile_images($activity); return $activity; }