From 30348a1bc0b52c5b4cbfd2843214c53c9278111c Mon Sep 17 00:00:00 2001
From: rabuzarus <>
Date: Tue, 19 May 2015 01:03:08 +0200
Subject: [PATCH] port of red matrix archive-widget
---
include/items.php | 51 +++++++++++++++++++++++---
view/templates/posted_date_widget.tpl | 52 +++++++++++++++++++++++----
view/theme/duepuntozero/style.css | 4 +--
view/theme/frost/style.css | 4 +--
view/theme/quattro/dark/style.css | 3 ++
view/theme/quattro/green/style.css | 3 ++
view/theme/quattro/lilac/style.css | 3 ++
view/theme/smoothly/style.css | 9 ++---
view/theme/vier/style.css | 6 +++-
9 files changed, 113 insertions(+), 22 deletions(-)
diff --git a/include/items.php b/include/items.php
index 5a0aa9ed51..85d02ab60d 100644
--- a/include/items.php
+++ b/include/items.php
@@ -4858,6 +4858,37 @@ function first_post_date($uid,$wall = false) {
return false;
}
+/* modified posted_dates() {below} to arrange the list in years */
+function list_post_dates($uid, $wall) {
+ $dnow = datetime_convert('',date_default_timezone_get(),'now','Y-m-d');
+
+ $dthen = first_post_date($uid, $wall);
+ if(! $dthen)
+ return array();
+
+ // Set the start and end date to the beginning of the month
+ $dnow = substr($dnow,0,8).'01';
+ $dthen = substr($dthen,0,8).'01';
+
+ $ret = array();
+
+ // Starting with the current month, get the first and last days of every
+ // month down to and including the month of the first post
+ while(substr($dnow, 0, 7) >= substr($dthen, 0, 7)) {
+ $dyear = intval(substr($dnow,0,4));
+ $dstart = substr($dnow,0,8) . '01';
+ $dend = substr($dnow,0,8) . get_dim(intval($dnow),intval(substr($dnow,5)));
+ $start_month = datetime_convert('','',$dstart,'Y-m-d');
+ $end_month = datetime_convert('','',$dend,'Y-m-d');
+ $str = day_translate(datetime_convert('','',$dnow,'F'));
+ if(! $ret[$dyear])
+ $ret[$dyear] = array();
+ $ret[$dyear][] = array($str,$end_month,$start_month);
+ $dnow = datetime_convert('','',$dnow . ' -1 month', 'Y-m-d');
+ }
+ return $ret;
+}
+
function posted_dates($uid,$wall) {
$dnow = datetime_convert('',date_default_timezone_get(),'now','Y-m-d');
@@ -4895,16 +4926,28 @@ function posted_date_widget($url,$uid,$wall) {
/* if($wall && intval(get_pconfig($uid,'system','no_wall_archive_widget')))
return $o;*/
-
- $ret = posted_dates($uid,$wall);
+
+ $visible_years = get_pconfig($uid,'system','archive_visible_years');
+ if(! $visible_years)
+ $visible_years = 5;
+
+ $ret = list_post_dates($uid,$wall);
+
if(! count($ret))
return $o;
+ $cutoff_year = intval(datetime_convert('',date_default_timezone_get(),'now','Y')) - $visible_years;
+ $cutoff = ((array_key_exists($cutoff_year,$ret))? true : false);
+
$o = replace_macros(get_markup_template('posted_date_widget.tpl'),array(
'$title' => t('Archives'),
- '$size' => ((count($ret) > 6) ? 6 : count($ret)),
+ '$size' => $visible_years,
+ '$cutoff_year' => $cutoff_year,
+ '$cutoff' => $cutoff,
'$url' => $url,
- '$dates' => $ret
+ '$dates' => $ret,
+ '$showmore' => t('show more')
+
));
return $o;
}
diff --git a/view/templates/posted_date_widget.tpl b/view/templates/posted_date_widget.tpl
index 009fa60a65..878b1d3605 100644
--- a/view/templates/posted_date_widget.tpl
+++ b/view/templates/posted_date_widget.tpl
@@ -1,9 +1,47 @@
+
+
+
+
+
+ {{foreach $dates as $y => $arr}}
+ {{if $y == $cutoff_year}}
+
+
+
+ {{/if}}
+ -
+ {{$y}}
+
+
+
+ {{foreach $arr as $d}}
+ -
+ {{$d.0}}
+
+ {{/foreach}}
+
+
+ {{/foreach}}
+ {{if $cutoff}}
+
+
+ {{/if}}
+
+
\ No newline at end of file
diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css
index 1b20042a5d..024e63f5f6 100644
--- a/view/theme/duepuntozero/style.css
+++ b/view/theme/duepuntozero/style.css
@@ -2026,11 +2026,11 @@ a.mail-list-link {
margin-top: 10px;
}
-.nets-ul, .fileas-ul, .categories-ul {
+.nets-ul, .fileas-ul, .categories-ul, .datebrowse-ul {
list-style-type: none;
}
-.nets-ul li, .fileas-ul li, .categories-ul li {
+.nets-ul li, .fileas-ul li, .categories-ul li, .datebrowse-ul li {
margin-top: 10px;
}
diff --git a/view/theme/frost/style.css b/view/theme/frost/style.css
index aed0dc0ab1..74ae6c90aa 100644
--- a/view/theme/frost/style.css
+++ b/view/theme/frost/style.css
@@ -2327,11 +2327,11 @@ a.mail-list-link {
margin-top: 10px;
}
-.nets-ul, .fileas-ul, .categories-ul {
+.nets-ul, .fileas-ul, .categories-ul, .datebrowse-ul {
list-style-type: none;
}
-.nets-ul li, .fileas-ul li, .categories-ul li {
+.nets-ul li, .fileas-ul li, .categories-ul li, .datebrowse-ul li {
margin-top: 10px;
}
diff --git a/view/theme/quattro/dark/style.css b/view/theme/quattro/dark/style.css
index 5f4b005c8e..a1555565d2 100644
--- a/view/theme/quattro/dark/style.css
+++ b/view/theme/quattro/dark/style.css
@@ -840,6 +840,9 @@ aside #dfrn-request-link:hover {
aside #profiles-menu {
width: 20em;
}
+aside .posted-date-selector-months {
+ margin-left: 10px;
+}
#contact-block {
overflow: auto;
height: auto;
diff --git a/view/theme/quattro/green/style.css b/view/theme/quattro/green/style.css
index c2826a3c0c..ef6b16aad3 100644
--- a/view/theme/quattro/green/style.css
+++ b/view/theme/quattro/green/style.css
@@ -840,6 +840,9 @@ aside #dfrn-request-link:hover {
aside #profiles-menu {
width: 20em;
}
+aside .posted-date-selector-months {
+ margin-left: 10px;
+}
#contact-block {
overflow: auto;
height: auto;
diff --git a/view/theme/quattro/lilac/style.css b/view/theme/quattro/lilac/style.css
index 28c5cd47a9..2d4f7cec6c 100644
--- a/view/theme/quattro/lilac/style.css
+++ b/view/theme/quattro/lilac/style.css
@@ -840,6 +840,9 @@ aside #dfrn-request-link:hover {
aside #profiles-menu {
width: 20em;
}
+aside .posted-date-selector-months {
+ margin-left: 10px;
+}
#contact-block {
overflow: auto;
height: auto;
diff --git a/view/theme/smoothly/style.css b/view/theme/smoothly/style.css
index d9dba9818c..46d8902aeb 100644
--- a/view/theme/smoothly/style.css
+++ b/view/theme/smoothly/style.css
@@ -945,13 +945,14 @@ ul .sidebar-group-li .icon {
width: 12px;
}
-.nets-ul, .fileas-ul, .categories-ul {
+.nets-ul, .fileas-ul, .categories-ul, .datebrowse-ul {
list-style-type: none;
}
.nets-ul li,
.fileas-ul li,
-.categories-ul li {
+.categories-ul li,
+.datebrowse-link {
}
.nets-link {
@@ -4605,10 +4606,6 @@ div #datebrowse-sidebar.widget {
#id_npassword {}
-#posted-date-selector {
- margin-left: 33px;
-}
-
#hide-comments-page-widget {
margin-left: 40px;
}
diff --git a/view/theme/vier/style.css b/view/theme/vier/style.css
index 779a194dd8..e75934c8c5 100644
--- a/view/theme/vier/style.css
+++ b/view/theme/vier/style.css
@@ -427,12 +427,16 @@ a.sidebar-group-element {
color: #737373;
}
-#follow-sidebar form, #peoplefind-sidebar form, #netsearch-box form, #posted-date-selector {
+#follow-sidebar form, #peoplefind-sidebar form, #netsearch-box form {
margin-left: 10px;
margin-top: 3px;
margin-bottom: 3px;
}
+.posted-date-selector-months {
+ margin-left: 10px;
+}
+
#sidebar-ungrouped, .side-link {
padding-top: 5px;
}
--
2.39.5