viewgit/inc/functions.php:22 Function utf8_encode() is deprecated [8192]
diff --git a/src/library/media_jobs/FeedsUpdateJob.php b/src/library/media_jobs/FeedsUpdateJob.php index 8e78dcaa0..d80e3f00a 100644 --- a/src/library/media_jobs/FeedsUpdateJob.php +++ b/src/library/media_jobs/FeedsUpdateJob.php @@ -862,18 +862,19 @@ class FeedsUpdateJob extends MediaJob { $time = time(); $update_intervals = [ - C\ONE_HOUR => [24, C\ONE_DAY], - C\ONE_DAY => [7, C\ONE_WEEK], - C\ONE_WEEK => [4, 4 * C\ONE_WEEK], + C\ONE_HOUR => C\ONE_DAY, + C\ONE_DAY => C\ONE_WEEK, + C\ONE_WEEK => C\ONE_MONTH, + C\ONE_MONTH => C\ONE_YEAR ]; - $num_timestamp_sql = - "SELECT COUNT(DISTINCT TIMESTAMP) AS NUM_TIMESTAMPS " . - "FROM TRENDING_TERM WHERE UPDATE_PERIOD = ? AND TIMESTAMP > ? ". - "AND LANGUAGE = ? AND CATEGORY = ?"; - $most_recent_sql = - "SELECT MAX(TIMESTAMP) AS MAX_TIMESTAMP " . + $recent_interval_timestamp_sql = + "SELECT TIMESTAMP " . "FROM TRENDING_TERM WHERE UPDATE_PERIOD = ? AND LANGUAGE = ? ". - "AND CATEGORY = ?"; + "AND CATEGORY = ? AND TIMESTAMP > ? " . + $db->limitOffset(1); + $reset_interval_sql = "DELETE FROM TRENDING_TERM WHERE " . + "UPDATE_PERIOD = ? AND LANGUAGE = ? AND ". + "CATEGORY = ? AND TIMESTAMP > ? "; $interval_sql = "SELECT TERM, SUM(OCCURRENCES) AS OCCURRENCES ". "FROM TRENDING_TERM WHERE UPDATE_PERIOD = ? AND " . "TIMESTAMP > ? AND LANGUAGE = ? AND CATEGORY = ? GROUP BY TERM ". @@ -888,47 +889,39 @@ class FeedsUpdateJob extends MediaJob L\crawlLog("Updating Language $lang trending terms"); foreach ($category_term_occurrences as $category => $term_occurrences) { - foreach ($update_intervals as $sub_interval => $interval_info) { - list($num_sub_intervals, $interval) = $interval_info; - $interval_start = $time - $interval - $sub_interval; - if (!($result = $db->execute($num_timestamp_sql, - [$sub_interval, $interval_start, $lang, $category]))) { - continue; - } - $row = $db->fetchArray($result); - if ($row['NUM_TIMESTAMPS'] < $num_sub_intervals) { - continue; - } - if ($result = $db->execute($most_recent_sql, - [$interval, $lang, $category])) { - $row = $db->fetchArray($result); - if ($time - $row['MAX_TIMESTAMP'] < $interval) { - continue; - } - } - $result = $db->execute($interval_sql, - [$sub_interval, $interval_start, $lang, $category]); - while ($interval_info = $db->fetchArray($result)) { - $db->execute($insert_sql, [$interval_info['TERM'], - $interval_info['OCCURRENCES'], $interval, $time, - $lang, $category]); - } - $db->execute($cull_sql, [$sub_interval, $interval_start, - $lang, $category]); - } /* Sort the word occurrence list by occurrence and insert into database. */ $num_inserted = 0; arsort($term_occurrences); - foreach($term_occurrences as $term => $occurrences) { + foreach ($term_occurrences as $term => $occurrences) { $db->execute($insert_sql, [$term, $occurrences, C\ONE_HOUR, $time, $lang, $category]); $num_inserted++; - if($num_inserted >= C\NUM_TRENDING) { + if ($num_inserted >= C\NUM_TRENDING) { break; } } + foreach ($update_intervals as $sub_interval => $interval) { + $interval_start = $time - $interval; + $recent_timestamp = $time; + if ($result = $db->execute($recent_interval_timestamp_sql, + [$interval, $lang, $category, $interval_start])) { + $row = $db->fetchArray($result); + $recent_timestamp = $row['TIMESTAMP']; + } + $db->execute($reset_interval_sql, + [$interval, $lang, $category, $interval_start]); + $result = $db->execute($interval_sql, + [$sub_interval, $interval_start, $lang, $category]); + while ($interval_info = $db->fetchArray($result)) { + $db->execute($insert_sql, [$interval_info['TERM'], + $interval_info['OCCURRENCES'], $interval, $time, + $lang, $category]); + } + $db->execute($cull_sql, [$sub_interval, $interval_start, + $lang, $category]); + } } // make sure to cull for last interval $db->execute($cull_sql, [$interval, $time - $interval, diff --git a/src/locale/ar/configure.ini b/src/locale/ar/configure.ini index 103143076..db53aa0f2 100755 --- a/src/locale/ar/configure.ini +++ b/src/locale/ar/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/bn/configure.ini b/src/locale/bn/configure.ini index 3109455ef..206fb8b0c 100755 --- a/src/locale/bn/configure.ini +++ b/src/locale/bn/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/de/configure.ini b/src/locale/de/configure.ini index c34556ec9..5bb6b86e5 100755 --- a/src/locale/de/configure.ini +++ b/src/locale/de/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/en_US/configure.ini b/src/locale/en_US/configure.ini index 66a23f0f6..ac6c65f49 100644 --- a/src/locale/en_US/configure.ini +++ b/src/locale/en_US/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "Top Hourly" trending_element_daily = "Top Daily" trending_element_weekly = "Top Weekly" trending_element_monthly = "Top Monthly" +trending_element_yearly = "Yearly" trending_element_trending = "Trending..." trending_element_trending_terms = "Trending %s" trending_element_term = "Term" diff --git a/src/locale/es/configure.ini b/src/locale/es/configure.ini index 1e9f2d5fe..8ae8f3e69 100755 --- a/src/locale/es/configure.ini +++ b/src/locale/es/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/fa/configure.ini b/src/locale/fa/configure.ini index 45b6a26fb..9846569aa 100755 --- a/src/locale/fa/configure.ini +++ b/src/locale/fa/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/fr_FR/configure.ini b/src/locale/fr_FR/configure.ini index 24bc60b50..e083011f7 100755 --- a/src/locale/fr_FR/configure.ini +++ b/src/locale/fr_FR/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/he/configure.ini b/src/locale/he/configure.ini index a34ba640e..0d7853e02 100755 --- a/src/locale/he/configure.ini +++ b/src/locale/he/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/hi/configure.ini b/src/locale/hi/configure.ini index 97e807742..ede96bcb8 100755 --- a/src/locale/hi/configure.ini +++ b/src/locale/hi/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/in_ID/configure.ini b/src/locale/in_ID/configure.ini index afeb10317..5a4b5839b 100755 --- a/src/locale/in_ID/configure.ini +++ b/src/locale/in_ID/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/it/configure.ini b/src/locale/it/configure.ini index 35bf8bcc9..f3eec89ac 100755 --- a/src/locale/it/configure.ini +++ b/src/locale/it/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/ja/configure.ini b/src/locale/ja/configure.ini index 83fbc7643..02691a34f 100755 --- a/src/locale/ja/configure.ini +++ b/src/locale/ja/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/kn/configure.ini b/src/locale/kn/configure.ini index c7c178ca8..cb30ad0a4 100755 --- a/src/locale/kn/configure.ini +++ b/src/locale/kn/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/ko/configure.ini b/src/locale/ko/configure.ini index 1505c779f..926cd7b09 100755 --- a/src/locale/ko/configure.ini +++ b/src/locale/ko/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/nl/configure.ini b/src/locale/nl/configure.ini index 867e030bd..eac9ed0e7 100644 --- a/src/locale/nl/configure.ini +++ b/src/locale/nl/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/pl/configure.ini b/src/locale/pl/configure.ini index 25450a5bf..bfee834e4 100755 --- a/src/locale/pl/configure.ini +++ b/src/locale/pl/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/pt/configure.ini b/src/locale/pt/configure.ini index 45fe0b397..0ad350841 100755 --- a/src/locale/pt/configure.ini +++ b/src/locale/pt/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/ru/configure.ini b/src/locale/ru/configure.ini index e622b3fa9..01f712fdb 100755 --- a/src/locale/ru/configure.ini +++ b/src/locale/ru/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/te/configure.ini b/src/locale/te/configure.ini index d2944f5d7..b8255f528 100644 --- a/src/locale/te/configure.ini +++ b/src/locale/te/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/th/configure.ini b/src/locale/th/configure.ini index c8fde834b..3ce8417af 100755 --- a/src/locale/th/configure.ini +++ b/src/locale/th/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/tr/configure.ini b/src/locale/tr/configure.ini index ede951c10..7424c770f 100755 --- a/src/locale/tr/configure.ini +++ b/src/locale/tr/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/vi_VN/configure.ini b/src/locale/vi_VN/configure.ini index 2cdd461ef..6b437acf3 100755 --- a/src/locale/vi_VN/configure.ini +++ b/src/locale/vi_VN/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/locale/zh_CN/configure.ini b/src/locale/zh_CN/configure.ini index d5840bd8d..b7ad8aecb 100755 --- a/src/locale/zh_CN/configure.ini +++ b/src/locale/zh_CN/configure.ini @@ -1494,6 +1494,7 @@ trending_element_hourly = "" trending_element_daily = "" trending_element_weekly = "" trending_element_monthly = "" +trending_element_yearly = "" trending_element_trending = "" trending_element_trending_terms = "" trending_element_term = "" diff --git a/src/models/TrendingModel.php b/src/models/TrendingModel.php index f6737ed0d..fd2832af1 100644 --- a/src/models/TrendingModel.php +++ b/src/models/TrendingModel.php @@ -70,7 +70,8 @@ class TrendingModel extends Model implements MediaConstants { $db = $this->db; if (empty($update_periods)) { - $update_periods = [C\ONE_HOUR, C\ONE_DAY, C\ONE_WEEK]; + $update_periods = [C\ONE_HOUR, C\ONE_DAY, C\ONE_WEEK, + C\ONE_MONTH, C\ONE_YEAR]; } $sql = "SELECT TERM, OCCURRENCES FROM TRENDING_TERM ". "WHERE LANGUAGE= ? AND UPDATE_PERIOD = ? AND CATEGORY =? AND ". @@ -170,8 +171,12 @@ class TrendingModel extends Model implements MediaConstants { $db = $this->db; $subintervals = [ C\ONE_HOUR => C\ONE_MINUTE, - C\ONE_DAY => C\ONE_HOUR, C\ONE_WEEK => C\ONE_DAY]; - $dates = [ C\ONE_HOUR => 'i', C\ONE_DAY => 'H', C\ONE_WEEK => 'D']; + C\ONE_DAY => C\ONE_HOUR, C\ONE_WEEK => C\ONE_DAY, + C\ONE_MONTH => C\ONE_WEEK, C\ONE_YEAR => C\ONE_MONTH + ]; + $dates = [ C\ONE_HOUR => 'i', C\ONE_DAY => 'H', C\ONE_WEEK => 'D', + C\ONE_MONTH => 'W', C\ONE_YEAR => 'm' + ]; $sub_period = (empty($subintervals[$period])) ? C\ONE_HOUR : $subintervals[$period]; $num_results = (empty($subintervals[$period])) ? diff --git a/src/views/elements/TrendingElement.php b/src/views/elements/TrendingElement.php index f2f0402fd..81f216a54 100644 --- a/src/views/elements/TrendingElement.php +++ b/src/views/elements/TrendingElement.php @@ -51,7 +51,7 @@ class TrendingElement extends Element ($data['CONTAINER_LABEL'] == 'center' && empty($data['RANDOM_TRENDS']))) { if (empty($data['CHART_DATA'])) { - $this->renderHourlyDailyWeekly($data); + $this->renderTrendingPeriods($data); } else { $this->renderTermChart($data); } @@ -64,14 +64,15 @@ class TrendingElement extends Element * * @param array $data contains stats to draw */ - public function renderHourlyDailyWeekly($data) + public function renderTrendingPeriods($data) { $logged_in = isset($data["ADMIN"]) && $data["ADMIN"]; $date_map = [ C\ONE_HOUR => tl('trending_element_hourly'), C\ONE_DAY => tl('trending_element_daily'), C\ONE_WEEK => tl('trending_element_weekly'), - 4 * C\ONE_WEEK => tl('trending_element_monthly'), + C\ONE_MONTH => tl('trending_element_monthly'), + C\ONE_YEAR => tl('trending_element_yearly'), ]; $token = ($logged_in) ? $data[C\CSRF_TOKEN] : ""; $token_string_amp = ($logged_in) ?