コード例 #1
0
/**
 * Returns an array of stdClass objects representing the defined widget types
 *
 * @return array A list of types defined (if any)
 * @deprecated 1.8 Use elgg_get_widget_types
 */
function get_widget_types()
{
    elgg_deprecated_notice("get_widget_types deprecrated for elgg_get_widget_types", 1.8);
    return elgg_get_widget_types();
}
コード例 #2
0
ファイル: settings.php プロジェクト: n8b/VMN
<?php

$widget_context = $vars["widget_context"];
// get widgets
$exact = false;
if ($widget_context == "groups") {
    $exact = true;
}
$widgets = elgg_get_widget_types($widget_context, $exact);
widget_manager_sort_widgets($widgets);
// sort alphabetically
if (!empty($widgets)) {
    $list = "<table class='elgg-table'>";
    $list .= "<tr>";
    $list .= "<th>" . elgg_echo("widget") . "</th>";
    $list .= "<th class='center'>" . elgg_echo("widget_manager:forms:settings:can_add") . "</th>";
    $list .= "<th class='center'>" . elgg_echo("hide") . "</th>";
    $list .= "</tr>";
    foreach ($widgets as $handler => $widget) {
        $check_add = "";
        $check_hide = "";
        if (widget_manager_get_widget_setting($handler, "can_add", $widget_context)) {
            $check_add = "checked='checked'";
        }
        if (widget_manager_get_widget_setting($handler, "hide", $widget_context)) {
            $check_hide = "checked='checked'";
        }
        $list .= "<tr>";
        $list .= "<td><span title='[" . $handler . "] " . $widget->description . "'>" . $widget->name . "</span></td>";
        $list .= "<td class='center'><input type='checkbox' name='" . $widget_context . "_" . $handler . "_can_add' value='yes' " . $check_add . " /></td>";
        $list .= "<td class='center'><input type='checkbox' name='" . $widget_context . "_" . $handler . "_hide' value='yes' " . $check_hide . "/></td>";
コード例 #3
0
ファイル: db_widgets.php プロジェクト: smellems/wet4
/**
 * Elgg widgets layout
 *
 * @uses $vars['content']          Optional display box at the top of layout
 * @uses $vars['num_columns']      Number of widget columns for this layout (3)
 * @uses $vars['show_add_widgets'] Display the add widgets button and panel (true)
 * @uses $vars['exact_match']      Widgets must match the current context (false)
 * @uses $vars['show_access']      Show the access control (true)
 */
$num_columns = elgg_extract('num_columns', $vars, 2);
$show_add_widgets = elgg_extract('show_add_widgets', $vars, true);
$exact_match = elgg_extract('exact_match', $vars, false);
$show_access = elgg_extract('show_access', $vars, true);
$owner = elgg_get_page_owner_entity();
$widget_types = elgg_get_widget_types();
$context = elgg_get_context();
elgg_push_context('widgets');
$widgets = elgg_get_widgets($owner->guid, $context);
echo '<div class="elgg-layout-widgets">';
if (elgg_can_edit_widget_layout($context)) {
    if ($show_add_widgets) {
        echo elgg_view('page/layouts/widgets/add_button');
    }
    $params = array('widgets' => $widgets, 'context' => $context, 'exact_match' => $exact_match, 'show_access' => $show_access, 'class' => 'btn btn-primary mrgn-bttm-sm');
    echo elgg_view('page/layouts/widgets/add_panel', $params);
}
/*
if (isset($vars['content'])) {
	echo $vars['content'];
}
コード例 #4
0
ファイル: widgets.php プロジェクト: amcfarlane1251/ongarde
 * Elgg widgets layout
 *
 * @uses $vars['content']          Optional display box at the top of layout
 * @uses $vars['num_columns']      Number of widget columns for this layout (3)
 * @uses $vars['show_add_widgets'] Display the add widgets button and panel (true)
 * @uses $vars['exact_match']      Widgets must match the current context (false)
 * @uses $vars['show_access']      Show the access control (true)
 */
$num_columns = elgg_extract('num_columns', $vars, 3);
$show_add_widgets = elgg_extract('show_add_widgets', $vars, true);
$exact_match = elgg_extract('exact_match', $vars, false);
$show_access = elgg_extract('show_access', $vars, true);
$owner = elgg_get_page_owner_entity();
$context = elgg_get_context();
$available_widgets_context = elgg_trigger_plugin_hook("available_widgets_context", "widget_manager", array(), $context);
$widget_types = elgg_get_widget_types($available_widgets_context);
elgg_push_context('widgets');
if ($context == "dashboard" && widget_manager_multi_dashboard_enabled() && !elgg_in_context("admin")) {
    $md_guid = get_input("multi_dashboard_guid");
    if (!empty($md_guid)) {
        $md_object = get_entity($md_guid);
        if ($md_object) {
            $md_type = $md_object->getDashboardType();
            if (in_array($md_type, array("iframe", "internal"))) {
                elgg_push_context("iframe_dashboard");
            } else {
                $num_columns = $md_object->getNumColumns();
            }
        }
    }
    $options = array("type" => "object", "subtype" => MultiDashboard::SUBTYPE, "limit" => false, "owner_guid" => elgg_get_logged_in_user_guid(), "order_by" => "e.time_created ASC");
コード例 #5
0
ファイル: widget.php プロジェクト: redvabel/Vabelgg
<?php

/**
 * Widget object
 *
 * @uses $vars['entity']      ElggWidget
 * @uses $vars['show_access'] Show the access control in edit area? (true)
 */
$widget = $vars['entity'];
if (!elgg_instanceof($widget, 'object', 'widget')) {
    return true;
}
$show_access = elgg_extract('show_access', $vars, true);
// @todo catch for disabled plugins
$widget_types = elgg_get_widget_types('all');
$handler = $widget->handler;
$title = $widget->getTitle();
$edit_area = '';
$can_edit = $widget->canEdit();
if ($can_edit) {
    $edit_area = elgg_view('object/widget/elements/settings', array('widget' => $widget, 'show_access' => $show_access));
}
$controls = elgg_view('object/widget/elements/controls', array('widget' => $widget, 'show_edit' => $edit_area != ''));
// don't show content for default widgets
if (elgg_in_context('default_widgets')) {
    $content = '';
} else {
    if (elgg_view_exists("widgets/{$handler}/content")) {
        $content = elgg_view("widgets/{$handler}/content", $vars);
    } else {
        elgg_deprecated_notice("widgets use content as the display view", 1.8);
コード例 #6
0
ファイル: add_panel.php プロジェクト: remy40/gvrs
							position: index
						}
					});
					
				}
			}
		});
	}

	elgg.register_hook_handler('init', 'system', widget_manager_widget_add_init);

