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


PHP TimeHelper::getTime方法代码示例

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


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

示例1: generateInsight

 public function generateInsight(Instance $instance, User $user, $last_week_of_posts, $number_days)
 {
     parent::generateInsight($instance, $user, $last_week_of_posts, $number_days);
     $this->logger->logInfo("Begin generating insight", __METHOD__ . ',' . __LINE__);
     $baseline_dao = DAOFactory::getDAO('InsightBaselineDAO');
     foreach ($this->getSchedule() as $baseline_slug => $data) {
         $now = TimeHelper::getTime();
         if ($now >= strtotime($data['start']) && $now <= strtotime($data['end'])) {
             $this->logger->logInfo("{$now} is in-schedule", __METHOD__ . ',' . __LINE__);
             $baseline = $baseline_dao->getMostRecentInsightBaseline($baseline_slug, $instance->id);
             if (!$baseline) {
                 if ($instance->network == 'facebook' && date('w') == 4 || $instance->network == 'twitter' && date('w') == 1 || Utils::isTest()) {
                     $found = $this->runInsightForConfig($data, $instance);
                     $baseline_dao->insertInsightBaseline($baseline_slug, $instance->id, $found);
                 } else {
                     $this->logger->logInfo("Not today", __METHOD__ . ',' . __LINE__);
                 }
             } else {
                 $this->logger->logInfo("Already exists", __METHOD__ . ',' . __LINE__);
             }
         } else {
             $this->logger->logInfo("Not in-schedule", __METHOD__ . ',' . __LINE__);
         }
     }
     $this->logger->logInfo("Done generating insight", __METHOD__ . ',' . __LINE__);
 }
开发者ID:ngugijames,项目名称:ThinkUp,代码行数:26,代码来源:newdictionarywords.php

示例2: generateInsight

 public function generateInsight(Instance $instance, User $user, $last_week_of_posts, $number_days)
 {
     parent::generateInsight($instance, $user, $last_week_of_posts, $number_days);
     $this->logger->logInfo("Begin generating insight", __METHOD__ . ',' . __LINE__);
     $possible_messaging = array(array('headline' => 'Ohai', 'text' => 'Greetings, humans', 'header_image' => 'http://farm3.staticflickr.com/2713/4098259769_725b5fb65b_o.jpg'), array('headline' => 'Hello', 'text' => 'Greetings, earthlings', 'header_image' => 'http://farm9.staticflickr.com/8078/8276342554_5a51725f5f_n.jpg'), array('headline' => 'Yo', 'text' => 'Greetings, peeps', 'header_image' => 'http://farm6.staticflickr.com/5006/5367216303_83c5f2dc39_n.jpg'));
     //Instantiate the Insight object
     $my_insight = new Insight();
     //REQUIRED: Set the insight's required attributes
     //We pull some from the options above.  But the could just be strings like 'Ohai'
     $which_messaging = TimeHelper::getTime() % count($possible_messaging);
     foreach ($possible_messaging[$which_messaging] as $field => $value) {
         $my_insight->{$field} = $value;
     }
     $my_insight->slug = 'my_test_insight_hello_thinkup';
     //slug to label this insight's content
     $my_insight->instance_id = $instance->id;
     $my_insight->date = $this->insight_date;
     //date is often this or $simplified_post_date
     $my_insight->filename = basename(__FILE__, ".php");
     //Same for every insight, must be set exactly this way
     $my_insight->emphasis = Insight::EMPHASIS_MED;
     //Set emphasis optionally, default is Insight::EMPHASIS_LOW
     //OPTIONAL: Attach related data of various types using Insight setter functions
     //$my_insight->setPosts($my_insight_posts);
     //$my_insight->setLinks($my_insight_links);
     //$my_insight->setPeople($my_insight_people);
     //$my_insight->setMilestones($my_insight_milestones);
     //etc
     $this->insight_dao->insertInsight($my_insight);
     $this->logger->logInfo("Done generating insight", __METHOD__ . ',' . __LINE__);
 }
开发者ID:ngugijames,项目名称:ThinkUp,代码行数:31,代码来源:hellothinkupinsight.php

示例3: testSetClearTime

 public function testSetClearTime()
 {
     $start = TimeHelper::getTime();
     $this->assertNotEqual($start, 4179);
     TimeHelper::setTime(4179);
     $now = TimeHelper::getTime();
     $this->assertEqual(4179, $now);
     TimeHelper::clearTime();
     $now = TimeHelper::getTime();
     $this->assertNotEqual(4179, $now);
 }
开发者ID:pepeleproso,项目名称:ThinkUp,代码行数:11,代码来源:TestOfTimeHelper.php

示例4: getVariableCopy

 /**
  * Take an array of strings, pick one at random and substitute each token with a value.
  * Text is processed with InsightTerms::getProcessedText()
  * The normal usage would be to pass a list of string choices for an Insight field, such as text, headline, etc.
  *
  * @param array $copy_array Array of possible strings
  * @param array $substitutions Text replacement token/value pairs passed to getProccessedText(), in the form of
  *                            '%token'=>'value'. See also: InsightTerms::getProcessedText
  * @return str The chosen and processed array
  */
 public function getVariableCopy($copy_array, $substitutions = array())
 {
     $substitutions['username'] = $this->username;
     $choice = $copy_array[TimeHelper::getTime() % count($copy_array)];
     return $this->terms->getProcessedText($choice, $substitutions);
 }
开发者ID:pepeleproso,项目名称:ThinkUp,代码行数:16,代码来源:class.InsightPluginParent.php

示例5: generateInsight

 public function generateInsight(Instance $instance, User $user, $last_week_of_posts, $number_days)
 {
     parent::generateInsight($instance, $user, $last_week_of_posts, $number_days);
     $this->logger->logInfo("Begin generating insight", __METHOD__ . ',' . __LINE__);
     $filename = basename(__FILE__, ".php");
     $insight_text = '';
     //Find out if insight already exists
     $should_generate_insight = self::shouldGenerateInsight('top_amplifier', $instance, date('Y-m-d'));
     if ($should_generate_insight) {
         //insight does not exist
         //Get yesterday's retweets
         $yesterdays_retweets = array();
         $simplified_date_yesterday = date('Y-m-d', strtotime('-1 day'));
         foreach ($last_week_of_posts as $post) {
             if ($post->in_retweet_of_post_id != null && $post->in_rt_of_user_id != null) {
                 $simplified_post_date = date('Y-m-d', strtotime($post->pub_date));
                 if ($simplified_date_yesterday == $simplified_post_date) {
                     $yesterdays_retweets[] = $post;
                 }
             }
         }
         $largest_added_audience = 0;
         $insight_retweeted_user = null;
         $insight_retweet = null;
         //Get top amplifier from yesterday
         foreach ($yesterdays_retweets as $post) {
             if (!isset($user_dao)) {
                 $user_dao = DAOFactory::getDAO('UserDAO');
             }
             $retweeted_user = $user_dao->getDetails($post->in_rt_of_user_id, $post->network);
             //if user exists and has fewer followers than instance user compare to current top
             if (isset($retweeted_user) && $retweeted_user->follower_count < $user->follower_count) {
                 $added_audience = $user->follower_count - $retweeted_user->follower_count;
                 if ($added_audience > $largest_added_audience) {
                     $largest_added_audience = $added_audience;
                     $insight_retweeted_user = $retweeted_user;
                     $insight_retweet = $post;
                 }
             }
         }
         //If there's a top amplifier from yesterday, insert the insight
         if ($largest_added_audience > 0 && isset($insight_retweeted_user) && isset($insight_retweet)) {
             $multiplier = floor($user->follower_count / $insight_retweeted_user->follower_count);
             if ($multiplier > 1 && TimeHelper::getTime() / 10 % 2 == 1) {
                 $largest_added_audience = number_format($multiplier) . 'x';
             } else {
                 $largest_added_audience = number_format($largest_added_audience);
             }
             $retweeted_username = $insight_retweeted_user->username;
             if ($instance->network == 'twitter') {
                 $retweeted_username = '@' . $retweeted_username;
             }
             $headline = $this->getVariableCopy(array($insight_retweeted_user->full_name . " can thank %username for %added more people seeing this %post", "%added more people saw %repostedee's %post thanks to %username", '%username boosted ' . $insight_retweeted_user->full_name . '\'s %post to %added more people'), array('repostedee' => $retweeted_username, 'added' => $largest_added_audience));
             $my_insight = new Insight();
             $my_insight->instance_id = $instance->id;
             $my_insight->slug = 'top_amplifier';
             //slug to label this insight's content
             $my_insight->date = date('Y-m-d');
             //date of the data this insight applies to
             $my_insight->headline = $headline;
             // or just set a string like 'Ohai';
             $my_insight->text = $insight_text;
             // or just set a strong like "Greetings humans";
             $my_insight->header_image = $insight_retweeted_user->avatar;
             $my_insight->emphasis = Insight::EMPHASIS_MED;
             $my_insight->filename = basename(__FILE__, ".php");
             $my_insight->setPosts(array($insight_retweet));
             $my_insight->setPeople(array($insight_retweeted_user));
             $this->insight_dao->insertInsight($my_insight);
         }
     }
     $this->logger->logInfo("Done generating insight", __METHOD__ . ',' . __LINE__);
 }
