Posted by: Hartoto | 02/26/2013

Membuat SMS Notifikasi dari Web Joomla

Setelah membaca artikel mas Rosihanari tentang sms gatewaynya, saya jadi penasaran untuk mengimplementasikan ke dalam salah satu situs yang saya urus. Engine sms yang saya gunakan adalah Gammu (GAMPSMS) dan web yang mau diintegrasikan menggunakan joomla. Skenarionya: Jika ada yang menulis artikel di web joomla tersebut, maka otomatis akan mengirimkan ke semua user yang masuk di grup yang telah kita tentukan. Nantinya orang bisa berlangganan mendaftar dengan cara ketik REG# dst.

Logika programnya: script mengambil data artikel terakhir dari web kemudian hasilnya diambil lagi oleh sms gateway.

Untuk urusan ini, kita membutuhkan 3 buah file:

  1. Script menampilkan ID, judul artikel, penulis, dan waktu terbit dari database joomla (saya beri nama file: sms-joomla.php)
  2. Script di sms gatewaynya untuk membaca hasil script point 1 (saya beri nama :sms-not-joomla.php)
  3. File ajax untuk auto refresh page, ini file akan saya sisipkan melalui iframe index gamps (saya kasih nama: alert.php)

SOURCE CODE SMS-JOOMLA.PHP

<?php
//inisiasi
$host="localhost";
$user="NAMA USER DATABASE";
$dbse="NAMA DATABASE JOOMLA";
$pass='PASSWORD USER';

mysql_connect($host, $user, $pass);
mysql_select_db($dbse);

//query
$qry="SELECT jos_content.id, jos_content.title, jos_users.`name`, jos_content.created FROM jos_content, jos_users WHERE jos_content.created_by = jos_users.id AND jos_content.state=1 ORDER BY jos_content.id DESC LIMIT 0, 1";
$hsl = mysql_query($qry);
$art = mysql_fetch_array($hsl);

//output xml
header('Content-Type: text/xml');
echo "<?xml version='1.0' standalone='yes'?>";
echo "<article>";
echo "<id>".$art[0]."</id>";
echo "<title>".$art[1]."</title>";
echo "<author>".$art[2]."</author>";
echo "<pubdate>".$art[3]."</pubdate>";
echo "</article>";
?>

SOURCE CODE SMS-NOT-JOOMLA.PHP

<?php
// sms autonotifikasi
// by HARTOTO 26/02/2013
// CodeName : Uneputty

//inisiasi
$host="localhost";
$user="USER DATABASE";
$dbse="DATABASE GAMP";
$pass="PASSWORD DATABASE GAMP";
$grup="100"; //id phonegroup di gampsms
$inst="XXX"; //nama untuk dijadikan header sms. contoh kalau ditulis "SINAY" hasilnya "SINAY NEWS"
$webf="http://www.XXX.ac.id/sms-joomla.php";

    //koneksi sms gateway
    mysql_connect($host, $user, $pass);
    mysql_select_db($dbse);
    
    // membaca semua data RSS feed
    $dataxml = simplexml_load_file($webf);
    $id=$dataxml->id;
    $title = $dataxml->title;
    $author=$dataxml->author;
    $pubdate = $dataxml->pubdate;

//cek sudah sms belum
$qry=mysql_query ("SELECT `value`  FROM `sms_option` WHERE `option` LIKE 'news_UNM'");
$hasil=mysql_fetch_array($qry);
$hasil2=$hasil['value'];
if ($hasil2 < $id)
{
    // baca data nama dan nohp dari phonebook
      $qry = mysql_query("SELECT * FROM `sms_phonebook` WHERE `idgroup` LIKE '%|100|%'");
      while ($kntk = mysql_fetch_array($qry))
       {
            $nohp = $kntk['noTelp'];
            $isiSMS = $inst." NEWS: ".$title." - by: ".$author." (".$pubdate.") Via ICT SMS Center";
            // kirim SMS notifikasi
            $send = "INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID) VALUES ('$nohp', '$isiSMS', 'news')";
            $kirim=mysql_query($send);
            if ($kirim)
            {
                mysql_query("UPDATE `sms_option` SET `value` = '$id' WHERE `sms_option`.`option` = 'news_UNM'");
            }
        }
} 
?>

SOURCE CODE ALERT.PHP

<html>
<head>
<script type="text/javascript">

  function ajax()
  {
  if (window.XMLHttpRequest)
  {
     xmlhttp=new XMLHttpRequest();
  }
  else
  {
     xmlhttp =new ActiveXObject("Microsoft.XMLHTTP");
  }

  xmlhttp.open("GET","sms-not-joomla.php");
  xmlhttp.send();
  setTimeout("ajax()", 5000);
  }
  </script>

</head>
<body onload="ajax()">
   <h1>Alert running...</h1>
</body>
</html>

Sisanya silakan sesuaikan sendiri, biasanya yang cari artikel seperti ini sudah pada mahir. Scriptnya lebih dicari. Bagi yang belum jelas. Call W🙂


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: