/** * Notify users which watch categories * * @param $row Informations about website * @return null */ private function _notify_suscribers($row) { $notification_data = array('user_from' => (int) $row['link_user_id'], 'link_id' => (int) $row['link_id'], 'link_name' => $row['link_name'], 'link_url' => $row['link_url'], 'link_description' => preg_replace('/(\\[.*?\\])(.*?)(\\[\\/.*?\\])/si', '\\1', $row['link_description']), 'cat_name' => \ernadoo\phpbbdirectory\core\categorie::getname((int) $row['link_cat']), 'cat_id' => (int) $row['link_cat']); $this->notification->add_notifications('ernadoo.phpbbdirectory.notification.type.directory_website', $notification_data); }
/** * Update website verification number after a missing backlink, and send notificaton * * @param array $u_array Information about website * @param int $next_prune Date of next auto check * @return null */ private function _update_check($u_array, $next_prune) { if (!class_exists('messenger')) { include $this->root_path . 'includes/functions_messenger.' . $this->php_ext; } $messenger = new \messenger(false); // cron.php don't call $user->setup(), so $this->timezone is unset. // We need to define it, because we use user->format_date below $this->user->timezone = new \DateTimeZone($this->config['board_timezone']); $sql = 'UPDATE ' . DIR_LINK_TABLE . ' SET link_nb_check = link_nb_check + 1 WHERE ' . $this->db->sql_in_set('link_id', array_keys($u_array)); $this->db->sql_query($sql); foreach ($u_array as $data) { strip_bbcode($data['link_description']); $notification_data = array('cat_name' => \ernadoo\phpbbdirectory\core\categorie::getname((int) $data['link_cat']), 'link_id' => $data['link_id'], 'link_name' => $data['link_name'], 'link_url' => $data['link_url'], 'link_description' => $data['link_description'], 'next_cron' => $this->user->format_date($next_prune, $data['user_dateformat'])); if ($data['link_nb_check']) { $this->notification->delete_notifications('ernadoo.phpbbdirectory.notification.type.directory_website_error_cron', $notification_data); } // New notification system can't send mail to an anonymous user with an email address stored in another table than phpbb_users if ($data['link_user_id'] == ANONYMOUS) { $username = $email = $data['link_guest_email']; $messenger->template('@ernadoo_phpbbdirectory/directory_website_error_cron', $data['user_lang']); $messenger->to($email, $username); $messenger->assign_vars(array('USERNAME' => htmlspecialchars_decode($username), 'LINK_NAME' => $data['link_name'], 'LINK_URL' => $data['link_url'], 'LINK_DESCRIPTION' => $data['link_description'], 'NEXT_CRON' => $this->user->format_date($next_prune, $data['user_dateformat']))); $messenger->send(NOTIFY_EMAIL); } else { $this->notification->add_notifications('ernadoo.phpbbdirectory.notification.type.directory_website_error_cron', $notification_data); } } }