开发者ID:pepeleproso,项目名称:ThinkUp,代码行数:73,代码来源:amplifier.php

示例6: generateInsight

 public function generateInsight(Instance $instance, User $user, $last_week_of_posts, $number_days)
 {
     parent::generateInsight($instance, $user, $last_week_of_posts, $number_days);
     $this->logger->logInfo("Begin generating insight", __METHOD__ . ',' . __LINE__);
     if ($instance->network == 'twitter' && isset($user->joined)) {
         $firstrun = !$this->insight_dao->doesInsightExist($this->slug, $instance->id);
         if ($firstrun) {
             $joined_timestamp = strtotime($user->joined);
             $twitter_start = strtotime('July 15, 2006');
             $first_half_of_twitters_life = floor((TimeHelper::getTime() - $twitter_start) * 0.5);
             // $start = $twitter_start + $first_half_of_twitters_life;
             // echo "Second half of Twitter's lifetime currently starts on ".gmdate("Y-m-d", $start);
             $explainer = '';
             if ($joined_timestamp >= strtotime('March 20, 2006')) {
                 //Date's gotta be in range of Twitter's life
                 if ($joined_timestamp <= strtotime('July 15, 2006')) {
                     $headline = $this->username . ' was either a super-early Twitter user or an Odeo employee';
                     $explainer = "That's before Twitter even launched!";
                 } else {
                     if ($joined_timestamp < strtotime('March 5, 2007')) {
                         $headline = 'Before Barack Obama joined Twitter...';
                     } else {
                         if ($joined_timestamp < strtotime('August 23, 2007')) {
                             $headline = 'Before the hashtag, there was ' . $this->username;
                             $explainer = 'That\'s before the hashtag was even ' . ' <a href="https://twitter.com/chrismessina/status/223115412">' . 'invented</a>!';
                         } else {
                             if ($joined_timestamp < strtotime('March 26, 2008')) {
                                 $headline = 'Before Lady Gaga joined Twitter...';
                             } else {
                                 if ($joined_timestamp < strtotime('August 14, 2008')) {
                                     $headline = 'Before Ellen DeGeneres joined Twitter...';
                                 } else {
                                     if ($joined_timestamp < strtotime('January 16, 2009')) {
                                         $headline = 'Before Ashton Kutcher joined Twitter...';
                                     } else {
                                         if ($joined_timestamp < strtotime('January 23, 2009')) {
                                             $headline = 'Before Oprah Winfrey joined Twitter...';
                                         } else {
                                             if ($joined_timestamp < strtotime('February 20, 2009')) {
                                                 $headline = 'Before Katy Perry joined Twitter...';
                                             } else {
                                                 if ($joined_timestamp < strtotime('March 28, 2009')) {
                                                     $headline = 'Before Justin Bieber joined Twitter...';
                                                 } else {
                                                     if ($joined_timestamp < strtotime('July 2, 2009')) {
                                                         $headline = 'Before Tyra Banks joined Twitter...';
                                                         // At time of dev, 50% of Twitter's life ago was 2010-06-12
                                                         // As time passes, this date will get later
                                                     } else {
                                                         if ($joined_timestamp < $twitter_start + $first_half_of_twitters_life) {
                                                             $headline = $this->getVariableCopy(array('Somebody is an early bird!', 'Achievement unlocked: %username is old-school'));
                                                         } else {
                                                             if ($joined_timestamp < strtotime('September 8, 2011')) {
                                                                 $headline = 'One of the first 100 million Twitter users...';
                                                             } else {
                                                                 if ($joined_timestamp < strtotime('November 7, 2013')) {
                                                                     $headline = 'Pre-IPO!';
                                                                     $explainer = "That's even before Twitter's initial public offering on November 7, 2013.";
                                                                 } else {
                                                                     if ($joined_timestamp > strtotime('-6 months')) {
                                                                         $headline = 'Welcome to the party';
                                                                     } else {
                                                                         $headline = 'One in 200 million...';
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
                 $seconds_joined = TimeHelper::getTime() - $joined_timestamp;
                 $year_seconds = 365 * 24 * 60 * 60;
                 $month_seconds = 30 * 24 * 60 * 60;
                 $week_seconds = 7 * 24 * 60 * 60;
                 $years = floor($seconds_joined / $year_seconds);
                 $months = floor(($seconds_joined - $year_seconds * $years) / $month_seconds);
                 $weeks = floor(($seconds_joined - $year_seconds * $years - $month_seconds * $months) / $week_seconds);
                 $percentage = sprintf('%d%%', $seconds_joined / (TimeHelper::getTime() - $twitter_start) * 100);
                 if ($seconds_joined >= $year_seconds) {
                     $text = $this->username . " joined Twitter {$years} year" . ($years == 1 ? '' : 's');
                     if ($months) {
                         $text .= " and {$months} month" . ($months == 1 ? '' : 's');
                     }
                     $text .= " ago.";
                     if ($explainer == '') {
                         $explainer = "That's over {$percentage} of Twitter's lifetime!";
                     }
                 } else {
                     if ($seconds_joined >= $month_seconds) {
                         $text = $this->username . " joined Twitter {$months} month" . ($months == 1 ? '' : 's');
                         if ($weeks) {
                             $text .= " and {$weeks} week" . ($weeks == 1 ? '' : 's');
                         }
//.........这里部分代码省略.........
开发者ID:ngugijames,项目名称:ThinkUp,代码行数:101,代码来源:twitterage.php

示例7: getEmailMessageSubjectLine

 /**
  * Return email subject line based on the insight headline of a high or medium insight (converted to second person).
  * If neither exist, use generic headline text.
  * @param str $daily_or_weekly "Daily" or "Weekly"
  * @param arr $insights Insight objects
  * @return str
  */
 public function getEmailMessageSubjectLine($daily_or_weekly, $insights)
 {
     $num_insights = count($insights);
     $insight_headline_subject = null;
     // Use a HIGH emphasis insight headline as the email subject line
     foreach ($insights as $insight) {
         if ($insight->emphasis == Insight::EMPHASIS_HIGH) {
             $terms = new InsightTerms($insight->instance->network);
             $insight_headline_subject = $terms->swapInSecondPerson($insight->instance->network_username, strip_tags(html_entity_decode($insight->headline, ENT_NOQUOTES, 'UTF-8')));
             break;
         }
     }
     // If no HIGH insights existed, check medium
     if (!isset($insight_headline_subject)) {
         foreach ($insights as $insight) {
             if ($insight->emphasis == Insight::EMPHASIS_MED) {
                 $terms = new InsightTerms($insight->instance->network);
                 $insight_headline_subject = $terms->swapInSecondPerson($insight->instance->network_username, strip_tags(html_entity_decode($insight->headline, ENT_NOQUOTES, 'UTF-8')));
                 break;
             }
         }
     }
     // If neither high nor medium are available, use a generic headline
     if (!isset($insight_headline_subject)) {
         if ($daily_or_weekly == "Daily") {
             $subject_line_choices = array("ThinkUp has new insights for you! Take a look", "You have new insights from ThinkUp", "Your new insights from ThinkUp", "New ThinkUp insights are ready for you", "These are your latest ThinkUp insights", "A few new ThinkUp insights for you", "New ThinkUp insights are waiting for you", "ThinkUp: Today's insights", "These are your ThinkUp insights for " . date('l', $this->current_timestamp));
             if ($num_insights > 1) {
                 $subject_line_choices[] = "ThinkUp found %total insights for you today. Here's a look.";
                 $subject_line_choices[] = "You have %total new insights from ThinkUp";
             }
         } else {
             $subject_line_choices = array("This week was great! ThinkUp's got details", "How did you do online this week? Here are your ThinkUp insights", "Your ThinkUp insights this week", "New ThinkUp insights are ready for you", "This week's ThinkUp insights");
         }
         $rand_index = TimeHelper::getTime() % count($subject_line_choices);
         $subject = $subject_line_choices[$rand_index];
         $subject = str_replace('%total', number_format($num_insights), $subject);
     } else {
         $subject = $insight_headline_subject;
     }
     return $subject;
 }
开发者ID:pepeleproso,项目名称:ThinkUp,代码行数:48,代码来源:class.InsightsGeneratorPlugin.php

示例8: generateInsight

 public function generateInsight(Instance $instance, User $user, $last_week_of_posts, $number_days)
 {
     parent::generateInsight($instance, $user, $last_week_of_posts, $number_days);
     $this->logger->logInfo("Begin generating insight", __METHOD__ . ',' . __LINE__);
     if (self::shouldGenerateInsight('posts_on_this_day_popular_flashback', $instance)) {
         //Generate flashback post list
         $post_dao = DAOFactory::getDAO('PostDAO');
         $flashback_posts = $post_dao->getOnThisDayFlashbackPosts($instance->network_user_id, $instance->network, $this->insight_date);
         $posts = array();
         $most_popular_post = null;
         $most_responses = 0;
         $insight_text = '';
         if (isset($flashback_posts) && sizeof($flashback_posts) > 0) {
             foreach ($flashback_posts as $post) {
                 if ($post->network == 'instagram') {
                     $photo_dao = DAOFactory::getDAO('PhotoDAO');
                     $post = $photo_dao->getPhoto($post->post_id, 'instagram');
                 }
                 $total_responses = $post->reply_count_cache + $post->all_retweets + $post->favlike_count_cache;
                 if ($total_responses > 0 && $total_responses > $most_responses) {
                     $most_popular_post = $post;
                     $most_responses = $total_responses;
                 }
             }
             if (isset($most_popular_post)) {
                 $post_year = date(date('Y', strtotime($most_popular_post->pub_date)));
                 $current_year = date('Y');
                 $number_of_years_ago = $current_year - $post_year;
                 $plural = $number_of_years_ago > 1 ? 's' : '';
                 $time = strtotime("-" . $number_of_years_ago . " year", time());
                 $past_date = date('Y', $time);
                 $post_term = $most_popular_post->is_short_video ? 'video' : $this->terms->getNoun('post');
                 if (TimeHelper::getTime() % 2 == 0) {
                     if ($number_of_years_ago == 1) {
                         $headlines = array("A year ago today");
                     } else {
                         $headlines = array("%number_of_years_ago years ago today");
                     }
                     $insight_text = "On this day in " . $past_date . ", this was {$this->username}'s most popular " . $post_term . ".";
                 } else {
                     $headlines = array("On this day in " . $past_date);
                     $insight_text = "This was {$this->username}'s most popular " . $post_term . " <strong>{$number_of_years_ago} year{$plural} ago</strong>.";
                 }
                 $posts[] = $most_popular_post;
                 $my_insight = new Insight();
                 $my_insight->instance_id = $instance->id;
                 $my_insight->slug = 'posts_on_this_day_popular_flashback';
                 //slug to label this insight's content
                 $my_insight->date = $this->insight_date;
                 //date of the data this insight applies to
                 $my_insight->headline = $this->getVariableCopy($headlines, array('number_of_years_ago' => $number_of_years_ago));
                 $my_insight->text = $insight_text;
                 $my_insight->emphasis = Insight::EMPHASIS_LOW;
                 $my_insight->filename = basename(__FILE__, ".php");
                 $my_insight->setPosts($posts);
                 $this->insight_dao->insertInsight($my_insight);
             }
         }
     }
     $this->logger->logInfo("Done generating insight", __METHOD__ . ',' . __LINE__);
 }
开发者ID:ngugijames,项目名称:ThinkUp,代码行数:61,代码来源:flashbacks.php

示例9: generateInsight

 public function generateInsight(Instance $instance, User $user, $last_week_of_posts, $number_days)
 {
     parent::generateInsight($instance, $user, $last_week_of_posts, $number_days);
     $this->logger->logInfo("Begin generating insight", __METHOD__ . ',' . __LINE__);
     $joined_ts = strtotime($user->joined, TimeHelper::getTime());
     $viable = $joined_ts > strtotime('2000-01-1');
     $joined_day = date('m-d', $joined_ts);
     $is_twitter = $instance->network == 'twitter';
     if ($viable && $is_twitter && date('m-d', TimeHelper::getTime()) == $joined_day) {
         $insight = new Insight();
         $insight->slug = "twitterbirthday";
         $insight->instance_id = $instance->id;
         $insight->date = $this->insight_date;
         $insight->emphasis = Insight::EMPHASIS_HIGH;
         $insight->filename = basename(__FILE__, ".php");
         $follow_dao = DAOFactory::getDAO('FollowDAO');
         $all_friends = $follow_dao->countTotalFriends($instance->network_user_id, $instance->network);
         $late_friends = $follow_dao->countTotalFriendsJoinedAfterDate($instance->network_user_id, $instance->network, $user->joined);
         $years = date('Y', TimeHelper::getTime()) - date('Y', $joined_ts);
         $ordinal_age = $this->terms->getOrdinalAdverb($years);
         $insight->headline = "A Very Happy {$ordinal_age} Twitter Birthday!";
         $insight->text = $this->username . " joined Twitter {$years} year" . ($years == 1 ? '' : 's') . " ago today";
         if ($all_friends > 0 && $late_friends > 0) {
             $percent_before = floor($late_friends / $all_friends * 100);
             $insight->text .= ", " . "before " . $percent_before . "% of the people " . $this->username . " follows did.";
         } else {
             $insight->text .= ".";
         }
         $week_seconds = 60 * 60 * 24 * 7;
         $followers = $follow_dao->getFriendsJoinedInTimeFrame($user->user_id, $instance->network, date('Y-m-d', $joined_ts - $week_seconds), date('Y-m-d', $joined_ts + $week_seconds));
         $just_before = null;
         $just_after = null;
         $last_user = null;
         foreach ($followers as $follower) {
             if (strtotime($follower->joined, TimeHelper::getTime()) > $joined_ts) {
                 $just_after = $follower;
                 $just_before = $last_user;
                 break;
             }
             $last_user = $follower;
         }
         if (!$just_after && $last_user) {
             $just_before = $last_user;
         }
         $bonus_text = array();
         $people = array();
         if ($just_before) {
             $time = TimeHelper::secondsToGeneralTime(abs($joined_ts - strtotime($just_before->joined, TimeHelper::getTime())));
             $bonus_text[] = "@" . $just_before->username . " just beat " . $this->username . ", joining {$time} earlier";
             $people[] = $just_before;
         }
         if ($just_after) {
             $time = TimeHelper::secondsToGeneralTime(abs($joined_ts - strtotime($just_after->joined, TimeHelper::getTime())));
             $bonus_text[] = "@" . $just_after->username . " was a little slower, getting on Twitter {$time} later";
             $people[] = $just_after;
         }
         if (count($bonus_text)) {
             $insight->text .= " " . join(', and ', $bonus_text) . ".";
             $insight->setPeople($people);
         }
         $res = $this->insight_dao->insertInsight($insight);
     }
     $this->logger->logInfo("Done generating insight", __METHOD__ . ',' . __LINE__);
 }
开发者ID:ngugijames,项目名称:ThinkUp,代码行数:64,代码来源:twitterbirthday.php

示例10: generateInsight

 public function generateInsight(Instance $instance, User $user, $last_week_of_posts, $number_days)
 {
     parent::generateInsight($instance, $user, $last_week_of_posts, $number_days);
     $this->logger->logInfo("Begin generating insight", __METHOD__ . ',' . __LINE__);
     $filename = basename(__FILE__, ".php");
     $last_insight = $this->insight_dao->getMostRecentInsight('new_group_memberships', $instance->id);
     $last_insight_ts = 0;
     if ($last_insight) {
         $last_insight_ts = strtotime($last_insight->time_generated);
     }
     if ($last_insight_ts < time() - 60 * 60 * 24 * 7) {
         //get new group memberships per day
         $group_membership_dao = DAOFactory::getDAO('GroupMemberDAO');
         $new_groups = $group_membership_dao->getNewMembershipsSince($instance->network, $instance->network_user_id, date('Y-m-d h:i', $last_insight_ts));
         if (sizeof($new_groups) > 0) {
             // Clean up non-unique names, which just looks weird/bad
             $unique_new_groups = array();
             $seen_groups = array();
             foreach ($new_groups as $group) {
                 $group->setMetadata();
                 if (!in_array($group->keyword, $seen_groups)) {
                     $seen_groups[] = $group->keyword;
                     $unique_new_groups[] = $group;
                 }
             }
             $new_groups = $unique_new_groups;
             $count_history_dao = DAOFactory::getDAO('CountHistoryDAO');
             $list_membership_count_history_by_day = $count_history_dao->getHistory($instance->network_user_id, $instance->network, 'DAY', 15, null, 'group_memberships');
             if (sizeof($new_groups) > 1) {
                 $group_names = array();
                 $group_urls = array();
                 foreach ($new_groups as $group) {
                     $group_names[] = '&ldquo;' . str_replace('-', ' ', $group->keyword) . '&rdquo;';
                     $group_urls[] = '<a href="' . $group->url . '">' . $group->keyword . '</a>';
                 }
                 $headline_groups = array_slice($group_names, 0, 4);
                 $number = count($headline_groups);
                 foreach ($headline_groups as $i => &$name) {
                     if ($number == 2) {
                         if ($i == 1) {
                             $name = 'and ' . $name;
                         }
                     } else {
                         $name = $i == $number - 1 ? 'and ' . $name : $name . ',';
                     }
                 }
                 $headline = "{$number} new lists for {$this->username}'s collection";
                 if (count($group_urls) > 4) {
                     $group_name_list = join(', ', array_slice($group_urls, 0, 4)) . ', and ' . (count($group_urls) - 4) . ' more';
                 } else {
                     if (count($group_urls) > 2) {
                         $group_urls[count($group_urls) - 1] = 'and ' . $group_urls[count($group_urls) - 1];
                         $group_name_list = join(', ', $group_urls);
                     } else {
                         $group_name_list = join(' and ', $group_urls);
                     }
                 }
                 $insight_text = "{$this->username} is on " . sizeof($new_groups) . " new lists: " . $group_name_list;
                 if (is_array($list_membership_count_history_by_day['history']) && end($list_membership_count_history_by_day['history']) > sizeof($new_groups)) {
                     $total_lists = end($list_membership_count_history_by_day['history']) + sizeof($new_groups);
                     $insight_text .= ", bringing the total to <strong>" . number_format($total_lists) . " lists</strong>.";
                 } else {
                     $insight_text .= ".";
                 }
             } else {
                 if (TimeHelper::getTime() % 2 == 1 && $instance->network == 'twitter') {
                     $headline = "A new list for {$this->username}'s collection";
                 } else {
                     $headline = "A new list called &ldquo;" . str_replace('-', ' ', $new_groups[0]->keyword) . "&rdquo;";
                 }
                 $insight_text = "{$this->username} got added to a new list, " . '<a href="' . $new_groups[0]->url . '">' . $new_groups[0]->keyword . "</a>";
                 if (end($list_membership_count_history_by_day['history']) > sizeof($new_groups)) {
                     $total_lists = end($list_membership_count_history_by_day['history']) + sizeof($new_groups);
                     $insight_text .= ", bringing the total to <strong>" . number_format($total_lists) . " lists</strong>";
                 }
                 $insight_text .= ".";
             }
             $insight = new Insight();
             $insight->slug = 'new_group_memberships';
             $insight->instance_id = $instance->id;
             $insight->date = $this->insight_date;
             $insight->filename = basename(__FILE__, ".php");
             $insight->emphasis = Insight::EMPHASIS_LOW;
             $insight->headline = $headline;
             $insight->text = $insight_text;
             if (count($list_membership_count_history_by_day['history']) >= 3) {
                 $insight->related_data = serialize($list_membership_count_history_by_day);
             }
             $this->insight_dao->insertInsight($insight);
         }
     }
     $this->logger->logInfo("Done generating insight", __METHOD__ . ',' . __LINE__);
 }
开发者ID:ngugijames,项目名称:ThinkUp,代码行数:93,代码来源:listmembership.php


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