</script>
<?php 
$widget_context = str_replace("default_", "", $context);
$available_widgets_context = elgg_trigger_plugin_hook("available_widgets_context", "widget_manager", array(), $widget_context);
$widgets = elgg_get_widget_types($available_widgets_context, $vars["exact_match"]);
widget_manager_sort_widgets($widgets);
$current_handlers = array();
if (!empty($vars["widgets"])) {
    // check for already used widgets
    foreach ($vars["widgets"] as $column_widgets) {
        // foreach column
        foreach ($column_widgets as $widget) {
            // for each widgets
            $current_handlers[] = $widget->handler;
        }
    }
}
$title = "<div id='widget_manager_widgets_search'>";
$title .= "<input title='" . elgg_echo("search") . "' type='text' value='" . elgg_echo("search") . "' onfocus='if(\$(this).val() == \"" . elgg_echo("search") . "\"){ \$(this).val(\"\"); }' onkeyup='widget_manager_widgets_search(\$(this).val());'></input>";
$title .= "</div>";
コード例 #7
0
ファイル: ElggWidget.php プロジェクト: duanhv/mdg-social
 /**
  * Move the widget
  *
  * @param int $column The widget column
  * @param int $rank   Zero-based rank from the top of the column
  * @return void
  * @since 1.8.0
  */
 public function move($column, $rank)
 {
     $options = array('type' => 'object', 'subtype' => 'widget', 'container_guid' => $this->container_guid, 'limit' => false, 'private_setting_name_value_pairs' => array(array('name' => 'context', 'value' => $this->getContext()), array('name' => 'column', 'value' => $column)));
     $widgets = elgg_get_entities_from_private_settings($options);
     if (!$widgets) {
         $this->column = (int) $column;
         $this->order = 0;
         return;
     }
     usort($widgets, create_function('$a,$b', 'return (int)$a->order > (int)$b->order;'));
     // remove widgets from inactive plugins
     $widget_types = elgg_get_widget_types($this->context);
     $inactive_widgets = array();
     foreach ($widgets as $index => $widget) {
         if (!array_key_exists($widget->handler, $widget_types)) {
             $inactive_widgets[] = $widget;
             unset($widgets[$index]);
         }
     }
     if ($rank == 0) {
         // top of the column
         $this->order = reset($widgets)->order - 10;
     } elseif ($rank == count($widgets) - 1) {
         // bottom of the column of active widgets
         $this->order = end($widgets)->order + 10;
     } else {
         // reorder widgets
         // remove the widget that's being moved from the array
         foreach ($widgets as $index => $widget) {
             if ($widget->guid == $this->guid) {
                 unset($widgets[$index]);
             }
         }
         // split the array in two and recombine with the moved widget in middle
         $before = array_slice($widgets, 0, $rank);
         array_push($before, $this);
         $after = array_slice($widgets, $rank);
         $widgets = array_merge($before, $after);
         ksort($widgets);
         $order = 0;
         foreach ($widgets as $widget) {
             $widget->order = $order;
             $order += 10;
         }
     }
     // put inactive widgets at the bottom
     if ($inactive_widgets) {
         $bottom = 0;
         foreach ($widgets as $widget) {
             if ($widget->order > $bottom) {
                 $bottom = $widget->order;
             }
         }
         $bottom += 10;
         foreach ($inactive_widgets as $widget) {
             $widget->order = $bottom;
             $bottom += 10;
         }
     }
     $this->column = $column;
 }
