当前位置: 首页>>代码示例>>PHP>>正文


PHP Gdn_Format::toDateTime方法代码示例

本文整理汇总了PHP中Gdn_Format::toDateTime方法的典型用法代码示例。如果您正苦于以下问题:PHP Gdn_Format::toDateTime方法的具体用法?PHP Gdn_Format::toDateTime怎么用?PHP Gdn_Format::toDateTime使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Gdn_Format的用法示例。


在下文中一共展示了Gdn_Format::toDateTime方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: informNotifications

 /**
  * Grabs all new notifications and adds them to the sender's inform queue.
  *
  * This method gets called by dashboard's hooks file to display new
  * notifications on every pageload.
  *
  * @since 2.0.18
  * @access public
  *
  * @param Gdn_Controller $Sender The object calling this method.
  */
 public static function informNotifications($Sender)
 {
     $Session = Gdn::session();
     if (!$Session->isValid()) {
         return;
     }
     $ActivityModel = new ActivityModel();
     // Get five pending notifications.
     $Where = array('NotifyUserID' => Gdn::session()->UserID, 'Notified' => ActivityModel::SENT_PENDING);
     // If we're in the middle of a visit only get very recent notifications.
     $Where['DateUpdated >'] = Gdn_Format::toDateTime(strtotime('-5 minutes'));
     $Activities = $ActivityModel->getWhere($Where, 0, 5)->resultArray();
     $ActivityIDs = array_column($Activities, 'ActivityID');
     $ActivityModel->setNotified($ActivityIDs);
     $Sender->EventArguments['Activities'] =& $Activities;
     $Sender->fireEvent('InformNotifications');
     foreach ($Activities as $Activity) {
         if ($Activity['Photo']) {
             $UserPhoto = anchor(img($Activity['Photo'], array('class' => 'ProfilePhotoMedium')), $Activity['Url'], 'Icon');
         } else {
             $UserPhoto = '';
         }
         $Excerpt = Gdn_Format::plainText($Activity['Story']);
         $ActivityClass = ' Activity-' . $Activity['ActivityType'];
         $Sender->informMessage($UserPhoto . Wrap($Activity['Headline'], 'div', array('class' => 'Title')) . Wrap($Excerpt, 'div', array('class' => 'Excerpt')), 'Dismissable AutoDismiss' . $ActivityClass . ($UserPhoto == '' ? '' : ' HasIcon'));
     }
 }
开发者ID:austins,项目名称:vanilla,代码行数:38,代码来源:class.notificationscontroller.php

示例2: resolve

 /**
  * Resolves a discussion
  *
  * @param object $discussion
  * @param int $resolve
  * @return void
  */
 public function resolve(&$discussion, $resolve)
 {
     $resolution = array('Resolved' => $resolve, 'DateResolved' => $resolve ? Gdn_Format::toDateTime() : null, 'ResolvedUserID' => $resolve ? Gdn::session()->UserID : null);
     $discussionID = val('DiscussionID', $discussion);
     self::discussionModel()->setField($discussionID, $resolution);
     svalr('Resolved', $discussion, $resolve);
 }
开发者ID:SatiricMan,项目名称:addons,代码行数:14,代码来源:class.resolved.plugin.php

示例3: structure

 /**
  * Create the target category that is needed for this plugin to work.
  */
 public function structure()
 {
     $category = (array) CategoryModel::instance()->getByCode('welcome');
     $cachedCategoryID = val('CategoryID', $category, false);
     if (!$cachedCategoryID) {
         $categoryModel = CategoryModel::instance();
         $categoryModel->save(['ParentCategoryID' => -1, 'Depth' => 1, 'InsertUserID' => 1, 'UpdateUserID' => 1, 'DateInserted' => Gdn_Format::toDateTime(), 'DateUpdated' => Gdn_Format::toDateTime(), 'Name' => 'Welcome', 'UrlCode' => 'welcome', 'Description' => 'Introduce yourself to the community!', 'PermissionCategoryID' => -1]);
     }
 }
开发者ID:vanilla,项目名称:addons,代码行数:12,代码来源:class.welcomepost.plugin.php

