Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
project
drupal
Commits
c0f06fbe
Commit
c0f06fbe
authored
Jan 27, 2005
by
Dries
Browse files
- Patch
#6025
by Jeremy: avoid data to get lost when two users are editing a node at the same time.
parent
cf2bf077
Changes
2
Hide whitespace changes
Inline
Side-by-side
modules/node.module
View file @
c0f06fbe
...
...
@@ -724,6 +724,11 @@ function node_menu($may_cache) {
return
$items
;
}
function
node_last_changed
(
$nid
)
{
$node
=
db_fetch_object
(
db_query
(
'SELECT changed FROM {node} WHERE nid = %d'
,
$nid
));
return
(
$node
->
changed
);
}
/**
* Generate the content administration overview.
*/
...
...
@@ -1083,6 +1088,10 @@ function node_validate($node) {
$node
->
teaser
=
node_teaser
(
$node
->
body
);
}
if
(
node_last_changed
(
$node
->
nid
)
>
$node
->
changed
)
{
form_set_error
(
'changed'
,
t
(
'This content has been modified by another user, unable to save changes.'
));
}
// Create a new revision when required.
$node
=
node_revision_create
(
$node
);
...
...
@@ -1221,6 +1230,10 @@ function node_form($edit) {
$output
.
=
form_hidden
(
'created'
,
$edit
->
created
);
}
if
(
$edit
->
changed
)
{
$output
.
=
form_hidden
(
'changed'
,
$edit
->
changed
);
}
$output
.
=
form_hidden
(
'type'
,
$edit
->
type
);
// Add the buttons.
...
...
@@ -1353,7 +1366,6 @@ function node_preview($node) {
if
(
empty
(
$node
->
created
))
{
$node
->
created
=
time
();
}
$node
->
changed
=
time
();
// Extract a teaser, if it hasn't been set (e.g. by a module-provided
// 'teaser' form item).
...
...
modules/node/node.module
View file @
c0f06fbe
...
...
@@ -724,6 +724,11 @@ function node_menu($may_cache) {
return
$items
;
}
function
node_last_changed
(
$nid
)
{
$node
=
db_fetch_object
(
db_query
(
'SELECT changed FROM {node} WHERE nid = %d'
,
$nid
));
return
(
$node
->
changed
);
}
/**
* Generate the content administration overview.
*/
...
...
@@ -1083,6 +1088,10 @@ function node_validate($node) {
$node
->
teaser
=
node_teaser
(
$node
->
body
);
}
if
(
node_last_changed
(
$node
->
nid
)
>
$node
->
changed
)
{
form_set_error
(
'changed'
,
t
(
'This content has been modified by another user, unable to save changes.'
));
}
// Create a new revision when required.
$node
=
node_revision_create
(
$node
);
...
...
@@ -1221,6 +1230,10 @@ function node_form($edit) {
$output
.
=
form_hidden
(
'created'
,
$edit
->
created
);
}
if
(
$edit
->
changed
)
{
$output
.
=
form_hidden
(
'changed'
,
$edit
->
changed
);
}
$output
.
=
form_hidden
(
'type'
,
$edit
->
type
);
// Add the buttons.
...
...
@@ -1353,7 +1366,6 @@ function node_preview($node) {
if
(
empty
(
$node
->
created
))
{
$node
->
created
=
time
();
}
$node
->
changed
=
time
();
// Extract a teaser, if it hasn't been set (e.g. by a module-provided
// 'teaser' form item).
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment