+ private function addPromo(PlPage $page, $promo)
+ {
+ $promos = $this->getPromo($page, $promo);
+ if (!$promos || count($promos) == 0) {
+ return;
+ }
+ $to_add = array();
+ foreach ($promos as $promo) {
+ $to_add[] = XDB::format('({?}, {?})', S::i('uid'), $promo);
+ }
+ XDB::execute('INSERT IGNORE INTO watch_promo (uid, promo)
+ VALUES ' . implode(', ', $to_add));
+ S::user()->invalidWatchCache();
+ Platal::session()->updateNbNotifs();
+ }
+
+ private function delPromo(PlPage $page, $promo)
+ {
+ $promos = $this->getPromo($page, $promo);
+ if (!$promos || count($promos) == 0) {
+ return;
+ }
+ $to_delete = array();
+ foreach ($promos as $promo) {
+ $to_delete[] = XDB::format('{?}', $promo);
+ }
+ XDB::execute('DELETE FROM watch_promo
+ WHERE ' . XDB::format('uid = {?}', S::i('uid')) . '
+ AND promo IN (' . implode(', ', $to_delete) . ')');
+ S::user()->invalidWatchCache();
+ Platal::session()->updateNbNotifs();
+ }
+
+ public function addNonRegistered(PlPage $page, PlUser $user)
+ {
+ XDB::execute('INSERT IGNORE INTO watch_nonins (uid, ni_id)
+ VALUES ({?}, {?})', S::i('uid'), $user->id());
+ S::user()->invalidWatchCache();
+ Platal::session()->updateNbNotifs();
+ }
+
+ public function delNonRegistered(PlPage $page, PlUser $user)
+ {
+ XDB::execute('DELETE FROM watch_nonins
+ WHERE uid = {?} AND ni_id = {?}',
+ S::i('uid'), $user->id());
+ S::user()->invalidWatchCache();
+ Platal::session()->updateNbNotifs();
+ }
+
+ public function handler_notifs($page, $action = null, $arg = null)