Fixing some fatal error when the plugin is not activated

Tested with php 5.4.33-1
1.9.x
Julio Montoya 11 years ago
parent 125eb3c50d
commit 79b7d90130
  1. 51
      plugin/clockworksms/lib/clockworksms.lib.php
  2. 27
      plugin/clockworksms/lib/clockworksms_plugin.class.php

@ -34,14 +34,15 @@ class Clockworksms
$this->apiKey = $clockworksmsApiKey; $this->apiKey = $clockworksmsApiKey;
// Setting Clockworksms api // Setting Clockworksms api
define('CONFIG_SECURITY_API_KEY', $this->apiKey); 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); $this->api = new Clockwork(CONFIG_SECURITY_API_KEY);
} else { } else {
$this->api = new Clockwork(' '); $this->api = new Clockwork(' ');
$recipient_name = api_get_person_name( $recipient_name = api_get_person_name(
api_get_setting('administratorName'), api_get_setting('administratorName'),
api_get_setting('administratorSurname'), api_get_setting('administratorSurname'),
null, null,
PERSON_NAME_EMAIL_ADDRESS PERSON_NAME_EMAIL_ADDRESS
); );
$email_form = get_setting('emailAdministrator'); $email_form = get_setting('emailAdministrator');
@ -52,12 +53,12 @@ class Clockworksms
api_mail_html($recipient_name, $email_form, $emailsubject, $emailbody, $sender_name, $email_admin); api_mail_html($recipient_name, $email_form, $emailsubject, $emailbody, $sender_name, $email_admin);
} }
$this->plugin_enabled = true; $this->plugin_enabled = true;
} }
} }
private function getMobilePhoneNumberById($userId) 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'); $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'; 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']); $mobilePhoneNumberExtraFieldValue = (new ExtraFieldValue('user'))->get_values_by_handler_and_field_id($userId, $mobilePhoneNumberExtraField['id']);
@ -66,43 +67,51 @@ class Clockworksms
public function send($additionalParameters) public function send($additionalParameters)
{ {
if (!empty(trim(CONFIG_SECURITY_API_KEY))) { $trimmedKey = trim(CONFIG_SECURITY_API_KEY);
if (!empty($trimmedKey)) {
$message = array( $message = array(
"to" => array_key_exists("mobilePhoneNumber",$additionalParameters) ? "to" => array_key_exists("mobilePhoneNumber",$additionalParameters) ?
$additionalParameters['mobilePhoneNumber'] : $additionalParameters['mobilePhoneNumber'] :
$this->getMobilePhoneNumberById($additionalParameters['userId']), $this->getMobilePhoneNumberById($additionalParameters['userId']),
"message" => $this->getSms($additionalParameters) "message" => $this->getSms($additionalParameters)
); );
if (!empty($message['message'])) { if (!empty($message['message'])) {
$result = $this->api->send($message); $result = $this->api->send($message);
// Commented for future message logging / tracking purposes // Commented for future message logging / tracking purposes
/*if( $result["success"] ) { /*if( $result["success"] ) {
echo "Message sent - ID: " . $result["id"]; echo "Message sent - ID: " . $result["id"];
} else { } else {
echo "Message failed - Error: " . $result["error_message"]; echo "Message failed - Error: " . $result["error_message"];
}*/ }*/
} }
} }
} }
public function buildSms($plugin, $tpl, $templateName, $messageKey, $parameters = null) public function buildSms($plugin, $tpl, $templateName, $messageKey, $parameters = null)
{ {
if (empty(Database::select('selected_value', 'settings_current', array( $result = Database::select(
'where'=> array('variable = ?' => array('clockworksms_message'.$messageKey)))))) { 'selected_value',
'settings_current',
array(
'where'=> array('variable = ?' => array('clockworksms_message'.$messageKey))
)
);
if (empty($result)) {
$tpl->assign('message', ''); $tpl->assign('message', '');
} } else {
else {
$templatePath = 'clockworksms/sms_templates/'; $templatePath = 'clockworksms/sms_templates/';
$content = $tpl->fetch($templatePath.$templateName); $content = $tpl->fetch($templatePath.$templateName);
$message = $plugin->get_lang($messageKey); $message = $plugin->get_lang($messageKey);
if ($parameters !== null) { if ($parameters !== null) {
$message = vsprintf($message, $parameters); $message = vsprintf($message, $parameters);
} }
$tpl->assign('message', $message); $tpl->assign('message', $message);
} }
return $tpl->params['message']; return $tpl->params['message'];
} }
@ -126,7 +135,7 @@ class Clockworksms
$additionalParameters['password'] $additionalParameters['password']
) )
); );
break; break;
case ClockworksmsPlugin::NEW_FILE_SHARED_COURSE_BY: case ClockworksmsPlugin::NEW_FILE_SHARED_COURSE_BY:
return $this->buildSms( return $this->buildSms(
$plugin, $plugin,
@ -607,5 +616,5 @@ class Clockworksms
default: default:
return ''; return '';
} }
} }
} }

