modresource.class.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. /*
  3. * This file is part of MODX Revolution.
  4. *
  5. * Copyright (c) MODX, LLC. All Rights Reserved.
  6. *
  7. * For complete copyright and license information, see the COPYRIGHT and LICENSE
  8. * files found in the top-level directory of this distribution.
  9. */
  10. require_once (dirname(__DIR__) . '/modresource.class.php');
  11. /**
  12. * @package modx
  13. * @subpackage sqlsrv
  14. */
  15. class modResource_sqlsrv extends modResource {
  16. public static function listGroups(modResource &$resource, array $sort = array('id' => 'ASC'), $limit = 0, $offset = 0) {
  17. $result = array('collection' => array(), 'total' => 0);
  18. $c = $resource->xpdo->newQuery('modResourceGroup');
  19. $c->leftJoin('modResourceGroupResource', 'ResourceGroupResource', array(
  20. "ResourceGroupResource.document_group = modResourceGroup.id",
  21. 'ResourceGroupResource.document' => $resource->get('id')
  22. ));
  23. $result['total'] = $resource->xpdo->getCount('modResourceGroup',$c);
  24. $c->select($resource->xpdo->getSelectColumns('modResourceGroup', 'modResourceGroup'));
  25. $c->select(array("ISNULL(ResourceGroupResource.document,0) AS access"));
  26. foreach ($sort as $sortKey => $sortDir) {
  27. $c->sortby($resource->xpdo->escape('modResourceGroup') . '.' . $resource->xpdo->escape($sortKey), $sortDir);
  28. }
  29. if ($limit > 0) $c->limit($limit, $offset);
  30. $result['collection'] = $resource->xpdo->getCollection('modResourceGroup', $c);
  31. return $result;
  32. }
  33. public static function getTemplateVarCollection(modResource &$resource) {
  34. $c = $resource->xpdo->newQuery('modTemplateVar');
  35. $c->query['distinct'] = 'DISTINCT';
  36. $c->select($resource->xpdo->getSelectColumns('modTemplateVar', 'modTemplateVar'));
  37. if ($resource->isNew()) {
  38. $c->select(array(
  39. "modTemplateVar.default_text AS value",
  40. "0 AS resourceId"
  41. ));
  42. } else {
  43. $c->select(array(
  44. "ISNULL(tvc.value,modTemplateVar.default_text) AS value",
  45. "{$resource->get('id')} AS resourceId"
  46. ));
  47. }
  48. $c->select($resource->xpdo->getSelectColumns('modTemplateVarTemplate', 'tvtpl', '', array('rank')));
  49. $c->innerJoin('modTemplateVarTemplate','tvtpl',array(
  50. 'tvtpl.tmplvarid = modTemplateVar.id',
  51. 'tvtpl.templateid' => $resource->get('template'),
  52. ));
  53. if (!$resource->isNew()) {
  54. $c->leftJoin('modTemplateVarResource','tvc',array(
  55. 'tvc.tmplvarid = modTemplateVar.id',
  56. 'tvc.contentid' => $resource->get('id'),
  57. ));
  58. }
  59. $c->sortby('tvtpl.rank,modTemplateVar.rank');
  60. return $resource->xpdo->getCollection('modTemplateVar', $c);
  61. }
  62. }