public function actionMergeOutdated() { $results = $this->_getTemplateWithParentForCompare(); $template = $results['template']; $style = $results['style']; $parentStyle = $results['parentStyle']; $parentTemplate = $results['parentTemplate']; if (!$parentTemplate['last_edit_date'] || $parentTemplate['last_edit_date'] < $template['last_edit_date']) { return $this->responseError(new XenForo_Phrase('custom_template_out_of_date_edited_recently_no_merge')); } $previousVersion = $this->_getTemplateModel()->getLatestTemplateHistoryForTemplate($template['title'], $parentTemplate['style_id'], $template['last_edit_date']); if (!$previousVersion) { return $this->responseError(new XenForo_Phrase('no_previous_version_of_parent_could_be_found')); } if ($this->isConfirmedPost()) { $merged = $this->_input->filterSingle('merged', array(XenForo_Input::STRING, 'array' => true, 'noTrim' => true)); $final = implode("\n", $merged); $dw = XenForo_DataWriter::create('XenForo_DataWriter_Template'); $dw->setExistingData($template); $dw->set('template', $final); $dw->set('last_edit_date', XenForo_Application::$time); $dw->save(); return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildAdminLink('templates/outdated')); } else { $diff = new XenForo_Diff3(); $diffs = $diff->findDifferences($template['template'], $previousVersion['template'], $parentTemplate['template']); $viewParams = array('template' => $template, 'parentTemplate' => $parentTemplate, 'previousVersion' => $previousVersion, 'style' => $style, 'parentStyle' => $parentStyle, 'diffs' => $diffs); return $this->responseView('XenForo_ViewAdmin_Template_MergeOutdated', 'template_merge_outdated', $viewParams); } }