modcontext.class.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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__) . '/modcontext.class.php');
  11. /**
  12. * @package modx
  13. * @subpackage sqlsrv
  14. */
  15. class modContext_sqlsrv extends modContext {
  16. public static function getResourceCacheMapStmt(&$context) {
  17. $stmt = false;
  18. if ($context instanceof modContext) {
  19. $tblResource= $context->xpdo->getTableName('modResource');
  20. $tblContextResource= $context->xpdo->getTableName('modContextResource');
  21. $resourceFields= array('id','parent','uri','menuindex');
  22. $resourceCols= $context->xpdo->getSelectColumns('modResource', 'r', '', $resourceFields);
  23. $bindings= array($context->get('key'), $context->get('key'));
  24. $sql = "SELECT {$resourceCols} FROM {$tblResource} [r] LEFT JOIN {$tblContextResource} [cr] ON [cr].[context_key] = ? AND [r].[id] = [cr].[resource] WHERE [r].[id] != [r].[parent] AND ([r].[context_key] = ? OR [cr].[context_key] IS NOT NULL) AND [r].[deleted] = 0 GROUP BY {$resourceCols} ORDER BY [r].[parent] ASC, [r].[menuindex] ASC";
  25. $criteria= new xPDOCriteria($context->xpdo, $sql, $bindings, false);
  26. if ($criteria && $criteria->stmt && $criteria->stmt->execute()) {
  27. $stmt= & $criteria->stmt;
  28. }
  29. }
  30. return $stmt;
  31. }
  32. public static function getWebLinkCacheMapStmt(&$context) {
  33. $stmt = false;
  34. if ($context instanceof modContext) {
  35. $tblResource = $context->xpdo->getTableName('modResource');
  36. $tblContextResource = $context->xpdo->getTableName('modContextResource');
  37. $resourceFields= array('id','content');
  38. $resourceCols= $context->xpdo->getSelectColumns('modResource', 'r', '', $resourceFields);
  39. $bindings = array($context->get('key'), $context->get('key'));
  40. $sql = "SELECT {$resourceCols} FROM {$tblResource} [r] LEFT JOIN {$tblContextResource} [cr] ON [cr].[context_key] = ? AND [r].[id] = [cr].[resource] WHERE [r].[id] != [r].[parent] AND [r].[class_key] = 'modWebLink' AND ([r].[context_key] = ? OR [cr].[context_key] IS NOT NULL) AND [r].[deleted] = 0 GROUP BY [r].[id]";
  41. $criteria = new xPDOCriteria($context->xpdo, $sql, $bindings, false);
  42. if ($criteria && $criteria->stmt && $criteria->stmt->execute()) {
  43. $stmt =& $criteria->stmt;
  44. }
  45. }
  46. return $stmt;
  47. }
  48. }