MySMS in anderen Joomla Komponenten verwenden

Um die MySMS Komponente in anderen Joomla Komponenten verwenden zu können, muss diese installiert und konfiguriert werden. Danach lassen sich ganz einfach SMS versenden.

Hier ein kleines Code Beispiel:

global $mosConfig_lang, $mainframe, $my;
	
DEFINE( '_MYSMS_PATH' ,         $mainframe->getCfg('absolute_path') . '/components/com_mysms/' );
DEFINE( '_MYSMS_ADMIN_PATH' ,   $mainframe->getCfg('absolute_path') . '/administrator/components/com_mysms/' );

require_once(_MYSMS_ADMIN_PATH . 'provider/providerfactory.php' );
require_once(_MYSMS_ADMIN_PATH . 'mysms.user.php' );
require_once(_MYSMS_ADMIN_PATH . 'mysms.group.php' );
require_once(_MYSMS_ADMIN_PATH . 'mysms.error.php' );
require_once(_MYSMS_ADMIN_PATH . 'mysms.phonebook.php' );
require_once(_MYSMS_ADMIN_PATH . 'mysms.usergroups.php' );
require_once(_MYSMS_ADMIN_PATH . 'mysms.config.php' );
require_once(_MYSMS_ADMIN_PATH . 'mysms.crypt.php' );


//First step create a MySMSUser object
$smsUser = new mySMSUser($my->id);

//Check com_mysms user rights, is user allowed to send sms ???
if( $smsUser->isBlocked() == true ){
  mosNotAuth();
  return;
}

//check user balance
if( $smsUser->balance() <= 0  ){
    //error handling
    echo 'error: balance';
    return;
}

//create provider
$factory   = new ProviderFactory();
$provider = $factory->getActiveInstance();

//check if is_null, if true no provider was configured
if( !is_object($provider) ){
 
  return;
}

//test data
$body = 'Tolle Test SMS';
$sender = '0049178*****';
$recv     = '0049178*****';
$errMsg = null;

//send the sms, retCode == true, sending was ok
$retCode = $provider->sendSMS($body, $sender, $recv, $errMsg );

if( $retCode === false ){
  //error handling
 echo $errMsg;
}

$bal = (int) $smsUser->balance();
$bal--;

if( $smsUser->setBalance( $bal ) == false ){
   echo 'setup new balance failed';
    die;
}

//maybe archive sms?
$provider->archiveSMS($body, $sendersend, $errMsg );