Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mahara
mahara
Commits
617691b6
Commit
617691b6
authored
Aug 18, 2008
by
Richard Mansfield
Browse files
Do fewer queries when getting artefact children
parent
08cbaf59
Changes
1
Hide whitespace changes
Inline
Side-by-side
htdocs/artefact/lib.php
View file @
617691b6
...
...
@@ -893,16 +893,22 @@ function artefact_watchlist_notification($artefactid) {
function
artefact_get_descendants
(
$new
)
{
$seen
=
array
();
while
(
$n
=
array_shift
(
$new
))
{
$seen
[]
=
$n
;
$children
=
get_column_sql
(
'SELECT id FROM {artefact} WHERE parent = ? AND id NOT IN ('
.
implode
(
','
,
$seen
)
.
')'
,
array
(
$n
));
$new
=
array_combine
(
$new
,
$new
);
while
(
!
empty
(
$new
))
{
$seen
=
$seen
+
$new
;
$children
=
get_column_sql
(
'
SELECT id
FROM {artefact}
WHERE parent IN ('
.
implode
(
','
,
$new
)
.
') AND id NOT IN ('
.
implode
(
','
,
$seen
)
.
')'
,
array
());
if
(
$children
)
{
foreach
(
$children
as
$c
)
{
$new
[]
=
$c
;
}
$new
=
array_diff
(
$children
,
$seen
);
$new
=
array_combine
(
$new
,
$new
);
}
else
{
$new
=
array
();
}
}
return
$seen
;
return
array_values
(
$seen
)
;
}
?>
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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