danielebarchiesi@0: t("Revision: ID"), danielebarchiesi@0: 'keyword' => 'revision', danielebarchiesi@0: 'description' => t('Creates a node context from a revision ID argument.'), danielebarchiesi@0: 'context' => 'ctools_argument_rid_context', danielebarchiesi@0: 'placeholder form' => array( danielebarchiesi@0: '#type' => 'textfield', danielebarchiesi@0: '#description' => t('Enter the revision ID of a node for this argument'), danielebarchiesi@0: ), danielebarchiesi@0: ); danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Discover if this argument gives us the node we crave. danielebarchiesi@0: */ danielebarchiesi@0: function ctools_argument_rid_context($arg = NULL, $conf = NULL, $empty = FALSE) { danielebarchiesi@0: // If unset it wants a generic, unfilled context. danielebarchiesi@0: if ($empty) { danielebarchiesi@0: return ctools_context_create_empty('node'); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: // We can accept either a node object or a pure nid. danielebarchiesi@0: if (is_object($arg)) { danielebarchiesi@0: return ctools_context_create('node', $arg); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: if (!is_numeric($arg)) { danielebarchiesi@0: return FALSE; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: $nid = db_query('SELECT nid FROM {node_revisions} WHERE vid = :vid', array(':vid' => $arg))->fetchField(); danielebarchiesi@0: $node = node_load($nid, $arg); danielebarchiesi@0: if (!$node) { danielebarchiesi@0: return FALSE; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: return ctools_context_create('node', $node); danielebarchiesi@0: } danielebarchiesi@0: