X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=windowsphonepush%2Fwindowsphonepush.php;h=206b0883e4b03241db96b7909d50ea28372a853e;hb=3b0decec7f868c831ccba12e82d88b122a637de1;hp=baa4c656e3beace9c1b015cfb223fd70edd4ea69;hpb=82e8e64d8832b588c4c7203896b46cd8e0ca3618;p=friendica-addons.git diff --git a/windowsphonepush/windowsphonepush.php b/windowsphonepush/windowsphonepush.php index baa4c656..206b0883 100644 --- a/windowsphonepush/windowsphonepush.php +++ b/windowsphonepush/windowsphonepush.php @@ -10,7 +10,7 @@ * Pre-requisite: Windows Phone mobile device (at least WP 7.0) * Friendica mobile app on Windows Phone * - * When plugin is installed, the system calls the plugin + * When addon is installed, the system calls the addon * name_install() function, located in 'addon/name/name.php', * where 'name' is the name of the addon. * If the addon is removed from the configuration list, the @@ -25,25 +25,29 @@ * sets the counter back * count only unseen elements which are not type=activity (likes and dislikes not seen as new elements) */ + use Friendica\App; +use Friendica\Content\Text\BBCode; +use Friendica\Core\Addon; +use Friendica\Core\L10n; use Friendica\Core\PConfig; use Friendica\Model\User; function windowsphonepush_install() { - /* Our plugin will attach in three places. + /* Our addon will attach in three places. * The first is within cron - so the push notifications will be * sent every 10 minutes (or whatever is set in crontab). */ - register_hook('cron', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_cron'); + Addon::registerHook('cron', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_cron'); - /* Then we'll attach into the plugin settings page, and also the + /* Then we'll attach into the addon settings page, and also the * settings post hook so that we can create and update - * user preferences. User shall be able to activate the plugin and + * user preferences. User shall be able to activate the addon and * define whether he allows pushing first characters of item text */ - register_hook('plugin_settings', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings'); - register_hook('plugin_settings_post', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings_post'); + Addon::registerHook('addon_settings', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings'); + Addon::registerHook('addon_settings_post', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings_post'); logger("installed windowsphonepush"); } @@ -53,9 +57,9 @@ function windowsphonepush_uninstall() /* uninstall unregisters any hooks created with register_hook * during install. Don't delete data in table `pconfig`. */ - unregister_hook('cron', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_cron'); - unregister_hook('plugin_settings', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings'); - unregister_hook('plugin_settings_post', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings_post'); + Addon::unregisterHook('cron', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_cron'); + Addon::unregisterHook('addon_settings', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings'); + Addon::unregisterHook('addon_settings_post', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings_post'); logger("removed windowsphonepush"); } @@ -85,10 +89,10 @@ function windowsphonepush_settings_post($a, $post) PConfig::set(local_user(), 'windowsphonepush', 'senditemtext', intval($_POST['windowsphonepush-senditemtext'])); - info(t('WindowsPhonePush settings updated.') . EOL); + info(L10n::t('WindowsPhonePush settings updated.') . EOL); } -/* Called from the Plugin Setting form. +/* Called from the Addon Setting form. * Add our own settings info to the page. */ function windowsphonepush_settings(&$a, &$s) @@ -111,20 +115,20 @@ function windowsphonepush_settings(&$a, &$s) /* Add some HTML to the existing form */ $s .= '
'; - $s .= '

' . t('WindowsPhonePush Settings') . '

'; + $s .= '

' . L10n::t('WindowsPhonePush Settings') . '

