Ejemplo n.º 1
0
 function &getObjects($criteria = null, $id_form, $id_as_key = false)
 {
     $ret = array();
     $limit = $start = 0;
     //		awareness of $criteria added, Sept 1 2005, jwe
     //		removal of ele_display=1 from next line and addition of the renderWhere line in the conditional below
     $sql = 'SELECT * FROM ' . formulize_TABLE . ' WHERE id_form=' . $id_form;
     if (isset($criteria)) {
         $sql .= $criteria->render() ? ' AND (' . $criteria->render() . ')' : '';
         if ($criteria->getSort() != '') {
             $criteriaByClause = ' ORDER BY ' . $criteria->getSort() . ' ' . $criteria->getOrder();
         }
         $limit = $criteria->getLimit();
         $start = $criteria->getStart();
     }
     if (!isset($criteriaByClause)) {
         $sql .= " ORDER BY ele_order ASC";
     } else {
         $sql .= $criteriaByClause;
     }
     $result = $this->db->query($sql, $limit, $start);
     if (!$result) {
         return false;
     }
     while ($myrow = $this->db->fetchArray($result)) {
         // instantiate the right kind of element, depending on the type
         $ele_type = $myrow['ele_type'];
         if (file_exists(XOOPS_ROOT_PATH . "/modules/formulize/class/" . $ele_type . "Element.php")) {
             $customTypeHandler = xoops_getmodulehandler($ele_type . "Element", 'formulize');
             $elements = $customTypeHandler->create();
         } else {
             $elements = new formulizeformulize();
         }
         $elements->assignVars($myrow);
         $elements->isLinked = false;
         $ele_type = $elements->getVar('ele_type');
         if ($ele_type == "select") {
             $ele_value = $elements->getVar('ele_value');
             if (!is_array($ele_value[2])) {
                 $elements->isLinked = strstr($ele_value[2], "#*=:*") ? true : false;
             }
         }
         if ($ele_type == "text" or $ele_type == "textarea" or $ele_type == "select" or $ele_type == "radio" or $ele_type == "checkbox" or $ele_type == "date" or $ele_type == "colorpick" or $ele_type == "yn" or $ele_type == "derived") {
             $elements->hasData = true;
         }
         if ($id_as_key === true or $id_as_key == "element_id") {
             $ret[$myrow['ele_id']] =& $elements;
         } elseif ($id_as_key == "handle") {
             $ret[$myrow['ele_handle']] =& $elements;
         } else {
             $ret[] =& $elements;
         }
         unset($elements);
     }
     return $ret;
 }