143 $blockMetadata = $block->
getMeta();
144 if (!$blockMetadata[
'SITE_TPL_CODE'])
149 $themeManifest = self::getThemeManifest($blockMetadata[
'SITE_TPL_CODE']);
151 isset($themeManifest[
'newBlockStyle']) &&
152 is_array($themeManifest[
'newBlockStyle'])
155 $themeManifest = $themeManifest[
'newBlockStyle'];
162 $contentWasChanged =
false;
164 $blockClasses = self::getStyleClasses($blockContent);
171 if (!isset($blockManifest[
'namespace']))
176 $blockNamespace = $blockManifest[
'namespace'];
177 $semanticManifest = Block::getSemantic();
178 if (isset($semanticManifest[$blockNamespace]))
180 $semanticManifest = $semanticManifest[$blockNamespace];
188 foreach ($themeManifest as $semanticCode => $needClasses)
190 if (!isset($semanticManifest[$semanticCode]))
194 if (!is_array($needClasses))
196 $needClasses = (
array)$needClasses;
200 foreach ((
array) $semanticManifest[$semanticCode] as $semanticClass)
202 $semanticClass =
' ' . $semanticClass .
' ';
203 foreach ($blockClasses as $classesString)
205 if (mb_strpos($classesString, $semanticClass) !==
false)
207 $contentWasChanged =
true;
208 $newClassString = self::removeSiblingsClasses(
213 $blockContent = str_replace(
214 'class="' . trim($classesString) .
'"',
215 'class="' . $newClassString .
' ' . implode(
' ', $needClasses) .
'"',
224 if ($contentWasChanged)