本文整理汇总了PHP中ArtefactTypeComment::delete_comments_onartefacts方法的典型用法代码示例。如果您正苦于以下问题:PHP ArtefactTypeComment::delete_comments_onartefacts方法的具体用法?PHP ArtefactTypeComment::delete_comments_onartefacts怎么用?PHP ArtefactTypeComment::delete_comments_onartefacts使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ArtefactTypeComment
的用法示例。
在下文中一共展示了ArtefactTypeComment::delete_comments_onartefacts方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: delete_by_artefacttype
/**
* Does a bulk_delete on a list of artefacts, grouping artefacts of
* the same type.
*
* Currently only tested for folders and their contents.
*/
public static function delete_by_artefacttype($artefactids)
{
if (empty($artefactids)) {
return;
}
db_begin();
artefact_watchlist_notification($artefactids);
// Delete comments first
safe_require('artefact', 'comment');
ArtefactTypeComment::delete_comments_onartefacts($artefactids);
$records = get_records_select_assoc('artefact', 'id IN (' . join(',', array_map('intval', $artefactids)) . ')', null, 'artefacttype', 'id,parent,artefacttype,container');
$containers = array();
$leaves = array();
foreach ($records as $r) {
if ($r->container) {
$containers[$r->artefacttype][] = (int) $r->id;
} else {
$leaves[$r->artefacttype][] = $r->id;
}
}
// Delete non-containers grouped by artefacttype
foreach ($leaves as $artefacttype => $ids) {
$classname = generate_artefact_class_name($artefacttype);
call_static_method($classname, 'bulk_delete', $ids);
}
// Delete containers grouped by artefacttype
foreach ($containers as $artefacttype => $ids) {
$classname = generate_artefact_class_name($artefacttype);
if (is_mysql()) {
set_field_select('artefact', 'parent', null, 'id IN (' . join(',', $ids) . ')', array());
}
call_static_method($classname, 'bulk_delete', $ids);
}
handle_event('deleteartefacts', $artefactids);
db_commit();
}