1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
<?php
/**
* ArchivePortlet class file
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link http://www.pradosoft.com/
* @copyright Copyright © 2006 PradoSoft
* @license http://www.pradosoft.com/license/
* @version $Id$
*/
Prado::using('Application.Portlets.Portlet');
/**
* ArchivePortlet class
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link http://www.pradosoft.com/
* @copyright Copyright © 2006 PradoSoft
* @license http://www.pradosoft.com/license/
*/
class ArchivePortlet extends Portlet
{
private function makeMonthTime($timestamp)
{
$date=getdate($timestamp);
return mktime(0,0,0,$date['mon'],1,$date['year']);
}
public function onLoad($param)
{
$currentTime=time();
$startTime=$this->Application->getModule('data')->queryEarliestPostTime();
if(empty($startTime)) // if no posts
$startTime=$currentTime;
// obtain the timestamp for the initial month
$date=getdate($startTime);
$startTime=mktime(0,0,0,$date['mon'],1,$date['year']);
$date=getdate($currentTime);
$month=$date['mon'];
$year=$date['year'];
$timestamps=array();
while(true)
{
if(($timestamp=mktime(0,0,0,$month,1,$year))<$startTime)
break;
$timestamps[]=$timestamp;
if(--$month===0)
{
$month=12;
$year--;
}
}
$this->MonthList->DataSource=$timestamps;
$this->MonthList->dataBind();
}
}
|