onepageprofile.module in One page profile 5.2
File
onepageprofile.module
View source
<?php
function onepageprofile_user($op, &$edit, &$user, $category = NULL) {
switch ($op) {
case 'form':
if ($category == 'account') {
$categories = profile_categories();
$form = array();
foreach ($categories as $category) {
if (_onepageprofile_check_access($user, $category)) {
$form += profile_form_profile($edit, $user, $category['name'], FALSE);
}
}
return $form;
}
break;
case 'update':
if (isset($edit['form_build_id'])) {
$categories = profile_categories();
foreach ($categories as $category) {
profile_save_profile($edit, $user, $category['name']);
}
}
break;
}
}
function onepageprofile_menu_alter(&$items) {
$categories = profile_categories();
foreach ($categories as $key => $category) {
unset($items['user/%user_category/edit/' . $category['name']]);
}
}
function _onepageprofile_check_access($account, $category) {
$map = array(
'user',
$account,
'edit',
$category['name'],
);
$category['access_callback'] = $category['access callback'];
$category['access_arguments'] = serialize($category['access arguments']);
_menu_check_access($category, $map);
$menu['access'] = true;
if (function_exists('profile_role_access_category')) {
$menu['access'] = profile_role_access_category($account, $category['name']);
}
return $menu['access'] && $category['access'];
}