| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313 | 
							- <?php
 
- /**
 
-  * @file
 
-  * This file contains no working PHP code; it exists to provide additional
 
-  * documentation for doxygen as well as to document hooks in the standard
 
-  * Drupal manner.
 
-  */
 
- /**
 
-  * @addtogroup hooks
 
-  * @{
 
-  */
 
- /**
 
- * Act on profiles being loaded from the database.
 
- *
 
- * This hook is invoked during profile loading, which is handled by
 
- * entity_load(), via the EntityCRUDController.
 
- *
 
- * @param $entities
 
- *   An array of profile2 entities being loaded, keyed by id.
 
- *
 
- * @see hook_entity_load()
 
- */
 
- function hook_profile2_load($entities) {
 
-   $result = db_query('SELECT pid, foo FROM {mytable} WHERE pid IN(:ids)', array(':ids' => array_keys($entities)));
 
-   foreach ($result as $record) {
 
-     $entities[$record->pid]->foo = $record->foo;
 
-   }
 
- }
 
- /**
 
- * Respond when a profile is inserted.
 
- *
 
- * This hook is invoked after the profile is inserted into the database.
 
- *
 
- * @param profile
 
- *   The profile that is being inserted.
 
- *
 
- * @see hook_entity_insert()
 
- */
 
- function hook_profile2_insert($profile) {
 
-   db_insert('mytable')
 
-     ->fields(array(
 
-       'pid' => $profile->pid,
 
-       'extra' => $profile->extra,
 
-     ))
 
-     ->execute();
 
- }
 
- /**
 
- * Act on a profile being inserted or updated.
 
- *
 
- * This hook is invoked before the profile is saved to the database.
 
- *
 
- * @param $profile
 
- *   The profile that is being inserted or updated.
 
- *
 
- * @see hook_entity_presave()
 
- */
 
- function hook_profile2_presave($profile) {
 
-   $profile->extra = 'foo';
 
- }
 
- /**
 
- * Respond to a profile being updated.
 
- *
 
- * This hook is invoked after the profile has been updated in the database.
 
- *
 
- * @param $profile
 
- *   The $profile that is being updated.
 
- *
 
- * @see hook_entity_update()
 
- */
 
- function hook_profile2_update($profile) {
 
-   db_update('mytable')
 
-     ->fields(array('extra' => $profile->extra))
 
-     ->condition('pid', $profile->pid)
 
-     ->execute();
 
- }
 
- /**
 
- * Respond to profile deletion.
 
- *
 
- * This hook is invoked after the profile has been removed from the database.
 
- *
 
- * @param $profile
 
- *   The profile that is being deleted.
 
- *
 
- * @see hook_entity_delete()
 
- */
 
- function hook_profile2_delete($profile) {
 
-   db_delete('mytable')
 
-     ->condition('pid', $profile->pid)
 
-     ->execute();
 
- }
 
- /**
 
- * Act on a profile that is being assembled before rendering.
 
- *
 
- * @param $profile
 
- *   The profile entity.
 
- * @param $view_mode
 
- *   The view mode the profile is rendered in.
 
- * @param $langcode
 
- *   The language code used for rendering.
 
- *
 
- * The module may add elements to $profile->content prior to rendering. The
 
- * structure of $profile->content is a renderable array as expected by
 
- * drupal_render().
 
- *
 
- * @see hook_entity_prepare_view()
 
- * @see hook_entity_view()
 
- */
 
- function hook_profile2_view($profile, $view_mode, $langcode) {
 
-   $profile->content['my_additional_field'] = array(
 
-     '#markup' => $additional_field,
 
-     '#weight' => 10,
 
-     '#theme' => 'mymodule_my_additional_field',
 
-   );
 
- }
 
- /**
 
- * Alter the results of entity_view() for profiles.
 
- *
 
- * @param $build
 
- *   A renderable array representing the profile content.
 
- *
 
- * This hook is called after the content has been assembled in a structured
 
- * array and may be used for doing processing which requires that the complete
 
- * profile content structure has been built.
 
- *
 
- * If the module wishes to act on the rendered HTML of the profile rather than
 
- * the structured content array, it may use this hook to add a #post_render
 
- * callback. Alternatively, it could also implement hook_preprocess_profile2().
 
- * See drupal_render() and theme() documentation respectively for details.
 
- *
 
- * @see hook_entity_view_alter()
 
- */
 
- function hook_profile2_view_alter($build) {
 
-   if ($build['#view_mode'] == 'full' && isset($build['an_additional_field'])) {
 
-     // Change its weight.
 
-     $build['an_additional_field']['#weight'] = -10;
 
-     // Add a #post_render callback to act on the rendered HTML of the entity.
 
-     $build['#post_render'][] = 'my_module_post_render';
 
-   }
 
- }
 
- /**
 
-  * Act on profile type being loaded from the database.
 
-  *
 
-  * This hook is invoked during profile type loading, which is handled by
 
-  * entity_load(), via the EntityCRUDController.
 
-  *
 
-  * @param $types
 
-  *   An array of profiles being loaded, keyed by profile type names.
 
-  */
 
