static function blockProfile($group, $profile, $blocker) { // Insert the block $block = new Group_block(); $block->query('BEGIN'); $block->group_id = $group->id; $block->blocked = $profile->id; $block->blocker = $blocker->id; $result = $block->insert(); if (!$result) { common_log_db_error($block, 'INSERT', __FILE__); return null; } // Delete membership if any $member = new Group_member(); $member->group_id = $group->id; $member->profile_id = $profile->id; if ($member->find(true)) { $result = $member->delete(); if (!$result) { common_log_db_error($member, 'DELETE', __FILE__); return null; } } // Commit, since both have been done $block->query('COMMIT'); return $block; }