Exemplo n.º 1
0
Arquivo: settings.php Projeto: n8b/VMN
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>";
        $list .= "</tr>";
    }
    $list .= "</table>";
    $form_body = $list;
    $form_body .= "<br />";
    $form_body .= elgg_view("input/hidden", array("value" => $widget_context, "name" => "widget_context"));
    $form_body .= elgg_view("input/submit", array("value" => elgg_echo("save")));
    $body = elgg_view("input/form", array("body" => $form_body, "action" => "action/widget_manager/manage", "id" => "widget_manager_manage_form"));
} else {
Exemplo n.º 2
0
 *
 * @uses $vars['entity']      ElggWidget
 * @uses $vars['show_access'] Show the access control in edit area? (true)
 */
$widget = elgg_extract('entity', $vars);
if (!elgg_instanceof($widget, 'object', 'widget')) {
    return true;
}
if (!$widget instanceof WidgetManagerWidget) {
    // need this for newly created widgets (elgg_create_widget returns ElggWidget)
    $widget = new \WidgetManagerWidget($widget->toObject());
}
$show_access = elgg_extract('show_access', $vars, true);
elgg_set_config('widget_show_access', $show_access);
$handler = $widget->handler;
if (widget_manager_get_widget_setting($handler, 'hide', $widget->context)) {
    return true;
}
$title = $widget->getTitle();
$widget_title_link = $widget->getURL();
if ($widget_title_link !== elgg_get_site_url()) {
    // only set usable widget titles
    $title = elgg_view('output/url', ['href' => $widget_title_link, 'text' => $title, 'is_trusted' => true, 'class' => 'widget-manager-widget-title-link']);
}
$can_edit = $widget->canEdit();
$widget_header = '';
if ($widget->widget_manager_hide_header !== 'yes' || $can_edit) {
    $controls = elgg_view('object/widget/elements/controls', ['widget' => $widget, 'show_edit' => $can_edit]);
    $widget_header = "<div class='elgg-widget-handle clearfix'><h3 class='elgg-widget-title'>{$title}</h3>{$controls}</div>";
}
$widget_body_vars = ['id' => "elgg-widget-content-{$widget->guid}", 'class' => ['elgg-widget-content']];
Exemplo n.º 3
0
 /**
  * Applies the saved widgets config
  *
  * @param string $hook_name    name of the hook
  * @param string $entity_type  type of the hook
  * @param bool   $return_value current return value
  * @param array  $params       hook parameters
  *
  * @return void
  */
 public static function applyWidgetsConfig($hook_name, $entity_type, $return_value, $params)
 {
     foreach ($return_value as $id => $widget_definition) {
         $widget_config = widget_manager_get_widget_setting($widget_definition->id, 'all');
         if (empty($widget_config)) {
             continue;
         }
         if (!isset($widget_definition->originals)) {
             $widget_definition->originals = ['multiple' => $widget_definition->multiple, 'context' => $widget_definition->context];
         }
         // fix multiple
         if (isset($widget_config['multiple'])) {
             $widget_definition->multiple = (bool) elgg_extract('multiple', $widget_config);
         }
         // fix contexts
         $contexts = elgg_extract('contexts', $widget_config);
         if (!empty($contexts)) {
             foreach ($contexts as $context => $context_config) {
                 if (!isset($context_config['enabled'])) {
                     continue;
                 }
                 $enabled = elgg_extract('enabled', $context_config);
                 $existing_key = array_search($context, $widget_definition->context);
                 if ($existing_key !== false) {
                     // already existing in default contexts
                     if (!$enabled) {
                         // remove if disabled in config
                         unset($widget_definition->context[$existing_key]);
                     }
                 } elseif ($enabled) {
                     // add if not existing
                     $widget_definition->context[] = $context;
                 }
             }
             $return_value[$id] = $widget_definition;
         }
     }
     return $return_value;
 }
Exemplo n.º 4
0
$lan_key = 'widget_manager:widgets:lightbox:title:' . strtolower($context);
if (!elgg_language_key_exists($lan_key)) {
    add_translation(get_current_language(), [$lan_key => $context]);
}
$title = elgg_format_element('div', ['id' => 'widget_manager_widgets_search'], $search_box);
$title .= elgg_echo("widget_manager:widgets:lightbox:title:{$context}");
$module_type = elgg_in_context('admin') ? 'inline' : 'info';
if (empty($widgets)) {
    echo elgg_view_module($module_type, $title, elgg_echo('notfound'), ['id' => 'widget_manager_widgets_select']);
    return;
}
$body = '';
foreach ($widgets as $handler => $widget) {
    $can_add = widget_manager_get_widget_setting($handler, 'can_add', $widget_context);
    $allow_multiple = $widget->multiple;
    $hide = widget_manager_get_widget_setting($handler, 'hide', $widget_context);
    if (!$can_add || $hide) {
        // can not add or should be hidden
        continue;
    }
    $available = $allow_multiple || !in_array($handler, $current_handlers);
    $li_class = [];
    $li_class[] = $available ? 'elgg-state-available' : 'elgg-state-unavailable';
    $li_class[] = $allow_multiple ? 'elgg-widget-multiple' : 'elgg-widget-single';
    $li_content = '';
    if (!$allow_multiple) {
        $li_content .= elgg_format_element('span', ['class' => 'elgg-quiet'], elgg_echo('widget:unavailable'));
    }
    $li_content .= elgg_view('input/button', ['class' => 'elgg-button-submit', 'value' => elgg_echo('widget_manager:button:add')]);
    $li = elgg_format_element('li', ['class' => $li_class, 'data-elgg-widget-type' => $handler], $li_content);
    $ul = elgg_format_element('ul', [], $li);
Exemplo n.º 5
0
foreach ($contexts as $context) {
    $body .= '<tr><td>';
    $options = ['name' => "widgets_config[{$widget_definition->id}][contexts][{$context}][enabled]", 'label' => $context, 'value' => 1, 'checked' => in_array($context, $widget_definition->context), 'label_class' => []];
    if (!in_array($context, $originals['context'])) {
        $options['label_class'][] = 'widget-manager-unsupported-context';
    }
    if (in_array($context, $widget_definition->context)) {
        if (!in_array($context, $originals['context'])) {
            $options['label_class'][] = 'widget-manager-manage-widgets-non-default';
            $options['title'] = elgg_echo('widget_manager:forms:manage_widgets:non_default');
        }
    } elseif (in_array($context, $originals['context'])) {
        $options['label_class'][] = 'widget-manager-manage-widgets-non-default';
        $options['title'] = elgg_echo('widget_manager:forms:manage_widgets:non_default');
    }
    $body .= elgg_view('input/checkbox', $options);
    $body .= '</td><td class="center">';
    $body .= elgg_view('input/checkbox', ['name' => "widgets_config[{$widget_definition->id}][contexts][{$context}][can_add]", 'value' => 1, 'checked' => widget_manager_get_widget_setting($widget_definition->id, 'can_add', $context)]);
    $body .= '</td><td class="center">';
    $body .= elgg_view('input/checkbox', ['name' => "widgets_config[{$widget_definition->id}][contexts][{$context}][hide]", 'value' => 1, 'checked' => widget_manager_get_widget_setting($widget_definition->id, 'hide', $context)]);
    $body .= '</td></tr>';
}
$body .= '</table>';
// multiple
$options = ['name' => "widgets_config[{$widget_definition->id}][multiple]", 'label' => elgg_echo('widget_manager:forms:manage_widgets:multiple'), 'value' => 1, 'checked' => $widget_definition->multiple];
if ($widget_definition->multiple !== $originals['multiple']) {
    $options['label_class'] = 'widget-manager-manage-widgets-non-default';
    $options['title'] = elgg_echo('widget_manager:forms:manage_widgets:non_default');
}
$body .= elgg_view_input('checkbox', $options);
echo elgg_view_module('inline', $widget_definition->name . ' [' . $widget_definition->id . ']', $body, ['class' => 'man']);