Source for file views.php
Documentation is available at views.php
* @package FrameworkOnFramework
* @copyright Copyright (c)2010-2012 Nicholas K. Dionysopoulos
* @license GNU General Public License version 2, or later
* Configuration parser for the view-specific settings
* @package FrameworkOnFramework
* Parse the XML data, adding them to the $ret array
* @param SimpleXMLElement $xml The XML data of the component's configuration area
* @param array &$ret The parsed data, in the form of a hash array
public function parseDomain(SimpleXMLElement $xml, array &$ret)
// Parse view configuration
$viewData =
$xml->xpath('view');
foreach ($viewData as $aView)
$key = (string)
$aView['name'];
$ret['views'][$key]['acl'] =
array();
$aclData =
$aView->xpath('acl/task');
foreach ($aclData as $acl)
$k = (string)
$acl['name'];
$ret['views'][$key]['acl'][$k] = (string)
$acl;
$ret['views'][$key]['taskmap'] =
array();
$taskmapData =
$aView->xpath('taskmap/task');
if (!empty($taskmapData))
foreach ($taskmapData as $map)
$k = (string)
$map['name'];
$ret['views'][$key]['taskmap'][$k] = (string)
$map;
// Parse controller configuration
$ret['views'][$key]['config'] =
array();
$optionData =
$aView->xpath('config/option');
foreach ($optionData as $option)
$k = (string)
$option['name'];
$ret['views'][$key]['config'][$k] = (string)
$option;
$ret['views'][$key]['toolbar'] =
array();
$toolBar =
$aView->xpath('toolbar');
$toolbarAttributes =
$toolBar[0]->attributes();
// If a toolbar title is specified, create a title element.
if (isset
($toolbarAttributes['title']))
$ret['views'][$key]['toolbar']['title'] =
array(
'value' => (string)
$toolbarAttributes['title']
// Parse the toolbar buttons data
$toolbarData =
$aView->xpath('toolbar/button');
if (!empty($toolbarData))
foreach ($toolbarData as $button)
$k = (string)
$button['type'];
$ret['views'][$key]['toolbar'][$k] =
current($button->attributes());
$ret['views'][$key]['toolbar'][$k]['value'] = (string)
$button;
* Return a configuration variable
* @param string &$configuration Configuration variables (hashed array)
* @param string $var The variable we want to fetch
* @param mixed $default Default value
* @return mixed The variable's value
public function get(&$configuration, $var, $default)
$method =
'get' .
ucfirst($parts[1]);
$ret =
$this->$method($view, $configuration, $parts, $default);
* Internal function to return the task map for a view
* @param string $view The view for which we will be fetching a task map
* @param array &$configuration The configuration parameters hash array
* @param array $params Extra options (not used)
* @param array $default ßDefault task map; empty array if not provided
* @return array The task map as a hash array in the format task => method
protected function getTaskmap($view, &$configuration, $params, $default =
array())
if (isset
($configuration['views']['*']) && isset
($configuration['views']['*']['taskmap']))
$taskmap =
$configuration['views']['*']['taskmap'];
if (isset
($configuration['views'][$view]) && isset
($configuration['views'][$view]['taskmap']))
$taskmap =
array_merge($taskmap, $configuration['views'][$view]['taskmap']);
* Internal method to return the ACL mapping (privilege required to access
* a specific task) for the given view's tasks
* @param string $view The view for which we will be fetching a task map
* @param array &$configuration The configuration parameters hash array
* @param array $params Extra options; key 0 defines the task we want to fetch
* @param string $default Default ACL option; empty (no ACL check) if not defined
* @return string The privilege required to access this view
protected function getAcl($view, &$configuration, $params, $default =
'')
if (isset
($configuration['views']['*']) && isset
($configuration['views']['*']['acl']))
$aclmap =
$configuration['views']['*']['acl'];
if (isset
($configuration['views'][$view]) && isset
($configuration['views'][$view]['acl']))
$aclmap =
array_merge($aclmap, $configuration['views'][$view]['acl']);
if (isset
($aclmap[$params[0]]))
$acl =
$aclmap[$params[0]];
* Internal method to return the a configuration option for the view. These
* are equivalent to $config array options passed to the Controller
* @param string $view The view for which we will be fetching a task map
* @param array &$configuration The configuration parameters hash array
* @param array $params Extra options; key 0 defines the option variable we want to fetch
* @param mixed $default Default option; null if not defined
* @return string The setting for the requested option
protected function getConfig($view, &$configuration, $params, $default =
null)
if (isset
($configuration['views']['*'])
&& isset
($configuration['views']['*']['config'])
&& isset
($configuration['views']['*']['config'][$params[0]]))
$ret =
$configuration['views']['*']['config'][$params[0]];
if (isset
($configuration['views'][$view])
&& isset
($configuration['views'][$view]['config'])
&& isset
($configuration['views'][$view]['config'][$params[0]]))
$ret =
$configuration['views'][$view]['config'][$params[0]];
* Internal method to return the toolbar infos.
* @param string $view The view for which we will be fetching buttons
* @param array &$configuration The configuration parameters hash array
* @param array $params Extra options
* @param string $default Default option
* @return string The toolbar data for this view
protected function getToolbar($view, &$configuration, $params, $default =
'')
if (isset
($configuration['views']['*']) && isset
($configuration['views']['*']['toolbar']))
$toolbar =
$configuration['views']['*']['toolbar'];
if (isset
($configuration['views'][$view]) && isset
($configuration['views'][$view]['toolbar']))
$toolbar =
array_merge($toolbar, $configuration['views'][$view]['toolbar']);
Documentation generated on Tue, 19 Nov 2013 15:18:18 +0100 by phpDocumentor 1.4.3