本文整理汇总了PHP中Frontend\Core\Engine\Model::getUTCDate方法的典型用法代码示例。如果您正苦于以下问题:PHP Model::getUTCDate方法的具体用法?PHP Model::getUTCDate怎么用?PHP Model::getUTCDate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Frontend\Core\Engine\Model
的用法示例。
在下文中一共展示了Model::getUTCDate方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
/**
* Execute the action
*/
public function execute()
{
parent::execute();
// get parameters
$charset = $this->getContainer()->getParameter('kernel.charset');
$searchTerm = \SpoonFilter::getPostValue('term', null, '');
$term = $charset == 'utf-8' ? \SpoonFilter::htmlspecialchars($searchTerm) : \SpoonFilter::htmlentities($searchTerm);
// validate search term
if ($term == '') {
$this->output(self::BAD_REQUEST, null, 'term-parameter is missing.');
} else {
// previous search result
$previousTerm = \SpoonSession::exists('searchTerm') ? \SpoonSession::get('searchTerm') : '';
\SpoonSession::set('searchTerm', '');
// save this term?
if ($previousTerm != $term) {
// format data
$this->statistics = array();
$this->statistics['term'] = $term;
$this->statistics['language'] = LANGUAGE;
$this->statistics['time'] = FrontendModel::getUTCDate();
$this->statistics['data'] = serialize(array('server' => $_SERVER));
$this->statistics['num_results'] = FrontendSearchModel::getTotal($term);
// save data
FrontendSearchModel::save($this->statistics);
}
// save current search term in cookie
\SpoonSession::set('searchTerm', $term);
// output
$this->output(self::OK);
}
}
示例2: saveData
private function saveData()
{
$booking['id'] = 0;
$booking['room_id'] = \SpoonFilter::getPostValue('room_id', null, null);
$booking['start'] = \SpoonFilter::getPostValue('arrival', null, null);
$booking['end'] = \SpoonFilter::getPostValue('departure', null, null);
$booking['client_name'] = \SpoonFilter::getPostValue('client_name', null, null);
$booking['client_email'] = \SpoonFilter::getPostValue('client_email', null, null);
$booking['date'] = FrontendModel::getUTCDate();
if ($booking['room_id'] && $booking['start'] && $booking['end'] && $booking['client_name']) {
$booking['id'] = $this->addReservation($booking);
}
echo json_encode($booking['id']);
die;
}
示例3: getSubpages
/**
* Fetch a list of subpages of a page.
*
* @param int $id The id of the item to grab the subpages for.
* @return array
*/
public static function getSubpages($id)
{
// fetch items
$items = (array) FrontendModel::getContainer()->get('database')->getRecords('SELECT i.id, i.title, m.description, i.parent_id
FROM pages AS i
INNER JOIN meta AS m ON m.id = i.meta_id
WHERE i.parent_id = ? AND i.status = ? AND i.hidden = ?
AND i.language = ? AND i.publish_on <= ?
ORDER BY i.sequence ASC', array((int) $id, 'active', 'N', FRONTEND_LANGUAGE, FrontendModel::getUTCDate('Y-m-d H:i') . ':00'));
// has items
if (!empty($items)) {
// reset url
foreach ($items as &$row) {
$row['full_url'] = FrontendNavigation::getURL($row['id'], FRONTEND_LANGUAGE);
}
}
// return
return $items;
}
示例4: saveFeedback
/**
* Saves the feedback
*
* @param array $feedback
*/
public static function saveFeedback(array $feedback)
{
$feedback['created_on'] = FrontendModel::getUTCDate();
unset($feedback['sentOn']);
FrontendModel::getContainer()->get('database')->insert('faq_feedback', $feedback);
}
示例5: unsubscribe
/**
* Unsubscribes an e-mail address from CampaignMonitor and our database
*
* @param string $email The e-mail address to unsubscribe.
* @param string $groupId The id of the group to unsubscribe from.
* @return bool
*/
public static function unsubscribe($email, $groupId = null)
{
// get objects
$db = FrontendModel::getContainer()->get('database');
$cm = self::getCM();
// set group ID
$groupId = !empty($groupId) ? $groupId : FrontendMailmotorModel::getDefaultGroupID();
// get group CM ID
$groupCMId = self::getCampaignMonitorID('list', $groupId);
// group exists
if (FrontendMailmotorModel::existsGroup($groupId)) {
try {
// unsubscribe the email from this group
$cm->unsubscribe($email, $groupCMId);
} catch (\Exception $e) {
// for the unsubscribe function we ignore any errors
// stop here if something went wrong with CM
return false;
}
// set variables
$subscriber['status'] = 'unsubscribed';
$subscriber['unsubscribed_on'] = FrontendModel::getUTCDate('Y-m-d H:i:s');
// unsubscribe the user
$db->update('mailmotor_addresses_groups', $subscriber, 'email = ? AND group_id = ?', array($email, $groupId));
// user unsubscribed
return true;
}
// user not unsubscribed
return false;
}
示例6: unsubscribe
/**
*
* Unsubscribe the email
*
* @param $email
*
* @return bool
*/
public static function unsubscribe($email)
{
$record = FrontendModel::getContainer()->get('database')->getRecord(' SELECT id
FROM mailengine_users
WHERE email= ?', array($email));
//--Check if record exists
if (is_array($record)) {
$data = array();
$data['active'] = 'N';
$data['unsubscribe_on'] = FrontendModel::getUTCDate();
//--Update record
FrontendModel::getContainer()->get('database')->update('mailengine_users', $data, 'id=' . $record["id"]);
//--Delete the groups for the user
self::deleteGroupFromUser($record['id']);
return true;
} else {
return false;
}
}
示例7: saveStatistics
/**
* Save statistics
*/
private function saveStatistics()
{
// no search term = no search
if (!$this->term) {
return;
}
// previous search result
$previousTerm = \SpoonSession::exists('searchTerm') ? \SpoonSession::get('searchTerm') : '';
\SpoonSession::set('searchTerm', '');
// save this term?
if ($previousTerm != $this->term) {
// format data
$this->statistics = array();
$this->statistics['term'] = $this->term;
$this->statistics['language'] = LANGUAGE;
$this->statistics['time'] = FrontendModel::getUTCDate();
$this->statistics['data'] = serialize(array('server' => $_SERVER));
$this->statistics['num_results'] = $this->pagination['num_items'];
// save data
FrontendSearchModel::save($this->statistics);
}
// save current search term in cookie
\SpoonSession::set('searchTerm', $this->term);
}
示例8: validateForm
/**
* Validate the form
*/
private function validateForm()
{
// get settings
$commentsAllowed = isset($this->settings['allow_comments']) && $this->settings['allow_comments'];
// comments aren't allowed so we don't have to validate
if (!$commentsAllowed) {
return false;
}
// is the form submitted
if ($this->frm->isSubmitted()) {
// cleanup the submitted fields, ignore fields that were added by hackers
$this->frm->cleanupFields();
// does the key exists?
if (\SpoonSession::exists('blog_comment_' . $this->record['id'])) {
// calculate difference
$diff = time() - (int) \SpoonSession::get('blog_comment_' . $this->record['id']);
// calculate difference, it it isn't 10 seconds the we tell the user to slow down
if ($diff < 10 && $diff != 0) {
$this->frm->getField('message')->addError(FL::err('CommentTimeout'));
}
}
// validate required fields
$this->frm->getField('author')->isFilled(FL::err('AuthorIsRequired'));
$this->frm->getField('email')->isEmail(FL::err('EmailIsRequired'));
$this->frm->getField('message')->isFilled(FL::err('MessageIsRequired'));
// validate optional fields
if ($this->frm->getField('website')->isFilled() && $this->frm->getField('website')->getValue() != 'http://') {
$this->frm->getField('website')->isURL(FL::err('InvalidURL'));
}
// no errors?
if ($this->frm->isCorrect()) {
// get module setting
$spamFilterEnabled = isset($this->settings['spamfilter']) && $this->settings['spamfilter'];
$moderationEnabled = isset($this->settings['moderation']) && $this->settings['moderation'];
// reformat data
$author = $this->frm->getField('author')->getValue();
$email = $this->frm->getField('email')->getValue();
$website = $this->frm->getField('website')->getValue();
if (trim($website) == '' || $website == 'http://') {
$website = null;
}
$text = $this->frm->getField('message')->getValue();
// build array
$comment['post_id'] = $this->record['id'];
$comment['language'] = FRONTEND_LANGUAGE;
$comment['created_on'] = FrontendModel::getUTCDate();
$comment['author'] = $author;
$comment['email'] = $email;
$comment['website'] = $website;
$comment['text'] = $text;
$comment['status'] = 'published';
$comment['data'] = serialize(array('server' => $_SERVER));
// get URL for article
$permaLink = $this->record['full_url'];
$redirectLink = $permaLink;
// is moderation enabled
if ($moderationEnabled) {
// if the commenter isn't moderated before alter the
// comment status so it will appear in the moderation queue
if (!FrontendBlogModel::isModerated($author, $email)) {
$comment['status'] = 'moderation';
}
}
// should we check if the item is spam
if ($spamFilterEnabled) {
// check for spam
$result = FrontendModel::isSpam($text, SITE_URL . $permaLink, $author, $email, $website);
// if the comment is spam alter the comment status so it will appear in the spam queue
if ($result) {
$comment['status'] = 'spam';
} elseif ($result == 'unknown') {
// if the status is unknown then we should moderate it manually
$comment['status'] = 'moderation';
}
}
// insert comment
$comment['id'] = FrontendBlogModel::insertComment($comment);
// trigger event
FrontendModel::triggerEvent('Blog', 'after_add_comment', array('comment' => $comment));
// append a parameter to the URL so we can show moderation
if (strpos($redirectLink, '?') === false) {
if ($comment['status'] == 'moderation') {
$redirectLink .= '?comment=moderation#' . FL::act('Comment');
}
if ($comment['status'] == 'spam') {
$redirectLink .= '?comment=spam#' . FL::act('Comment');
}
if ($comment['status'] == 'published') {
$redirectLink .= '?comment=true#comment-' . $comment['id'];
}
} else {
if ($comment['status'] == 'moderation') {
$redirectLink .= '&comment=moderation#' . FL::act('Comment');
}
if ($comment['status'] == 'spam') {
$redirectLink .= '&comment=spam#' . FL::act('Comment');
}
//.........这里部分代码省略.........
示例9: validateForm
/**
* Validate the form
*/
private function validateForm()
{
// is the form submitted
if ($this->frm->isSubmitted()) {
// get fields
$txtDisplayName = $this->frm->getField('display_name');
$txtEmail = $this->frm->getField('email');
$txtPassword = $this->frm->getField('password');
// check email
if ($txtEmail->isFilled(FL::getError('EmailIsRequired'))) {
// valid email?
if ($txtEmail->isEmail(FL::getError('EmailIsInvalid'))) {
// email already exists?
if (FrontendProfilesModel::existsByEmail($txtEmail->getValue())) {
// set error
$txtEmail->setError(FL::getError('EmailExists'));
}
}
}
// check password
$txtPassword->isFilled(FL::getError('PasswordIsRequired'));
// no errors
if ($this->frm->isCorrect()) {
// init values
$settings = array();
$values = array();
// generate salt
$settings['salt'] = FrontendProfilesModel::getRandomString();
$settings['language'] = FRONTEND_LANGUAGE;
// values
$values['email'] = $txtEmail->getValue();
$values['password'] = FrontendProfilesModel::getEncryptedString($txtPassword->getValue(), $settings['salt']);
$values['status'] = 'inactive';
$values['display_name'] = $txtDisplayName->getValue();
$values['registered_on'] = FrontendModel::getUTCDate();
$values['last_login'] = FrontendModel::getUTCDate(null, 0);
/*
* Add a profile.
* We use a try-catch statement to catch errors when more users sign up simultaneously.
*/
try {
// insert profile
$profileId = FrontendProfilesModel::insert($values);
// use the profile id as url until we have an actual url
FrontendProfilesModel::update($profileId, array('url' => FrontendProfilesModel::getUrl($values['display_name'])));
// trigger event
FrontendModel::triggerEvent('Profiles', 'after_register', array('id' => $profileId));
// generate activation key
$settings['activation_key'] = FrontendProfilesModel::getEncryptedString($profileId . microtime(), $settings['salt']);
// set settings
FrontendProfilesModel::setSettings($profileId, $settings);
// login
FrontendProfilesAuthentication::login($profileId);
// activation URL
$mailValues['activationUrl'] = SITE_URL . FrontendNavigation::getURLForBlock('Profiles', 'Activate') . '/' . $settings['activation_key'];
// send email
$from = $this->get('fork.settings')->get('Core', 'mailer_from');
$replyTo = $this->get('fork.settings')->get('Core', 'mailer_reply_to');
$message = \Common\Mailer\Message::newInstance(FL::getMessage('RegisterSubject'))->setFrom(array($from['email'] => $from['name']))->setTo(array($txtEmail->getValue() => ''))->setReplyTo(array($replyTo['email'] => $replyTo['name']))->parseHtml(FRONTEND_MODULES_PATH . '/Profiles/Layout/Templates/Mails/Register.tpl', $mailValues, true);
$this->get('mailer')->send($message);
// redirect
$this->redirect(SITE_URL . '/' . $this->URL->getQueryString() . '?sent=true');
} catch (\Exception $e) {
// when debugging we need to see the exceptions
if ($this->getContainer()->getParameter('kernel.debug')) {
throw $e;
}
// show error
$this->tpl->assign('registerHasFormError', true);
}
} else {
$this->tpl->assign('registerHasFormError', true);
}
}
}
示例10: login
/**
* Login a profile.
*
* @param int $profileId Login the profile with this id in.
* @param bool $remember Should we set a cookie for later?
* @return bool
*/
public static function login($profileId, $remember = false)
{
// redefine vars
$profileId = (int) $profileId;
$remember = (bool) $remember;
$secretKey = null;
// cleanup old sessions
self::cleanupOldSessions();
// set profile_logged_in to true
\SpoonSession::set('frontend_profile_logged_in', true);
// should we remember the user?
if ($remember) {
// generate secret key
$secretKey = FrontendProfilesModel::getEncryptedString(\SpoonSession::getSessionId(), FrontendProfilesModel::getRandomString());
// set cookie
CommonCookie::set('frontend_profile_secret_key', $secretKey);
}
// delete all records for this session to prevent duplicate keys (this should never happen)
FrontendModel::getContainer()->get('database')->delete('profiles_sessions', 'session_id = ?', \SpoonSession::getSessionId());
// insert new session record
FrontendModel::getContainer()->get('database')->insert('profiles_sessions', array('profile_id' => $profileId, 'session_id' => \SpoonSession::getSessionId(), 'secret_key' => $secretKey, 'date' => FrontendModel::getUTCDate()));
// update last login
FrontendProfilesModel::update($profileId, array('last_login' => FrontendModel::getUTCDate()));
// trigger event
FrontendModel::triggerEvent('Profiles', 'after_logged_in', array('profile_id' => $profileId));
// load the profile object
self::$profile = new FrontendProfilesProfile($profileId);
}
示例11: getRelated
/**
* Get related items based on tags
*
* @param int $id The id of the item to get related items for.
* @param int $limit The maximum number of items to retrieve.
* @return array
*/
public static function getRelated($id, $limit = 5)
{
$id = (int) $id;
$limit = (int) $limit;
// get the related IDs
$relatedIDs = (array) FrontendTagsModel::getRelatedItemsByTags($id, 'Blog', 'Blog', $limit);
// no items
if (empty($relatedIDs)) {
return array();
}
// get link
$link = FrontendNavigation::getURLForBlock('Blog', 'Detail');
// get items
$items = (array) FrontendModel::getContainer()->get('database')->getRecords('SELECT i.id, i.title, m.url
FROM blog_posts AS i
INNER JOIN meta AS m ON i.meta_id = m.id
WHERE i.status = ? AND i.language = ? AND i.hidden = ? AND i.publish_on <= ? AND i.id IN(' . implode(',', $relatedIDs) . ')
ORDER BY i.publish_on DESC, i.id DESC
LIMIT ?', array('active', FRONTEND_LANGUAGE, 'N', FrontendModel::getUTCDate('Y-m-d H:i') . ':00', $limit), 'id');
// loop items
foreach ($items as &$row) {
$row['full_url'] = $link . '/' . $row['url'];
}
return $items;
}
示例12: uploadFile
private static function uploadFile()
{
//--Check if the file is an image or file
if (self::isImage()) {
// the image path
$path = FRONTEND_FILES_PATH . '/media/images';
} else {
// the file path
$path = FRONTEND_FILES_PATH . '/media/files';
}
// create folders if needed
if (!SpoonDirectory::exists($path . '/source')) {
SpoonDirectory::create($path . '/source');
}
if (!SpoonDirectory::exists($path . '/128x128')) {
SpoonDirectory::create($path . '/128x128');
}
// build the filename
$filename = self::checkFilename();
$item = array();
$item["filename"] = $filename;
$item["extension"] = self::$field->getExtension();
$item["created_on"] = FrontendModel::getUTCDate('Y-m-d H:i:s');
$item["filesize"] = self::$field->getFileSize("b");
$data = array();
//--Check if file is an image to specify data
if (self::isImage()) {
$item["filetype"] = self::$fieldTypeImage;
$data["width"] = self::$field->getWidth();
$data["height"] = self::$field->getHeight();
// upload the image & generate thumbnails
self::$field->generateThumbnails($path, $filename);
} else {
$item["filetype"] = self::$fieldTypeFile;
// move the source file
self::$field->moveFile($path . "/" . $filename);
}
//--Serialize data
$item["data"] = serialize($data);
// get db
$db = FrontendModel::getDB(true);
//--Insert into media
return $db->insert("media", $item);
}
示例13: updateOrderValue
/**
* Update value within a order
*
* @param array $item
* @param int $orderId
* @param int $productId
* @return int
*/
public static function updateOrderValue($item, $orderId, $productId)
{
// set date
$item['date'] = FrontendModel::getUTCDate();
// get db
$db = FrontendModel::getContainer()->get('database');
// update
$db->update('catalog_orders_values', $item, 'order_id = ? AND product_id = ?', array((int) $orderId, (int) $productId));
}
示例14: getAllByDate
/**
* Get all items by date
*
* @param int $startTimestamp
* @param int $endTimestamp
* @return array
*
*/
public static function getAllByDate($startTimestamp, $endTimestamp)
{
// build cache info
$cacheDirectory = FRONTEND_CACHE_PATH . '/Agenda/';
$cacheKey = $startTimestamp . '-' . $endTimestamp . '-' . FRONTEND_LANGUAGE;
$cacheFile = FRONTEND_CACHE_PATH . '/Agenda/' . $cacheKey . '.cache';
$currentTime = time();
$cacheTimeout = FrontendModel::get('fork.settings')->get('Agenda', 'cache_timeout');
// cache file exists
if (file_exists($cacheFile)) {
$cacheFileLastModifiedTime = filemtime($cacheFile);
$differenceBetweenCurrentAndModifiedTime = $currentTime - $cacheFileLastModifiedTime;
// use cache within cache timeout
if ($differenceBetweenCurrentAndModifiedTime < $cacheTimeout) {
$cacheData = @unserialize(file_get_contents($cacheFile));
// return cache data if exists
if ($cacheData) {
return $cacheData;
}
}
}
$startTimestamp = FrontendModel::getUTCDate(null, $startTimestamp);
$endTimestamp = FrontendModel::getUTCDate(null, $endTimestamp);
$items = (array) FrontendModel::getContainer()->get('database')->getRecords('SELECT i.*, UNIX_TIMESTAMP(i.begin_date) AS begin_date, UNIX_TIMESTAMP(i.end_date) AS end_date,
m.url, c.title AS category_title, m2.url AS category_url,
t.agenda_id, t.frequency, t.interval, t.type, t.days, t.ends_on,
UNIX_TIMESTAMP(t.end_date) AS ends_on_date
FROM agenda AS i
INNER JOIN meta AS m ON i.meta_id = m.id
INNER JOIN agenda_categories AS c ON i.category_id = c.id
INNER JOIN meta AS m2 ON c.meta_id = m2.id
LEFT OUTER JOIN agenda_recurring_options AS t ON i.id = t.agenda_id
WHERE i.language = ? AND DATE(i.begin_date) BETWEEN ? AND ?
OR i.recurring = ? AND i.language = ?
ORDER BY i.begin_date ASC', array(FRONTEND_LANGUAGE, $startTimestamp, $endTimestamp, 'Y', FRONTEND_LANGUAGE));
// no results?
if (empty($items)) {
return array();
}
// get item action url
$agendaUrl = FrontendNavigation::getURLForBlock('Agenda', 'Detail');
// get category action url
$categoryUrl = FrontendNavigation::getURLForBlock('Agenda', 'Category');
// get all recurring items
foreach ($items as $key => $item) {
$items[$key]['full_url'] = $agendaUrl . '/' . $items[$key]['url'];
$items[$key]['category_full_url'] = $categoryUrl . '/' . $items[$key]['category_url'];
// get image
$img = FrontendModel::getContainer()->get('database')->getRecord('SELECT * FROM agenda_images WHERE agenda_id = ? ORDER BY sequence', array((int) $item['id']));
if ($img) {
$items[$key]['image'] = FRONTEND_FILES_URL . '/Agenda/' . $item['id'] . '/400x300/' . $img['filename'];
}
// get recurring items
if ($item['recurring'] == 'Y') {
$recurringItems = FrontendAgendaRecurringAgendaItems::getItemRecurrance($item, $startTimestamp, $endTimestamp);
// found recurring items
if (!empty($recurringItems)) {
$items = array_merge($items, $recurringItems);
}
}
// set dates
$items[$key]['begin_date'] = date('Y-m-d H:i', $items[$key]['begin_date']);
$items[$key]['end_date'] = date('Y-m-d H:i', $items[$key]['end_date']);
}
// unset items which are outside the view
foreach ($items as $key => $value) {
$beginDate = strtotime($items[$key]['begin_date']);
$begints = strtotime($startTimestamp);
$endts = strtotime($endTimestamp);
// check if begin date of element fits the given timespan
if ($beginDate < $begints || $beginDate > $endts) {
unset($items[$key]);
} else {
// set timestamps for navigation detail pages
$items[$key]['ts_begin_date'] = strtotime($value['begin_date']);
$items[$key]['ts_end_date'] = strtotime($value['end_date']);
// set boolean for whole day agenda
if ($value['whole_day'] == 'Y') {
$items[$key]['whole_day'] = true;
}
if ($value['whole_day'] == 'N') {
$items[$key]['whole_day'] = false;
}
$beginAsDay = strftime('%Y%m%d', strtotime($value['begin_date']));
$endAsDay = strftime('%Y%m%d', strtotime($value['end_date']));
// set dif if begin and end date is different
if ($beginAsDay != $endAsDay) {
$items[$key]['different_end_date'] = true;
}
}
}
// write the cache file
//.........这里部分代码省略.........
示例15: validateForm
/**
* Validate the form
*/
private function validateForm()
{
// get settings
$subscriptionsAllowed = isset($this->settings['allow_subscriptions']) && $this->settings['allow_subscriptions'];
// subscriptions aren't allowed so we don't have to validate
if (!$subscriptionsAllowed) {
return false;
}
// is the form submitted
if ($this->frm->isSubmitted()) {
// cleanup the submitted fields, ignore fields that were added by hackers
$this->frm->cleanupFields();
// does the key exists?
if (\SpoonSession::exists('agenda_subscription_' . $this->record['id'])) {
// calculate difference
$diff = time() - (int) \SpoonSession::get('agenda_subscription_' . $this->record['id']);
// calculate difference, it it isn't 10 seconds the we tell the user to slow down
if ($diff < 10 && $diff != 0) {
$this->frm->getField('message')->addError(FL::err('CommentTimeout'));
}
}
// validate required fields
$this->frm->getField('name')->isFilled(FL::err('NameIsRequired'));
$this->frm->getField('email')->isEmail(FL::err('EmailIsRequired'));
// no errors?
if ($this->frm->isCorrect()) {
// get module setting
$moderationEnabled = isset($this->settings['moderation']) && $this->settings['moderation'];
// reformat data
$name = $this->frm->getField('name')->getValue();
$email = $this->frm->getField('email')->getValue();
// build array
$subscription['agenda_id'] = $this->record['id'];
$subscription['language'] = FRONTEND_LANGUAGE;
$subscription['created_on'] = FrontendModel::getUTCDate();
$subscription['name'] = $name;
$subscription['email'] = $email;
$subscription['status'] = 'subscribed';
// get URL for article
$permaLink = $this->record['full_url'];
$redirectLink = $permaLink;
// is moderation enabled
if ($moderationEnabled) {
// if the commenter isn't moderated before alter the subscription status so it will appear in the moderation queue
if (!FrontendAgendaModel::isModerated($name, $email)) {
$subscription['status'] = 'moderation';
}
}
// insert comment
$subscription['id'] = FrontendAgendaModel::insertSubscription($subscription);
// trigger event
FrontendModel::triggerEvent('agenda', 'after_add_subscription', array('subscription' => $subscription));
// append a parameter to the URL so we can show moderation
if (strpos($redirectLink, '?') === false) {
if ($subscription['status'] == 'moderation') {
$redirectLink .= '?subscription=moderation#' . FL::act('Subscribe');
}
if ($subscription['status'] == 'subscribed') {
$redirectLink .= '?subscription=true#subscription-' . $subscription['id'];
}
} else {
if ($subscription['status'] == 'moderation') {
$redirectLink .= '&subscription=moderation#' . FL::act('Subscribe');
}
if ($subscription['status'] == 'subscribed') {
$redirectLink .= '&subscription=true#comment-' . $subscription['id'];
}
}
// set title
$subscription['agenda_title'] = $this->record['title'];
$subscription['agenda_url'] = $this->record['url'];
// notify the admin
FrontendAgendaModel::notifyAdmin($subscription);
// store timestamp in session so we can block excessive usage
\SpoonSession::set('agenda_subscription_' . $this->record['id'], time());
// store author-data in cookies
try {
Cookie::set('subscription_author', $name);
Cookie::set('subscription_email', $email);
} catch (Exception $e) {
// settings cookies isn't allowed, but because this isn't a real problem we ignore the exception
}
// redirect
$this->redirect($redirectLink);
}
}
}