- function hook_profile2_type_load($types) {
 
-   if (isset($types['main'])) {
 
-     $types['main']->userCategory = FALSE;
 
-     $types['main']->userView = FALSE;
 
-   }
 
- }
 
- /**
 
-  * Respond when a profile type is inserted.
 
-  *
 
-  * This hook is invoked after the profile type is inserted into the database.
 
-  *
 
-  * @param $type
 
-  *   The profile type that is being inserted.
 
-  */
 
- function hook_profile2_type_insert($type) {
 
-   db_insert('mytable')
 
-     ->fields(array(
 
-       'id' => $type->id,
 
-       'extra' => $type->extra,
 
-     ))
 
-     ->execute();
 
- }
 
- /**
 
-  * Act on a profile type being inserted or updated.
 
-  *
 
-  * This hook is invoked before the profile type is saved to the database.
 
-  *
 
-  * @param $type
 
-  *   The profile type that is being inserted or updated.
 
-  */
 
- function hook_profile2_type_presave($type) {
 
-   $type->extra = 'foo';
 
- }
 
- /**
 
-  * Respond to updates to a profile.
 
-  *
 
-  * This hook is invoked after the profile type has been updated in the database.
 
-  *
 
-  * @param $type
 
-  *   The profile type that is being updated.
 
-  */
 
- function hook_profile2_type_update($type) {
 
-   db_update('mytable')
 
-     ->fields(array('extra' => $type->extra))
 
-     ->condition('id', $type->id)
 
-     ->execute();
 
- }
 
- /**
 
-  * Respond to profile type deletion.
 
-  *
 
-  * This hook is invoked after the profile type has been removed from the
 
-  * database.
 
-  *
 
-  * @param $type
 
-  *   The profile type that is being deleted.
 
-  */
 
- function hook_profile2_type_delete($type) {
 
-   db_delete('mytable')
 
-     ->condition('id', $type->id)
 
-     ->execute();
 
- }
 
- /**
 
-  * Define default profile type configurations.
 
-  *
 
-  * @return
 
-  *   An array of default profile types, keyed by profile type names.
 
-  */
 
- function hook_default_profile2_type() {
 
-   $types['main'] = new ProfileType(array(
 
-       'type' => 'main',
 
-       'label' => t('Profile'),
 
-       'weight' => 0,
 
-       'locked' => TRUE,
 
-   ));
 
-   return $types;
 
- }
 
- /**
 
- * Alter default profile type configurations.
 
- *
 
- * @param $defaults
 
- *   An array of default profile types, keyed by type names.
 
- *
 
- * @see hook_default_profile2_type()
 
- */
 
- function hook_default_profile2_type_alter(&$defaults) {
 
-   $defaults['main']->label = 'custom label';
 
- }
 
- /**
 
-  * Alter profile2 forms.
 
-  *
 
-  * Modules may alter the profile2 entity form regardless to which form it is
 
-  * attached by making use of this hook or the profile type specifiy
 
-  * hook_form_profile2_edit_PROFILE_TYPE_form_alter(). #entity_builders may be
 
-  * used in order to copy the values of added form elements to the entity, just
 
-  * as described by entity_form_submit_build_entity().
 
-  *
 
-  * @param $form
 
-  *   Nested array of form elements that comprise the form.
 
-  * @param $form_state
 
-  *   A keyed array containing the current state of the form.
 
-  *
 
-  * @see profile2_attach_form()
 
-  */
 
- function hook_form_profile2_form_alter(&$form, &$form_state) {
 
-   // Your alterations.
 
- }
 
- /**
 
-  * Control access to profiles.
 
-  *
 
-  * Modules may implement this hook if they want to have a say in whether or not
 
-  * a given user has access to perform a given operation on a profile.
 
-  *
 
-  * @param $op
 
-  *   The operation being performed. One of 'view', 'edit' (being the same as
 
-  *   'create' or 'update') and 'delete'.
 
-  * @param $profile
 
-  *   (optional) A profile to check access for. If nothing is given, access for
 
-  *   all profiles is determined.
 
-  * @param $account
 
-  *   (optional) The user to check for. If no account is passed, access is
 
-  *   determined for the global user.
 
-  * @return boolean
 
-  *   Return TRUE to grant access, FALSE to explicitly deny access. Return NULL
 
-  *   or nothing to not affect the operation.
 
-  *   Access is granted as soon as a module grants access and no one denies
 
-  *   access. Thus if no module explicitly grants access, access will be denied.
 
-  *
 
-  * @see profile2_access()
 
-  */
 
- function hook_profile2_access($op, $profile = NULL, $account = NULL) {
 
-   if (isset($profile)) {
 
-     // Explicitly deny access for a 'secret' profile type.
 
-     if ($profile->type == 'secret' && !user_access('custom permission')) {
 
-       return FALSE;
 
-     }
 
-     // For profiles other than the default profile grant access.
 
-     if ($profile->type != 'main' && user_access('custom permission')) {
 
-       return TRUE;
 
-     }
 
-     // In other cases do not alter access.
 
-   }
 
- }
 
- /**
 
-  * @}
 
-  */
 
 
  |