Repository.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace MGModule\DNSManager2\models\custom\zone;
  3. use MGModule\DNSManager2 as main;
  4. use MGModule\DNSManager2\mgLibs\MySQL as sql;
  5. use MGModule\DNSManager2\models\custom\server as server;
  6. /**
  7. * Description of repository
  8. *
  9. *
  10. */
  11. class Repository extends \MGModule\DNSManager2\mgLibs\models\repository{
  12. public function getModelClass() {
  13. return __NAMESPACE__.'\Zone';
  14. }
  15. public function getServersZonesUsed($server = false) {
  16. $serverrep = new server\Repository();
  17. return sql\query::query('SELECT b.name, b.module, count(a.serverid) AS c FROM ' . $this->tableName() . ' a '
  18. . 'INNER JOIN ' . $serverrep->tableName() . ' b ON a.serverid = b.id '
  19. . ($server === false?'':' WHERE b.module = :module ')
  20. . 'GROUP BY a.serverid', ($server === false? array() : array('module' => $server)))->fetchAll();
  21. }
  22. public function getZonesWith($type, $relid = false, $clientid = false) {
  23. $this->setFilter('type', $type);
  24. if($relid !== false)
  25. $this->setFilter('relid', $relid);
  26. if($clientid !== false)
  27. $this->setFilter('clientid', $clientid);
  28. return $this->get();
  29. }
  30. public function byServerID($serverid) {
  31. return $this->setFilter('serverid', $serverid);
  32. }
  33. public function byRelID($relid) {
  34. return $this->setFilter('relid', $relid);
  35. }
  36. public function byType($type) {
  37. return $this->setFilter('type', $type);
  38. }
  39. public function byClientID($clientid) {
  40. return $this->setFilter('clientid', $clientid);
  41. }
  42. public function byName($name) {
  43. return $this->setFilter('name', $name);
  44. }
  45. public function byId($zoneId)
  46. {
  47. return $this->setFilter('id', $zoneId);
  48. }
  49. }