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;
 }