@ -47,7 +47,7 @@ class ClockworksmsPlugin extends Plugin
const BEEN_INVITED_COMPLETE_SURVEY_COURSE = 40; const BEEN_INVITED_COMPLETE_SURVEY_COURSE = 40;
const REMINDER_ASSIGNMENT_COURSE_DUE = 41; const REMINDER_ASSIGNMENT_COURSE_DUE = 41;
const USER_DETAILS_MODIFIED = 42; const USER_DETAILS_MODIFIED = 42;
public $isCoursePlugin = true; public $isCoursePlugin = true;
public $isMailPlugin = true; public $isMailPlugin = true;
@ -69,24 +69,25 @@ class ClockworksmsPlugin extends Plugin
private function addMobilePhoneNumberField() 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'; require_once api_get_path(LIBRARY_PATH).'extra_field.lib.php';
$extraField = new Extrafield('user'); $extraField = new Extrafield('user');
$extraField->save(array( $extraField->save(array(
'field_type' => 1, 'field_type' => 1,
'field_variable' => 'mobile_phone_number', 'field_variable' => 'mobile_phone_number',
'field_display_text' => $this->get_lang('mobile_phone_number'), 'field_display_text' => $this->get_lang('mobile_phone_number'),
'field_default_value' => null, 'field_default_value' => null,
'field_order' => 2, 'field_order' => 2,
'field_visible' => 1, 'field_visible' => 1,
'field_changeable' => 1, 'field_changeable' => 1,
'field_filter' => null 'field_filter' => null
)); ));
} }
} }
private function getSmsTypeOptions() private function getSmsTypeOptions()
{ {
return array( return array(
'MessageWelcomeXLoginXPasswordX', 'MessageWelcomeXLoginXPasswordX',
'MessageXNewFileSharedCourseXByX', 'MessageXNewFileSharedCourseXByX',
@ -106,7 +107,7 @@ class ClockworksmsPlugin extends Plugin
'MessageXReceivedNewPersonalMessages', 'MessageXReceivedNewPersonalMessages',
'MessageXNewUserXPendingApproval', 'MessageXNewUserXPendingApproval',
'MessageXXPostedForumXCourseX', 'MessageXXPostedForumXCourseX',
'MessageXXXCheckEmailConnectMoreInfo', 'MessageXXXCheckEmailConnectMoreInfo',
'MessageXXStudentXAnsweredTestX', 'MessageXXStudentXAnsweredTestX',
'MessageXXStudentXAnsweredTestXOpenQuestion', 'MessageXXStudentXAnsweredTestXOpenQuestion',
'MessageXXStudentXAnsweredTestXVoiceQuestion', 'MessageXXStudentXAnsweredTestXVoiceQuestion',
@ -122,7 +123,7 @@ class ClockworksmsPlugin extends Plugin
'MessageXUserXUploadedAssignmentXCourseX', 'MessageXUserXUploadedAssignmentXCourseX',
'MessageXUserXUploadedAssignmentXCheckX', 'MessageXUserXUploadedAssignmentXCheckX',
'MessageXSubscribedSessionX', 'MessageXSubscribedSessionX',
'MessageXSubscribedSessionXCSV', 'MessageXSubscribedSessionXCSV',
'MessageXUserXSuggestedBeFriends', 'MessageXUserXSuggestedBeFriends',
'MessageXUserXAnsweredInboxMessage', 'MessageXUserXAnsweredInboxMessage',
'MessageXBeenInvitedJoinGroupX', 'MessageXBeenInvitedJoinGroupX',
@ -132,7 +133,7 @@ class ClockworksmsPlugin extends Plugin
'MessageXReminderAssignmentXCourseXDue', 'MessageXReminderAssignmentXCourseXDue',
'MessageXUserDetailsModified' 'MessageXUserDetailsModified'
); );
} }
public function install() public function install()
{ {

Loading…
Cancel
Save