'; $s .= '
'; - $s .= ''; + $s .= ''; $s .= ''; $s .= '
'; $s .= '
'; - $s .= ''; + $s .= ''; $s .= ''; $s .= '
'; /* provide a submit button - enable und senditemtext can be changed by the user */ - $s .= '
'; + $s .= '
'; /* provide further read-only information concerning the addon (useful for */ $s .= '
'; @@ -135,12 +139,12 @@ function windowsphonepush_settings(&$a, &$s) return; } -/* Cron function used to regularly check all users on the server with active windowsphonepushplugin and send +/* Cron function used to regularly check all users on the server with active windowsphonepushaddon and send * notifications to the Microsoft servers and consequently to the Windows Phone device */ function windowsphonepush_cron() { - // retrieve all UID's for which the plugin windowsphonepush is enabled and loop through every user + // retrieve all UID's for which the addon windowsphonepush is enabled and loop through every user $r = q("SELECT * FROM `pconfig` WHERE `cat` = 'windowsphonepush' AND `k` = 'enable' AND `v` = 1"); if (count($r)) { foreach ($r as $rr) { @@ -151,7 +155,7 @@ function windowsphonepush_cron() // pushing only possible if device_url (the URI on Microsoft server) is available or not "NA" (which will be sent // by app if user has switched the server setting in app - sending blank not possible as this would return an update error) if (( $device_url == "" ) || ( $device_url == "NA" )) { - // no Device-URL for the user availabe, but plugin is enabled --> write info to Logger + // no Device-URL for the user availabe, but addon is enabled --> write info to Logger logger("WARN: windowsphonepush is enable for user " . $rr['uid'] . ", but no Device-URL is specified for the user."); } else { // retrieve the number of unseen items and the id of the latest one (if there are more than @@ -207,9 +211,9 @@ function windowsphonepush_cron() if (substr($body, 0, 4) == "[url") { $body = "URL/Image ..."; } else { - require_once('include/bbcode.php'); require_once("include/html2plain.php"); - $body = bbcode($body, false, false, 2, true); + + $body = BBCode::convert($body, false, 2, true); $body = html2plain($body, 0); $body = ((strlen($body) > 137) ? substr($body, 0, 137) . "..." : $body); } @@ -247,10 +251,10 @@ function send_tile_update($device_url, $image_url, $count, $title, $priority = 1 " " . ""; - $result = send_push($device_url, array( + $result = send_push($device_url, [ 'X-WindowsPhone-Target: token', 'X-NotificationClass: ' . $priority, - ), $msg); + ], $msg); return $result; } @@ -269,10 +273,10 @@ function send_toast($device_url, $title, $message, $priority = 2) "" . ""; - $result = send_push($device_url, array( + $result = send_push($device_url, [ 'X-WindowsPhone-Target: toast', 'X-NotificationClass: ' . $priority, - ), $msg); + ], $msg); return $result; } @@ -284,11 +288,11 @@ function send_push($device_url, $headers, $msg) curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HEADER, true); - curl_setopt($ch, CURLOPT_HTTPHEADER, $headers + array( + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers + [ 'Content-Type: text/xml', 'charset=utf-8', 'Accept: application/*', - ) + ] ); curl_setopt($ch, CURLOPT_POSTFIELDS, $msg); @@ -336,13 +340,13 @@ function windowsphonepush_content(App $a) case "update_settings": $ret = windowsphonepush_updatesettings($a); header("Content-Type: application/json; charset=utf-8"); - echo json_encode(array('status' => $ret)); + echo json_encode(['status' => $ret]); killme(); break; case "update_counterunseen": $ret = windowsphonepush_updatecounterunseen(); header("Content-Type: application/json; charset=utf-8"); - echo json_encode(array('status' => $ret)); + echo json_encode(['status' => $ret]); killme(); break; default: @@ -374,13 +378,13 @@ function windowsphonepush_showsettings() } header("Content-Type: application/json"); - echo json_encode(array('uid' => local_user(), + echo json_encode(['uid' => local_user(), 'enable' => $enable, 'device_url' => $device_url, 'senditemtext' => $senditemtext, 'lastpushid' => $lastpushid, 'counterunseen' => $counterunseen, - 'addonversion' => $addonversion)); + 'addonversion' => $addonversion]); } /* update_settings is used to transfer the device_url from WP device to the Friendica server @@ -392,7 +396,7 @@ function windowsphonepush_updatesettings() return "Not Authenticated"; } - // no updating if user hasn't enabled the plugin + // no updating if user hasn't enabled the addon $enable = PConfig::get(local_user(), 'windowsphonepush', 'enable'); if (!$enable) { return "Plug-in not enabled"; @@ -433,7 +437,7 @@ function windowsphonepush_updatecounterunseen() return "Not Authenticated"; } - // no updating if user hasn't enabled the plugin + // no updating if user hasn't enabled the addon $enable = PConfig::get(local_user(), 'windowsphonepush', 'enable'); if (!$enable) { return "Plug-in not enabled"; @@ -458,7 +462,7 @@ function windowsphonepush_login(App $a) $user_id = User::authenticate($_SERVER['PHP_AUTH_USER'], trim($_SERVER['PHP_AUTH_PW'])); if ($user_id) { - $record = dba::select('user', [], ['uid' => $user_id], ['limit' => 1]); + $record = dba::selectFirst('user', [], ['uid' => $user_id]); } else { logger('API_login failure: ' . print_r($_SERVER, true), LOGGER_DEBUG); header('WWW-Authenticate: Basic realm="Friendica"'); @@ -469,5 +473,5 @@ function windowsphonepush_login(App $a) require_once 'include/security.php'; authenticate_success($record); $_SESSION["allow_api"] = true; - call_hooks('logged_in', $a->user); + Addon::callHooks('logged_in', $a->user); }