/**
* Delete an item.
*
* @param int $id The id of the record to delete.
*/
public static function delete($id)
{
$id = (int) $id;
$db = BackendModel::getContainer()->get('database');
// get field ids
$fieldIds = (array) $db->getColumn('SELECT i.id FROM forms_fields AS i WHERE i.form_id = ?', $id);
// we have items to be deleted
if (!empty($fieldIds)) {
// delete all fields
$db->delete('forms_fields', 'form_id = ?', $id);
$db->delete('forms_fields_validation', 'field_id IN(' . implode(',', $fieldIds) . ')');
}
// get data ids
$dataIds = (array) $db->getColumn('SELECT i.id FROM forms_data AS i WHERE i.form_id = ?', $id);
// we have items to be deleted
if (!empty($dataIds)) {
self::deleteData($dataIds);
}
// delete extra
BackendModel::deleteExtra('FormBuilder', 'widget', array('id' => $id));
// delete form
$db->delete('forms', 'id = ?', $id);
}