Révision 6ff32cea
Ajouté par Florent Torregrosa il y a environ 9 ans
drupal7/modules/node/node.pages.inc | ||
---|---|---|
371 | 371 |
* @see node_form_build_preview() |
372 | 372 |
*/ |
373 | 373 |
function node_preview($node) { |
374 |
if (node_access('create', $node) || node_access('update', $node)) { |
|
375 |
_field_invoke_multiple('load', 'node', array($node->nid => $node)); |
|
374 |
// Clone the node before previewing it to prevent the node itself from being |
|
375 |
// modified. |
|
376 |
$cloned_node = clone $node; |
|
377 |
if (node_access('create', $cloned_node) || node_access('update', $cloned_node)) { |
|
378 |
_field_invoke_multiple('load', 'node', array($cloned_node->nid => $cloned_node)); |
|
376 | 379 |
// Load the user's name when needed. |
377 |
if (isset($node->name)) { |
|
380 |
if (isset($cloned_node->name)) {
|
|
378 | 381 |
// The use of isset() is mandatory in the context of user IDs, because |
379 | 382 |
// user ID 0 denotes the anonymous user. |
380 |
if ($user = user_load_by_name($node->name)) { |
|
381 |
$node->uid = $user->uid; |
|
382 |
$node->picture = $user->picture; |
|
383 |
if ($user = user_load_by_name($cloned_node->name)) {
|
|
384 |
$cloned_node->uid = $user->uid;
|
|
385 |
$cloned_node->picture = $user->picture;
|
|
383 | 386 |
} |
384 | 387 |
else { |
385 |
$node->uid = 0; // anonymous user |
|
388 |
$cloned_node->uid = 0; // anonymous user
|
|
386 | 389 |
} |
387 | 390 |
} |
388 |
elseif ($node->uid) { |
|
389 |
$user = user_load($node->uid); |
|
390 |
$node->name = $user->name; |
|
391 |
$node->picture = $user->picture; |
|
391 |
elseif ($cloned_node->uid) {
|
|
392 |
$user = user_load($cloned_node->uid);
|
|
393 |
$cloned_node->name = $user->name;
|
|
394 |
$cloned_node->picture = $user->picture;
|
|
392 | 395 |
} |
393 | 396 |
|
394 |
$node->changed = REQUEST_TIME; |
|
395 |
$nodes = array($node->nid => $node);
|
|
397 |
$cloned_node->changed = REQUEST_TIME;
|
|
398 |
$nodes = array($cloned_node->nid => $cloned_node);
|
|
396 | 399 |
field_attach_prepare_view('node', $nodes, 'full'); |
397 | 400 |
|
398 | 401 |
// Display a preview of the node. |
399 | 402 |
if (!form_get_errors()) { |
400 |
$node->in_preview = TRUE; |
|
401 |
$output = theme('node_preview', array('node' => $node)); |
|
402 |
unset($node->in_preview); |
|
403 |
$cloned_node->in_preview = TRUE;
|
|
404 |
$output = theme('node_preview', array('node' => $cloned_node));
|
|
405 |
unset($cloned_node->in_preview);
|
|
403 | 406 |
} |
404 | 407 |
drupal_set_title(t('Preview'), PASS_THROUGH); |
405 | 408 |
|
Formats disponibles : Unified diff
Update core to 7.36