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');
/* 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;
}
+<script>
+
+function showHideDates() {
+ if( $('#posted-date-dropdown').is(':visible')) {
+ $('#posted-date-dropdown').hide();
+ $('#posted-date-collapse').html(window.showMore);
+
+ }
+ else {
+ $('#posted-date-dropdown').show();
+ $('#posted-date-collapse').html(window.showFewer);
+ }
+ }
+</script>
+
+
<div id="datebrowse-sidebar" class="widget">
<h3>{{$title}}</h3>
-<script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script>
-<select id="posted-date-selector" name="posted-date-select" onchange="dateSubmit($(this).val());" size="{{$size}}">
-{{foreach $dates as $d}}
-<option value="{{$url}}/{{$d.1}}/{{$d.2}}" >{{$d.0}}</option>
-{{/foreach}}
-</select>
-</div>
+ <script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script>
+ <ul id="posted-date-selector" class="datebrowse-ul">
+ {{foreach $dates as $y => $arr}}
+ {{if $y == $cutoff_year}}
+ </ul>
+ <div id="posted-date-dropdown" style="display: none;">
+ <ul id="posted-date-selector-drop" class="datebrowse-ul">
+ {{/if}}
+ <li id="posted-date-selector-year-{{$y}}" class="tool">
+ <a class="datebrowse-link" href="#" onclick="openClose('posted-date-selector-{{$y}}'); return false;">{{$y}}</a>
+ </li>
+ <div id="posted-date-selector-{{$y}}" style="display: none;">
+ <ul class="posted-date-selector-months datebrowse-ul">
+ {{foreach $arr as $d}}
+ <li class="tool">
+ <a class="datebrowse-link" href="#" onclick="dateSubmit('{{$url}}/{{$d.1}}/{{$d.2}}'); return false;">{{$d.0}}</a></li>
+ </li>
+ {{/foreach}}
+ </ul>
+ </div>
+ {{/foreach}}
+ {{if $cutoff}}
+ </div>
+ <ul class="datebrowse-ul">
+ <li onclick="showHideDates(); return false;" id="posted-date-collapse" class="fakelink tool">{{$showmore}}</li>
+ </ul>
+ {{/if}}
+ </ul>
+</div>
\ No newline at end of file