public function _incoming_sms() { $sms = Event::$data; //get all of the whitelisted numbers and see if there's a match $numbers = ORM::factory("simplegroups_groups_number")->find_all(); foreach ($numbers as $number) { if ($number->number) { //makes it a fuzzy search if (!(strpos($sms->message_from, $number->number) === false) || $number->number == $sms->message_from) { $group_message = ORM::factory("simplegroups_groups_message"); $group_message->simplegroups_groups_id = $number->simplegroups_groups_id; $group_message->message_id = $sms->id; $group_message->number_id = $number->id; $group_message->save(); //check and see if it needs to be forwarded groups::forward_message_to_own_instance($sms->message, $sms->message_from, $number->simplegroups_groups_id); //check and see if we need to assign some categories to this $group_categories = ORM::factory("simplegroups_category")->where("simplegroups_groups_id", $number->simplegroups_groups_id)->where("applies_to_message", "1")->where("selected_by_default", "1")->find_all(); foreach ($group_categories as $group_category) { $category_instance = ORM::factory("simplegroups_message_category"); $category_instance->simplegroups_category_id = $group_category->id; $category_instance->message_id = $sms->id; $category_instance->save(); } //break; //more than one number can match? good or bad? } } } }