Change directory structure and follow code convention - refs #7225
parent
5528500519
commit
488afcac6a
@ -1,11 +1,15 @@ |
|||||||
<?php |
<?php |
||||||
/* For licensing terms, see /license.txt */ |
/* For licensing terms, see /vendor/license.txt */ |
||||||
|
|
||||||
/* bbb parameters that will be registered in the course settings */ |
|
||||||
|
|
||||||
|
/** |
||||||
|
* Clockwork parameters that will be registered in the current settings |
||||||
|
* |
||||||
|
* @package chamilo.plugin.clockworksms |
||||||
|
* @author Imanol Losada <imanol.losada@beeznest.com> |
||||||
|
*/ |
||||||
require_once __DIR__ . '/../../main/inc/global.inc.php'; |
require_once __DIR__ . '/../../main/inc/global.inc.php'; |
||||||
require_once api_get_path(LIBRARY_PATH).'plugin.class.php'; |
require_once api_get_path(LIBRARY_PATH).'plugin.class.php'; |
||||||
|
|
||||||
require_once 'lib/clockworksms.lib.php'; |
require_once 'lib/clockworksms.lib.php'; |
||||||
require_once 'lib/clockworksms_api.php'; |
require_once 'vendor/clockworksms_api.php'; |
||||||
require_once 'lib/clockworksms_plugin.class.php'; |
require_once 'lib/clockworksms_plugin.class.php'; |
||||||
|
@ -1,3 +1 @@ |
|||||||
<?php |
<?php |
||||||
|
|
||||||
?> |
|
@ -1,12 +1,15 @@ |
|||||||
<?php |
<?php |
||||||
|
/* For licensing terms, see /vendor/license.txt */ |
||||||
|
|
||||||
/** |
/** |
||||||
* This script is included by main/admin/settings.lib.php and generally |
* This script is included by main/admin/settings.lib.php and generally |
||||||
* includes things to execute in the main database (settings_current table) |
* includes things to execute in the main database (settings_current table) |
||||||
* @package chamilo.plugin.bigbluebutton |
* |
||||||
|
* @package chamilo.plugin.clockworksms |
||||||
|
* @author Imanol Losada <imanol.losada@beeznest.com> |
||||||
*/ |
*/ |
||||||
/** |
/** |
||||||
* Initialization |
* Initialization |
||||||
*/ |
*/ |
||||||
|
|
||||||
require_once dirname(__FILE__).'/config.php'; |
require_once dirname(__FILE__).'/config.php'; |
||||||
ClockworksmsPlugin::create()->install(); |
ClockworksmsPlugin::create()->install(); |
@ -1,5 +1,10 @@ |
|||||||
<?php |
<?php |
||||||
|
/* For licensing terms, see /vendor/license.txt */ |
||||||
|
|
||||||
|
/** |
||||||
|
* @package chamilo.plugin.clockworksms |
||||||
|
* @author Imanol Losada <imanol.losada@beeznest.com> |
||||||
|
*/ |
||||||
require_once dirname(__FILE__).'/config.php'; |
require_once dirname(__FILE__).'/config.php'; |
||||||
|
|
||||||
$plugin_info = ClockworksmsPlugin::create()->get_info(); |
$plugin_info = ClockworksmsPlugin::create()->get_info(); |
||||||
|
@ -1,253 +1,3 @@ |
|||||||
# Clockwork SMS API Wrapper for PHP |
This plugin enables Chamilo to send SMS messages to Chamilo users when a notification email is sent. |
||||||
|
|
||||||
This wrapper lets you interact with Clockwork without the hassle of having to create any XML or make HTTP calls. |
SMS message types (a new course is created, an account is approved and so on) can be enabled or disabled from it's plugin configuration option. |
||||||
|
|
||||||
## What's Clockwork? |
|
||||||
|
|
||||||
[Clockwork][2] is Mediaburst's SMS API. |
|
||||||
|
|
||||||
### Prerequisites |
|
||||||
|
|
||||||
* A [Clockwork][2] account |
|
||||||
|
|
||||||
## Usage |
|
||||||
|
|
||||||
Require the Clockwork library: |
|
||||||
|
|
||||||
```php |
|
||||||
require 'class-Clockwork.php'; |
|
||||||
``` |
|
||||||
|
|
||||||
### Sending a message |
|
||||||
|
|
||||||
```php |
|
||||||
$clockwork = new Clockwork( $API_KEY ); |
|
||||||
$message = array( 'to' => '441234567891', 'message' => 'This is a test!' ); |
|
||||||
$result = $clockwork->send( $message ); |
|
||||||
``` |
|
||||||
|
|
||||||
### Sending multiple messages |
|
||||||
|
|
||||||
We recommend you use batch sizes of 500 messages or fewer. By limiting the batch size it prevents any timeouts when sending. |
|
||||||
|
|
||||||
```php |
|
||||||
$clockwork = new Clockwork( $API_KEY ); |
|
||||||
$messages = array( |
|
||||||
array( 'to' => '441234567891', 'message' => 'This is a test!' ), |
|
||||||
array( 'to' => '441234567892', 'message' => 'This is a test 2!' ) |
|
||||||
); |
|
||||||
$results = $clockwork->send( $messages ); |
|
||||||
``` |
|
||||||
|
|
||||||
### Handling the response |
|
||||||
|
|
||||||
The responses come back as arrays, these contain the unique Clockwork message ID, whether the message worked (`success`), and the original SMS so you can update your database. |
|
||||||
|
|
||||||
Array |
|
||||||
( |
|
||||||
[id] => VE_164732148 |
|
||||||
[success] => 1 |
|
||||||
[sms] => Array |
|
||||||
( |
|
||||||
[to] => 441234567891 |
|
||||||
[message] => This is a test! |
|
||||||
) |
|
||||||
|
|
||||||
) |
|
||||||
|
|
||||||
If you send multiple SMS messages in a single send, you'll get back an array of results, one per SMS. |
|
||||||
|
|
||||||
The result will look something like this: |
|
||||||
|
|
||||||
Array |
|
||||||
( |
|
||||||
[0] => Array |
|
||||||
( |
|
||||||
[id] => VI_143228951 |
|
||||||
[success] => 1 |
|
||||||
[sms] => Array |
|
||||||
( |
|
||||||
[to] => 441234567891 |
|
||||||
[message] => This is a test! |
|
||||||
) |
|
||||||
|
|
||||||
) |
|
||||||
|
|
||||||
[1] => Array |
|
||||||
( |
|
||||||
[id] => VI_143228952 |
|
||||||
[success] => 1 |
|
||||||
[sms] => Array |
|
||||||
( |
|
||||||
[to] => 441234567892 |
|
||||||
[message] => This is a test 2! |
|
||||||
) |
|
||||||
|
|
||||||
) |
|
||||||
|
|
||||||
) |
|
||||||
|
|
||||||
If a message fails, the reason for failure will be set in `error_code` and `error_message`. |
|
||||||
|
|
||||||
For example, if you send to invalid phone number "abc": |
|
||||||
|
|
||||||
Array |
|
||||||
( |
|
||||||
[error_code] => 10 |
|
||||||
[error_message] => Invalid 'To' Parameter |
|
||||||
[success] => 0 |
|
||||||
[sms] => Array |
|
||||||
( |
|
||||||
[to] => abc |
|
||||||
[message] => This is a test! |
|
||||||
) |
|
||||||
|
|
||||||
) |
|
||||||
|
|
||||||
### Checking your balance |
|
||||||
|
|
||||||
Check your available SMS balance: |
|
||||||
|
|
||||||
```php |
|
||||||
$clockwork = new Clockwork( $API_KEY ); |
|
||||||
$clockwork->checkBalance(); |
|
||||||
``` |
|
||||||
|
|
||||||
This will return: |
|
||||||
|
|
||||||
Array |
|
||||||
( |
|
||||||
[symbol] => £ |
|
||||||
[balance] => 351.91 |
|
||||||
[code] => GBP |
|
||||||
) |
|
||||||
|
|
||||||
### Handling Errors |
|
||||||
|
|
||||||
The Clockwork wrapper will throw a `ClockworkException` if the entire call failed. |
|
||||||
|
|
||||||
```php |
|
||||||
try |
|
||||||
{ |
|
||||||
$clockwork = new Clockwork( 'invalid_key' ); |
|
||||||
$message = array( 'to' => 'abc', 'message' => 'This is a test!' ); |
|
||||||
$result = $clockwork->send( $message ); |
|
||||||
} |
|
||||||
catch( ClockworkException $e ) |
|
||||||
{ |
|
||||||
print $e->getMessage(); |
|
||||||
// Invalid API Key |
|
||||||
} |
|
||||||
``` |
|
||||||
|
|
||||||
### Advanced Usage |
|
||||||
|
|
||||||
This class has a few additional features that some users may find useful, if these are not set your account defaults will be used. |
|
||||||
|
|
||||||
### Optional Parameters |
|
||||||
|
|
||||||
See the [Clockwork Documentation](http://www.clockworksms.com/doc/clever-stuff/xml-interface/send-sms/) for full details on these options. |
|
||||||
|
|
||||||
* $from [string] |
|
||||||
|
|
||||||
The from address displayed on a phone when they receive a message |
|
||||||
|
|
||||||
* $long [boolean] |
|
||||||
|
|
||||||
Enable long SMS. A standard text can contain 160 characters, a long SMS supports up to 459. |
|
||||||
|
|
||||||
* $truncate [nullable boolean] |
|
||||||
|
|
||||||
Truncate the message payload if it is too long, if this is set to false, the message will fail if it is too long. |
|
||||||
|
|
||||||
* $invalid_char_action [string] |
|
||||||
|
|
||||||
What to do if the message contains an invalid character. Possible values are |
|
||||||
* error - Fail the message |
|
||||||
* remove - Remove the invalid characters then send |
|
||||||
* replace - Replace some common invalid characters such as replacing curved quotes with straight quotes |
|
||||||
|
|
||||||
* $ssl [boolean, default: true] |
|
||||||
|
|
||||||
Use SSL when making an HTTP request to the Clockwork API |
|
||||||
|
|
||||||
|
|
||||||
### Setting Options |
|
||||||
|
|
||||||
#### Global Options |
|
||||||
|
|
||||||
Options set on the API object will apply to all SMS messages unless specifically overridden. |
|
||||||
|
|
||||||
In this example both messages will be sent from Clockwork: |
|
||||||
|
|
||||||
```php |
|
||||||
$options = array( 'from' => 'Clockwork' ); |
|
||||||
$clockwork = new Clockwork( $API_KEY, $options ); |
|
||||||
$messages = array( |
|
||||||
array( 'to' => '441234567891', 'message' => 'This is a test!' ), |
|
||||||
array( 'to' => '441234567892', 'message' => 'This is a test 2!' ) |
|
||||||
); |
|
||||||
$results = $clockwork->send( $messages ); |
|
||||||
``` |
|
||||||
|
|
||||||
#### Per-message Options |
|
||||||
|
|
||||||
Set option values individually on each message. |
|
||||||
|
|
||||||
In this example, one message will be from Clockwork and the other from 84433: |
|
||||||
|
|
||||||
```php |
|
||||||
$clockwork = new Clockwork( $API_KEY, $options ); |
|
||||||
$messages = array( |
|
||||||
array( 'to' => '441234567891', 'message' => 'This is a test!', 'from' => 'Clockwork' ), |
|
||||||
array( 'to' => '441234567892', 'message' => 'This is a test 2!', 'from' => '84433' ) |
|
||||||
); |
|
||||||
$results = $clockwork->send( $messages ); |
|
||||||
``` |
|
||||||
|
|
||||||
### SSL Errors |
|
||||||
|
|
||||||
Due to the huge variety of PHP setups out there a small proportion of users may get PHP errors when making API calls due to their SSL configuration. |
|
||||||
|
|
||||||
The errors will generally look something like this: |
|
||||||
|
|
||||||
``` |
|
||||||
Fatal error: |
|
||||||
Uncaught exception 'Exception' with message 'HTTP Error calling Clockwork API |
|
||||||
HTTP Status: 0 |
|
||||||
cURL Erorr: SSL certificate problem, verify that the CA cert is OK. |
|
||||||
Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed' |
|
||||||
``` |
|
||||||
|
|
||||||
If you're seeing this error there are two fixes available, the first is easy, simply disable SSL on Clockwork calls. Alternatively you can setup your PHP install with the correct root certificates. |
|
||||||
|
|
||||||
#### Disable SSL on Clockwork calls |
|
||||||
|
|
||||||
```php |
|
||||||
$options = array( 'ssl' => false ); |
|
||||||
$clockwork = new Clockwork( $API_KEY, $options ); |
|
||||||
``` |
|
||||||
|
|
||||||
#### Setup SSL root certificates on your server |
|
||||||
|
|
||||||
This is much more complicated as it depends on your setup, however there are many guides available online. |
|
||||||
Try a search term like "windows php curl root certificates" or "ubuntu update root certificates". |
|
||||||
|
|
||||||
|
|
||||||
# License |
|
||||||
|
|
||||||
This project is licensed under the ISC open-source license. |
|
||||||
|
|
||||||
A copy of this license can be found in license.txt. |
|
||||||
|
|
||||||
# Contributing |
|
||||||
|
|
||||||
If you have any feedback on this wrapper drop us an email to [hello@clockworksms.com][1]. |
|
||||||
|
|
||||||
The project is hosted on GitHub at [https://github.com/mediaburst/clockwork-php][3]. |
|
||||||
If you would like to contribute a bug fix or improvement please fork the project |
|
||||||
and submit a pull request. |
|
||||||
|
|
||||||
[1]: mailto:hello@clockworksms.com |
|
||||||
[2]: http://www.clockworksms.com/ |
|
||||||
[3]: https://github.com/mediaburst/clockwork-php |
|
@ -0,0 +1,14 @@ |
|||||||
|
Copyright (c) 2011 - 2012, Mediaburst Ltd <hello@mediaburst.co.uk> |
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or distribute this software for any |
||||||
|
purpose with or without fee is hereby granted, provided that the above |
||||||
|
copyright notice and this permission notice appear in all copies. |
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
||||||
|
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
||||||
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
||||||
|
|
Loading…
Reference in new issue