aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/views.php
diff options
context:
space:
mode:
Diffstat (limited to 'engine/lib/views.php')
-rw-r--r--engine/lib/views.php57
1 files changed, 31 insertions, 26 deletions
diff --git a/engine/lib/views.php b/engine/lib/views.php
index 459f84b69..24b25ffd0 100644
--- a/engine/lib/views.php
+++ b/engine/lib/views.php
@@ -916,38 +916,43 @@ function elgg_view_entity_annotations(ElggEntity $entity, $full = true) {
/**
* Displays a layout with optional parameters.
*
- * Layouts control the static elements in Elgg's appearance.
+ * Layouts provide consistent organization of pages and other blocks of content.
* There are a few default layouts in core:
- * - administration A special layout for the admin area.
- * - one_column A single column page with a header and footer.
- * - one_column_with_sidebar A single column page with a header, footer, and sidebar.
- * - widgets A widget canvas.
- *
- * Arguments to this function are passed to the layouts as $area1, $area2,
- * ... $areaN. See the individual layouts for what options are supported.
- *
- * Layouts are stored in canvas/layouts/$layout_name.
- *
- * @tip When calling this function, be sure to name the variable argument
- * names as something meaningful. Avoid the habit of using $areaN as the
- * argument names.
- *
- * @param string $layout The name of the views in canvas/layouts/.
+ * - administration A special layout for the admin area.
+ * - one_column A single content column.
+ * - one_column_with_sidebar A content column with sidebar.
+ * - widgets A widget canvas.
+ *
+ * The layout views take the form canvas/layouts/$layout_name
+ * See the individual layouts for what options are supported. The two most
+ * common layouts have these parameters:
+ * one_column
+ * content => string
+ * one_column_with_sidebar
+ * content => string
+ * sidebar => string (optional)
+ *
+ * @param string $layout The name of the view in canvas/layouts/.
+ * @param array $vars Associative array of parameters for the layout view
*
* @return string The layout
- * @todo Make this consistent with the rest of the view functions by passing
- * an array instead of "$areaN".
*/
-function elgg_view_layout($layout) {
- $arg = 1;
- $param_array = array();
- while ($arg < func_num_args()) {
- $param_array['area' . $arg] = func_get_arg($arg);
- $arg++;
+function elgg_view_layout($layout_name, $vars = array()) {
+
+ if (is_string($vars)) {
+ elgg_deprecated_notice("The use of unlimited optional string arguments in elgg_view_layout() was deprecated in favor of an options array", 1.8);
+ $arg = 1;
+ $param_array = array();
+ while ($arg < func_num_args()) {
+ $param_array['area' . $arg] = func_get_arg($arg);
+ $arg++;
+ }
+ } else {
+ $param_array = $vars;
}
- if (elgg_view_exists("canvas/layouts/{$layout}")) {
- return elgg_view("canvas/layouts/{$layout}", $param_array);
+ if (elgg_view_exists("canvas/layouts/{$layout_name}")) {
+ return elgg_view("canvas/layouts/{$layout_name}", $param_array);
} else {
return elgg_view("canvas/default", $param_array);
}