示例4: structure

 public function structure()
 {
     // Get a user for operations.
     $UserID = Gdn::sql()->GetWhere('User', array('Name' => 'Akismet', 'Admin' => 2))->Value('UserID');
     if (!$UserID) {
         $UserID = Gdn::sql()->Insert('User', array('Name' => 'Akismet', 'Password' => RandomString('20'), 'HashMethod' => 'Random', 'Email' => 'akismet@domain.com', 'DateInserted' => Gdn_Format::toDateTime(), 'Admin' => '2'));
     }
     saveToConfig('Plugins.Akismet.UserID', $UserID);
 }
开发者ID:SatiricMan,项目名称:addons,代码行数:9,代码来源:class.akismet.plugin.php

示例5: markRead

 public function markRead($CategoryID, $TKey)
 {
     if (Gdn::session()->validateTransientKey($TKey)) {
         $this->CategoryModel->SaveUserTree($CategoryID, array('DateMarkedRead' => Gdn_Format::toDateTime()));
     }
     if ($this->deliveryType() == DELIVERY_TYPE_ALL) {
         redirect('/categories');
     }
     $this->render();
 }
开发者ID:caidongyun,项目名称:vanilla,代码行数:10,代码来源:class.categorycontroller.php

示例6: index

 /**
  * Show the contributor agreement form & workflow for signing.
  */
 public function index()
 {
     if (!Gdn::session()->isValid()) {
         $this->View = 'signin';
     } else {
         if ($this->Form->authenticatedPostBack() && $this->Form->getFormValue('Agree', '') == '1') {
             Gdn::sql()->update('User')->set('DateContributorAgreement', Gdn_Format::toDateTime(), true, false)->where('UserID', Gdn::session()->UserID)->put();
             $this->View = 'done';
         }
     }
     $this->render();
 }
开发者ID:vanilla,项目名称:community,代码行数:15,代码来源:class.contributorscontroller.php

示例7: index

 /**
  *
  *
  * @param string $ID
  * @param string $ServeFile
  */
 public function index($ID = '', $ServeFile = '0')
 {
     $this->addJsFile('jquery.js');
     // Define the item being downloaded
     if (strtolower($ID) == 'vanilla') {
         $ID = 'vanilla-core';
     }
     $UrlFilename = Gdn::request()->filename();
     $PathInfo = pathinfo($UrlFilename);
     $Ext = val('extension', $PathInfo);
     if ($Ext == 'zip') {
         $ServeFile = '1';
         $ID = $Ext = val('filename', $PathInfo);
     }
     // Find the requested addon
     $this->Addon = $this->AddonModel->getSlug($ID, true);
     $this->setData('Addon', $this->Addon);
     if (!is_array($this->Addon) || !val('File', $this->Addon)) {
         $this->Addon = array('Name' => 'Not Found', 'Version' => 'undefined', 'File' => '');
     } else {
         $AddonID = $this->Addon['AddonID'];
         if ($ServeFile != '1') {
             $this->addJsFile('get.js');
         }
         if ($ServeFile == '1') {
             // Record this download
             $this->Database->sql()->insert('Download', array('AddonID' => $AddonID, 'DateInserted' => Gdn_Format::toDateTime(), 'RemoteIp' => @$_SERVER['REMOTE_ADDR']));
             $this->AddonModel->setProperty($AddonID, 'CountDownloads', $this->Addon['CountDownloads'] + 1);
             if (val('Slug', $this->Addon)) {
                 $Filename = $this->Addon['Slug'];
             } else {
                 $Filename = "{$this->Addon['Name']}-{$this->Addon['Version']}";
             }
             $Filename = Gdn_Format::url($Filename) . '.zip';
             $File = $this->Addon['File'];
             $Url = Gdn_Upload::url($File);
             Gdn_FileSystem::serveFile($Url, $Filename);
         }
     }
     $this->addModule('AddonHelpModule');
     $this->render();
 }
开发者ID:vanilla,项目名称:community,代码行数:48,代码来源:class.getcontroller.php

