diff --git a/main/inc/ajax/model.ajax.php b/main/inc/ajax/model.ajax.php index df2d5d9982..d3049a7743 100755 --- a/main/inc/ajax/model.ajax.php +++ b/main/inc/ajax/model.ajax.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'); diff --git a/main/inc/lib/extra_field.lib.php b/main/inc/lib/extra_field.lib.php index dbb4977cba..fa9fd2f17b 100755 --- a/main/inc/lib/extra_field.lib.php +++ b/main/inc/lib/extra_field.lib.php @@ -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