fix for a sometime not terminating loop. patch provided by knut moeller

This commit is contained in:
Lars Kneschke 2007-05-25 08:24:22 +00:00
parent b8f54d1408
commit aee25f82df

View File

@ -257,17 +257,27 @@ class bolink extends solink
$only_app = substr(1,$only_app);
}
end($id);
while ($link = current($id))
foreach (array_reverse($id) as $link) {
if (is_array($link) // check for unlink-marker
&& !($only_app && $not_only == ($link['app'] == $only_app)))
{
if (!is_array($link) || // check for unlink-marker
$only_app && $not_only == ($link['app'] == $only_app))
{
continue;
}
$ids[$link['link_id']] = $only_app ? $link['id'] : $link;
prev($id);
}
}
# the old version of the foreach from above
# left here for reference. can be deleted later
#
#while ($link = current($id))
#{
# if (!is_array($link) || // check for unlink-marker
# $only_app && $not_only == ($link['app'] == $only_app))
# {
# continue;
# }
# $ids[$link['link_id']] = $only_app ? $link['id'] : $link;
# prev($id);
#}
}
return $ids;
}
$ids = solink::get_links($app,$id,$only_app,$order);