• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Lack of interest remove hardcoded xenforo addon_id in templates &phrase model

R

ragtek

Guest
#1
It would be great, if you would remove the hardcoded xenforo addon_id in the template, admin template, phrase, e-mail template "importfromfilesystemdev" methods...

I think easiest way for you would be to add variable;)
PHP:
public function importTemplatesFromDevelopment($addon_id = 'XenForo')
    {
        $db = $this->_getDb();

        $templateDir = $this->getTemplateDevelopmentDirectory();
        if (!$templateDir && !is_dir($templateDir))
        {
            throw new XenForo_Exception("Template development directory not enabled or doesn't exist");
        }

        $files = glob("$templateDir/*.html");
        if (!$files)
        {
            throw new XenForo_Exception("Template development directory does not have any templates");
        }

        $metaData = XenForo_Helper_DevelopmentXml::readMetaDataFile($templateDir . '/_metadata.xml');

        XenForo_Db::beginTransaction($db);
        $this->deleteTemplatesForAddOn($addon_id);

        $titles = array();
        foreach ($files AS $templateFile)
        {
            $filename = basename($templateFile);
            if (preg_match('/^(.+)\.html$/', $filename, $match))
            {
                $titles[] = $match[1];
            }
        }

        $existingTemplates = $this->getTemplatesInStyleByTitles($titles, 0);

        foreach ($files AS $templateFile)
        {
            if (!is_readable($templateFile))
            {
                throw new XenForo_Exception("Template file '$templateFile' not readable");
            }

            $filename = basename($templateFile);
            if (preg_match('/^(.+)\.html$/', $filename, $match))
            {
                $templateName = $match[1];
                $data = file_get_contents($templateFile);

                $dw = XenForo_DataWriter::create('XenForo_DataWriter_Template');
                if (isset($existingTemplates[$templateName]))
                {
                    $dw->setExistingData($existingTemplates[$templateName], true);
                }
                $dw->setOption(XenForo_DataWriter_Template::OPTION_DEV_OUTPUT_DIR, '');
                $dw->setOption(XenForo_DataWriter_Template::OPTION_FULL_COMPILE, false);
                $dw->setOption(XenForo_DataWriter_Template::OPTION_TEST_COMPILE, false);
                $dw->setOption(XenForo_DataWriter_Template::OPTION_CHECK_DUPLICATE, false);
                $dw->setOption(XenForo_DataWriter_Template::OPTION_REBUILD_TEMPLATE_MAP, false);
                $dw->bulkSet(array(
                    'style_id' => 0,
                    'title' => $templateName,
                    'template' => $data,
                    'addon_id' => $addon_id
                ));
                if (isset($metaData[$templateName]))
                {
                    $dw->bulkSet($metaData[$templateName]);
                }
                $dw->save();
            }
        }

        XenForo_Db::commit($db);
    }