/**
  * Returns an array of field objects for the set form (object).
  *
  * @param array $where
  * @param bool|FALSE $fresh
  * @return array
  */
 public function get_fields($where = array(), $fresh = FALSE)
 {
     if ($where || $fresh || !$this->_fields) {
         $form_id = $this->_object->get_id();
         if (!$form_id) {
             return array();
         }
         $model_shell = new NF_Database_Models_Field($this->_db, 0);
         $fields = $model_shell->find($form_id, $where);
         foreach ($fields as $field) {
             $this->_fields[$field->get_id()] = $field;
         }
     }
     usort($this->_fields, "NF_Abstracts_Field::sort_by_order");
     return $this->_fields;
 }
 /**
  * Returns an array of field objects for the set form (object).
  *
  * @param array $where
  * @param bool|FALSE $fresh
  * @return array
  */
 public function get_fields($where = array(), $fresh = FALSE)
 {
     if ($where || $fresh || !$this->_fields) {
         $form_id = $this->_object->get_id();
         $form_cache = get_option('nf_form_' . $form_id, false);
         if (!$form_cache) {
             $model_shell = new NF_Database_Models_Field($this->_db, 0);
             $fields = $model_shell->find($form_id, $where);
             foreach ($fields as $field) {
                 $this->_fields[$field->get_id()] = $field;
             }
         } else {
             foreach ($form_cache['fields'] as $cached_field) {
                 $field = Ninja_Forms()->form($form_id)->get_field($cached_field['id']);
                 $field->update_settings($cached_field['settings']);
                 $this->_fields[$field->get_id()] = $field;
             }
         }
     }
     usort($this->_fields, "NF_Abstracts_Field::sort_by_order");
     return $this->_fields;
 }