Browse Source

Fix extra field grid.

Julio Montoya 9 years ago
parent
commit
16abb5936d
2 changed files with 52 additions and 8 deletions
  1. 5 3
      main/inc/ajax/model.ajax.php
  2. 47 5
      main/inc/lib/extra_field.lib.php

+ 5 - 3
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');

+ 47 - 5
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