| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | <?php/** * @file * Main functions and hook implementations for FE Profile. *//** * Implements hook_features_api(). */function fe_profile_features_api() {  return array(    'fe_profile' => array(      'name' => t('Profile fields'),      'feature_source' => TRUE,      'default_hook' => 'fe_profile_export_fields',      'default_file' => FEATURES_DEFAULTS_INCLUDED_COMMON,    ),  );}/** * Implements hook_features_export_options(). */function fe_profile_features_export_options() {  $options = array();  $table    = 'profile_field';  $query = "SELECT * FROM {{$table}}";  $fields = db_query($query);  while ($row = $fields->fetchObject()) {    $options[$row->name] = $row->name;  }  return $options;}/** * Implements hook_features_export(). */function fe_profile_features_export($data, &$export, $module_name = '') {  $export['dependencies']['profile'] = 'profile';  foreach ($data as $machine_name) {    $export['features']['fe_profile'][$machine_name] = $machine_name;  }  return array();}/** * Implements hook_features_export_render(). */function fe_profile_features_export_render($module_name, $data) {  $items = array();  $table    = 'profile_field';  foreach ($data as $key) {    $field = db_query("SELECT * FROM {{$table}} WHERE name = :profile_field_name", array(':profile_field_name' => $key))->fetchObject();    $items[$key] = $field;  }  $code = "  \$items = " . features_var_export($items, '  ') . ";\n";  $code .= '  return $items;';  return array('fe_profile_export_fields' => $code);}/** * Implements hook_features_revert(). */function fe_profile_features_revert($module) {  $table = 'profile_field';  $defaults = features_get_default('fe_profile', $module);  if (empty($defaults)) {    return;  }  // Revert.  foreach ($defaults as $object) {    _fe_profile_save_field($object);  }}/** * Saves a profile field to the database. * * @param array $field_data *   The field data to save. */function _fe_profile_save_field($field_data) {  if (!isset($field_data['options'])) {    $field_data['options'] = '';  }  if (!isset($field_data['page'])) {    $field_data['page'] = '';  }  if (!isset($field_data['fid'])) {    $field_data = (object) $field_data;    drupal_write_record('profile_field', $field_data);  }  else {    $field_data = (object) $field_data;    if (!db_query("SELECT * FROM {profile_field} WHERE fid = :fid", array(':fid' => $field_data->fid))->fetchObject()) {      drupal_write_record('profile_field', $field_data);    }    else {      drupal_write_record('profile_field', $field_data, array('fid'));    }  }}
 |