- Drupal Developer helps you to learn Drupal by Live code examples!
- Learn to develop custom Drupal modules and themes for Drupal 5, Drupal 6, Drupal 7 and Drupal 8
- Post your Drupal questions and get solutions.
- It is always free to join and post!
Drupal: Set any image as User profile image
This CodeLet allows you to set any image associated with certain contant type to be used as user profile image. This CodeLet particularly uses 'galleryimage' content type.
//$Id$
/**
* @file
*
* Display upcoming events of a user
*
* @author DrupalD
*/
/**
* Implementation of hook_menu
*
* @author DrupalD
*/
function upcoming_events_menu() {
$item = array();
$item['picture/set/Drupal: Set any image as User profile image'] = array(
'type' => MENU_CALLBACK,
'page callback' => 'upcoming_events_picture',
'page arguments' => array(2),
'access callback' => 'upcoming_events_validate',
'access arguments' => array(2),
);
return $item;
}
/**
* Implementation of hook_nodeapi
*
* @param $node
* @param $op
* @param $a3
* @param $a4
* @author DrupalD
*/
function upcoming_events_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
global $user;
switch ($op) {
case 'view':
if ($node->type == 'galleryimage') {
$destination = drupal_get_destination();
$node->content['set_profile_image'] = array(
'#type' => 'item',
'#value' => l(t('Set as my profile picture'), 'picture/set/'. $node->nid, array('query' => $destination)),
'#weight' => 0,
);
$node->content['addimages'] = array(
'#type' => 'item',
'#value' => l(t('Upload more photos'), "node/add/gallery-image"),
'#weight' => 10,
);
}
break;
}
}
/**
* upcoming_events_picture
*
* @param unknown_type $variables
* @author DrupalD
*/
function upcoming_events_picture($node) {
global $user;
db_query("UPDATE {users} set picture = '%s' WHERE uid = %d", $node->field_gallery_image[0]['filepath'], $user->uid);
drupal_set_message(t('Picture has been set as your profile picture'));
drupal_goto($_GET['destination']);
}
By DrupalD on Sat, 03/08/2013 - 11:45am
Add comment