/** * @param \EE_Message_Resource_Manager $message_resource_manager * @return array|bool * @throws \EE_Error */ protected static function _activate_new_message_types_for_active_messengers_and_generate_default_templates(EE_Message_Resource_Manager $message_resource_manager) { /** @type EE_messenger[] $active_messengers */ $active_messengers = $message_resource_manager->active_messengers(); $installed_message_types = $message_resource_manager->installed_message_types(); $templates_created = false; foreach ($active_messengers as $active_messenger) { $default_message_type_names_for_messenger = $active_messenger->get_default_message_types(); $default_message_type_names_to_activate = array(); // looping through each default message type reported by the messenger // and setup the actual message types to activate. foreach ($default_message_type_names_for_messenger as $default_message_type_name_for_messenger) { // if already active or has already been activated before we skip // (otherwise we might reactivate something user's intentionally deactivated.) // we also skip if the message type is not installed. if ($message_resource_manager->has_message_type_been_activated_for_messenger($default_message_type_name_for_messenger, $active_messenger->name) || $message_resource_manager->is_message_type_active_for_messenger($active_messenger->name, $default_message_type_name_for_messenger) || !isset($installed_message_types[$default_message_type_name_for_messenger])) { continue; } $default_message_type_names_to_activate[] = $default_message_type_name_for_messenger; } //let's activate! $message_resource_manager->ensure_message_types_are_active($default_message_type_names_to_activate, $active_messenger->name, false); //activate the templates for these message types if (!empty($default_message_type_names_to_activate)) { $templates_created = EEH_MSG_Template::generate_new_templates($active_messenger->name, $default_message_type_names_for_messenger, '', true); } } return $templates_created; }