Skip to content

Instantly share code, notes, and snippets.

@chadhutchins
Created November 8, 2011 16:05
Show Gist options
  • Save chadhutchins/1348192 to your computer and use it in GitHub Desktop.
Save chadhutchins/1348192 to your computer and use it in GitHub Desktop.
Helper functions to deal with EE custom member fields...
<?php
// member_id not a required param, if member_id param not given
// it will use the current session's member_id, if a session doesn't
// exist, it'll return false
function _save_custom_member_field_value($field_name,$field_value,$member_id=false)
{
// field_name required
if (empty($field_name) or is_null($field_name))
{
return false;
}
// use session data if member_id not supplied
$member_id = $member_id ? $member_id : $this->EE->session->userdata('member_id');
if ($member_id == 0)
{
// not logged in
return false;
}
$member_field_name = $this->_get_custom_member_field_column_name($field_name);
if ($member_field_name)
{
$data = array(
$member_field_name => $field_value
);
$this->EE->db->where('member_id',$member_id);
$query = $this->EE->db->update('member_data',$data);
return $query;
}
else
{
return false;
}
}
// member_id not a required param, if member_id param not given
// it will use the current session's member_id, if a session doesn't
// exist, it'll return false
function _get_custom_member_field_value($field_name,$member_id=false)
{
// field_name required
if (empty($field_name) or is_null($field_name))
{
return false;
}
// use session data if member_id not supplied
$member_id = $member_id ? $member_id : $this->EE->session->userdata('member_id');
if ($member_id == 0)
{
// not logged in
return false;
}
$member_field_name = $this->_get_custom_member_field_column_name($field_name);
if ($member_field_name)
{
$this->EE->db->select($member_field_name);
$this->EE->db->where('member_id',$member_id);
$query = $this->EE->db->get('member_data');
if ($query->num_rows==1)
{
return $query->row()->$member_field_name;
}
else
{
return false;
}
}
else
{
return false;
}
}
function _get_custom_member_field_column_name($field_name)
{
// field_name required
if (empty($field_name) or is_null($field_name))
{
return false;
}
$this->EE->db->select('m_field_id');
$this->EE->db->where('m_field_name',$field_name);
$query = $this->EE->db->get('member_fields');
if ($query->num_rows==1)
{
$row = $query->row();
$field_id = $row->m_field_id;
$member_field_name = 'm_field_id_'.$field_id;
return $member_field_name;
}
else
{
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment