48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * @file
 | 
						|
 * API documentation for the Node clone module.
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Alter the node before saving a clone.
 | 
						|
 *
 | 
						|
 * @param $node
 | 
						|
 *   Reference to the fully loaded node object being saved (the clone) that
 | 
						|
 *   can be altered as needed.
 | 
						|
 * @param array $context
 | 
						|
 *   An array of context describing the clone operation. The keys are:
 | 
						|
 *   - 'method' : Can be either 'prepopulate' or 'save-edit'.
 | 
						|
 *   - 'original_node' : The original fully loaded node object being cloned.
 | 
						|
 *
 | 
						|
 * @see clone_node_save()
 | 
						|
 * @see drupal_alter()
 | 
						|
 */
 | 
						|
function hook_clone_node_alter(&$node, $context) {
 | 
						|
  if ($context['original_node']->type = 'special') {
 | 
						|
    $node->special = special_something();
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Alter the access to the ability to clone a given node.
 | 
						|
 *
 | 
						|
 * @param bool $access
 | 
						|
 *   Reference to the boolean determining if cloning should be allowed on a
 | 
						|
 *   given node.
 | 
						|
 * @param $node
 | 
						|
 *   The fully loaded node object being considered for cloning.
 | 
						|
 *
 | 
						|
 * @see clone_access_cloning()
 | 
						|
 * @see drupal_alter()
 | 
						|
 */
 | 
						|
function hook_clone_access_alter(&$access, $node) {
 | 
						|
  global $user;
 | 
						|
  // Only allow cloning of nodes posted to groups you belong to.
 | 
						|
  // This function doesn't really exist, but you get the idea...
 | 
						|
  if (!og_user_is_member_of_group_the_node_is_in($user, $node)) {
 | 
						|
    $access = FALSE;
 | 
						|
  }
 | 
						|
}
 |