| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- /*
- * This file is part of MODX Revolution.
- *
- * Copyright (c) MODX, LLC. All Rights Reserved.
- *
- * For complete copyright and license information, see the COPYRIGHT and LICENSE
- * files found in the top-level directory of this distribution.
- */
- require_once (dirname(__DIR__) . '/modresource.class.php');
- /**
- * @package modx
- * @subpackage sqlsrv
- */
- class modResource_sqlsrv extends modResource {
- public static function listGroups(modResource &$resource, array $sort = array('id' => 'ASC'), $limit = 0, $offset = 0) {
- $result = array('collection' => array(), 'total' => 0);
- $c = $resource->xpdo->newQuery('modResourceGroup');
- $c->leftJoin('modResourceGroupResource', 'ResourceGroupResource', array(
- "ResourceGroupResource.document_group = modResourceGroup.id",
- 'ResourceGroupResource.document' => $resource->get('id')
- ));
- $result['total'] = $resource->xpdo->getCount('modResourceGroup',$c);
- $c->select($resource->xpdo->getSelectColumns('modResourceGroup', 'modResourceGroup'));
- $c->select(array("ISNULL(ResourceGroupResource.document,0) AS access"));
- foreach ($sort as $sortKey => $sortDir) {
- $c->sortby($resource->xpdo->escape('modResourceGroup') . '.' . $resource->xpdo->escape($sortKey), $sortDir);
- }
- if ($limit > 0) $c->limit($limit, $offset);
- $result['collection'] = $resource->xpdo->getCollection('modResourceGroup', $c);
- return $result;
- }
- public static function getTemplateVarCollection(modResource &$resource) {
- $c = $resource->xpdo->newQuery('modTemplateVar');
- $c->query['distinct'] = 'DISTINCT';
- $c->select($resource->xpdo->getSelectColumns('modTemplateVar', 'modTemplateVar'));
- if ($resource->isNew()) {
- $c->select(array(
- "modTemplateVar.default_text AS value",
- "0 AS resourceId"
- ));
- } else {
- $c->select(array(
- "ISNULL(tvc.value,modTemplateVar.default_text) AS value",
- "{$resource->get('id')} AS resourceId"
- ));
- }
- $c->select($resource->xpdo->getSelectColumns('modTemplateVarTemplate', 'tvtpl', '', array('rank')));
- $c->innerJoin('modTemplateVarTemplate','tvtpl',array(
- 'tvtpl.tmplvarid = modTemplateVar.id',
- 'tvtpl.templateid' => $resource->get('template'),
- ));
- if (!$resource->isNew()) {
- $c->leftJoin('modTemplateVarResource','tvc',array(
- 'tvc.tmplvarid = modTemplateVar.id',
- 'tvc.contentid' => $resource->get('id'),
- ));
- }
- $c->sortby('tvtpl.rank,modTemplateVar.rank');
- return $resource->xpdo->getCollection('modTemplateVar', $c);
- }
- }
|