コード例 #8
0
ファイル: custom_index.php プロジェクト: n8b/VMN
            $style .= "#elgg-widget-col-" . $col_index . " { width: " . $col_width . "%; }";
        }
        // determine top row width
        if ($index_top_row == "two_column_left") {
            $top_row_width = 100 - $columns[0];
        }
        break;
}
if ($index_top_row == "full_row" || $num_columns === 2) {
    $top_row_width = 100;
} elseif ($index_top_row == "two_column_left") {
    $float = "float: left;";
}
$top_row_used = false;
if (!empty($index_top_row) && $index_top_row != "none") {
    $widget_types = elgg_get_widget_types("index", false);
    elgg_push_context('widgets');
    $widgets = elgg_get_widgets(elgg_get_page_owner_entity()->getGUID(), "index");
    $widget_content = "";
    if (isset($widgets[4])) {
        $column_widgets = $widgets[4];
        if (sizeof($column_widgets) > 0) {
            foreach ($column_widgets as $widget) {
                if (array_key_exists($widget->handler, $widget_types)) {
                    $widget_content .= elgg_view_entity($widget, array('show_access' => true));
                }
            }
        }
    }
    $top_row = "<div id='elgg-widget-col-4' class='elgg-widgets'>" . $widget_content . "</div>";
    if (elgg_is_admin_logged_in()) {
コード例 #9
0
ファイル: manage.php プロジェクト: amcfarlane1251/ongarde
<?php

$widget_context = get_input("widget_context");
if (!empty($widget_context)) {
    $error_count = 0;
    if ($widgets = elgg_get_widget_types($widget_context)) {
        $toggle_settings = array("can_add", "hide");
        foreach ($widgets as $handler => $widget) {
            foreach ($toggle_settings as $setting) {
                $input_name = $widget_context . "_" . $handler . "_" . $setting;
                $value = get_input($input_name, "no");
                if (!widget_manager_set_widget_setting($handler, $setting, $widget_context, $value)) {
                    $error_count++;
                    register_error(elgg_echo("widget_manager:action:manage:error:save_setting", array($setting, $widget->name)));
                }
            }
        }
        elgg_get_system_cache()->delete("widget_manager_widget_settings");
    }
    if ($error_count == 0) {
        system_message(elgg_echo("widget_manager:action:manage:success"));
    }
} else {
    register_error(elgg_echo("widget_manager:action:manage:error:context"));
}
forward(REFERER);
コード例 #10
0
<?php

$widgets_config = get_input('widgets_config');
$contexts = ['index'];
// Use contexts defined for default widgets
$list = elgg_trigger_plugin_hook('get_list', 'default_widgets', null, []);
foreach ($list as $context_opts) {
    $contexts[] = $context_opts['widget_context'];
}
$configured_widgets = [];
foreach ($contexts as $context) {
    $configured_widgets += elgg_get_widget_types($context);
}
foreach ($widgets_config as $widget_id => $widget_config) {
    $configured_widget = elgg_extract($widget_id, $configured_widgets);
    if (empty($configured_widget)) {
        continue;
    }
    // only store if different
    if ((bool) $widget_config['multiple'] == (bool) $configured_widget->originals['multiple']) {
        unset($widgets_config[$widget_id]['multiple']);
    }
    $configured_contexts = $configured_widget->originals['context'];
    foreach ($widget_config['contexts'] as $context => $context_config) {
        if ($context_config['enabled']) {
            if (in_array($context, $configured_contexts)) {
                unset($widgets_config[$widget_id]['contexts'][$context]['enabled']);
            }
        } elseif (!in_array($context, $configured_contexts)) {
            unset($widgets_config[$widget_id]['contexts'][$context]['enabled']);
        }
コード例 #11
0
$show_access = (int) elgg_extract('show_access', $vars);
$exact = elgg_extract('exact_match', $vars, false);
$owner_guid = (int) elgg_extract('owner_guid', $vars);
$context_stack = elgg_extract('context_stack', $vars);
if (!empty($context_stack)) {
    elgg_set_context_stack($context_stack);
}
elgg_set_page_owner_guid($owner_guid);
$owner = elgg_get_page_owner_entity();
$container = elgg_extract('container', $vars, elgg_get_page_owner_entity());
echo elgg_view('input/hidden', ['name' => 'widget_context', 'value' => $widget_context]);
echo elgg_view('input/hidden', ['name' => 'show_access', 'value' => $show_access]);
$widget_context = str_replace('default_', '', $context);
$available_widgets_context = elgg_trigger_plugin_hook('available_widgets_context', 'widget_manager', [], $widget_context);
$widgets = elgg_get_widget_types($available_widgets_context, $exact);
$widgets = elgg_get_widget_types(['context' => $available_widgets_context, 'exact' => $exact, 'container' => $container]);
widget_manager_sort_widgets($widgets);
$user_widgets = elgg_extract('user_widgets', $vars);
if (!isset($vars['user_widgets'])) {
    $user_widgets = elgg_get_widgets($owner->guid, $context);
}
$current_handlers = [];
if (!empty($user_widgets)) {
    // check for already used widgets
    foreach ($user_widgets as $column_widgets) {
        // foreach column
        foreach ($column_widgets as $column_widget) {
            // for each widgets
            $current_handlers[] = $column_widget->handler;
        }
    }
コード例 #12
0
ファイル: widgets.php プロジェクト: elgg/elgg
$result = '';
$no_widgets = elgg_extract('no_widgets', $vars);
if (empty($widgets) && !empty($no_widgets)) {
    if ($no_widgets instanceof \Closure) {
        echo $no_widgets();
    } else {
        $result .= $no_widgets;
    }
}
if ($show_add_widgets && elgg_can_edit_widget_layout($context)) {
    $result .= elgg_view('page/layouts/widgets/add_button', $vars);
}
// push context after the add_button as add button uses current context
elgg_push_context('widgets');
if ($widgets) {
    $widget_types = elgg_get_widget_types(['context' => $context, 'container' => $owner]);
}
$widget_class = "elgg-col-1of{$num_columns}";
// move hidden columns widgets to last visible column
if (!isset($widgets[$num_columns])) {
    $widgets[$num_columns] = [];
}
foreach ($widgets as $index => $column_widgets) {
    if ($index <= $num_columns) {
        continue;
    }
    // append widgets to last column and retain order
    foreach ($column_widgets as $column_widget) {
        $widgets[$num_columns][] = $column_widget;
    }
    unset($widgets[$index]);
コード例 #13
0
ファイル: hooks.php プロジェクト: coldtrick/widget_manager
/**
 * Registers the extra context permissions check hook
 *
 * @param string $hook_name    name of the hook
 * @param string $entity_type  type of the hook
 * @param string $return_value current return value
 * @param array  $params       hook parameters
 *
 * @return void
 */
function widget_manager_widgets_action_hook_handler($hook_name, $entity_type, $return_value, $params)
{
    if ($entity_type == 'widgets/move') {
        $widget_guid = (int) get_input('widget_guid');
        if (empty($widget_guid)) {
            return;
        }
        $widget = get_entity($widget_guid);
        if (!elgg_instanceof($widget, 'object', 'widget')) {
            return;
        }
        $widget_context = $widget->context;
        $index_widgets = elgg_get_widget_types('index');
        foreach ($index_widgets as $handler => $index_widget) {
            $contexts = $index_widget->context;
            $contexts[] = $widget_context;
            elgg_register_widget_type($handler, $index_widget->name, $index_widget->description, $contexts, $index_widget->multiple);
        }
    } elseif ($entity_type == 'widgets/add') {
        elgg_register_plugin_hook_handler('permissions_check', 'site', 'widget_manager_permissions_check_site_hook_handler');
    }
}
コード例 #14
0
ファイル: hooks.php プロジェクト: pleio/widget_manager
/**
 * Registers the extra context permissions check hook
 *
 * @param string $hook_name    name of the hook
 * @param string $entity_type  type of the hook
 * @param string $return_value current return value
 * @param array  $params       hook parameters
 *
 * @return void
 */
function widget_manager_widgets_action_hook_handler($hook_name, $entity_type, $return_value, $params)
{
    if ($entity_type == "widgets/move") {
        $widget_guid = get_input("widget_guid");
        if ($widget_guid) {
            $widget = get_entity($widget_guid);
            if ($widget && $widget instanceof ElggWidget) {
                $widget_context = $widget->context;
                $index_widgets = elgg_get_widget_types("index");
                foreach ($index_widgets as $handler => $index_widget) {
                    $contexts = $index_widget->context;
                    $contexts[] = $widget_context;
                    elgg_register_widget_type($handler, $index_widget->name, $index_widget->description, $contexts, $index_widget->multiple);
                }
            }
        }
    } elseif ($entity_type == "widgets/add") {
        elgg_register_plugin_hook_handler("permissions_check", "site", "widget_manager_permissions_check_site_hook_handler");
    }
}