diff --git a/application/controllers/Onesignal.php b/application/controllers/Onesignal.php
new file mode 100644
index 0000000..555696d
--- /dev/null
+++ b/application/controllers/Onesignal.php
@@ -0,0 +1,45 @@
+load->view('bko/view_bko_login', $data);
+ }
+
+ public function message() {
+ $data = [];
+ $data["message"] = "";
+ $data["segments"] = "";
+ $data["push_message"] = "";
+ $data["select_segments"] = array("Subscribed Users", "Active Users", "Inactive Users", "All");
+
+ if ($_SERVER['REQUEST_METHOD'] == "POST") {
+ $data["push_message"] = $this->input->post('push_message');
+ $data["segments"] = $this->input->post('segments');
+ if (trim($data["push_message"]) != "") {
+ $this->load->helper('OneSignal');
+ $in = array(
+ "message" => $data["push_message"],
+ "included_segments" => $data["segments"]
+ );
+ $out = onesignal_api($in);
+ if (is_array($out) && $out['result'] > 0) {
+ $data["message"] = "OneSignal API call success: ".$out["status"];
+ } else {
+ $data["message"] = "OneSignal API call failed".$out["status"];
+ }
+ $data["message"].= "
".json_encode($out["data"]).""; + } else { + $data["message"] = "Missing push message!"; + } + } + $this->load->view('bko/view_bko_header', $data); + $this->load->view('bko/view_bko_onesignal', $data); + $this->load->view('bko/view_bko_footer', $data); + + } + +} \ No newline at end of file diff --git a/application/helpers/onesignal_helper.php b/application/helpers/onesignal_helper.php new file mode 100644 index 0000000..036ffe9 --- /dev/null +++ b/application/helpers/onesignal_helper.php @@ -0,0 +1,67 @@ + $OneSignalApp, + 'included_segments' => array($in["included_segments"]), // "Subscribed Users", + /* 'data' => array("foo" => "bar"), */ + 'contents' => array( + "en" => $in["message"] + ) + ); + + $fields = json_encode($fields); + //print("\nJSON sent:\n"); + //print($fields); + + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $OneSignalUrl); + curl_setopt($ch, CURLOPT_HTTPHEADER, array( + 'Accept: application/json', + 'Content-Type: application/json; charset=utf-8', + 'Authorization: Basic "'.$OneSignalKey."'")); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); + curl_setopt($ch, CURLOPT_HEADER, FALSE); + curl_setopt($ch, CURLOPT_POST, TRUE); + curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + + $response = curl_exec($ch); + curl_close($ch); + + //echo "
${response}";
+
+ if ($response != "") {
+ $data = json_decode($response,true);
+ if (is_array($data) && count($data)>0) {
+ $out["data"] = $data;
+ if (array_key_exists("recipients",$data) && $data["recipients"] > 0
+ && (!array_key_exists("errors",$data) || count($data["errors"]) < 1)) {
+ $out["status"] = "OneSignal API success: sent to ".$data["recipients"]." recipeint(s)";
+ } else {
+ $out["status"] = "OneSignal API failure: ".
+ (array_key_exists("errors",$data)?json_encode($data["errors"]):"unknown error");
+ }
+ } else {
+ $out["status"] = "Invalid OneSignal API response: ".$response;
+ }
+ } else {
+ $out["status"] = "Missing OneSignal API response";
+ }
+ return $out;
+ }
+}
diff --git a/application/views/bko/common/bko_menu.php b/application/views/bko/common/bko_menu.php
index 550a2f1..2880fce 100644
--- a/application/views/bko/common/bko_menu.php
+++ b/application/views/bko/common/bko_menu.php
@@ -139,7 +139,7 @@