Skip to content

Commit

Permalink
adding a method for building date display markup
Browse files Browse the repository at this point in the history
  • Loading branch information
dogmatic69 committed Oct 4, 2012
1 parent 1a52702 commit b16c2f3
Show file tree
Hide file tree
Showing 2 changed files with 155 additions and 0 deletions.
119 changes: 119 additions & 0 deletions Core/Libs/Test/Case/View/Helper/InfinitasHelperTest.php
Expand Up @@ -231,4 +231,123 @@ public function massActionCheckBoxDataProvider() {
);
}

/**
* @brief test date display
*
* @param type $data
* @param type $expected
*
* @dataProvider dateDataProvider
*/
public function testDate($data, $expected) {
if(isset($data['method'])) {
$result = $this->Infinitas->date($data['date'], $data['method']);
} else {
$result = $this->Infinitas->date($data['date']);
}
$this->assertTags($result, $expected);
}

public function dateDataProvider() {
App::uses('CakeTime', 'Utility');
$date = date('Y-m-d H:i:s');
return array(
'simple' => array(
array('date' => $date),
array(
array('div' => array(
'class' => 'date'
)),
array('span' => array(
'class' => 'niceShort'
)),
CakeTime::niceShort($date),
'/span',
array('span' => array(
'class' => 'full'
)),
$date,
'/span',
'/div'
)
),
'custom' => array(
array('date' => $date, 'method' => 'nice'),
array(
array('div' => array(
'class' => 'date'
)),
array('span' => array(
'class' => 'nice'
)),
CakeTime::nice($date),
'/span',
array('span' => array(
'class' => 'full'
)),
$date,
'/span',
'/div'
)
),
'modified' => array(
array('date' => array('modified' => $date), 'method' => 'nice'),
array(
array('div' => array(
'class' => 'date'
)),
array('span' => array(
'class' => 'nice'
)),
CakeTime::nice($date),
'/span',
array('span' => array(
'class' => 'full'
)),
$date,
'/span',
'/div'
)
),
'created' => array(
array('date' => array('created' => $date), 'method' => 'nice'),
array(
array('div' => array(
'class' => 'date'
)),
array('span' => array(
'class' => 'nice'
)),
CakeTime::nice($date),
'/span',
array('span' => array(
'class' => 'full'
)),
$date,
'/span',
'/div'
)
),
'both' => array(
array('date' => array('modified' => $date, 'created' => date('Y-m-d H:i:s', strtotime('-10 years')))),
array(
array('div' => array(
'class' => 'date'
)),
array('span' => array(
'class' => 'niceShort'
)),
CakeTime::niceShort($date),
'/span',
array('span' => array(
'class' => 'full'
)),
$date,
'/span',
'/div'
)
)
);
}

}
36 changes: 36 additions & 0 deletions Core/Libs/View/Helper/InfinitasHelper.php
Expand Up @@ -20,6 +20,7 @@
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice.
*/
App::uses('CakeTime', 'Utility');
App::uses('AppHelper', 'View/Helper');

class InfinitasHelper extends AppHelper {
Expand Down Expand Up @@ -134,4 +135,39 @@ public function massActionCheckBox(array $data, $options = array()) {

return $checkbox;
}

/**
* @brief generate a date display box
*
* @param string|array $date a date string or record with created / modified date
* @param string $method the CakeTime method to use
*
* @return string
*/
public function date($date, $method = 'niceShort') {
if(!method_exists('CakeTime', $method)) {
return false;
}

if(is_array($date)) {
if(!empty($date['modified'])) {
$date = $date['modified'];
} elseif(!empty($date['created'])) {
$date = $date['created'];
} else {
$date = null;
}
}

if(empty($date)) {
return false;
}

return $this->Html->tag(
'div',
$this->Html->tag('span', call_user_func('CakeTime::' . $method), array('class' => $method)) .
$this->Html->tag('span', $date, array('class' => 'full')),
array('class' => 'date')
);
}
}

0 comments on commit b16c2f3

Please sign in to comment.