public static function delete($id, $language = null, $revisionId = null)
{
// redefine
$id = (int) $id;
$language = $language === null ? BL::getWorkingLanguage() : (string) $language;
// get db
$db = BackendModel::getContainer()->get('database');
// get record
$page = self::get($id, $revisionId, $language);
// validate
if (empty($page)) {
return false;
}
if ($page['allow_delete'] == 'N') {
return false;
}
// get revision ids
$revisionIDs = (array) $db->getColumn('SELECT i.revision_id
FROM pages AS i
WHERE i.id = ? AND i.language = ?', array($id, $language));
// get meta ids
$metaIDs = (array) $db->getColumn('SELECT i.meta_id
FROM pages AS i
WHERE i.id = ? AND i.language = ?', array($id, $language));
// delete meta records
if (!empty($metaIDs)) {
$db->delete('meta', 'id IN (' . implode(',', $metaIDs) . ')');
}
// delete blocks and their revisions
if (!empty($revisionIDs)) {
$db->delete('pages_blocks', 'revision_id IN (' . implode(',', $revisionIDs) . ')');
}
// delete page and the revisions
if (!empty($revisionIDs)) {
$db->delete('pages', 'revision_id IN (' . implode(',', $revisionIDs) . ')');
}
// delete tags
BackendTagsModel::saveTags($id, '', 'Pages');
// return
return true;
}