Fix extra field grid.

1.10.x
Julio Montoya 11 years ago
parent 14a5a5607f
commit 16abb5936d
  1. 8
      main/inc/ajax/model.ajax.php
  2. 52
      main/inc/lib/extra_field.lib.php

@ -1336,15 +1336,17 @@ switch ($action) {
'filter',
'field_order',
);
$result = Database::select(
$result = $obj->getAllGrid($sidx, $sord, $start, $limit);
/*$result = Database::select(
'*',
$obj->table,
array('order' => "$sidx $sord", 'LIMIT' => "$start , $limit")
);
);*/
$new_result = array();
if (!empty($result)) {
foreach ($result as $item) {
$item['field_type'] = $obj->get_field_type_by_id($item['field_type']);
$item['display_text'] = $item['displayText'];
$item['field_type'] = $obj->get_field_type_by_id($item['fieldType']);
$item['changeable'] = $item['changeable'] ? Display::return_icon('right.gif') : Display::return_icon('wrong.gif');
$item['visible'] = $item['visible'] ? Display::return_icon('right.gif') : Display::return_icon('wrong.gif');
$item['filter'] = $item['filter'] ? Display::return_icon('right.gif') : Display::return_icon('wrong.gif');

@ -134,11 +134,8 @@ class ExtraField extends Model
*/
public function get_count()
{
/*$row = Database::select('count(*) as count', $this->table, array(), 'first');
return $row['count'];*/
$query = Database::getManager()->getRepository('ChamiloCoreBundle:ExtraField')->createQueryBuilder('e');
$em = Database::getManager();
$query = $em->getRepository('ChamiloCoreBundle:ExtraField')->createQueryBuilder('e');
$query->select('count(e.id)');
$query->where('e.extraFieldType = :type');
$query->setParameter('type', $this->getExtraFieldType());
@ -146,6 +143,51 @@ class ExtraField extends Model
return $query->getQuery()->getScalarResult();
}
/**
* @param string $sidx
* @param string $sord
* @param int $start
* @param int $limit
*
* @return array
*/
public function getAllGrid($sidx, $sord, $start, $limit)
{
switch ($sidx) {
case 'field_order':
$sidx = 'e.fieldOrder';
break;
case 'variable':
$sidx = 'e.variable';
break;
case 'display_text':
$sidx = 'e.displayText';
break;
case 'changeable':
$sidx = 'e.changeable';
break;
case 'visible':
$sidx = 'e.visible';
break;
case 'filter':
$sidx = 'e.filter';
break;
case 'display_text':
$sidx = 'e.fieldType';
break;
}
$em = Database::getManager();
$query = $em->getRepository('ChamiloCoreBundle:ExtraField')->createQueryBuilder('e');
$query->select('e')
->where('e.extraFieldType = :type')
->setParameter('type', $this->getExtraFieldType())
->orderBy($sidx, $sord)
->setFirstResult($start)
->setMaxResults($limit);
//echo $query->getQuery()->getSQL();
return $query->getQuery()->getArrayResult();
}
/**
* @param array $conditions
* @param null $order_field_options_by

Loading…
Cancel
Save