protected function bugfixDBFunctionReturnedNoError()
{
$db = JFactory::getDbo();
// Fix broken #__assets records
$query = $db->getQuery(true);
$query->select('id')->from('#__assets')->where($db->qn('name') . ' = ' . $db->q($this->componentName));
$db->setQuery($query);
try {
$ids = $db->loadColumn();
} catch (Exception $exc) {
return;
}
if (!empty($ids)) {
foreach ($ids as $id) {
$query = $db->getQuery(true);
$query->delete('#__assets')->where($db->qn('id') . ' = ' . $db->q($id));
$db->setQuery($query);
try {
$db->execute();
} catch (Exception $exc) {
// Nothing
}
}
}
// Fix broken #__extensions records
$query = $db->getQuery(true);
$query->select('extension_id')->from('#__extensions')->where($db->qn('type') . ' = ' . $db->q('component'))->where($db->qn('element') . ' = ' . $db->q($this->componentName));
$db->setQuery($query);
$ids = $db->loadColumn();
if (!empty($ids)) {
foreach ($ids as $id) {
$query = $db->getQuery(true);
$query->delete('#__extensions')->where($db->qn('extension_id') . ' = ' . $db->q($id));
$db->setQuery($query);
try {
$db->execute();
} catch (Exception $exc) {
// Nothing
}
}
}
// Fix broken #__menu records
$query = $db->getQuery(true);
$query->select('id')->from('#__menu')->where($db->qn('type') . ' = ' . $db->q('component'))->where($db->qn('menutype') . ' = ' . $db->q('main'))->where($db->qn('link') . ' LIKE ' . $db->q('index.php?option=' . $this->componentName));
$db->setQuery($query);
$ids = $db->loadColumn();
if (!empty($ids)) {
foreach ($ids as $id) {
$query = $db->getQuery(true);
$query->delete('#__menu')->where($db->qn('id') . ' = ' . $db->q($id));
$db->setQuery($query);
try {
$db->execute();
} catch (Exception $exc) {
// Nothing
}
}
}
}