/** * Sets the user logged in via this provider. * The default implementation stores the users id * in a session variable. * * @param \PHPixie\ORM\Model $user Logged in user * @return void */ public function set_user($user) { $this->pixie->session->set($this->user_id_key, $user->id()); $this->service->set_user($user, $this->name); }
/** * @param \App\Model\Newsletter|\PHPixie\ORM\Model $newsletter */ protected function onSuccessfulEdit(Model $newsletter) { if ($this->request->post('send')) { $this->pixie->db->query('delete')->table('tbl_newsletter_instances')->where('newsletter_id', $newsletter->id())->execute(); $sql = "INSERT INTO tbl_newsletter_instances (newsletter_id, subscriber_id)\n" . "SELECT " . $newsletter->id() . ", ns.id\n" . "FROM tbl_newsletter_signups ns"; if (!$newsletter->send_to_all) { $subscriberIds = preg_split('/\\s*,\\s*/', $newsletter->subscriber_ids, -1, PREG_SPLIT_NO_EMPTY); if (!$subscriberIds) { $newsletter->save(); return; } $sql .= "\nWHERE ns.id IN (" . implode(', ', $subscriberIds) . ")"; } /** @var \PDO $conn */ $conn = $this->pixie->db->get()->conn; $conn->exec($sql); $newsletter->recipient_count = $newsletter->instances->count_all(); $newsletter->status = \App\Model\Newsletter::STATUS_SENDING; $newsletter->save(); } }