本文整理汇总了PHP中BackendTemplate::getResponse方法的典型用法代码示例。如果您正苦于以下问题:PHP BackendTemplate::getResponse方法的具体用法?PHP BackendTemplate::getResponse怎么用?PHP BackendTemplate::getResponse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BackendTemplate
的用法示例。
在下文中一共展示了BackendTemplate::getResponse方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: compareTemplate
/**
* Compares the current to the original template
*
* @param DataContainer $dc
*
* @return string
*
* @throws Contao\CoreBundle\Exception\InternalServerErrorException
*/
public function compareTemplate(DataContainer $dc)
{
$objCurrentFile = new File($dc->id);
$strName = $objCurrentFile->filename;
$strExtension = $objCurrentFile->extension;
$arrTemplates = TemplateLoader::getFiles();
$blnOverridesAnotherTpl = isset($arrTemplates[$strName]);
$strPrefix = '';
if (($pos = strpos($strName, '_')) !== false) {
$strPrefix = substr($strName, 0, $pos + 1);
}
$strBuffer = '';
$strCompareName = null;
$strComparePath = null;
// By default it's the original template to compare against
if ($blnOverridesAnotherTpl) {
$strCompareName = $strName;
$strComparePath = $arrTemplates[$strCompareName] . '/' . $strCompareName . '.' . $strExtension;
if ($strComparePath !== null) {
$strBuffer .= '<p class="tl_info" style="margin-bottom:1em">' . sprintf($GLOBALS['TL_LANG']['tl_templates']['overridesAnotherTpl'], $strComparePath) . '</p>';
}
} else {
// Try to find the base template by strippig suffixes
while (strpos($strName, '_') !== false) {
$strName = substr($strName, 0, strrpos($strName, '_'));
if (isset($arrTemplates[$strName])) {
$strCompareName = $strName;
$strComparePath = $arrTemplates[$strCompareName] . '/' . $strCompareName . '.' . $strExtension;
break;
}
}
}
// User selected template to compare against
if (Input::post('from') && isset($arrTemplates[Input::post('from')])) {
$strCompareName = Input::post('from');
$strComparePath = $arrTemplates[$strCompareName] . '/' . $strCompareName . '.' . $strExtension;
}
if ($strComparePath !== null) {
$objCompareFile = new File($strComparePath);
// Abort if one file is missing
if (!$objCurrentFile->exists() || !$objCompareFile->exists()) {
throw new Contao\CoreBundle\Exception\InternalServerErrorException('The source or target file does not exist.');
}
$objDiff = new Diff($objCompareFile->getContentAsArray(), $objCurrentFile->getContentAsArray());
$strDiff = $objDiff->render(new DiffRenderer(array('field' => $dc->id)));
// Identical versions
if ($strDiff == '') {
$strBuffer .= '<p>' . $GLOBALS['TL_LANG']['MSC']['identicalVersions'] . '</p>';
} else {
$strBuffer .= $strDiff;
}
} else {
$strBuffer .= '<p class="tl_info">' . $GLOBALS['TL_LANG']['tl_templates']['pleaseSelect'] . '</p>';
}
// Templates to compare against
$arrComparable = array();
$intPrefixLength = strlen($strPrefix);
foreach ($arrTemplates as $k => $v) {
if (substr($k, 0, $intPrefixLength) === $strPrefix) {
$arrComparable[$k] = array('version' => $k, 'info' => $k . '.' . $strExtension);
}
}
/** @var BackendTemplate|object $objTemplate */
$objTemplate = new BackendTemplate('be_diff');
// Template variables
$objTemplate->staticTo = $dc->id;
$objTemplate->versions = $arrComparable;
$objTemplate->from = $strCompareName;
$objTemplate->showLabel = StringUtil::specialchars($GLOBALS['TL_LANG']['MSC']['showDifferences']);
$objTemplate->content = $strBuffer;
$objTemplate->theme = Backend::getTheme();
$objTemplate->base = Environment::get('base');
$objTemplate->language = $GLOBALS['TL_LANGUAGE'];
$objTemplate->title = StringUtil::specialchars($GLOBALS['TL_LANG']['MSC']['showDifferences']);
$objTemplate->charset = Config::get('characterSet');
Config::set('debugMode', false);
throw new Contao\CoreBundle\Exception\ResponseException($objTemplate->getResponse());
}