示例8: entryController_registerValidation_handler

 /**
  * Enforces AgeGate verification at registration submission.
  *
  * @param EntryController $sender Sending Controller.
  * @param array $args Arguments.
  */
 public function entryController_registerValidation_handler($sender, $args)
 {
     $day = (int) $sender->Form->getFormValue('DateOfBirth_Day', 0);
     $month = (int) $sender->Form->getFormValue('DateOfBirth_Month', 0);
     $year = (int) $sender->Form->getFormValue('DateOfBirth_Year', 0);
     if ($day == 0 || $year == 0 || $month == 0) {
         $sender->UserModel->Validation->addValidationResult('', "Please select a valid Date of Birth.");
         return;
     }
     $dob = Gdn_Format::toDateTime(mktime(0, 0, 0, $month, $day, $year));
     $datetime1 = new DateTime($year . '-' . $month . '-' . $day);
     $datetime2 = new DateTime();
     $interval = $datetime1->diff($datetime2);
     $age = $interval->format('%y');
     $minimumAge = C('Plugins.AgeGate.MinimumAge', 0);
     $minimumAgeWithConsent = C('Plugins.AgeGate.MinimumAgeWithConsent', false);
     $addConfirmation = C('Plugins.AgeGate.AddConfirmation', false);
     if ($minimumAgeWithConsent) {
         if ($addConfirmation && $age < $minimumAgeWithConsent && $age >= $minimumAge) {
             $sender->UserModel->Validation->applyRule('AgeGateConfirmation', 'Required', 'You must confirm you have received consent to register.');
             return;
         }
         if ($age < $minimumAge) {
             $sender->UserModel->Validation->addValidationResult('', sprintf("You must be at least %d years old to register.", $minimumAge));
             return;
         }
     } elseif ($age < $minimumAge) {
         if ($addConfirmation) {
             $sender->UserModel->Validation->applyRule('AgeGateConfirmation', 'Required', 'You must confirm you have received consent to register.');
         } else {
             $sender->UserModel->Validation->addValidationResult('', sprintf("You must be at least %d years old to register.", $minimumAge));
         }
         return;
     }
     // Set the value on the form so that it will be saved to user model
     if ($sender->Form->errorCount() == 0 && !$sender->UserModel->Validation->results()) {
         $sender->Form->_FormValues['DateOfBirth'] = $dob;
     }
 }
开发者ID:vanilla,项目名称:addons,代码行数:45,代码来源:class.agegate.plugin.php

示例9: getFileHeader

 protected function getFileHeader()
 {
     $Now = Gdn_Format::toDateTime();
     $Result = "<?php if (!defined('APPLICATION')) exit();\n/** This file was generated by the LocaleModel on {$Now} **/\n\n";
     return $Result;
 }
开发者ID:vanilla,项目名称:vanilla,代码行数:6,代码来源:class.localemodel.php

