Example #1
0
 public function DevHelper_saveTemplate()
 {
     if (DevHelper_Helper_Template::autoExportImport() == false) {
         return false;
     }
     $template = $this->getMergedData();
     $filePath = DevHelper_Helper_Template::getTemplateFilePath($template);
     XenForo_Helper_File::createDirectory(dirname($filePath));
     return file_put_contents($filePath, $template['template']) > 0;
 }
Example #2
0
 public static function front_controller_pre_view(XenForo_FrontController $fc, XenForo_ControllerResponse_Abstract &$controllerResponse, XenForo_ViewRenderer_Abstract &$viewRenderer, array &$containerParams)
 {
     if (DevHelper_Helper_Template::autoExportImport() and XenForo_Application::isRegistered('styles')) {
         $styles = XenForo_Application::get('styles');
         $style = reset($styles);
         $styleDate = $style['last_modified_date'];
         $templateFiles = glob(DevHelper_Helper_Template::getTemplateDirPath() . '/*');
         $templatesUpdated = array();
         $maxTemplateDate = 0;
         /** @var XenForo_Model_StyleProperty $propertyModel */
         $propertyModel = XenForo_Model::create('XenForo_Model_StyleProperty');
         foreach ($templateFiles as $templateFile) {
             $templateDate = filemtime($templateFile);
             if ($templateDate - 3 > $styleDate) {
                 // consider this is a change, start updating the template
                 $maxTemplateDate = max($maxTemplateDate, $templateDate);
                 $templateId = DevHelper_Helper_Template::getTemplateIdFromFilePath($templateFile);
                 if (empty($templateId)) {
                     continue;
                 }
                 $templateText = file_get_contents($templateFile);
                 $properties = $propertyModel->keyPropertiesByName($propertyModel->getEffectiveStylePropertiesInStyle(0));
                 $propertyChanges = $propertyModel->translateEditorPropertiesToArray($templateText, $templateText, $properties);
                 /** @var XenForo_DataWriter_Template $dw */
                 $dw = XenForo_DataWriter::create('XenForo_DataWriter_Template');
                 $dw->setExistingData($templateId);
                 $dw->set('template', $templateText);
                 if ($dw->hasErrors()) {
                     throw new XenForo_Exception(implode(', ', $dw->getErrors()));
                 }
                 if ($dw->hasChanges()) {
                     $dw->reparseTemplate();
                     $dw->save();
                     $propertyModel->saveStylePropertiesInStyleFromTemplate(0, $propertyChanges, $properties);
                     $templatesUpdated[] = $dw->get('title');
                 }
             }
         }
         if (!empty($maxTemplateDate)) {
             /** @var XenForo_Model_Style $styleModel */
             $styleModel = XenForo_Model::create('XenForo_Model_Style');
             $styleModel->updateAllStylesLastModifiedDate($maxTemplateDate);
         }
     }
 }