aboutsummaryrefslogtreecommitdiff
path: root/views/default/layout
diff options
context:
space:
mode:
Diffstat (limited to 'views/default/layout')
-rw-r--r--views/default/layout/objects/widget.php52
-rw-r--r--views/default/layout/objects/widget/controls.php44
-rw-r--r--views/default/layout/objects/widget/settings.php44
-rw-r--r--views/default/layout/shells/widgets.php4
-rw-r--r--views/default/layout/shells/widgets/add_button.php13
-rw-r--r--views/default/layout/shells/widgets/add_panel.php51
6 files changed, 206 insertions, 2 deletions
diff --git a/views/default/layout/objects/widget.php b/views/default/layout/objects/widget.php
new file mode 100644
index 000000000..d109693e1
--- /dev/null
+++ b/views/default/layout/objects/widget.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Widget object
+ *
+ * @uses $vars['entity']
+ */
+
+$widget = $vars['entity'];
+if (!elgg_instanceof($widget, 'object', 'widget')) {
+ return true;
+}
+
+// @todo catch for disabled plugins
+$widgettypes = elgg_get_widget_types('all');
+
+$handler = $widget->handler;
+
+$title = $widget->getTitle();
+
+$can_edit = $widget->canEdit();
+
+$widget_id = "widget-$widget->guid";
+$widget_instance = "widget-instance-$handler";
+
+?>
+<div class="widget draggable <?php echo $widget_instance?>" id="<?php echo $widget_id; ?>">
+ <div class="widget-title drag-handle">
+ <h3><?php echo $title; ?></h3>
+ </div>
+ <?php
+ if ($can_edit) {
+ echo elgg_view('layout/objects/widget/controls', array('widget' => $widget));
+ }
+ ?>
+ <div class="widget-container">
+ <?php
+ if ($can_edit) {
+ echo elgg_view('layout/objects/widget/settings', array('widget' => $widget));
+ }
+ ?>
+ <div class="widget-content">
+ <?php
+ if (elgg_view_exists("widgets/$handler/content")) {
+ echo elgg_view("widgets/$handler/content", $vars);
+ } else {
+ elgg_deprecated_notice("widgets use content as the display view", 1.8);
+ echo elgg_view("widgets/$handler/view", $vars);
+ }
+ ?>
+ </div>
+ </div>
+</div>
diff --git a/views/default/layout/objects/widget/controls.php b/views/default/layout/objects/widget/controls.php
new file mode 100644
index 000000000..5e6aaf193
--- /dev/null
+++ b/views/default/layout/objects/widget/controls.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Elgg widget controls
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+$widget = $vars['widget'];
+
+$params = array(
+ 'text' => ' ',
+ 'href' => "#",
+ 'class' => 'widget-collapse-button',
+ 'internalid' => "widget-collapse-button_$widget->guid"
+);
+$collapse_link = elgg_view('output/url', $params);
+
+$params = array(
+ 'text' => ' ',
+ 'title' => elgg_echo('widget:delete', array($widget->getTitle())),
+ 'href' => elgg_get_site_url() . "action/widgets/delete?guid=$widget->guid",
+ 'is_action' => true,
+ 'class' => 'widget-delete-button',
+ 'internalid' => "widget-delete-button_$widget->guid"
+);
+$delete_link = elgg_view('output/url', $params);
+
+$params = array(
+ 'text' => ' ',
+ 'title' => elgg_echo('widget:edit'),
+ 'href' => "#",
+ 'class' => 'widget-edit-button',
+ 'internalid' => "widget-edit-button_$widget->guid"
+);
+$edit_link = elgg_view('output/url', $params);
+
+echo <<<___END
+<div class="widget-controls">
+ $collapse_link
+ $delete_link
+ $edit_link
+</div>
+___END;
diff --git a/views/default/layout/objects/widget/settings.php b/views/default/layout/objects/widget/settings.php
new file mode 100644
index 000000000..5814e5821
--- /dev/null
+++ b/views/default/layout/objects/widget/settings.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Elgg widget edit settings
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+$widget = $vars['widget'];
+
+$edit_view = "widgets/$widget->handler/edit";
+$custom_form_section = elgg_view($edit_view, array('entity' => $widget));
+
+$access_label = elgg_echo('access');
+$access = elgg_view('input/access', array('internalname' => 'params[access_id]','value' => $widget->access_id));
+$access_html = "<p><label>$access_label:</label> $access</p>";
+
+$hidden = elgg_view('input/hidden', array('internalname' => 'guid', 'value' => $widget->guid));
+$submit = elgg_view('input/submit', array('value' => elgg_echo('save')));
+
+// dashboard widgets do not get access controls
+if (elgg_in_context('dashboard')) {
+ $access = '';
+}
+
+$body = <<<___END
+ $custom_form_section
+ $access
+ <p>
+ $hidden
+ $submit
+ </p>
+___END;
+
+?>
+<div class="widget-edit">
+<?php
+$params = array(
+ 'body' => $body,
+ 'action' => "action/widgets/save"
+);
+echo elgg_view('input/form', $params);
+?>
+</div>
diff --git a/views/default/layout/shells/widgets.php b/views/default/layout/shells/widgets.php
index 130b2eaad..e5b63114b 100644
--- a/views/default/layout/shells/widgets.php
+++ b/views/default/layout/shells/widgets.php
@@ -19,13 +19,13 @@ $widgets = elgg_get_widgets($owner->guid, $context);
if (elgg_can_edit_widget_layout($context)) {
if ($show_add_widgets) {
- echo elgg_view('widgets/add-button');
+ echo elgg_view('layout/shells/widgets/add_button');
}
$params = array(
'widgets' => $widgets,
'context' => $context,
);
- echo elgg_view('widgets/add_panel', $params);
+ echo elgg_view('layout/shells/widgets/add_panel', $params);
}
echo $vars['box'];
diff --git a/views/default/layout/shells/widgets/add_button.php b/views/default/layout/shells/widgets/add_button.php
new file mode 100644
index 000000000..92de8a99f
--- /dev/null
+++ b/views/default/layout/shells/widgets/add_button.php
@@ -0,0 +1,13 @@
+<?php
+
+?>
+<div id="widget-add-button">
+<?php
+$options = array(
+ 'href' => '#',
+ 'text' => elgg_echo('widgets:add'),
+ 'class' => 'action-button',
+);
+echo elgg_view('output/url', $options);
+?>
+</div>
diff --git a/views/default/layout/shells/widgets/add_panel.php b/views/default/layout/shells/widgets/add_panel.php
new file mode 100644
index 000000000..d9acc5518
--- /dev/null
+++ b/views/default/layout/shells/widgets/add_panel.php
@@ -0,0 +1,51 @@
+<?php
+
+$widgets = $vars['widgets'];
+$context = $vars['context'];
+
+$widget_types = elgg_get_widget_types($context);
+
+$current_handlers = array();
+foreach ($widgets as $column_widgets) {
+ foreach ($column_widgets as $widget) {
+ $current_handlers[] = $widget->handler;
+ }
+}
+
+?>
+<div class="widgets-add-panel hidden">
+ <p>
+ <?php echo elgg_echo('widgets:add:description'); ?>
+ </p>
+ <ul>
+<?php
+ foreach ($widget_types as $handler => $widget_type) {
+ $id = "widget-type-$handler";
+ // check if widget added and only one instance allowed
+ if ($widget_type->multiple == false && in_array($handler, $current_handlers)) {
+ $class = 'widget-unavailable';
+ $tooltip = elgg_echo('widget:unavailable');
+ } else {
+ $class = 'widget-available';
+ $tooltip = $widget_type->description;
+ }
+
+ if ($widget_type->multiple) {
+ $class .= ' widget-multiple';
+ } else {
+ $class .= ' widget-single';
+ }
+
+ echo "<li title=\"$tooltip\" id=\"$id\" class=\"$class\">$widget_type->name</li>";
+ }
+?>
+ </ul>
+<?php
+ $params = array(
+ 'internalname' => 'widget-context',
+ 'value' => $context
+ );
+ echo elgg_view('input/hidden', $params);
+?>
+ <div class="clearfloat"></div>
+</div>