function &get_dataset($params = array())
 {
     $request = request::instance();
     if (!($controller_id = $request->get_attribute('controller_id'))) {
         return new array_dataset();
     }
     $db_table =& db_table_factory::instance('sys_controller');
     $controller_data = $db_table->get_row_by_id($controller_id);
     if (!$controller_data) {
         return new array_dataset();
     }
     $site_object_controller =& site_object_controller::create($controller_data['name']);
     $actions = $site_object_controller->get_actions_definitions();
     $user_groups =& fetch_sub_branch('/root/user_groups', 'user_group', $counter);
     $result = array();
     foreach ($actions as $action => $action_params) {
         if (isset($action_params['action_name'])) {
             $result[$action]['action_name'] = $action_params['action_name'];
         } else {
             $result[$action]['action_name'] = str_replace('_', ' ', strtoupper($action[0]) . substr($action, 1));
         }
         $result[$action]['permissions_required'] = $action_params['permissions_required'];
         foreach ($user_groups as $group_id => $group_data) {
             $result[$action]['groups'][$group_id]['selector_name'] = 'policy[' . $group_id . '][' . $action . ']';
         }
     }
     return new array_dataset($result);
 }
  function & _fetch(&$counter, $params)
  {
    $tree_array = parent :: _fetch($counter, $params);
    $group_params['order'] = array('priority' => 'ASC');
    $user_groups =& fetch_sub_branch('/root/admin/user_groups', 'user_group', $counter, $group_params);

    $dataspace =& dataspace_registry :: get('set_group_access');

    $groups = $dataspace->get('filter_groups');

    if (!is_array($groups) || !count($groups))
      return $tree_array;

    foreach(array_keys($user_groups) as $key)
    {
      if (!in_array($key, $groups))
        unset($user_groups[$key]);
    }

    foreach($tree_array as $id => $node)
    {
      $object_id = $node['id'];
      foreach($user_groups as $group_id => $group_data)
      {
        $tree_array[$id]['groups'][$group_id]['selector_name'] = 'policy[' . $object_id . '][' .  $group_id . ']';
      }
    }

    return $tree_array;
  }
 function &get_dataset(&$counter, $params = array())
 {
     $object_data = fetch_mapped_by_url();
     if (!count($object_data)) {
         return new array_dataset(array());
     }
     $db_table =& db_table_factory::instance('sys_object_version');
     $arr = $db_table->get_list('object_id=' . $object_data['id'], 'version DESC');
     $result = array();
     $users =& fetch_sub_branch('/root/users', 'user_object', $counter);
     foreach ($arr as $data) {
         $record = $data;
         $user = '';
         if (count($users)) {
             foreach ($users as $user_data) {
                 if ($user_data['id'] == $data['creator_id']) {
                     $user = $user_data;
                     break;
                 }
             }
         }
         if ($user) {
             $record['creator_identifier'] = $user['identifier'];
             $record['creator_email'] = $user['email'];
             $record['creator_name'] = $user['name'];
             $record['creator_lastname'] = isset($user['lastname']) ? $user['lastname'] : '';
         }
         $result[] = $record;
     }
     return new array_dataset($result);
 }
 function &get_dataset($params = array())
 {
     $request = request::instance();
     if (!($class_id = $request->get_attribute('class_id'))) {
         return new array_dataset();
     }
     $db_table =& db_table_factory::instance('sys_class');
     $class_data = $db_table->get_row_by_id($class_id);
     if (!$class_data) {
         return new array_dataset();
     }
     $c =& site_object_factory::instance($class_data['class_name']);
     $site_object_controller =& $c->get_controller();
     $actions = $site_object_controller->get_actions_definitions();
     $user_groups =& fetch_sub_branch('/root/user_groups', 'user_group', $counter);
     $result = array();
     foreach ($user_groups as $group_id => $group_data) {
         foreach ($actions as $action => $action_params) {
             if (!isset($action_params['can_have_access_template']) || !$action_params['can_have_access_template']) {
                 continue;
             }
             if (isset($action_params['action_name'])) {
                 $result[$group_id]['actions'][$action]['action_name'] = $action_params['action_name'];
             } else {
                 $result[$group_id]['actions'][$action]['action_name'] = str_replace('_', ' ', strtoupper($action[0]) . substr($action, 1));
             }
             $result[$group_id]['group_name'] = $group_data['identifier'];
             $result[$group_id]['actions'][$action]['read_selector_name'] = 'template[' . $action . '][' . $group_id . '][r]';
             $result[$group_id]['actions'][$action]['write_selector_name'] = 'template[' . $action . '][' . $group_id . '][w]';
         }
     }
     return new array_dataset($result);
 }
  function _valid_perform(&$request, &$response)
  {
    $locale_id = $this->dataspace->get('locale_id');
    $object_data = $this->_load_object_data();
    
    $site_object =& wrap_with_site_object($object_data);
    $site_object->set_locale_id($locale_id);
    $site_object->update(false);

    $request->set_status(REQUEST_STATUS_FORM_SUBMITTED);
    if($request->has_attribute('popup'))
      $response->write(close_popup_response($request)); 
    
    if(!$this->dataspace->get('locale_recursive'))
      return;
    $params = array('depth' => -1,
                    'restrict_by_class' => false
                    );
    $objects = fetch_sub_branch($object_data['path'], 'site_object', $counter, $params);
    foreach ($objects as $object_id => $object_data)
    {
      $site_object =& wrap_with_site_object($object_data);
      $site_object->set_locale_id($locale_id);
      $site_object->update(false);
    }
  }
	function _load_answers($question_path)
	{
		$params = array(
			'depth' => 1
		);
		
		return fetch_sub_branch($question_path, 'poll_answer', $params);
	}
 function &get_dataset(&$counter, $params = array())
 {
     $user_groups =& fetch_sub_branch('/root/user_groups', 'user_group', $counter, $params);
     foreach ($user_groups as $id => $group_data) {
         $result[$group_data['id']] = $group_data;
         $result[$group_data['id']]['selector_name'] = 'membership[' . $group_data['id'] . ']';
     }
     return new array_dataset($result);
 }
 function get_options_array()
 {
     $params['order'] = array('priority' => 'ASC');
     $user_groups =& fetch_sub_branch('/root/user_groups', 'user_group', $counter, $params);
     $options_array = array();
     foreach ($user_groups as $key => $user) {
         $options_array[$key] = $user['title'];
     }
     return $options_array;
 }
 function &get_dataset(&$counter, $params = array())
 {
     $themes =& fetch_sub_branch('/root/subscribe', 'subscribe_theme', $counter, $params);
     if (!count($themes)) {
         return new array_dataset(array());
     }
     foreach ($themes as $id => $theme_data) {
         $result[$theme_data['id']] = $theme_data;
         $result[$theme_data['id']]['selector_name'] = 'subscribe[' . $theme_data['id'] . ']';
     }
     return new array_dataset($result);
 }
 function &_fetch(&$counter, $params)
 {
     $tree_array = parent::_fetch($counter, $params);
     $user_groups =& fetch_sub_branch('/root/user_groups', 'user_group', $counter);
     foreach ($tree_array as $id => $node) {
         $object_id = $node['id'];
         foreach ($user_groups as $group_id => $group_data) {
             $tree_array[$id]['groups'][$group_id]['read_selector_name'] = 'policy[' . $object_id . '][' . $group_id . '][r]';
             $tree_array[$id]['groups'][$group_id]['write_selector_name'] = 'policy[' . $object_id . '][' . $group_id . '][w]';
         }
     }
     return $tree_array;
 }
 function _get_subscribers_from_branch($path)
 {
     $params = array('restrict_by_class' => false);
     $temp_list =& fetch_sub_branch($path, 'site_object', $counter, $params);
     if (count($temp_list)) {
         $record = reset($temp_list);
         $subscribers_class_name = $record['class_name'];
     } else {
         return array();
     }
     $subscribers_list =& fetch_sub_branch($path, $subscribers_class_name, $counter);
     if (is_array($subscribers_list) && count($subscribers_list)) {
         return $subscribers_list;
     } else {
         return array();
     }
 }
 function &get_dataset(&$counter, $params = array())
 {
     $params['order'] = array('priority' => 'ASC');
     $user_groups =& fetch_sub_branch('/root/user_groups', 'user_group', $counter, $params);
     $group_params['order'] = array('priority' => 'ASC');
     $groups =& fetch('user_group', $counter, $group_params, 'fetch');
     $dataspace =& dataspace_registry::get('set_group_access');
     $filter_groups = $dataspace->get('filter_groups');
     if (!is_array($filter_groups) || !count($filter_groups)) {
         return false;
     }
     foreach (array_keys($groups) as $key) {
         if (!in_array($key, $filter_groups)) {
             unset($groups[$key]);
         }
     }
     return new array_dataset($groups);
 }
	function & get_dataset($params = array())
	{
		if(!isset($_REQUEST['class_id']))
			return new array_dataset();
		
		$class_id = $_REQUEST['class_id'];
		$db_table =& db_table_factory :: instance('sys_class');
		$class_data = $db_table->get_row_by_id($class_id);
		
		if (!$class_data)
			return new array_dataset();

		$c =& site_object_factory :: instance($class_data['class_name']);	
		
		$site_object_controller =& $c->get_controller();			
		
		$actions = $site_object_controller->get_actions_definitions();
		
		$user_groups =& fetch_sub_branch('/root/user_groups', 'user_group', $counter);
		
		$result = array();
		foreach($actions as $action => $action_params)
		{
			if(isset($action_params['action_name']))
				$result[$action]['action_name'] = $action_params['action_name'];
			else
				$result[$action]['action_name'] = str_replace('_', ' ', strtoupper($action{0}) . substr($action, 1));
				
			$result[$action]['permissions_required'] = $action_params['permissions_required'];
			
			foreach($user_groups as $group_id => $group_data)
			{
				$result[$action]['groups'][$group_id]['selector_name'] = 'policy[' . $group_id . '][' . $action . ']';
			}
		}
		
		return new array_dataset($result);
	}
  function & get_dataset($params = array())
  {
    if(!$controller_id = $this->_get_controller_id())
      return new array_dataset();

    $db_table =& db_table_factory :: instance('sys_controller');
    $controller_data = $db_table->get_row_by_id($controller_id);

    if (!$controller_data)
      return new array_dataset();

    $site_object_controller =& site_object_controller :: create($controller_data['name']);

    $actions = $site_object_controller->get_actions_definitions();

    $user_groups =& fetch_sub_branch('/root/admin/user_groups', 'user_group', $counter);

    $result = array();

    foreach($user_groups as $group_id => $group_data)
    {
      foreach($actions as $action => $action_params)
      {
        if (!isset($action_params['can_have_access_template']) || !$action_params['can_have_access_template'])
          continue;

        if(isset($action_params['action_name']))
          $result[$group_id]['actions'][$action]['action_name'] = $action_params['action_name'];
        else
          $result[$group_id]['actions'][$action]['action_name'] = str_replace('_', ' ', strtoupper($action{0}) . substr($action, 1));

        $result[$group_id]['group_name'] = $group_data['identifier'];
        $result[$group_id]['actions'][$action]['selector_name'] = 'template[' . $action . '][' . $group_id . ']';
      }
    }

    return new array_dataset($result);
  }
 function &_load_answers($question_path)
 {
     $result =& fetch_sub_branch($question_path, 'poll_answer', $counter);
     return $result;
 }
 function &_fetch(&$counter, $params)
 {
     $arr =& fetch_sub_branch($params['path'], $params['loader_class_name'], $counter, $params, $params['fetch_method']);
     return $arr;
 }