/** * Delete one */ public function deleteOne(manufacturer $m) { try { dibi::query('DELETE FROM [:prefix:manufacturers]', 'WHERE [id] = %i', $m->getId(), 'LIMIT 1'); dibi::query('DELETE FROM [:prefix:pages]', 'WHERE [nice_name] = %s', $m->getNiceName(), 'LIMIT 1'); return TRUE; } catch (Exception $e) { return FALSE; } }
/** * Count by manufacturer * @return int */ public function countByManufacturer(manufacturer $manufacturer, $letter = NULL) { try { $query = array('SELECT COUNT(*) FROM [:prefix:products] AS [products]'); if ($letter !== NULL) { $query[] = 'LEFT JOIN [:prefix:pages] AS [pages] ON [pages].[ref_id] = [products].[id] AND [pages].[ref_type] = %s'; $query[] = pages::PRODUCT; } $query[] = 'LEFT JOIN [:prefix:manufacturers] AS [manufacturers] ON [products].[manufacturer_id] = [manufacturers].[id]'; $query[] = 'WHERE [manufacturers].[id] = %i'; $query[] = $manufacturer->getId(); if ($letter !== NULL) { $query = array_merge($query, (array) 'AND', $this->whereLetter($letter)); } return dibi::query($query)->fetchSingle(); } catch (Exception $e) { return NULL; } }