diff --git a/appinfo/ocsmsapp.php b/appinfo/ocsmsapp.php index bc42d79..2867c2a 100644 --- a/appinfo/ocsmsapp.php +++ b/appinfo/ocsmsapp.php @@ -20,7 +20,7 @@ use \OCA\OcSms\Controller\SmsController; use \OCA\OcSms\Db\Sms; use \OCA\OcSms\Db\SmsMapper; -use \OCA\OcSms\AppInfo\FormatPhoneNumber; +use \OCA\OcSms\Lib\PhoneNumberFormatter; class OcSmsApp extends App { @@ -143,7 +143,7 @@ class OcSmsApp extends App { */ private function pushPhoneNumberToCache($rawPhone, $contactName) { - $phoneNb = FormatPhoneNumber::formatPhoneNumber($rawPhone); + $phoneNb = PhoneNumberFormatter::format($rawPhone); self::$contacts[$phoneNb] = $contactName; // Inverted contacts if (!isset(self::$contactsInverted[$contactName])) { diff --git a/controller/smscontroller.php b/controller/smscontroller.php index 078c5a7..7dea05d 100644 --- a/controller/smscontroller.php +++ b/controller/smscontroller.php @@ -18,7 +18,7 @@ use \OCP\AppFramework\Controller; use \OCP\AppFramework\Http\JSONResponse; use \OCA\OcSms\AppInfo\OcSmsApp; use \OCA\OcSms\Db\SmsMapper; -use \OCA\OcSms\AppInfo\FormatPhoneNumber; +use \OCA\OcSms\Lib\PhoneNumberFormatter; class SmsController extends Controller { @@ -100,7 +100,7 @@ class SmsController extends Controller { $countPhone = count($phoneList); foreach ($phoneList as $number => $ts) { - $fmtPN = FormatPhoneNumber::formatPhoneNumber($number); + $fmtPN = PhoneNumberFormatter::format($number); if (isset($contactsSrc[$number])) { $contacts[$number] = $contactsSrc[$number]; } elseif (isset($contactsSrc[$fmtPN])) { @@ -123,7 +123,7 @@ class SmsController extends Controller { $contacts = $this->app->getContacts(); $iContacts = $this->app->getInvertedContacts(); $contactName = ""; - $fmtPN = FormatPhoneNumber::formatPhoneNumber($phoneNumber); + $fmtPN = PhoneNumberFormatter::format($phoneNumber); if (isset($contacts[$fmtPN])) { $contactName = $contacts[$fmtPN]; } @@ -137,7 +137,7 @@ class SmsController extends Controller { foreach($iContacts[$contactName] as $cnumber) { $messages = $messages + $this->smsMapper->getAllMessagesForPhoneNumber($this->userId, $cnumber, $lastDate); $msgCount += $this->smsMapper->countMessagesForPhoneNumber($this->userId, $cnumber); - $phoneNumbers[] = FormatPhoneNumber::formatPhoneNumber($cnumber); + $phoneNumbers[] = PhoneNumberFormatter::format($cnumber); } } else { @@ -149,7 +149,7 @@ class SmsController extends Controller { $msgCount += $this->smsMapper->countMessagesForPhoneNumber($this->userId, $cnumber); } } - $phoneNumbers[] = FormatPhoneNumber::formatPhoneNumber($phoneNumber); + $phoneNumbers[] = PhoneNumberFormatter::format($phoneNumber); } // Order by id (date) ksort($messages); diff --git a/db/smsmapper.php b/db/smsmapper.php index d1f4a79..c01ad4f 100644 --- a/db/smsmapper.php +++ b/db/smsmapper.php @@ -15,7 +15,7 @@ use \OCP\IDb; use \OCP\AppFramework\Db\Mapper; use \OCA\OcSms\AppInfo\OcSmsApp; -use \OCA\OcSms\AppInfo\FormatPhoneNumber; +use \OCA\OcSms\Lib\PhoneNumberFormatter; class SmsMapper extends Mapper { /* @@ -97,7 +97,7 @@ class SmsMapper extends Mapper { $phoneList = array(); while($row = $result->fetchRow()) { $pn = $row["sms_address"]; - $fmtPN = FormatPhoneNumber::formatPhoneNumber($pn); + $fmtPN = PhoneNumberFormatter::format($pn); if (!isset($phoneList[$fmtPN])) { $phoneList[$fmtPN] = array(); } @@ -106,7 +106,7 @@ class SmsMapper extends Mapper { } $phoneList[$fmtPN][$pn] += 1; } - $fpn = FormatPhoneNumber::formatPhoneNumber($phoneNumber); + $fpn = PhoneNumberFormatter::format($phoneNumber); if(isset($phoneList[$fpn])){ return $phoneList[$fpn]; } diff --git a/appinfo/formatphonenumber.php b/lib/phonenumberformatter.php similarity index 88% rename from appinfo/formatphonenumber.php rename to lib/phonenumberformatter.php index 719d6b2..0d813a2 100644 --- a/appinfo/formatphonenumber.php +++ b/lib/phonenumberformatter.php @@ -6,16 +6,15 @@ * later. See the COPYING file. * * @author Loic Blot + * @contributor: stagprom * @copyright Loic Blot 2014 */ -namespace OCA\OcSms\AppInfo; +namespace OCA\OcSms\Lib; -class FormatPhoneNumber { - - public static function formatPhoneNumber($pn) { - +class PhoneNumberFormatter { + public static function format ($pn) { $ipnrxp = array( // match international numbers with 1,2,3 digits '#^(00|\+)(1\d\d\d)#', // NANP '#^(00|\+)(2[1|2|3|4|5|6|8|9]\d)#', // +2(1|2|3|4|5|6|8|9)x @@ -40,6 +39,7 @@ class FormatPhoneNumber { '#(.+)([\(\[\{]\d*[\)\]\}])#', // braces inside the number: +49 (0) 123 456789 '#[^\d\+]#' // everything but digits and + ); + $ignrpl = array( // replacements '', '$1', @@ -47,20 +47,23 @@ class FormatPhoneNumber { ); /* - ToDo : make local settings in web-page + @TODO: make local settings in web-page */ $lpnrxp = array( // match local numbers '#(^0)([^0])#' // in germany : 0-xx[x[x]]-123456 ); // + $lpnrpl = '+49$2'; // replace with +49 -xx[x[x]]-123456 $tpn = trim($pn); - if( preg_match('#^[\d\+\(\[\{].*#',$tpn)) { // start with digit, +, (, [ or { + + if (preg_match('#^[\d\+\(\[\{].*#',$tpn)) { // start with digit, +, (, [ or { $fpn = preg_replace($ignrxp, $ignrpl, $tpn); // replace everything but digits/+ with '' $xpn = preg_replace($lpnrxp, $lpnrpl, $fpn); // replace local prenumbers $ypn = preg_replace($ipnrxp, '+$2', $xpn); // format to international coding +x[x[x]]..... } else { $ypn = $tpn; // some SMS_adresses are strings } + return $ypn; } -} +};