Ce document est une extension du document visible à l'url :
https://github.com/antonraharja/playSMS/blob/master/web/docs/PLUGINS
écrit par le fondateur de playSMS Anton Raharja
cette version est adaptée pour playSMS 0.9.71, je n'ai pas fait de vérifications pour les versions
antérieures
Vous désirez une fonctionnalité spécifique que vous ne trouver pas dans playSMS. Alors vous
devez la créer vous même si vous avec les compétences nécessaires ou bien prendre contact avec
des développeurs pour le faire. Cet article est destiné aux développeurs.
Les compétences nécessaires pour étendre playSMS sont entre autres :
Note :Pour développer un nouveau plugin, il est fortement conseillé de s'inspirer des modules existants et
de leur piquer quelques fonctions (Attention: vérifiez leur licence avant).
Les composants (plugins) de playSMS se distinguent en 5 catégories toutes contenues dans le
répertoire ../web/plugins . On a notamment :
Tous les plugins de playSMS, sauf les langues, doivent avoir au minimum cette structure :
<racine_web_playsms>/plugin/<categorie>/<nom_plugin>/
├── config.php
├── fn.php
├── index.html
├── nom_plugin.php
├── docs
│ ├── CHANGELOG
│ ├── README
│ └── VERSION
└── language
├── en_US
│ ├── index.html
│ └── LC_MESSAGES
│ ├── index.html
│ ├── messages.mo
│ └── messages.po
├── …
config.php : fichier php qui se charge de l'insertion du plugin dans le menu Principal et dans sa
catégorie correspondante. Il comporte aussi le code qui lit la configuration du plugin (s'il en a une)
à chaque clique sur l'onglet du plugins dans le menu principal.
fn.php : comporte la définition des fonctions spécifiques au plugins
index.html : c'est un fichier html vide qui permet de capturer toutes les requêtes http dans
l'arborescence non autorisé du plugin. (Vous pouvez y mettre un message personnalisé, qui
redirigera l'internaute vers la page d'accueil avec aussi un pop-up javascript lui indiquant que
cette zone n'est pas accessible)
nom_plugin.php : il est impératif qu'il ait le même nom que le dossier du plugin suivit de
l'extension .php . Ce fichier s'occupe de l'affichage du module dans le navigateur web, des
interactions avec les utilisateurs et de l'enregistrement des configurations faites.
doc : ce dossier contient les informations utiles sur le plugin insérées dans les fichiers README
CHANGELOG et VERSION qui s'expliquent tout seul par leur nom.
language : ce dossier contient les textes du plugin dans différente langues, la langue sélectionnée
est celle que vous aurez choisi pour la plate-forme. En premier pour votre plugin assurez-vous d’avoir
au-moins la langue par défaut en_US.
Dans les plugins déjà disponible dans playSMS vous avez un ensemble de fonctions (core functions)
que vous pouvez adapter ou utiliser suivant la catégorie du module que vous développez on a :
- playsmsd()
- billing_post($smslog_id,$rate,$credit)
- billing_rollback($smslog_id)
- billing_finalize($smslog_id)
- billing_getdata($smslog_id)
- phonebook_groupid2code($gpid)
- phonebook_groupcode2id($uid,$gp_code)
- phonebook_number2name($p_num)
- phonebook_getmembercountbyid($gpid)
- phonebook_getdatabyid($gpid, $orderby="")
- phonebook_getdatabyuid($uid, $orderby="")
- phonebook_getsharedgroup($uid)
- phonebook_getgroupbyuid($uid, $orderby="")
- rate_setusercredit($uid, $remaining=0)
- rate_getusercredit($username)
- rate_cansend($username, $sms_to)
- rate_deduct($smslog_id)
- rate_refund($smslog_id)
- sendmail($mail_from,$mail_to,$mail_subject="",$mail_body="")
- setsmsdeliverystatus($smslog_id,$uid,$p_status)
- interceptincomingsms($sms_datetime,$sms_sender,$message,$sms_receiver)
- interceptsmstoinbox($sms_datetime,$sms_sender,$target_user,$message)
- interceptsendsms($sms_sender,$sms_footer,$sms_to,$sms_msg,$uid,$gpid=0,$sms_type='text',$unicode=0)
- call($_REQUEST)
Dans les services installés vous trouverez certaines fonctions spécifiques pour SMS desquelles vous
pouvez vous inspirer :
- playsmsd()
- checkavailablekeyword($keyword)
- setsmsdeliverystatus($smslog_id,$uid,$p_status)
- setsmsincomingaction($sms_datetime,$sms_sender,$target_keyword,$message,$sms_receiver,$raw_message)
- interceptincomingsms($sms_datetime,$sms_sender,$message,$sms_receiver)
- interceptsmstoinbox($sms_datetime,$sms_sender,$target_user,$message)
- interceptsendsms($sms_sender,$sms_footer,$sms_to,$sms_msg,$uid,$gpid=0,$sms_type='text',$unicode=0)
- call($_REQUEST)
- playsmsd()
- getsmsinbox()
- getsmsstatus($gpid=0,$uid="",$smslog_id="",$p_datetime="",$p_update="")
- sendsms($sms_sender,$sms_footer,$sms_to,$sms_msg,$uid='',$gpid=0,$smslog_id=0,$sms_type='text',$unicode=0)
- setsmsdeliverystatus($smslog_id,$uid,$p_status)
- call($_REQUEST)
- call($_REQUEST)
Il y a une base de donné par les langue installé basé sur gettext uniquement pour les fichier core/main.
Chaque plugins doit avoir ses fichiers de langue. Pour plus d'informations sur gettext, pouvez lire :
http://php.net/manual/en/book.gettext.php
http://www.gnu.org/software/gettext/
http://www.gnu.org/software/gettext/manual/gettext.html
J'espère que cet article vous a été d'une quelconque utilité, n'hésitez pas à me le faire savoir un petit
merci c'est agréable de temps en temps ou à me dire si vous y trouver des erreurs.