示例10: save

 /**
  * Save message from form submission.
  *
  * @since 2.0.0
  * @access public
  *
  * @param array $FormPostValues Values submitted via form.
  * @return int Unique ID of message created or updated.
  */
 public function save($FormPostValues, $Conversation = null, $Options = array())
 {
     $Session = Gdn::session();
     // Define the primary key in this model's table.
     $this->defineSchema();
     // Add & apply any extra validation rules:
     $this->Validation->applyRule('Body', 'Required');
     $this->addInsertFields($FormPostValues);
     $this->EventArguments['FormPostValues'] = $FormPostValues;
     $this->fireEvent('BeforeSaveValidation');
     // Determine if spam check should be skipped.
     $SkipSpamCheck = !empty($Options['NewConversation']);
     // Validate the form posted values
     $MessageID = false;
     if ($this->validate($FormPostValues) && !$this->checkForSpam('ConversationMessage', $SkipSpamCheck)) {
         $Fields = $this->Validation->schemaValidationFields();
         // All fields on the form that relate to the schema
         touchValue('Format', $Fields, c('Garden.InputFormatter', 'Html'));
         $this->EventArguments['Fields'] = $Fields;
         $this->fireEvent('BeforeSave');
         $MessageID = $this->SQL->insert($this->Name, $Fields);
         $this->LastMessageID = $MessageID;
         $ConversationID = val('ConversationID', $Fields, 0);
         if (!$Conversation) {
             $Conversation = $this->SQL->getWhere('Conversation', array('ConversationID' => $ConversationID))->firstRow(DATASET_TYPE_ARRAY);
         }
         $Message = $this->getID($MessageID);
         $this->EventArguments['Conversation'] = $Conversation;
         $this->EventArguments['Message'] = $Message;
         $this->fireEvent('AfterSave');
         // Get the new message count for the conversation.
         $SQLR = $this->SQL->select('MessageID', 'count', 'CountMessages')->select('MessageID', 'max', 'LastMessageID')->from('ConversationMessage')->where('ConversationID', $ConversationID)->get()->firstRow(DATASET_TYPE_ARRAY);
         if (sizeof($SQLR)) {
             list($CountMessages, $LastMessageID) = array_values($SQLR);
         } else {
             return;
         }
         // Update the conversation's DateUpdated field.
         $DateUpdated = Gdn_Format::toDateTime();
         $this->SQL->update('Conversation c')->set('CountMessages', $CountMessages)->set('LastMessageID', $LastMessageID)->set('UpdateUserID', Gdn::session()->UserID)->set('DateUpdated', $DateUpdated)->where('ConversationID', $ConversationID)->put();
         // Update the last message of the users that were previously up-to-date on their read messages.
         $this->SQL->update('UserConversation uc')->set('uc.LastMessageID', $MessageID)->set('uc.DateConversationUpdated', $DateUpdated)->where('uc.ConversationID', $ConversationID)->where('uc.Deleted', '0')->where('uc.CountReadMessages', $CountMessages - 1)->where('uc.UserID <>', $Session->UserID)->put();
         // Update the date updated of the users that were not up-to-date.
         $this->SQL->update('UserConversation uc')->set('uc.DateConversationUpdated', $DateUpdated)->where('uc.ConversationID', $ConversationID)->where('uc.Deleted', '0')->where('uc.CountReadMessages <>', $CountMessages - 1)->where('uc.UserID <>', $Session->UserID)->put();
         // Update the sending user.
         $this->SQL->update('UserConversation uc')->set('uc.CountReadMessages', $CountMessages)->set('Deleted', 0)->set('uc.DateConversationUpdated', $DateUpdated)->where('ConversationID', $ConversationID)->where('UserID', $Session->UserID)->put();
         // Find users involved in this conversation
         $UserData = $this->SQL->select('UserID')->select('LastMessageID')->select('Deleted')->from('UserConversation')->where('ConversationID', $ConversationID)->get()->result(DATASET_TYPE_ARRAY);
         $UpdateCountUserIDs = array();
         $NotifyUserIDs = array();
         // Collapse for call to UpdateUserCache and ActivityModel.
         $InsertUserFound = false;
         foreach ($UserData as $UpdateUser) {
             $LastMessageID = val('LastMessageID', $UpdateUser);
             $UserID = val('UserID', $UpdateUser);
             $Deleted = val('Deleted', $UpdateUser);
             if ($UserID == val('InsertUserID', $Fields)) {
                 $InsertUserFound = true;
                 if ($Deleted) {
                     $this->SQL->put('UserConversation', array('Deleted' => 0, 'DateConversationUpdated' => $DateUpdated), array('ConversationID' => $ConversationID, 'UserID' => $UserID));
                 }
             }
             // Update unread for users that were up to date
             if ($LastMessageID == $MessageID) {
                 $UpdateCountUserIDs[] = $UserID;
             }
             // Send activities to users that have not deleted the conversation
             if (!$Deleted) {
                 $NotifyUserIDs[] = $UserID;
             }
         }
         if (!$InsertUserFound) {
             $UserConversation = array('UserID' => val('InsertUserID', $Fields), 'ConversationID' => $ConversationID, 'LastMessageID' => $LastMessageID, 'CountReadMessages' => $CountMessages, 'DateConversationUpdated' => $DateUpdated);
             $this->SQL->insert('UserConversation', $UserConversation);
         }
         if (sizeof($UpdateCountUserIDs)) {
             $ConversationModel = new ConversationModel();
             $ConversationModel->updateUserUnreadCount($UpdateCountUserIDs, true);
         }
         $this->fireEvent('AfterAdd');
         $activityModel = new ActivityModel();
         foreach ($NotifyUserIDs as $notifyUserID) {
             if ($Session->UserID == $notifyUserID) {
                 continue;
                 // don't notify self.
             }
             // Notify the users of the new message.
             $activity = array('ActivityType' => 'ConversationMessage', 'ActivityUserID' => val('InsertUserID', $Fields), 'NotifyUserID' => $notifyUserID, 'HeadlineFormat' => t('HeadlineFormat.ConversationMessage', '{ActivityUserID,user} sent you a <a href="{Url,html}">message</a>'), 'RecordType' => 'Conversation', 'RecordID' => $ConversationID, 'Story' => val('Body', $Fields, ''), 'Format' => val('Format', $Fields, c('Garden.InputFormatter')), 'Route' => "/messages/{$ConversationID}#{$MessageID}");
             if (c('Conversations.Subjects.Visible') && val('Subject', $Conversation, '')) {
                 $activity['HeadlineFormat'] = val('Subject', $Conversation, '');
             }
//.........这里部分代码省略.........
开发者ID:caidongyun,项目名称:vanilla,代码行数:101,代码来源:class.conversationmessagemodel.php

示例11: saveDiscussion

 /**
  *
  *
  * @param $discussion_id
  * @param $tags
  * @param array $types
  * @param int $category_id
  * @param string $new_type
  * @throws Exception
  */
 public function saveDiscussion($discussion_id, $tags, $types = array(''), $category_id = 0, $new_type = '')
 {
     // First grab all of the current tags.
     $all_tags = $current_tags = $this->getDiscussionTags($discussion_id, TagModel::IX_TAGID);
     // Put all the default tag types in the types if necessary.
     if (in_array('', $types)) {
         $types = array_merge($types, array_keys($this->defaultTypes()));
         $types = array_unique($types);
     }
     // Remove the types from the current tags that we don't need anymore.
     $current_tags = array_filter($current_tags, function ($row) use($types) {
         if (in_array($row['Type'], $types)) {
             return true;
         }
         return false;
     });
     // Turn the tags into a nice array.
     if (is_string($tags)) {
         $tags = TagModel::SplitTags($tags);
     }
     $new_tags = array();
     $tag_ids = array();
     // See which tags are new and which ones aren't.
     foreach ($tags as $tag_id) {
         if (is_id($tag_id)) {
             $tag_ids[$tag_id] = true;
         } else {
             $new_tags[TagModel::tagSlug($tag_id)] = $tag_id;
         }
     }
     // See if any of the new tags actually exist by searching by name.
     if (!empty($new_tags)) {
         $found_tags = $this->getWhere(array('Name' => array_keys($new_tags)))->resultArray();
         foreach ($found_tags as $found_tag_row) {
             $tag_ids[$found_tag_row['TagID']] = $found_tag_row;
             unset($new_tags[TagModel::TagSlug($found_tag_row['Name'])]);
         }
     }
     // Add any remaining tags that need to be added.
     if (Gdn::session()->checkPermission('Plugins.Tagging.Add')) {
         foreach ($new_tags as $name => $full_name) {
             $new_tag = array('Name' => trim(str_replace(' ', '-', strtolower($name)), '-'), 'FullName' => $full_name, 'Type' => $new_type, 'CategoryID' => $category_id, 'InsertUserID' => Gdn::session()->UserID, 'DateInserted' => Gdn_Format::toDateTime(), 'CountDiscussions' => 0);
             $tag_id = $this->SQL->options('Ignore', true)->insert('Tag', $new_tag);
             $tag_ids[$tag_id] = true;
         }
     }
     // Grab the tags so we can see more information about them.
     $save_tags = $this->getWhere(array('TagID' => array_keys($tag_ids)))->resultArray();
     // Add any parent tags that may need to be added.
     foreach ($save_tags as $save_tag) {
         $parent_tag_id = val('ParentTagID', $save_tag);
         if ($parent_tag_id) {
             $tag_ids[$parent_tag_id] = true;
         }
         $all_tags[$save_tag['TagID']] = $save_tag;
     }
     // Remove tags that are already associated with the discussion.
     //      $same_tag_ids = array_intersect_key($tag_ids, $current_tags);
     //      $current_tags = array_diff_key($current_tags, $same_tag_ids);
     //      $tag_ids = array_diff_key($tag_ids, $same_tag_ids);
     // Figure out the tags we need to add.
     $insert_tag_ids = array_diff_key($tag_ids, $current_tags);
     // Figure out the tags we need to remove.
     $delete_tag_ids = array_diff_key($current_tags, $tag_ids);
     $now = Gdn_Format::toDateTime();
     // Insert the new tag mappings.
     foreach ($insert_tag_ids as $tag_id => $bool) {
         if (isset($all_tags[$tag_id])) {
             $insert_category_id = $all_tags[$tag_id]['CategoryID'];
         } else {
             $insert_category_id = $category_id;
         }
         $this->SQL->options('Ignore', true)->insert('TagDiscussion', array('DiscussionID' => $discussion_id, 'TagID' => $tag_id, 'DateInserted' => $now, 'CategoryID' => $insert_category_id));
     }
     // Delete the old tag mappings.
     if (!empty($delete_tag_ids)) {
         $this->SQL->delete('TagDiscussion', array('DiscussionID' => $discussion_id, 'TagID' => array_keys($delete_tag_ids)));
     }
     // Increment the tag counts.
     if (!empty($insert_tag_ids)) {
         $this->SQL->update('Tag')->set('CountDiscussions', 'CountDiscussions + 1', false)->whereIn('TagID', array_keys($insert_tag_ids))->put();
     }
     // Decrement the tag counts.
     if (!empty($delete_tag_ids)) {
         $this->SQL->update('Tag')->set('CountDiscussions', 'CountDiscussions - 1', false)->whereIn('TagID', array_keys($delete_tag_ids))->put();
     }
 }
开发者ID:sitexa,项目名称:vanilla,代码行数:97,代码来源:class.tagmodel.php

示例12: save

 /**
  *
  *
  * @param array $FormPostValues
  * @param array|bool $UserModel
  * @param array $Options
  * @return bool
  * @throws Exception
  */
 public function save($FormPostValues, $UserModel, $Options = array())
 {
     $Session = Gdn::session();
     $UserID = $Session->UserID;
     $SendEmail = val('SendEmail', $Options, true);
     $Resend = val('Resend', $Options, false);
     // Define the primary key in this model's table.
     $this->defineSchema();
     // Add & apply any extra validation rules:
     $this->Validation->applyRule('Email', 'Email');
     // Make sure required db fields are present.
     $this->AddInsertFields($FormPostValues);
     if (!isset($FormPostValues['DateExpires'])) {
         $Expires = strtotime(c('Garden.Registration.InviteExpiration'));
         if ($Expires > time()) {
             $FormPostValues['DateExpires'] = Gdn_Format::toDateTime($Expires);
         }
     }
     $FormPostValues['Code'] = $this->GetInvitationCode();
     // Validate the form posted values
     if ($this->validate($FormPostValues, true) === true) {
         $Fields = $this->Validation->ValidationFields();
         // All fields on the form that need to be validated
         $Email = arrayValue('Email', $Fields, '');
         // Make sure this user has a spare invitation to send.
         $InviteCount = $UserModel->GetInvitationCount($UserID);
         if ($InviteCount == 0) {
             $this->Validation->addValidationResult('Email', 'You do not have enough invitations left.');
             return false;
         }
         // Make sure that the email does not already belong to an account in the application.
         $TestData = $UserModel->getWhere(array('Email' => $Email));
         if ($TestData->numRows() > 0) {
             $this->Validation->addValidationResult('Email', 'The email you have entered is already related to an existing account.');
             return false;
         }
         // Make sure that the email does not already belong to an invitation in the application.
         $TestData = $this->getWhere(array('Email' => $Email));
         $DeleteID = false;
         if ($TestData->numRows() > 0) {
             if (!$Resend) {
                 $this->Validation->addValidationResult('Email', 'An invitation has already been sent to the email you entered.');
                 return false;
             } else {
                 // Mark the old invitation for deletion.
                 $DeleteID = val('InvitationID', $TestData->firstRow(DATASET_TYPE_ARRAY));
             }
         }
         // Define the fields to be inserted
         $Fields = $this->Validation->SchemaValidationFields();
         // Call the base model for saving
         $InvitationID = $this->insert($Fields);
         // Delete an old invitation.
         if ($InvitationID && $DeleteID) {
             $this->delete($DeleteID);
         }
         // Now that saving has succeeded, update the user's invitation settings
         if ($InviteCount > 0) {
             $UserModel->ReduceInviteCount($UserID);
         }
         // And send the invitation email
         if ($SendEmail) {
             try {
                 $this->send($InvitationID);
             } catch (Exception $ex) {
                 $this->Validation->addValidationResult('Email', sprintf(t('Although the invitation was created successfully, the email failed to send. The server reported the following error: %s'), strip_tags($ex->getMessage())));
                 return false;
             }
         }
         return true;
     }
     return false;
 }
开发者ID:karanjitsingh,项目名称:iecse-forum,代码行数:82,代码来源:class.invitationmodel.php

示例13: deleteID

 /**
  * Delete a single user.
  *
  * @param int $userID The user to delete.
  * @param array $options See {@link UserModel::deleteContent()}, and {@link UserModel::getDelete()}.
  */
 public function deleteID($userID, $options = [])
 {
     if ($userID == $this->getSystemUserID()) {
         $this->Validation->addValidationResult('', 'You cannot delete the system user.');
         return false;
     }
     $Content = [];
     // Remove shared authentications.
     $this->getDelete('UserAuthentication', ['UserID' => $userID], $Content);
     // Remove role associations.
     $this->getDelete('UserRole', ['UserID' => $userID], $Content);
     $this->deleteContent($userID, $options, $Content);
     // Remove the user's information
     $this->SQL->update('User')->set(['Name' => t('[Deleted User]'), 'Photo' => null, 'Password' => randomString('10'), 'About' => '', 'Email' => 'user_' . $userID . '@deleted.email', 'ShowEmail' => '0', 'Gender' => 'u', 'CountVisits' => 0, 'CountInvitations' => 0, 'CountNotifications' => 0, 'InviteUserID' => null, 'DiscoveryText' => '', 'Preferences' => null, 'Permissions' => null, 'Attributes' => dbencode(['State' => 'Deleted']), 'DateSetInvitations' => null, 'DateOfBirth' => null, 'DateUpdated' => Gdn_Format::toDateTime(), 'HourOffset' => '0', 'Score' => null, 'Admin' => 0, 'Deleted' => 1])->where('UserID', $userID)->put();
     // Remove user's cache rows
     $this->clearCache($userID);
     return true;
 }
开发者ID:vanilla,项目名称:vanilla,代码行数:24,代码来源:class.usermodel.php

示例14: comment

 /**
  * Create or update a comment.
  *
  * @since 2.0.0
  * @access public
  *
  * @param int $DiscussionID Unique ID to add the comment to. If blank, this method will throw an error.
  */
 public function comment($DiscussionID = '')
 {
     // Get $DiscussionID from RequestArgs if valid
     if ($DiscussionID == '' && count($this->RequestArgs)) {
         if (is_numeric($this->RequestArgs[0])) {
             $DiscussionID = $this->RequestArgs[0];
         }
     }
     // If invalid $DiscussionID, get from form.
     $this->Form->setModel($this->CommentModel);
     $DiscussionID = is_numeric($DiscussionID) ? $DiscussionID : $this->Form->getFormValue('DiscussionID', 0);
     // Set discussion data
     $this->DiscussionID = $DiscussionID;
     $this->Discussion = $Discussion = $this->DiscussionModel->getID($DiscussionID);
     // Is this an embedded comment being posted to a discussion that doesn't exist yet?
     $vanilla_type = $this->Form->getFormValue('vanilla_type', '');
     $vanilla_url = $this->Form->getFormValue('vanilla_url', '');
     $vanilla_category_id = $this->Form->getFormValue('vanilla_category_id', '');
     $Attributes = array('ForeignUrl' => $vanilla_url);
     $vanilla_identifier = $this->Form->getFormValue('vanilla_identifier', '');
     $isEmbeddedComments = $vanilla_url != '' && $vanilla_identifier != '';
     // Only allow vanilla identifiers of 32 chars or less - md5 if larger
     if (strlen($vanilla_identifier) > 32) {
         $Attributes['vanilla_identifier'] = $vanilla_identifier;
         $vanilla_identifier = md5($vanilla_identifier);
     }
     if (!$Discussion && $isEmbeddedComments) {
         $Discussion = $Discussion = $this->DiscussionModel->getForeignID($vanilla_identifier, $vanilla_type);
         if ($Discussion) {
             $this->DiscussionID = $DiscussionID = $Discussion->DiscussionID;
             $this->Form->setValue('DiscussionID', $DiscussionID);
         }
     }
     // If so, create it!
     if (!$Discussion && $isEmbeddedComments) {
         // Add these values back to the form if they exist!
         $this->Form->addHidden('vanilla_identifier', $vanilla_identifier);
         $this->Form->addHidden('vanilla_type', $vanilla_type);
         $this->Form->addHidden('vanilla_url', $vanilla_url);
         $this->Form->addHidden('vanilla_category_id', $vanilla_category_id);
         $PageInfo = fetchPageInfo($vanilla_url);
         if (!($Title = $this->Form->getFormValue('Name'))) {
             $Title = val('Title', $PageInfo, '');
             if ($Title == '') {
                 $Title = t('Undefined discussion subject.');
                 if (!empty($PageInfo['Exception']) && $PageInfo['Exception'] === "Couldn't connect to host.") {
                     $Title .= ' ' . t('Page timed out.');
                 }
             }
         }
         $Description = val('Description', $PageInfo, '');
         $Images = val('Images', $PageInfo, array());
         $LinkText = t('EmbededDiscussionLinkText', 'Read the full story here');
         if (!$Description && count($Images) == 0) {
             $Body = formatString('<p><a href="{Url}">{LinkText}</a></p>', array('Url' => $vanilla_url, 'LinkText' => $LinkText));
         } else {
             $Body = formatString('
         <div class="EmbeddedContent">{Image}<strong>{Title}</strong>
            <p>{Excerpt}</p>
            <p><a href="{Url}">{LinkText}</a></p>
            <div class="ClearFix"></div>
         </div>', array('Title' => $Title, 'Excerpt' => $Description, 'Image' => count($Images) > 0 ? img(val(0, $Images), array('class' => 'LeftAlign')) : '', 'Url' => $vanilla_url, 'LinkText' => $LinkText));
         }
         if ($Body == '') {
             $Body = $vanilla_url;
         }
         if ($Body == '') {
             $Body = t('Undefined discussion body.');
         }
         // Validate the CategoryID for inserting.
         $Category = CategoryModel::categories($vanilla_category_id);
         if (!$Category) {
             $vanilla_category_id = c('Vanilla.Embed.DefaultCategoryID', 0);
             if ($vanilla_category_id <= 0) {
                 // No default category defined, so grab the first non-root category and use that.
                 $vanilla_category_id = $this->DiscussionModel->SQL->select('CategoryID')->from('Category')->where('CategoryID >', 0)->get()->firstRow()->CategoryID;
                 // No categories in the db? default to 0
                 if (!$vanilla_category_id) {
                     $vanilla_category_id = 0;
                 }
             }
         } else {
             $vanilla_category_id = $Category['CategoryID'];
         }
         $EmbedUserID = c('Garden.Embed.UserID');
         if ($EmbedUserID) {
             $EmbedUser = Gdn::userModel()->getID($EmbedUserID);
         }
         if (!$EmbedUserID || !$EmbedUser) {
             $EmbedUserID = Gdn::userModel()->getSystemUserID();
         }
         $EmbeddedDiscussionData = array('InsertUserID' => $EmbedUserID, 'DateInserted' => Gdn_Format::toDateTime(), 'DateUpdated' => Gdn_Format::toDateTime(), 'CategoryID' => $vanilla_category_id, 'ForeignID' => $vanilla_identifier, 'Type' => $vanilla_type, 'Name' => $Title, 'Body' => $Body, 'Format' => 'Html', 'Attributes' => dbencode($Attributes));
//.........这里部分代码省略.........
开发者ID:vanilla,项目名称:vanilla,代码行数:101,代码来源:class.postcontroller.php

示例15: markRead

 /**
  * Update a conversation as read for a specific user id.
  *
  * @since 2.0.0
  * @access public
  *
  * @param int $ConversationID Unique ID of conversation effected.
  * @param int $ReadingUserID Unique ID of current user.
  */
 public function markRead($ConversationID, $ReadingUserID)
 {
     // Update the the read conversation count for the user.
     $this->SQL->update('UserConversation uc')->join('Conversation c', 'c.ConversationID = uc.ConversationID')->set('uc.CountReadMessages', 'c.CountMessages', false)->set('uc.DateLastViewed', Gdn_Format::toDateTime())->set('uc.LastMessageID', 'c.LastMessageID', false)->where('c.ConversationID', $ConversationID)->where('uc.ConversationID', $ConversationID)->where('uc.UserID', $ReadingUserID)->put();
     // Also update the unread conversation count for this user
     $CountUnread = $this->countUnread($ReadingUserID);
     // Also write through to the current session user.
     if ($ReadingUserID > 0 && $ReadingUserID == Gdn::session()->UserID) {
         Gdn::session()->User->CountUnreadConversations = $CountUnread;
     }
 }
开发者ID:vanilla,项目名称:vanilla,代码行数:20,代码来源:class.conversationmodel.php


注:本文中的Gdn_Format::toDateTime方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。