Esempio n. 1
0
 /**
  * Method to search for members (wildcard)
  * @todo Full-text search or similar? Sphinx?
  */
 public function member($keyword)
 {
     // UGLY hack to allow "group:" searches.
     // ToDo: PLEASE make this be prettier... !!!
     if (substr($keyword, 0, 6) == 'group:') {
         // Get group (if it exists)
         $group = $this->Group_model->get_group_by_name(substr($keyword, 6));
         if (!$group) {
             return array();
         }
         // No such group...
         // Return members based upon group id
         return $this->Group_model->group_members($group->id);
     }
     // **** Actually search for users ****
     // Search in these fields
     $search_fields = array('id', 'firstname', 'lastname', 'company', 'orgno', 'address', 'address2', 'zipcode', 'city', 'country', 'phone', 'twitter', 'skype', 'civicregno');
     // Search in e-mail first.
     $this->db->like('email', $keyword);
     // Hack to be able to search for fullnames
     $this->db->or_like('CONCAT_WS(\' \', firstname, lastname)', $keyword, 'both', false);
     // Loop, cause it's easier.
     foreach ($search_fields as $field) {
         if ($field == 'phone') {
             $keyword = normalize_phone($keyword);
         }
         $this->db->or_like($field, $keyword);
     }
     // Do query
     $query = $this->db->get('members');
     // Did we get anything?
     if ($query->num_rows() > 0) {
         // Walk the entire result and get groups :)
         array_walk($query->result(), array($this->Member_model, '_get_groups'));
         // Return matching users
         return $query->result();
     }
     // Nothing found
     return array();
 }
Esempio n. 2
0
 /**
  * Validate and Normalize all POST fields.
  * ***ToDo** - Use Form_validation library instead!
  *
  * @return array Containing the final data or false on fail.
  */
 private function _control_fields($array)
 {
     // Loop through all fields.
     foreach ($array as $key => $value) {
         if ($key == 'email') {
             $array[$key] = strtolower($value);
             if (!filter_var($array[$key], FILTER_VALIDATE_EMAIL)) {
                 return false;
             }
         } elseif ($key == 'password') {
             if (strlen($value) < 8) {
                 return false;
             }
         } elseif ($key == 'firstname') {
             if (strlen($value) < 2) {
                 return false;
             }
             $array[$key] = ucfirst($value);
         } elseif ($key == 'lastname') {
             if (strlen($value) < 2) {
                 return false;
             }
         } elseif ($key == 'company') {
             if (strlen($value) < 2) {
                 return false;
             }
         } elseif ($key == 'orgno') {
             $array[$key] = strim($value);
             if (strlen($array[$key]) != 11) {
                 return false;
             }
         } elseif ($key == 'address') {
             if (strlen($value) < 3) {
                 return false;
             }
             $array[$key] = ucfirst($value);
         } elseif ($key == 'address2') {
             if (strlen($value) < 3) {
                 return false;
             }
             $array[$key] = ucfirst($value);
         } elseif ($key == 'zipcode') {
             $array[$key] = strim($value);
             if (strlen($array[$key]) != 5) {
                 return false;
             }
         } elseif ($key == 'city') {
             if (strlen($value) < 2) {
                 return false;
             }
             $array[$key] = ucfirst($value);
         } elseif ($key == 'country') {
             if (strlen($value) != 2) {
                 return false;
             }
             $array[$key] = strtoupper($value);
         } elseif ($key == 'civicregno') {
             if (strlen($array[$key]) != 13) {
                 return false;
             }
             if (!$this->_validate_civicregno($array[$key])) {
                 #	return false;
             }
         } elseif ($key == 'phone') {
             $array[$key] = normalize_phone($value);
             if (strlen($array[$key]) < 8) {
                 return false;
             }
         }
     }
     return $array;
 }