PageRenderTime 38ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/contentmanager/code/trunk/administrator/components/com_contentmanager/models/fields/list/access.php

https://bitbucket.org/eddieajau/the-art-of-joomla-archive
PHP | 50 lines | 30 code | 7 blank | 13 comment | 3 complexity | 31fb3bafd4160592df255048d41782a5 MD5 | raw file
  1. <?php
  2. /**
  3. * @version $Id: access.php 39 2009-05-21 07:32:36Z eddieajau $
  4. * @copyright Copyright (C) 2009 New Life in IT Pty Ltd. All rights reserved.
  5. * @license GNU General Public License <http://www.gnu.org/copyleft/gpl.html>
  6. * @link http://www.theartofjoomla.com
  7. */
  8. // no direct access
  9. defined('_JEXEC') or die;
  10. jimport('joomla.html.html');
  11. /**
  12. * List access levels
  13. *
  14. * @package TAOJ.ContentManager
  15. * @subpackage com_contentmanager
  16. */
  17. class JXFieldTypeList_Access extends JXFieldTypeList
  18. {
  19. function _getOptions(&$node)
  20. {
  21. $config = &JComponentHelper::getParams('com_contentmanager');
  22. $db =& JFactory::getDBO();
  23. $query = new JXQuery;
  24. if ($config->get('acl_mode') == 1) {
  25. $query->select('a.value, a.name AS text');
  26. $query->select('COUNT(DISTINCT g2.id) AS level');
  27. $query->from('#__core_acl_axo_groups AS a');
  28. $query->join('LEFT OUTER', '#__core_acl_axo_groups AS g2 ON a.lft > g2.lft AND a.rgt < g2.rgt');
  29. $query->group('a.id');
  30. }
  31. else {
  32. $query->select('id AS value, name AS text, 0 AS level');
  33. $query->from('#__groups');
  34. $query->order('id');
  35. }
  36. $db->setQuery($query->toString());
  37. $options = $db->loadObjectList();
  38. foreach ($options as $i => $option) {
  39. $options[$i]->text = str_pad($options[$i]->text, strlen($options[$i]->text) + $options[$i]->level * 2, '- ', STR_PAD_LEFT);
  40. }
  41. return $options;
  42. }
  43. }