mirror of
https://github.com/processwire/processwire.git
synced 2025-08-08 15:57:01 +02:00
Fix issue processwire/processwire-issues#245
This commit is contained in:
@@ -201,12 +201,13 @@ class WireMarkupRegions extends Wire {
|
|||||||
|
|
||||||
if($options['leftover']) $regions["leftover"] = trim($markup);
|
if($options['leftover']) $regions["leftover"] = trim($markup);
|
||||||
|
|
||||||
if(self::debug) {
|
if(self::debug && $options['verbose']) {
|
||||||
$debugNote = "$options[debugNote] in [sm]" . $this->debugNoteStr($_markup, 50) . " …[/sm] => ";
|
$debugNote = "$options[debugNote] in [sm]" . $this->debugNoteStr($_markup, 50) . " …[/sm] => ";
|
||||||
$numRegions = 0;
|
$numRegions = 0;
|
||||||
foreach($regions as $key => $region) {
|
foreach($regions as $key => $region) {
|
||||||
if($key == 'leftover') continue;
|
if($key == 'leftover') continue;
|
||||||
$debugNote .= "$region[name]#$region[pwid], ";
|
$details = empty($region['details']) ? '' : " ($region[details]) ";
|
||||||
|
$debugNote .= "$region[name]#$region[pwid]$details, ";
|
||||||
$numRegions++;
|
$numRegions++;
|
||||||
}
|
}
|
||||||
if(!$numRegions) $debugNote .= 'NONE';
|
if(!$numRegions) $debugNote .= 'NONE';
|
||||||
@@ -444,6 +445,7 @@ class WireMarkupRegions extends Wire {
|
|||||||
'action' => $tagInfo['action'],
|
'action' => $tagInfo['action'],
|
||||||
'actionType' => $tagInfo['actionType'],
|
'actionType' => $tagInfo['actionType'],
|
||||||
'actionTarget' => $tagInfo['actionTarget'],
|
'actionTarget' => $tagInfo['actionTarget'],
|
||||||
|
'error' => false,
|
||||||
'details' => '',
|
'details' => '',
|
||||||
'region' => '', // region without wrapping tags
|
'region' => '', // region without wrapping tags
|
||||||
'html' => '', // region with wrapping tags
|
'html' => '', // region with wrapping tags
|
||||||
@@ -469,6 +471,7 @@ class WireMarkupRegions extends Wire {
|
|||||||
// multiple close tags present, must figure out which is the right one
|
// multiple close tags present, must figure out which is the right one
|
||||||
$testStart = 0;
|
$testStart = 0;
|
||||||
$doCnt = 0;
|
$doCnt = 0;
|
||||||
|
$maxDoCnt = 100000;
|
||||||
$openTag1 = "<$tagInfo[name]>";
|
$openTag1 = "<$tagInfo[name]>";
|
||||||
$openTag2 = "<$tagInfo[name] ";
|
$openTag2 = "<$tagInfo[name] ";
|
||||||
do {
|
do {
|
||||||
@@ -485,9 +488,18 @@ class WireMarkupRegions extends Wire {
|
|||||||
// tags within don't balance, so try again
|
// tags within don't balance, so try again
|
||||||
$testStart = $testPos + strlen($tagInfo['close']);
|
$testStart = $testPos + strlen($tagInfo['close']);
|
||||||
}
|
}
|
||||||
} while($doCnt < 200 && $testStart < strlen($region));
|
} while($doCnt < $maxDoCnt && $testStart < strlen($region));
|
||||||
|
|
||||||
if($verbose) $verboseRegion['details'] = "Matched region after testing $doCnt <$tagInfo[name]> tag(s)";
|
if($doCnt >= $maxDoCnt) {
|
||||||
|
if($verbose) {
|
||||||
|
$verboseRegion['error'] = true;
|
||||||
|
$verboseRegion['details'] = "Failed region match after $doCnt tests for <$tagInfo[name]> tag(s)";
|
||||||
|
} else {
|
||||||
|
$region = 'error';
|
||||||
|
}
|
||||||
|
} else if($verbose) {
|
||||||
|
$verboseRegion['details'] = "Matched region after testing $doCnt <$tagInfo[name]> tag(s)";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// region with wrapping tag
|
// region with wrapping tag
|
||||||
|
Reference in New Issue
Block a user