FINAL suepr merge step : added all modules to this super repos
This commit is contained in:
313
sites/all/modules/contrib/users/profile2/profile2.api.php
Normal file
313
sites/all/modules/contrib/users/profile2/profile2.api.php
Normal file
@@ -0,0 +1,313 @@
|
||||
<?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.
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
Reference in New Issue
Block a user