public static function getChangedRenderedId(WidgetFramework_DataWriter_Widget $dw, array $changed = array()) { if ($dw->isChanged('position') or $dw->isChanged('display_order') or $dw->isChanged('options')) { $changed[] = $dw->get('widget_id'); $existingPosition = $dw->getExisting('position'); $existingOptions = $dw->getWidgetOptions(true); $existingGroup = ''; if (!empty($existingOptions['tab_group'])) { $existingGroup .= $existingOptions['tab_group']; } $newPosition = $dw->get('position'); $newOptions = $dw->getWidgetOptions(); $newGroup = ''; if (!empty($newOptions['tab_group'])) { $newGroup .= $newOptions['tab_group']; } if ($existingPosition !== $newPosition or $existingGroup !== $newGroup) { if (!empty($existingGroup)) { $changed[] = WidgetFramework_Helper_String::normalizeHtmlElementId($existingGroup); } if (!empty($newGroup)) { $changed[] = WidgetFramework_Helper_String::normalizeHtmlElementId($newGroup); } } } elseif ($dw->isDelete()) { $changed[] = $dw->get('widget_id'); $options = $dw->getWidgetOptions(); if (!empty($options['tab_group'])) { $changed[] = WidgetFramework_Helper_String::normalizeHtmlElementId($options['tab_group']); } } return $changed; }
protected function _wrapWidgets(array $tabs, array $wrapperParams, XenForo_Template_Abstract $template, array $widgetElement) { $wrapperParams['tabs'] = $tabs; $wrapperParams[self::PARAM_GROUP_NAME] = ''; if (!empty($widgetElement['name'])) { $wrapperParams[self::PARAM_GROUP_NAME] = $widgetElement['name']; } $wrapperParams['groupId'] = $wrapperParams[self::PARAM_GROUP_NAME]; $wrapperParams['normalizedGroupId'] = WidgetFramework_Helper_String::normalizeHtmlElementId($wrapperParams[self::PARAM_GROUP_NAME]); if (empty($wrapperParams['normalizedGroupId'])) { $wrapperParams['normalizedGroupId'] = md5(implode(array_keys($tabs))); } $wrapperParams['firstTab'] = reset($tabs); $wrapperParams['isColumns'] = $widgetElement['isColumns']; $wrapperParams['isRows'] = $widgetElement['isRows']; $wrapperParams['isRandom'] = $widgetElement['isRandom']; $wrapperParams['isTabs'] = $widgetElement['isTabs']; $wrapperTemplateName = 'wf_widget_wrapper'; if (WidgetFramework_Option::get('layoutEditorEnabled')) { $wrapperTemplateName = 'wf_layout_editor_widget_wrapper'; $wrapperParams['groupSaveParams'] = array('position_widget' => $wrapperParams['firstTab']['widget_id'], 'position' => $wrapperParams['firstTab']['position']); if (!empty($wrapperParams[self::PARAM_GROUP_NAME])) { $wrapperParams['groupSaveParams']['group'] = $wrapperParams[self::PARAM_GROUP_NAME]; } $wrapperParams['conditionalParams'] = WidgetFramework_Template_Helper_Layout::prepareConditionalParams($wrapperParams); if (!empty($firstTab['widget_page_id']) and !empty($wrapperParams['conditionalParams']['widgetPage'])) { $wrapperParams['groupSaveParams']['widget_page_id'] = $firstTab['widget_page_id']; unset($wrapperParams['conditionalParams']['widgetPage']); } $wrapperParams['groupParentGroupNameNormalized'] = ''; if (!empty($wrapperParams[self::PARAM_PARENT_GROUP_NAME])) { $wrapperParams['groupParentGroupNameNormalized'] = WidgetFramework_Helper_String::normalizeHtmlElementId($wrapperParams[self::PARAM_PARENT_GROUP_NAME]); } } $wrapperTemplateObj = $template->create($wrapperTemplateName, $wrapperParams); return $wrapperTemplateObj; }