2
2
class Push extends Core {
3
3
// (A) SAVE SUBSCRIBER
4
4
function save ($ endpoint , $ sub ) {
5
- $ this ->DB ->replace ("webpush " , ["endpoint " , "data " ], [$ endpoint , $ sub ]);
5
+ $ this ->DB ->replace ("webpush " ,
6
+ ["endpoint " , "user_id " , "data " ],
7
+ [
8
+ $ endpoint ,
9
+ isset ($ _SESSION ["user " ]) ? $ _SESSION ["user " ]["user_id " ] : null ,
10
+ $ sub
11
+ ]
12
+ );
6
13
return true ;
7
14
}
8
15
@@ -12,8 +19,8 @@ function del ($endpoint) {
12
19
return true ;
13
20
}
14
21
15
- // (C) SEND PUSH
16
- function send ($ title , $ body , $ icon =null , $ image =null ) {
22
+ // (C) SEND PUSH NOTIFICATION
23
+ function send ($ title , $ body , $ icon =null , $ image =null , $ uid = null ) {
17
24
// (C1) MAY TAKE A LONG TIME IF THERE ARE A LOT OF INACTIVE...
18
25
set_time_limit (45 );
19
26
@@ -25,8 +32,12 @@ function send ($title, $body, $icon=null, $image=null) {
25
32
"privateKey " => PUSH_PRIVATE
26
33
]]);
27
34
28
- // (C3) SEND TO SUBSCRIBERS
29
- $ this ->DB ->query ("SELECT `data` FROM `webpush` " );
35
+ // (C3) SEND TO SUBSCRIBER(S)
36
+ $ this ->DB ->query (
37
+ "SELECT `data` FROM `webpush` " .
38
+ ($ uid ==null ? "" : " WHERE `user_id`=? " ),
39
+ $ uid ==null ? null : [$ uid ]
40
+ );
30
41
while ($ r = $ this ->DB ->stmt ->fetchColumn ()) {
31
42
// (C3-1) SUBSCRIBER
32
43
$ sub = Minishlink \WebPush \Subscription::create (json_decode ($ r , true ));
0 commit comments