/** * Optionally removes the edit and delete links from the menu * * @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 array */ public static function prepareWidgetEditDeleteMenuItems($hook_name, $entity_type, $return_value, $params) { if (!is_array($return_value)) { return; } $widget = elgg_extract('entity', $params); if ($widget->fixed && !elgg_in_context('default_widgets') && !elgg_is_admin_logged_in()) { foreach ($return_value as $section_key => $section) { foreach ($section as $item_key => $item) { if (in_array($item->getName(), ['delete', 'settings'])) { unset($return_value[$section_key][$item_key]); } } } } foreach ($return_value as $section_key => $section) { foreach ($section as $item_key => $item) { if ($item->getName() == 'settings') { $show_access = elgg_get_config('widget_show_access'); $item->setHref('ajax/view/widget_manager/widgets/settings?guid=' . $widget->getGUID() . '&show_access=' . $show_access); unset($item->rel); $item->{"data-colorbox-opts"} = '{"width": 750, "height": 500, "trapFocus": false}'; $item->addLinkClass('elgg-lightbox'); } if ($item->getName() == 'collapse') { if ($widget->widget_manager_collapse_disable === 'yes' && $widget->widget_manager_collapse_state !== 'closed') { unset($return_value[$section_key][$item_key]); } elseif ($widget->widget_manager_collapse_disable !== 'yes') { $widget_is_collapsed = false; $widget_is_open = true; if (elgg_is_logged_in()) { $widget_is_collapsed = widget_manager_check_collapsed_state($widget->guid, 'widget_state_collapsed'); $widget_is_open = widget_manager_check_collapsed_state($widget->guid, 'widget_state_open'); } if (($widget->widget_manager_collapse_state === 'closed' || $widget_is_collapsed) && !$widget_is_open) { $item->addLinkClass('elgg-widget-collapsed'); } } } if ($item->getName() == 'delete') { // dirty fix to prevent incorrect reregistration of add widget js action (see js/lib/ui.widgets.js line 120) $item->addLinkClass('elgg-widget-multiple'); } } } return $return_value; }
if ($widget->widget_manager_disable_widget_content_style == "yes") { $widget_class .= " widget_manager_disable_widget_content_style"; } if ($widget->widget_manager_hide_header != "yes" || $can_edit) { $widget_header = <<<HEADER \t\t<div class="elgg-widget-handle clearfix"><h3 class="elgg-widget-title">{$title}</h3> \t\t{$controls} \t\t</div> HEADER; } $fixed_height = sanitize_int($widget->widget_manager_fixed_height, false); $widget_body_class = "elgg-widget-content"; if ($widget->widget_manager_collapse_disable !== "yes") { $widget_is_collapsed = false; $widget_is_open = true; if (elgg_is_logged_in()) { $widget_is_collapsed = widget_manager_check_collapsed_state($widget->guid, "widget_state_collapsed"); $widget_is_open = widget_manager_check_collapsed_state($widget->guid, "widget_state_open"); } if (($widget->widget_manager_collapse_state === "closed" || $widget_is_collapsed) && !$widget_is_open) { $widget_body_class .= " hidden"; } } $widget_body = "<div class='" . $widget_body_class . "'"; if ($fixed_height) { $widget_body .= " style='height: " . $fixed_height . "px; overflow-y: auto;'"; } $widget_body .= " id='elgg-widget-content-" . $widget->guid . "'>"; $widget_body .= $content; $widget_body .= "</div>"; echo elgg_view_module('widget', '', $widget_body, array('class' => $widget_class, 'id' => $widget_id, 'header' => $widget_header));
/** * Return a boolean if the widget should show collapsed * * @return bool */ public function showCollapsed() { if ($this->widget_manager_collapse_disable == 'yes') { return false; } $default = $this->widget_manager_collapse_state === 'closed'; if (!elgg_is_logged_in()) { return $default; } if (widget_manager_check_collapsed_state($this->guid, 'widget_state_collapsed')) { return true; } if (widget_manager_check_collapsed_state($this->guid, 'widget_state_open')) { return false; } return $default; }