X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FRegion.php;h=9db08aa172b053e9a270f583456854fc064dec43;hb=5c4d65599fee6dfdf661b4932d12c5905e60ac90;hp=63953d104b95b1ce7b86f5f2e58c275475e1316d;hpb=1789c269b1c68178c1f3de38d751a4e37f94db4c;p=civicrm-core.git
diff --git a/CRM/Core/Region.php b/CRM/Core/Region.php
index 63953d104b..9db08aa172 100644
--- a/CRM/Core/Region.php
+++ b/CRM/Core/Region.php
@@ -10,11 +10,12 @@ class CRM_Core_Region {
* Obtain the content for a given region
*
* @param string $name
- * @param bool $autocreate whether to automatically create an empty region
+ * @param bool $autocreate
+ * Whether to automatically create an empty region.
* @return CRM_Core_Region
*/
- static function &instance($name, $autocreate = TRUE) {
- if ( $autocreate && ! isset( self::$_instances[$name] ) ) {
+ public static function &instance($name, $autocreate = TRUE) {
+ if ($autocreate && !isset(self::$_instances[$name])) {
self::$_instances[$name] = new CRM_Core_Region($name);
}
return self::$_instances[$name];
@@ -42,12 +43,12 @@ class CRM_Core_Region {
var $_isSorted;
/**
- * @param $name
+ * @param string $name
*/
public function __construct($name) {
// Templates injected into regions should normally be file names, but sometimes inline notation is handy.
require_once 'CRM/Core/Smarty/resources/String.php';
- civicrm_smarty_register_string_resource( );
+ civicrm_smarty_register_string_resource();
$this->_name = $name;
$this->_snippets = array();
@@ -83,7 +84,8 @@ class CRM_Core_Region {
* Note: This function does not perform any extra encoding of markup, script code, or etc. If
* you're passing in user-data, you must clean it yourself.
*
- * @param $snippet array; keys:
+ * @param array $snippet
+ * Array; keys:.
* - type: string (auto-detected for markup, template, callback, script, scriptUrl, jquery, style, styleUrl)
* - name: string, optional
* - weight: int, optional; default=1
@@ -120,13 +122,13 @@ class CRM_Core_Region {
if (!isset($snippet['name'])) {
$snippet['name'] = count($this->_snippets);
}
- $this->_snippets[ $snippet['name'] ] = $snippet;
+ $this->_snippets[$snippet['name']] = $snippet;
$this->_isSorted = FALSE;
return $snippet;
}
/**
- * @param $name
+ * @param string $name
* @param $snippet
*/
public function update($name, $snippet) {
@@ -135,7 +137,7 @@ class CRM_Core_Region {
}
/**
- * @param $name
+ * @param string $name
*
* @return mixed
*/
@@ -146,8 +148,10 @@ class CRM_Core_Region {
/**
* Render all the snippets in a region
*
- * @param string $default HTML, the initial content of the region
- * @param bool $allowCmsOverride allow CMS to override rendering of region
+ * @param string $default
+ * HTML, the initial content of the region.
+ * @param bool $allowCmsOverride
+ * Allow CMS to override rendering of region.
* @return string, HTML
*/
public function render($default, $allowCmsOverride = TRUE) {
@@ -169,25 +173,29 @@ class CRM_Core_Region {
if ($snippet['disabled']) {
continue;
}
- switch($snippet['type']) {
+ switch ($snippet['type']) {
case 'markup':
$html .= $snippet['markup'];
break;
+
case 'template':
$tmp = $smarty->get_template_vars('snippet');
$smarty->assign('snippet', $snippet);
$html .= $smarty->fetch($snippet['template']);
$smarty->assign('snippet', $tmp);
break;
+
case 'callback':
$args = isset($snippet['arguments']) ? $snippet['arguments'] : array(&$snippet, &$html);
$html .= call_user_func_array($snippet['callback'], $args);
break;
+
case 'scriptUrl':
if (!$allowCmsOverride || !$cms->addScriptUrl($snippet['scriptUrl'], $this->_name)) {
$html .= sprintf("\n", $snippet['scriptUrl']);
}
break;
+
case 'jquery':
$snippet['script'] = sprintf("CRM.\$(function(\$) {\n%s\n});", $snippet['jquery']);
// no break - continue processing as script
@@ -196,20 +204,23 @@ class CRM_Core_Region {
$html .= sprintf("\n", $snippet['script']);
}
break;
+
case 'styleUrl':
if (!$allowCmsOverride || !$cms->addStyleUrl($snippet['styleUrl'], $this->_name)) {
$html .= sprintf("\n", $snippet['styleUrl']);
}
break;
+
case 'style':
if (!$allowCmsOverride || !$cms->addStyle($snippet['style'], $this->_name)) {
$html .= sprintf("\n", $snippet['style']);
}
break;
+
default:
require_once 'CRM/Core/Error.php';
- CRM_Core_Error::fatal( ts( 'Snippet type %1 is unrecognized',
- array( 1 => $snippet['type'] ) ) );
+ CRM_Core_Error::fatal(ts('Snippet type %1 is unrecognized',
+ array(1 => $snippet['type'])));
}
}
return $html;
@@ -221,53 +232,65 @@ class CRM_Core_Region {
*
* @return int
*/
- static function _cmpSnippet($a, $b) {
- if ($a['weight'] < $b['weight']) return -1;
- if ($a['weight'] > $b['weight']) return 1;
+ public static function _cmpSnippet($a, $b) {
+ if ($a['weight'] < $b['weight']) {
+ return -1;
+ }
+ if ($a['weight'] > $b['weight']) {
+ return 1;
+ }
// fallback to name sort; don't really want to do this, but it makes results more stable
- if ($a['name'] < $b['name']) return -1;
- if ($a['name'] > $b['name']) return 1;
+ if ($a['name'] < $b['name']) {
+ return -1;
+ }
+ if ($a['name'] > $b['name']) {
+ return 1;
+ }
return 0;
}
/**
* Add block of static HTML to a region
*
- * @param string $markup HTML
+ * @param string $markup
+ * HTML.
*
- public function addMarkup($markup) {
- return $this->add(array(
- 'type' => 'markup',
- 'markup' => $markup,
- ));
- }
-
- /**
+ * public function addMarkup($markup) {
+ * return $this->add(array(
+ * 'type' => 'markup',
+ * 'markup' => $markup,
+ * ));
+ * }
+ *
+ * /**
* Add a Smarty template file to a region
*
* Note: File is not evaluated until the page is rendered
*
- * @param string $template path to the Smarty template file
+ * @param string $template
+ * Path to the Smarty template file.
*
- public function addTemplate($template) {
- return $this->add(array(
- 'type' => 'template',
- 'template' => $template,
- ));
- }
-
- /**
+ * public function addTemplate($template) {
+ * return $this->add(array(
+ * 'type' => 'template',
+ * 'template' => $template,
+ * ));
+ * }
+ *
+ * /**
* Use a callback function to extend a region
*
* @param mixed $callback
- * @param array $arguments optional, array of parameters for callback; if omitted, the default arguments are ($snippetSpec, $html)
+ * @param array $arguments
+ * Optional, array of parameters for callback; if omitted, the default arguments are ($snippetSpec, $html).
*
- public function addCallback($callback, $arguments = FALSE) {
- return $this->add(array(
- 'type' => 'callback',
- 'callback' => $callback,
- 'arguments' => $arguments,
- ));
- }
- */
+ * public function addCallback($callback, $arguments = FALSE) {
+ * return $this->add(array(
+ * 'type' => 'callback',
+ * 'callback' => $callback,
+ * 'arguments' => $arguments,
+ * ));
+ * }
+ */
+
}