From 79b7d90130152be65b30bf98161afb39086a303a Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Fri, 26 Sep 2014 09:49:43 +0200 Subject: [PATCH] Fixing some fatal error when the plugin is not activated Tested with php 5.4.33-1 --- plugin/clockworksms/lib/clockworksms.lib.php | 51 +++++++++++-------- .../lib/clockworksms_plugin.class.php | 27 +++++----- 2 files changed, 44 insertions(+), 34 deletions(-) diff --git a/plugin/clockworksms/lib/clockworksms.lib.php b/plugin/clockworksms/lib/clockworksms.lib.php index f923a1bfea..036a35308f 100755 --- a/plugin/clockworksms/lib/clockworksms.lib.php +++ b/plugin/clockworksms/lib/clockworksms.lib.php @@ -34,14 +34,15 @@ class Clockworksms $this->apiKey = $clockworksmsApiKey; // Setting Clockworksms api define('CONFIG_SECURITY_API_KEY', $this->apiKey); - if (!empty(trim(CONFIG_SECURITY_API_KEY))) { + $trimmedApiKey = trim(CONFIG_SECURITY_API_KEY); + if (!empty($trimmedApiKey)) { $this->api = new Clockwork(CONFIG_SECURITY_API_KEY); } else { $this->api = new Clockwork(' '); $recipient_name = api_get_person_name( api_get_setting('administratorName'), - api_get_setting('administratorSurname'), - null, + api_get_setting('administratorSurname'), + null, PERSON_NAME_EMAIL_ADDRESS ); $email_form = get_setting('emailAdministrator'); @@ -52,12 +53,12 @@ class Clockworksms api_mail_html($recipient_name, $email_form, $emailsubject, $emailbody, $sender_name, $email_admin); } $this->plugin_enabled = true; - } + } } private function getMobilePhoneNumberById($userId) { - require_once api_get_path(LIBRARY_PATH).'extra_field.lib.php'; + require_once api_get_path(LIBRARY_PATH).'extra_field.lib.php'; $mobilePhoneNumberExtraField = (new ExtraField('user'))->get_handler_field_info_by_field_variable('mobile_phone_number'); require_once api_get_path(LIBRARY_PATH).'extra_field_value.lib.php'; $mobilePhoneNumberExtraFieldValue = (new ExtraFieldValue('user'))->get_values_by_handler_and_field_id($userId, $mobilePhoneNumberExtraField['id']); @@ -66,43 +67,51 @@ class Clockworksms public function send($additionalParameters) { - if (!empty(trim(CONFIG_SECURITY_API_KEY))) { + $trimmedKey = trim(CONFIG_SECURITY_API_KEY); + if (!empty($trimmedKey)) { $message = array( - "to" => array_key_exists("mobilePhoneNumber",$additionalParameters) ? - $additionalParameters['mobilePhoneNumber'] : - $this->getMobilePhoneNumberById($additionalParameters['userId']), + "to" => array_key_exists("mobilePhoneNumber",$additionalParameters) ? + $additionalParameters['mobilePhoneNumber'] : + $this->getMobilePhoneNumberById($additionalParameters['userId']), "message" => $this->getSms($additionalParameters) ); - if (!empty($message['message'])) { - $result = $this->api->send($message); + if (!empty($message['message'])) { + $result = $this->api->send($message); // Commented for future message logging / tracking purposes /*if( $result["success"] ) { - echo "Message sent - ID: " . $result["id"]; + echo "Message sent - ID: " . $result["id"]; } else { echo "Message failed - Error: " . $result["error_message"]; }*/ } - + } } public function buildSms($plugin, $tpl, $templateName, $messageKey, $parameters = null) - { - if (empty(Database::select('selected_value', 'settings_current', array( - 'where'=> array('variable = ?' => array('clockworksms_message'.$messageKey)))))) { + { + $result = Database::select( + 'selected_value', + 'settings_current', + array( + 'where'=> array('variable = ?' => array('clockworksms_message'.$messageKey)) + ) + ); + + if (empty($result)) { $tpl->assign('message', ''); - } - else { + } else { $templatePath = 'clockworksms/sms_templates/'; $content = $tpl->fetch($templatePath.$templateName); $message = $plugin->get_lang($messageKey); if ($parameters !== null) { $message = vsprintf($message, $parameters); } - $tpl->assign('message', $message); + $tpl->assign('message', $message); } + return $tpl->params['message']; } @@ -126,7 +135,7 @@ class Clockworksms $additionalParameters['password'] ) ); - break; + break; case ClockworksmsPlugin::NEW_FILE_SHARED_COURSE_BY: return $this->buildSms( $plugin, @@ -607,5 +616,5 @@ class Clockworksms default: return ''; } - } + } } diff --git a/plugin/clockworksms/lib/clockworksms_plugin.class.php b/plugin/clockworksms/lib/clockworksms_plugin.class.php index dfa2a453b5..a1365a26d4 100755 --- a/plugin/clockworksms/lib/clockworksms_plugin.class.php +++ b/plugin/clockworksms/lib/clockworksms_plugin.class.php @@ -47,7 +47,7 @@ class ClockworksmsPlugin extends Plugin const BEEN_INVITED_COMPLETE_SURVEY_COURSE = 40; const REMINDER_ASSIGNMENT_COURSE_DUE = 41; const USER_DETAILS_MODIFIED = 42; - + public $isCoursePlugin = true; public $isMailPlugin = true; @@ -69,24 +69,25 @@ class ClockworksmsPlugin extends Plugin private function addMobilePhoneNumberField() { - if (empty(Database::select('mobile_phone_number', 'user_field'))) { + $result = Database::select('mobile_phone_number', 'user_field'); + if (empty($result)) { require_once api_get_path(LIBRARY_PATH).'extra_field.lib.php'; $extraField = new Extrafield('user'); $extraField->save(array( - 'field_type' => 1, - 'field_variable' => 'mobile_phone_number', - 'field_display_text' => $this->get_lang('mobile_phone_number'), - 'field_default_value' => null, - 'field_order' => 2, - 'field_visible' => 1, - 'field_changeable' => 1, + 'field_type' => 1, + 'field_variable' => 'mobile_phone_number', + 'field_display_text' => $this->get_lang('mobile_phone_number'), + 'field_default_value' => null, + 'field_order' => 2, + 'field_visible' => 1, + 'field_changeable' => 1, 'field_filter' => null )); } } private function getSmsTypeOptions() - { + { return array( 'MessageWelcomeXLoginXPasswordX', 'MessageXNewFileSharedCourseXByX', @@ -106,7 +107,7 @@ class ClockworksmsPlugin extends Plugin 'MessageXReceivedNewPersonalMessages', 'MessageXNewUserXPendingApproval', 'MessageXXPostedForumXCourseX', - 'MessageXXXCheckEmailConnectMoreInfo', + 'MessageXXXCheckEmailConnectMoreInfo', 'MessageXXStudentXAnsweredTestX', 'MessageXXStudentXAnsweredTestXOpenQuestion', 'MessageXXStudentXAnsweredTestXVoiceQuestion', @@ -122,7 +123,7 @@ class ClockworksmsPlugin extends Plugin 'MessageXUserXUploadedAssignmentXCourseX', 'MessageXUserXUploadedAssignmentXCheckX', 'MessageXSubscribedSessionX', - 'MessageXSubscribedSessionXCSV', + 'MessageXSubscribedSessionXCSV', 'MessageXUserXSuggestedBeFriends', 'MessageXUserXAnsweredInboxMessage', 'MessageXBeenInvitedJoinGroupX', @@ -132,7 +133,7 @@ class ClockworksmsPlugin extends Plugin 'MessageXReminderAssignmentXCourseXDue', 'MessageXUserDetailsModified' ); - } + } public function install() {