3
class sfDatagridFormatterPropel extends sfDatagridFormatterDefault{
5
* Get the input for the filter
7
* @param string $type The type of the filter
8
* @param string $column The column name
9
* @param string $value The value of the input
10
* @param sfDatagrid $object The datagrid object
11
* @param string $suffix The url suffix
12
* @return string The html output
14
protected function getInputFilter($type, $column, $value, $object, $suffix)
21
* @todo il faudra penser a déplacer ce morceau de code afin de prendre en entrer $mapBuilder pour le
22
* calculer qu'une fois
24
$tablePeer=$object->_get('peerTable').'Peer';
25
$builder=$object->_get('peerTable').'MapBuilder';
26
if(sfAutoload::getInstance()->loadClass($builder)){
27
$mapBuilder=new $builder;
28
$mapBuilder->doBuild();
29
$adminrelated = $mapBuilder->getDatabaseMap()->getTable(sfInflector::underscore($object->_get('peerTable')))->getColumn(strtoupper($column));
32
$map=$object->_get('peerTable').'TableMap';
33
$map=new $map($object->_get('peerTable'),new DatabaseMap('propel'));
35
$adminrelated = $map->getColumn(strtoupper($column));
51
if(($adminrelated instanceof ColumnMap)&&($adminrelated->isForeignKey()))
53
$c=sfDatagrid::getConfig('class_for_foreign');
54
if(sfAutoload::getInstance()->loadClass(sfInflector::camelize($adminrelated->getRelatedTableName()))){
55
$class=sfInflector::camelize($adminrelated->getRelatedTableName());
57
$class=sfInflector::camelize($adminrelated->getRelatedTableName());
58
$class=strtolower($class[0]).substr($class,1);
62
if(sfAutoload::getInstance()->loadClass($class)){
64
array('model' => $class, 'add_empty' =>true));
65
if($object->getOrderByForFilter($column)){
66
$wSelect->setOption( 'order_by',$object->getOrderByForFilter($column));
68
$output = $wSelect->render('search[' . $column . ']', $value, array('style' => 'width: 100%;'));
75
foreach($type as $key => $values)
77
$choices[$key] = $values;
80
$wSelect = new sfWidgetFormSelect(array('choices' => $choices));
81
$output = $wSelect->render('search[' . $column . ']', $value, array('style' => 'width: 100%;'));
89
$wSelect = new sfWidgetFormSelect(array('choices' => array('' => '', 1 => 'Oui', 0 => 'Non')));
90
$output = $wSelect->render('search[' . $column . ']', $value, array('style' => 'width: 100%;'));
93
case (strtoupper($type) == 'DATE' || strtoupper($type) == 'TIMESTAMP'):
94
if(@array_key_exists('start_' . $object->_get('datagridName'), $value) && $value['start_' . $object->_get('datagridName')] != '')
96
$value1 = format_date(strtotime($value['start_' . $object->_get('datagridName')]), 'dd.MM.yyyy');
103
if(@array_key_exists('start_' . $object->_get('datagridName'), $value) && $value['stop_' . $object->_get('datagridName')] != '')
105
$value2 = format_date(strtotime($value['stop_' . $object->_get('datagridName')]), 'dd.MM.yyyy');
111
if(@array_key_exists('null_' . $object->_get('datagridName'), $value) && $value['null_' . $object->_get('datagridName')] != '')
114
$value3 = array('null'=>$value['null_' . $object->_get('datagridName')][0]);
120
$wDateStart = new sfWidgetFormInput();
121
$wDateStop = new sfWidgetFormInput();
123
$output = '<span style="padding-bottom: 5px; display: block;">';
124
$output.= $this->traduct(sfDatagrid::getConfig('text_from')) . ' ';
125
$output.= $wDateStart->render('search[' . $column . '][start_' . $object->_get('datagridName') . ']', $value1, array('onclick' => 'displayDatePicker(this.name)', 'style' => 'width: 75px;'));
127
$output.= ' ' .$this->traduct(sfDatagrid::getConfig('text_to')) . ' ';
128
$output.= $wDateStop->render('search[' . $column . '][stop_' . $object->_get('datagridName') . ']', $value2, array('type' => 'text', 'onclick' => 'displayDatePicker(this.name)', 'style' => 'width: 75px;'));
130
if((($adminrelated instanceof ColumnMap)&&(!$adminrelated->isNotNull()))){
131
$chk = new sfWidgetFormSelectCheckbox(array('choices'=>array('null'=>$this->traduct(sfDatagrid::getConfig('label_null')))));
132
$output .= $chk->render('search[' . $column . '][null_'. $object->_get('datagridName') . ']',$value3,array());
137
$wInput = new sfWidgetFormInput();
138
$url = $object->_get('moduleAction') . '?' . $this->P_PAGE . '=1' . $suffix . '&' . $this->P_SORT . '=' . $object->_get('sortBy') . '&' . $this->P_ORDER . '=' . $object->_get('sortOrder');
139
$output = $wInput->render('search[' . $column . ']', $value, array('style' => 'width: 100%;', 'onkeydown' => 'dg_keydown(\'' . $object->_get('datagridName') . '-form\', \'' . $object->_get('datagridName') . '\', \'search\', \'' . url_for($url) . '\', event,'.(sfDatagrid::getConfig('freezepanes',false)?'true':'false').')'));
143
return content_tag('div', $output);
b'\\ No newline at end of file'