| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 | 
							- <?php
 
- /**
 
-  * @file
 
-  * A contact field for use with contact.module
 
-  *
 
-  * - can be used as just a formatter for the user object
 
-  */
 
- function contact_field_field_formatter_info() {
 
-   $ret = array(
 
-     'user_contact_form_link' => array(
 
-       'label' => t('Contact form'),
 
-       'field types' => array('user_contact'),
 
-     ),
 
-     'user_contact_mailto_link' => array(
 
-       'label' => t('mailto: link'),
 
-       'field types' => array('user_contact'),
 
-     ),
 
-   );
 
-   // dsm(get_defined_vars(), __FUNCTION__);
 
-   return $ret;
 
- }
 
- function contact_field_field_info() {
 
-   $ret = array(
 
-     'user_contact' => array(
 
-       'label' => t('User contact'),
 
-       'description' => t('This field builds a contact link from the entity to which it is attached, as long as that entity has a uid field linking to a user account'),
 
-       'settings' => array(),
 
-       'instance settings' => array(),
 
-       'default_widget' => NULL,
 
-       'default_formatter' => 'user_contact_link',
 
-       'cardinality' => 1,
 
-     ),
 
-   );
 
-   // dsm(get_defined_vars(), __FUNCTION__);
 
-   return $ret;
 
- }
 
- /**
 
-  * Implements hook_field_is_empty().
 
-  */
 
- function contact_field_field_is_empty($item, $field) {
 
-   return empty($item);
 
- }
 
- function contact_field_field_schema($field) {
 
-   if ($field['type'] != 'user_contact') {
 
-     return;
 
-   }
 
-   $ret = array(
 
-     'columns' => array(),
 
-     'indexes' => array(),
 
-   );
 
-   // dsm(get_defined_vars(), __FUNCTION__);
 
-   return $ret;
 
- }
 
- function contact_field_field_widget_info() {
 
-   $ret = array(
 
-     'contact_field_simple' => array(
 
-       'label' => t('No input necessary'),
 
-       'description' => t('Take the information from the underlying account'),
 
-       'field types' => array('user_contact'),
 
-       'behaviors' => array(
 
-         'multiple values' => FIELD_BEHAVIOR_CUSTOM, // No values input anyway
 
-         'default value' => FIELD_BEHAVIOR_DEFAULT,
 
-       ),
 
-     ),
 
-   );
 
-   // dsm(get_defined_vars(), __FUNCTION__);
 
-   return $ret;
 
- }
 
- function contact_field_field_widget_form(&$form, &$form_state, $field,
 
-   $instance, $langcode, $items, $delta, $element) {
 
-   // dsm(get_defined_vars(), __FUNCTION__);
 
-   $ret = array();
 
-   if (isset($form['uid'])) {
 
-     // This is not the widget settings form
 
-     $uid = $form['uid']['#value'];
 
-     $account = user_load($uid);
 
-     $ret['mail'] = array(
 
-       '#type' => 'value',
 
-       '#title' => $instance['label'],
 
-       '#disabled' => TRUE,
 
-       '#value' => $account->mail,
 
-     );
 
-   }
 
-   return $ret;
 
- }
 
- /**
 
-  * Implements hook_field_formatter_view().
 
-  */
 
- function contact_field_field_formatter_view($obj_type, $object, $field,
 
-   $instance, $langcode, $items, $display) {
 
-   $uid = $object->uid;
 
-   $name = $object->name;
 
-   $ret = array();
 
-   switch ($display['type']) {
 
-     case 'user_contact_form_link':
 
-       foreach (array_keys($items) as $delta) {
 
-         // Cannot use theme_username() in D7.7. See http://drupal.org/node/1238094
 
-         $ret[$delta] = array('#markup' => l($name, "user/$uid/contact"));
 
-       }
 
-       break;
 
-     case 'user_contact_mailto_link':
 
-       $account = user_load($uid);
 
-       $mail = $account->mail;
 
-       foreach (array_keys($items) as $delta) {
 
-         // Cannot use theme_username() in D7.7. See http://drupal.org/node/1238094
 
-         $ret[$delta] = array('#markup' => l($name, "mailto:$mail"));
 
-       }
 
-       break;
 
-     default:
 
-       return;
 
-   }
 
-   $ret = array($instance['id'] => $ret);
 
-   // dsm(get_defined_vars(), __FUNCTION__);
 
-   return $ret;
 
- }
 
- /**
 
-  * Force cardinality: there is no point in having multiple instances of this
 
-  * field since it is single-valued per entity instance, instead of having
 
-  * standalone storage.
 
-  */
 
- function contact_field_form_field_ui_field_edit_form_alter(&$form, $form_state, $form_id) {
 
-   dsm($form);
 
-   if ($form['#field']['type'] == 'user_contact') {
 
-     $override = array(
 
-       '#access' => FALSE,
 
-       '#value' => 1,
 
-     );
 
-     $form['field']['cardinality'] = $override + $form['field']['cardinality'];
 
-   }
 
- }
 
 
  |