Skip to content
Snippets Groups Projects
Commit 2aaa4c2d authored by Stefan Galinski's avatar Stefan Galinski :video_game:
Browse files

[BUGFIX] Fix diff view and absRefPrefix auto behaviour

parent 633dac92
No related branches found
No related tags found
No related merge requests found
......@@ -26,6 +26,7 @@ namespace SGalinski\DfTools\Domain\Model;
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use cogpowered\FineDiff\Diff;
use SGalinski\DfTools\UrlChecker\AbstractService;
use SGalinski\DfTools\Utility\CompressorUtility;
use SGalinski\DfTools\Utility\HtmlUtility;
......@@ -252,25 +253,25 @@ class ContentComparisonTest extends AbstractEntity implements TestableInterface
* @return void
*/
protected function checkDifferences($compareContent, $testContent) {
/** @var $diffRenderer DiffUtility */
$diffRenderer = GeneralUtility::makeInstance('TYPO3\CMS\Core\Utility\DiffUtility');
$diffRenderer = new Diff();
$testContentParts = HtmlUtility::getTypo3SearchBlocksFromContent($testContent);
$compareContentParts = HtmlUtility::getTypo3SearchBlocksFromContent($compareContent);
$differences = array();
$differences = [];
$count = count($testContentParts);
for ($i = 0; $count > $i; ++$i) {
if ($testContentParts[$i] === $compareContentParts[$i]) {
continue;
}
$differences[] = $diffRenderer->makeDiffDisplay($testContentParts[$i], $compareContentParts[$i]);
$difference = $diffRenderer->render($testContentParts[$i], $compareContentParts[$i]);
$differences[] = str_replace("\t", ' ', $difference);
}
if (count($differences)) {
$message = 'tx_dftools_domain_model_contentcomparisontest.test.contentMismatch';
$diff = '<p class="diff">' . implode(' </p><p class="diff">', $differences) . '</p>';
$diff = '<div class="diff"><div class="diff-item"><div class="diff-item-result">' .
implode(' </p><p class="diff">', $differences) . '</div></div></div>';
$this->setTestResult(AbstractService::SEVERITY_ERROR);
} else {
$message = $diff = '';
......
......@@ -25,9 +25,11 @@ namespace SGalinski\DfTools\Utility;
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Database\DatabaseConnection;
use TYPO3\CMS\Core\TimeTracker\NullTimeTracker;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Frontend\Page\PageGenerator;
use TYPO3\CMS\Frontend\Page\PageRepository;
/**
* Collection of smaller http utility functions
......@@ -57,6 +59,24 @@ final class HttpUtility {
if (trim($GLOBALS['TSFE']->baseUrl) !== '') {
$locationUrl = $GLOBALS['TSFE']->baseUrl;
} elseif (trim($GLOBALS['TSFE']->absRefPrefix) === 'auto' ||
trim($GLOBALS['TSFE']->absRefPrefix) === './'
) {
/** @var PageRepository $pageRepository */
$pageRepository = GeneralUtility::makeInstance(PageRepository::class);
/** @var $db DatabaseConnection */
$db = $GLOBALS['TYPO3_DB'];
$domainRecord = $db->exec_SELECTgetSingleRow(
'domainName',
'sys_domain',
'1=1' . $pageRepository->enableFields('sys_domain'),
'',
'pid, sorting',
''
);
$locationUrl = $domainRecord['domainName'];
} elseif (trim($GLOBALS['TSFE']->absRefPrefix) !== '') {
$locationUrl = $GLOBALS['TSFE']->absRefPrefix;
} else {
......@@ -70,6 +90,49 @@ final class HttpUtility {
return $string;
}
/**
* Checks whether a domain record (sys_domain) has been configured for each site root.
*
* @return NULL|Status An error status is returned for each site root page without domain record.
*/
protected function getDomainRecordAvailableStatus() {
$status = NULL;
$rootPages = $this->getRootPages();
$rootPagesWithoutDomain = [];
$rootPageIds = [];
foreach ($rootPages as $rootPage) {
$rootPageIds[] = $rootPage['uid'];
}
foreach ($rootPageIds as $rootPageId) {
if (!array_key_exists($rootPageId, $domainRecords)) {
$rootPagesWithoutDomain[$rootPageId] = $rootPages[$rootPageId];
}
}
if (!empty($rootPagesWithoutDomain)) {
foreach ($rootPagesWithoutDomain as $pageId => $page) {
$rootPagesWithoutDomain[$pageId] = '[' . $page['uid'] . '] ' . $page['title'];
}
$status = GeneralUtility::makeInstance(
'TYPO3\\CMS\\Reports\\Status',
'Domain Records',
'Domain records missing',
'Domain records are needed to properly index pages. The following
sites are marked as root pages, but do not have a domain configured:
<ul><li>' . implode(
'</li><li>',
$rootPagesWithoutDomain
) . '</li></ul>',
Status::ERROR
);
}
return $status;
}
/**
* Initializes the TSFE object to fetch the configured location url
*
......
......@@ -183,9 +183,13 @@ button span.t3-icon {
.module-body {
.diff, .help {
width: 700px;
width: 100%;
margin-bottom: 10px;
}
.diff-item-result {
white-space: pre-wrap;
}
}
#tx_dftools-helpContent {
......@@ -214,4 +218,4 @@ button span.t3-icon {
margin: .5em 0 1em 21px;
width: 700px;
}
}
\ No newline at end of file
}
html{height:90%}#tx_dftools *{font-size:11px}.tx_dftools-button-text{padding:2px 3px 0 5px;vertical-align:top;display:inline-block}button span.t3-icon{vertical-align:top}.ext-webkit .x-small-editor .x-form-text{padding-top:0}.ext-strict #tx_dftools .x-small-editor .x-form-text{height:16px!important}.ext-strict .ext-webkit #tx_dftools .x-small-editor .x-form-text{height:17px!important}.x-panel-nofooter .x-panel-bc{height:2px}.x-grid3-col-actions img{margin:0 0 0 4px}.x-grid3-row .x-grid3-col{border-bottom:1px solid #DDD}.x-grid3-row-body{padding:10px 0;margin-left:30px}.x-grid3-row.x-grid3-row-over .x-grid3-col,.x-grid3-row.x-grid3-row-selected .x-grid3-col{background:#F0EFEF none}.x-grid-group-hd div.x-grid-group-title{display:block;border-bottom:1px solid #AAA;height:26px}.tx_dftools-grid-row-test-success .x-grid3-col{background-color:#D0E4C9;border-bottom:1px solid #D0E4C9}.tx_dftools-grid-row-test-success.x-grid3-row-over .x-grid3-col,.tx_dftools-grid-row-test-success.x-grid3-row-selected .x-grid3-col{background-color:#B4DDA5;border-bottom:1px solid #B4DDA5}.tx_dftools-grid-row-test-error .x-grid3-col{background-color:#F59393;border-bottom:1px solid #F59393}.tx_dftools-grid-row-test-error.x-grid3-row-over .x-grid3-col,.tx_dftools-grid-row-test-error.x-grid3-row-selected .x-grid3-col{background-color:#EC7878;border-bottom:1px solid #EC7878}.tx_dftools-grid-row-test-warning .x-grid3-col{background-color:#F0F515;border-bottom:1px solid #F0F515}.tx_dftools-grid-row-test-warning.x-grid3-row-over .x-grid3-col,.tx_dftools-grid-row-test-warning.x-grid3-row-selected .x-grid3-col{background-color:#D9DE0C;border-bottom:1px solid #D9DE0C}.tx_dftools-grid-row-test-info .x-grid3-col{background-color:#D4EDFC;border-bottom:1px solid #D4EDFC}.tx_dftools-grid-row-test-info.x-grid3-row-over .x-grid3-col,.tx_dftools-grid-row-test-info.x-grid3-row-selected .x-grid3-col{background-color:#ACD3EB;border-bottom:1px solid #ACD3EB}.x-grid3-row-expanded{background-color:#F9F9F9}.x-grid3-row-expanded .x-grid3-td-numberer{border-bottom:1px solid #DDD;background-color:transparent}.tx_dftools-grid-row-test-error .x-grid3-td-numberer,.tx_dftools-grid-row-test-info .x-grid3-td-numberer,.tx_dftools-grid-row-test-success .x-grid3-td-numberer,.tx_dftools-grid-row-test-warning .x-grid3-td-numberer{border-bottom:1px solid #DDD;background-color:transparent}.x-grid3-row-expanded .x-grid3-row .x-grid3-col,.x-grid3-row-expanded.x-grid3-row-over .x-grid3-row .x-grid3-col,.x-grid3-row-expanded.x-grid3-row-selected .x-grid3-row .x-grid3-col{background-color:transparent;border-bottom:1px solid transparent}.tx_dftools-grid-row-test-ignore{filter:alpha(opacity=60);opacity:.6}.tx_dftools-loadingIndicator{padding:0;margin:0;height:16px;width:16px;display:none}.tx_dftools-statusError,.tx_dftools-statusInformation,.tx_dftools-statusOk,.tx_dftools-statusWarning{display:none}.tx_dftools-grid-row-test-error .tx_dftools-statusError,.tx_dftools-grid-row-test-info .tx_dftools-statusInformation,.tx_dftools-grid-row-test-running .tx_dftools-loadingIndicator,.tx_dftools-grid-row-test-success .tx_dftools-statusOk,.tx_dftools-grid-row-test-warning .tx_dftools-statusWarning{display:inline-block}.x-panel-tbar{padding-bottom:5px}.x-panel-header-text{line-height:15px}.x-btn-noicon .x-btn-small .x-btn-text{height:auto}button.x-btn-text{background-color:transparent!important}button.x-btn-text span{cursor:pointer!important}button span.t3-icon{vertical-align:middle}.x-btn-over{background-color:#d5d5d5}#tx_dftools-button-runTest,#tx_dftools-button-synchronize{margin-right:10px}.module-body .diff,.module-body .help{width:700px;margin-bottom:10px}#tx_dftools-helpContent{display:none}#tx_dftools-help{margin-bottom:10px}.module-body dl{margin:0 0 0 2em}.module-body dt{font-weight:700}.module-body dt img{vertical-align:bottom}.module-body dd{margin:.5em 0 1em 21px;width:700px}
html{height:90%}#tx_dftools *{font-size:11px}.tx_dftools-button-text{padding:2px 3px 0 5px;vertical-align:top;display:inline-block}button span.t3-icon{vertical-align:top}.ext-webkit .x-small-editor .x-form-text{padding-top:0}.ext-strict #tx_dftools .x-small-editor .x-form-text{height:16px!important}.ext-strict .ext-webkit #tx_dftools .x-small-editor .x-form-text{height:17px!important}.x-panel-nofooter .x-panel-bc{height:2px}.x-grid3-col-actions img{margin:0 0 0 4px}.x-grid3-row .x-grid3-col{border-bottom:1px solid #DDD}.x-grid3-row-body{padding:10px 0;margin-left:30px}.x-grid3-row.x-grid3-row-over .x-grid3-col,.x-grid3-row.x-grid3-row-selected .x-grid3-col{background:#F0EFEF none}.x-grid-group-hd div.x-grid-group-title{display:block;border-bottom:1px solid #AAA;height:26px}.tx_dftools-grid-row-test-success .x-grid3-col{background-color:#D0E4C9;border-bottom:1px solid #D0E4C9}.tx_dftools-grid-row-test-success.x-grid3-row-over .x-grid3-col,.tx_dftools-grid-row-test-success.x-grid3-row-selected .x-grid3-col{background-color:#B4DDA5;border-bottom:1px solid #B4DDA5}.tx_dftools-grid-row-test-error .x-grid3-col{background-color:#F59393;border-bottom:1px solid #F59393}.tx_dftools-grid-row-test-error.x-grid3-row-over .x-grid3-col,.tx_dftools-grid-row-test-error.x-grid3-row-selected .x-grid3-col{background-color:#EC7878;border-bottom:1px solid #EC7878}.tx_dftools-grid-row-test-warning .x-grid3-col{background-color:#F0F515;border-bottom:1px solid #F0F515}.tx_dftools-grid-row-test-warning.x-grid3-row-over .x-grid3-col,.tx_dftools-grid-row-test-warning.x-grid3-row-selected .x-grid3-col{background-color:#D9DE0C;border-bottom:1px solid #D9DE0C}.tx_dftools-grid-row-test-info .x-grid3-col{background-color:#D4EDFC;border-bottom:1px solid #D4EDFC}.tx_dftools-grid-row-test-info.x-grid3-row-over .x-grid3-col,.tx_dftools-grid-row-test-info.x-grid3-row-selected .x-grid3-col{background-color:#ACD3EB;border-bottom:1px solid #ACD3EB}.x-grid3-row-expanded{background-color:#F9F9F9}.x-grid3-row-expanded .x-grid3-td-numberer{border-bottom:1px solid #DDD;background-color:transparent}.tx_dftools-grid-row-test-error .x-grid3-td-numberer,.tx_dftools-grid-row-test-info .x-grid3-td-numberer,.tx_dftools-grid-row-test-success .x-grid3-td-numberer,.tx_dftools-grid-row-test-warning .x-grid3-td-numberer{border-bottom:1px solid #DDD;background-color:transparent}.x-grid3-row-expanded .x-grid3-row .x-grid3-col,.x-grid3-row-expanded.x-grid3-row-over .x-grid3-row .x-grid3-col,.x-grid3-row-expanded.x-grid3-row-selected .x-grid3-row .x-grid3-col{background-color:transparent;border-bottom:1px solid transparent}.tx_dftools-grid-row-test-ignore{filter:alpha(opacity=60);opacity:.6}.tx_dftools-loadingIndicator{padding:0;margin:0;height:16px;width:16px;display:none}.tx_dftools-statusError,.tx_dftools-statusInformation,.tx_dftools-statusOk,.tx_dftools-statusWarning{display:none}.tx_dftools-grid-row-test-error .tx_dftools-statusError,.tx_dftools-grid-row-test-info .tx_dftools-statusInformation,.tx_dftools-grid-row-test-running .tx_dftools-loadingIndicator,.tx_dftools-grid-row-test-success .tx_dftools-statusOk,.tx_dftools-grid-row-test-warning .tx_dftools-statusWarning{display:inline-block}.x-panel-tbar{padding-bottom:5px}.x-panel-header-text{line-height:15px}.x-btn-noicon .x-btn-small .x-btn-text{height:auto}button.x-btn-text{background-color:transparent!important}button.x-btn-text span{cursor:pointer!important}button span.t3-icon{vertical-align:middle}.x-btn-over{background-color:#d5d5d5}#tx_dftools-button-runTest,#tx_dftools-button-synchronize{margin-right:10px}.module-body .diff,.module-body .help{width:100%;margin-bottom:10px}.module-body .diff-item-result{white-space:pre-wrap}#tx_dftools-helpContent{display:none}#tx_dftools-help{margin-bottom:10px}.module-body dl{margin:0 0 0 2em}.module-body dt{font-weight:700}.module-body dt img{vertical-align:bottom}.module-body dd{margin:.5em 0 1em 21px;width:700px}
/*# sourceMappingURL=../SourceMaps/Common.min.css.map */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment