Skip to content

Commit

Permalink
Merge branch 'release/1.1.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
whitelacoste committed Jul 1, 2024
2 parents 87b7bd4 + d21db4e commit 6d6fb79
Show file tree
Hide file tree
Showing 38 changed files with 833 additions and 49 deletions.
17 changes: 17 additions & 0 deletions include.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,23 @@
'random_review',
'random_reviews',
],
'SLIDER' => [
'slider',
'promo_slider',
'slider_promo',
],
],
'MODULES' => [
'main',
'fileman',
'iblock',
'form',
'perfmon',
'translate',
'search',
'seo',
'security',
'photogallery',
],
'PATHS' => [
'DESKTOP' => [
Expand Down
4 changes: 2 additions & 2 deletions install/version.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?php
$arModuleVersion = [
'VERSION' => '1.1.1',
'VERSION_DATE' => '2024-06-14 15:00:00'
'VERSION' => '1.1.2',
'VERSION_DATE' => '2024-06-26 16:00:00'
];
22 changes: 22 additions & 0 deletions lang/ru/include.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
$MESS['INTERVOLGA_EDU.COURSE2'] = '2. Основные технологии и расширение типовых возможностей системы';
$MESS['INTERVOLGA_EDU.COURSE3'] = '3. Расширенные технологии и производительность';
$MESS['INTERVOLGA_EDU.COURSE4'] = '4. Разработка на D7. Введение';
$MESS['INTERVOLGA_EDU.COURSEINTERVOLGA'] = '5. Проверки ИНТЕРВОЛГИ';

$MESS['INTERVOLGA_EDU.COURSE1_LESSON1'] = '1. Установка платформы';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON2'] = '2. Структура Bitrix Framework';
Expand All @@ -15,6 +16,7 @@
$MESS['INTERVOLGA_EDU.COURSE1_LESSON9'] = '9. ЧПУ, эрмитаж, постраничная навигация';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON10'] = '10. Поиск';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON11'] = '11. Полезные возможности';
$MESS['INTERVOLGA_EDU.COURSE2_LESSON1'] = '1. Получение связанных элементов';
$MESS['INTERVOLGA_EDU.COURSE2_LESSON1_2'] = '1.2 Получение связанных элементов';
$MESS['INTERVOLGA_EDU.COURSE2_LESSON2'] = '2. Технологии: параметры модулей, почтовая системы, агенты, журнал событий';
$MESS['INTERVOLGA_EDU.COURSE2_LESSON3'] = '3. События';
Expand All @@ -34,6 +36,8 @@
$MESS['INTERVOLGA_EDU.COURSE3_LESSON7'] = '7. Производительность';
$MESS['INTERVOLGA_EDU.COURSE3_LESSON8'] = '8. Монитор качества';
$MESS['INTERVOLGA_EDU.COURSE3_LESSON9'] = '9. Композитный сайт';
$MESS['INTERVOLGA_EDU.COURSEINTERVOLGA_LESSON1'] = '1. Поисковая оптимизация';
$MESS['INTERVOLGA_EDU.COURSEINTERVOLGA_LESSON2'] = '2. Проверка используемых модулей';

$MESS['INTERVOLGA_EDU.COURSE1_LESSON1_SITECORPORATEMODULE'] = 'Проверка установки модуля «Корпоративный сайт производственной компании»';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON1_SITECORPORATEMODULE_DESCRIPTION'] = 'Модуль должен быть <a href="/bitrix/admin/partner_modules.php?lang=ru" target="_blank">зарегистрирован</a> в системе и установлен';
Expand Down Expand Up @@ -79,12 +83,15 @@
$MESS['INTERVOLGA_EDU.COURSE1_LESSON3_SCRIPTS_DESCRIPTION'] = 'Плагины слайдера и карусели должны подключаться только в main-шаблоне';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON3_OPTION'] = 'Проверка настроек JS и CSS главного модуля';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON3_OPTION_DESCRIPTION'] = 'Требуется включить настройки Объединять CSS файлы, Объединять JS файлы, Создавать сжатую копию объединенных CSS и JS файлов';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON3_LANG'] = 'Проверка lang кодов';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON3_LANG_DESCRIPTION'] = 'Требуется использовать языковые коды для строк из задания';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON11_SMARTFILTERISEXIST'] = 'Проверка на наличие включенного фильтра';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON11_SMARTFILTERISEXIST_DESCRIPTION'] = 'В компоненте каталог должен быть включен фильтр';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON11_PROPERTYISEXIST'] = 'Проверка на наличие свойства';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON11_PROPERTYISEXIST_DESCRIPTION'] = 'Инфоблок должен иметь свойство "В наличии"';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON11_PROPERTYINFILTER'] = 'Используется в умном фильтре';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON11_PROPERTYINFILTER_DESCRIPTION'] = 'Проверка у свойства на наличие флага "использовать в умном фильтре"';

$MESS['INTERVOLGA_EDU.COURSE1_LESSON41_INCLUDEAREA'] = 'Проверка включаемой области';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON41_INCLUDEAREA_DESCRIPTION'] = 'Должен быть файл в разделе Партнерам и в корне сайта';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON41_ABOUTMENUITEMS'] = 'Проверка пунктов меню "О магазине"';
Expand Down Expand Up @@ -127,6 +134,13 @@
$MESS['INTERVOLGA_EDU.COURSE1_LESSON11_PROPERTYISEXIST_DESCRIPTION'] = 'Инфоблок должен иметь свойство "В наличии", оно должно быть заполненно хотя бы у 1 элемента раздела "Мягкая мебель"';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON11_PROPERTYINFILTER'] = 'Используется в умном фильтре';
$MESS['INTERVOLGA_EDU.COURSE1_LESSON11_PROPERTYINFILTER_DESCRIPTION'] = 'Проверка параметра свойства "использовать в умном фильтре"';
$MESS['INTERVOLGA_EDU.COURSE2_LESSON1_2_COMPONENTINCLUDE'] = 'Проверка подключения "Слайдера"';
$MESS['INTERVOLGA_EDU.COURSE2_LESSON1_2_COMPONENTINCLUDE_DESCRIPTION'] = 'В header.php главной страницы должен подключаться компонент списка новостей с шаблоном слайдера';
$MESS['INTERVOLGA_EDU.COURSE2_LESSON1_2_SLIDER'] = 'Проверка содержимого шаблона Слайдера';
$MESS['INTERVOLGA_EDU.COURSE2_LESSON1_2_SLIDER_DESCRIPTION'] = 'Должны быть правильно заполнены ссылки, getList не должен быть в цикле, js-скрипты подключаются в правильном файле';

$MESS['INTERVOLGA_EDU.COURSE2_LESSON1_2_SLIDERCODEANALYSIS'] = 'Проверка кода файла result_modifier';
$MESS['INTERVOLGA_EDU.COURSE2_LESSON1_2_SLIDERCODEANALYSIS_DESCRIPTION'] = 'Анализ кода news.list/slider/result_modifier.php';
$MESS['INTERVOLGA_EDU.COURSE2_LESSON1_2_CATALOGBINDINGPROPERTY'] = 'Проверка свойства "Привязка к каталогу"';
$MESS['INTERVOLGA_EDU.COURSE2_LESSON1_2_CATALOGBINDINGPROPERTY_DESCRIPTION'] = 'Свойство должно существовать, иметь тип "Привязка к элементам" и быть заполненно хотя бы у 3 элементов';
$MESS['INTERVOLGA_EDU.COURSE2_LESSON1_2_PROPERTYPRICE'] = 'Проверка свойства "Цена"';
Expand Down Expand Up @@ -216,6 +230,11 @@
$MESS['INTERVOLGA_EDU.COURSE3_LESSON9_COMPOSITEENABLED'] = 'Проверка настроект Композитного сайта';
$MESS['INTERVOLGA_EDU.COURSE3_LESSON9_COMPOSITEENABLED_DESCRIPTION'] = 'Композитный режим должен быть включен, в настройках компонентов авторизации и включаемой области с номером телефона Голосование шаблона компонента должно стоять авто';

$MESS['INTERVOLGA_EDU.COURSEINTERVOLGA_LESSON1_ROBOTSCHECKER'] = 'Проверка robots.txt';
$MESS['INTERVOLGA_EDU.COURSEINTERVOLGA_LESSON1_ROBOTSCHECKER_DESCRIPTION'] = 'Файл robots.txt должен существовать, быть заполнен';
$MESS['INTERVOLGA_EDU.COURSEINTERVOLGA_LESSON2_MODULESCHECK'] = 'Проверка списка модулей';
$MESS['INTERVOLGA_EDU.COURSEINTERVOLGA_LESSON2_MODULESCHECK_DESCRIPTION'] = 'Неиспользуемые модули должны быть удалены, проверка списка нужных модулей';

$MESS['INTERVOLGA_EDU.TEST_CODE_NAME'] = 'Проверка кода #FILES#';
$MESS['INTERVOLGA_EDU.TEST_CODE_DESCRIPTION'] = 'Современная проверка ядра Битрикса, использование длинных php-тегов, запрет на устаревшие функции';
$MESS['INTERVOLGA_EDU.TEST_COMPONENT_TEMPLATE_NAME'] = 'Проверка папки #TEMPLATE#';
Expand Down Expand Up @@ -276,6 +295,8 @@
$MESS['INTERVOLGA_EDU.CUSTOM_MODULE_TIP'] = 'intervolga.? в #MODULES#';
$MESS['INTERVOLGA_EDU.INCLUDEAREA_PARTNERS'] = 'Включаемая область в разделе Партнерам';
$MESS['INTERVOLGA_EDU.INCLUDEAREA_PARTNERS_TIPS'] = 'в названии должно быть: #PARTS#';

$MESS['INTERVOLGA_EDU.SLIDER_STOCK_TEMPLATE'] = 'Шаблон слайдера';
$MESS['INTERVOLGA_EDU.TOP_MENU_TEMPLATE'] = 'Шаблон верхнего меню';
$MESS['INTERVOLGA_EDU.LEFT_MENU_TEMPLATE'] = 'Шаблон левого меню';
$MESS['INTERVOLGA_EDU.BOTTOM_MENU_TEMPLATE'] = 'Шаблон меню О магазине';
Expand All @@ -286,6 +307,7 @@
$MESS['INTERVOLGA_EDU.TEST_IBLOCK_NAME'] = 'Проверка Инфоблока #IBLOCK#';
$MESS['INTERVOLGA_EDU.TEST_IBLOCK_DESCRIPTION'] = 'Проверка типа, прав, количества элементов, свойств по заданию, формы редактирования в админке';
$MESS['INTERVOLGA_EDU.SEARCH_FORM_TEMPLATE'] = 'Шаблон формы поиска';

$MESS['INTERVOLGA_EDU.CATALOG_SECTION_TEMPLATE'] = 'Шаблон секций каталога';
$MESS['INTERVOLGA_EDU.GALLERY_TEMPLATE'] = 'Шаблон gallery';
$MESS['INTERVOLGA_EDU.SHOW_VIEW_CONTENT_NOT_FOUND_MATERIALS'] = 'Show View Content для области материалов';
Expand Down
6 changes: 5 additions & 1 deletion lang/ru/lib/asserts/assert.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
$MESS['INTERVOLGA_EDU.ASSERT_FILE_CONTENT_MATCH'] = 'Файл #VALUE# не содержит <b>#EXPECT#</b>';
$MESS['INTERVOLGA_EDU.ASSERT_DIRECTORY_EXISTS'] = 'Папка #VALUE# не найдена';
$MESS['INTERVOLGA_EDU.ASSERT_DIRECTORY_NOT_EXISTS'] = 'Папка #VALUE# существует, должна быть удалена';
$MESS['INTERVOLGA_EDU.ASSERT_DIRECTORY_IS_EMPTY'] = 'Директория #PATH# не должна быть пустой';
$MESS['INTERVOLGA_EDU.ASSERT_FILE_NOT_EXISTS'] = 'Файл #VALUE# существует, должен быть удален';
$MESS['INTERVOLGA_EDU.FSE'] = '<a href="#FILEMAN_URL#" target="_blank">#NAME#</a>';
$MESS['INTERVOLGA_EDU.ASSERT_MODULE_INSTALLED'] = 'Модуль #VALUE# должен быть установлен';
Expand Down Expand Up @@ -53,4 +54,7 @@
$MESS['INTERVOLGA_EDU.ASSERT_EVENT_MESSAGE_EXISTS'] = 'Почтовое событие <b>#NAME#</b> не найдено (#POSSIBLE#)';
$MESS['INTERVOLGA_EDU.ASSERT_EVENT_TEMPLATE_EXISTS'] = 'Почтовый шаблон <b>#NAME#</b> не найден (#POSSIBLE#)';
$MESS['INTERVOLGA_EDU.TEMPLATE_NOT_EQUALS_CONDITION'] = 'Шаблон <b>#TEMPLATE#</b> имеет неверное условие показа';
$MESS['INTERVOLGA_EDU.TEMPLATE_NOT_EXISTS'] = 'Шаблон <b>#TEMPLATE#</b> отсутствует';
$MESS['INTERVOLGA_EDU.TEMPLATE_NOT_EXISTS'] = 'Шаблон <b>#TEMPLATE#</b> отсутствует';
$MESS['INTERVOLGA_EDU.LANG_STRING_NOT_FOUND'] = 'Строка \'#STRING#\' не найдена в языковом файле #FILE#';
$MESS['INTERVOLGA_EDU.EN_LANG_CODE_NOT_FOUND'] = 'Код \'#CODE#\' не найден в /en/ языковом файле #FILE#';
$MESS['INTERVOLGA_EDU.LOC_MESSAGE_NOT_FOUND'] = 'Код \'#CODE#\' не найден в файле #FILE#';
2 changes: 2 additions & 0 deletions lang/ru/lib/locator/component/template/slider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<?php
$MESS['INTERVOLGA_EDU.COMPONENT_SLIDER'] = 'Шаблон слайдера акций';
2 changes: 2 additions & 0 deletions lang/ru/lib/locator/io/componenttemplate/slidertemplate.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<?php
$MESS['INTERVOLGA_EDU.IO_SLIDER_TEMPLATE'] = 'Шаблон слайдера акций';
2 changes: 2 additions & 0 deletions lang/ru/lib/locator/io/mainheadertemplate.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<?php
$MESS['INTERVOLGA_EDU.MAIN_HEADER_TEMPLATE'] = 'Шаблон header главной страницы';
2 changes: 2 additions & 0 deletions lang/ru/lib/tests/basecomponenttemplatetest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<?php
$MESS['INTERVOLGA_EDU.SNIFFER_CHECK_LANG_CODE'] = 'В файле #FILE# присутствует лишняя языковая переменная <b>#VALUE#</b> ';
2 changes: 2 additions & 0 deletions lang/ru/lib/tests/basetestcode.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<?php
$MESS['INTERVOLGA_EDU.TEST_CODE_EMPTY_FILES'] = 'Проверяемые файлы не найдены';
4 changes: 4 additions & 0 deletions lang/ru/lib/tests/course1/lesson3/testlang.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?php
$MESS['INTERVOLGA_EDU.COURSE_1_LESSON_3_UNKNOWN_STRING']= 'В файле #FILE# используется лишняя языковая константа #VALUE#';
$MESS['INTERVOLGA_EDU.COURSE_1_LESSON_3_NOT_FOUND_STRING']= 'В файле #FILE# не найдена языковая константа #VALUE#';
$MESS['INTERVOLGA_EDU.COURSE_1_LESSON_3_NOT_FOUND_USAGE_STRING']= 'В файле #FILE# не используется языковая константа #VALUE#';
2 changes: 2 additions & 0 deletions lang/ru/lib/tests/course2/lesson1_2/testcomponentinclude.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<?php
$MESS['INTERVOLGA_EDU.COURSE_2.LESSON_1_2.WRONG_PATH_SLIDER'] = 'размещение слайдера акций';
6 changes: 6 additions & 0 deletions lang/ru/lib/tests/course2/lesson1_2/testslider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?php
$MESS['INTERVOLGA_EDU.COURSE_2.LESSON_1_2.JS_NOT_FOUND_IN_COMPONENT_EPILOG'] = 'подключение js-скриптов карусели';
$MESS['INTERVOLGA_EDU.COURSE_2.LESSON_1_2.NOT_TITLE_IN_LINK'] = 'title в ссылке на связанный элемент';
$MESS['INTERVOLGA_EDU.COURSE_2.LESSON_1_2.NOT_TITLE_IN_LINK_IMG'] = 'title в ссылке на связанный элемент в теге <img>';
$MESS['INTERVOLGA_EDU.COURSE_2.LESSON_1_2.LINK_SET_NOT_BINDING_VALUE'] = 'заполнение ссылки вручную';
$MESS['INTERVOLGA_EDU.COURSE_2.LESSON_1_2.LINK_SET_NOT_BINDING_VALUE_IMG'] = 'заполнение ссылки вручную в теге <img>';
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?php
$MESS['INTERVOLGA_EDU.COURSE_2.LESSON_1_2.REG_GET_LIST'] = 'GetList в цикле foreach/while';
$MESS['INTERVOLGA_EDU.COURSE_2.LESSON_1_2.REG_RESIZE_IMAGE'] = 'ResizeImageGet в цикле foreach';
$MESS['INTERVOLGA_EDU.COURSE_2.LESSON_1_2.REG_GET_LIST_COUNT'] = 'GetList больше чем один вызов';
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<?php
$MESS['INTERVOLGA_EDU.COURSE_INTERVOLGA_ROBOTS_NOT_FOUND'] = 'Файл robots.txt не найден. <a href="/bitrix/admin/seo_robots.php" target="_blank"">Создать</a>';
$MESS['INTERVOLGA_EDU.COURSE_INTERVOLGA_ROBOTS_NOT_MATCH'] = 'Файл #VALUE# должен содержать: </br>User-agent: *</br>Disallow: /';
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<?php
$MESS['INTERVOLGA_EDU.COURSE_INTERVOLGA_MODULE_NOT_ISTALLED'] = 'Модуль #VALUE# должен быть установлен';
$MESS['INTERVOLGA_EDU.COURSE_INTERVOLGA_MODULE_NEED_DELETED'] = 'Модуль #VALUE# должен быть удален';
115 changes: 114 additions & 1 deletion lib/asserts/assert.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
use Bitrix\Main\Config\Option;
use Bitrix\Main\IO\Directory;
use Bitrix\Main\IO\File;
use Bitrix\Main\IO\FileNotFoundException;
use Bitrix\Main\IO\FileSystemEntry;
use Bitrix\Main\Loader;
use Bitrix\Main\Localization\Loc;
Expand Down Expand Up @@ -500,8 +501,8 @@ public static function fseExists(FileSystemEntry $value, string $message = '')
public static function fileContentMatches(File $value, Regex $regex, string $message = '')
{
static::fseExists($value);
Assert::fileNotEmpty($value);
$content = $value->getContents();
Assert::notEmpty($content);
$matches = [];
if ($content) {
preg_match_all($regex->getRegex(), $content, $matches, PREG_SET_ORDER);
Expand All @@ -526,6 +527,17 @@ public static function fileContentMatches(File $value, Regex $regex, string $mes
* @param string $message
* @throws AssertException
*/
public static function directoryNotEmpty(Directory $value, string $message = ''){
if(!$value->getChildren()){
static::registerError(static::getCustomOrLocMessage(
'INTERVOLGA_EDU.ASSERT_DIRECTORY_IS_EMPTY',
[
'#PATH#' => FileSystem::getLocalPath($value)
],
$message
));
}
}
public static function directoryExists(Directory $value, string $message = '')
{
if (!$value->isExists()) {
Expand Down Expand Up @@ -1060,6 +1072,68 @@ public static function phpSniffer(array $paths, array $standartName = ['general'
}
}

/**
* @param string $dirPath
* @param string $fileName
* @param string $string
* @param string $message
* @throws AssertException
* @throws FileNotFoundException
*/
public static function langStringExists(string $dirPath, string $fileName, string $string, string $message = '')
{
$ruLang = FileSystem::getFile($dirPath . "/lang/ru/" . $fileName);
$code = static::getLangCodeByValue($ruLang, $string);
if (!$code) {
static::registerError(
static::getCustomOrLocMessage(
'INTERVOLGA_EDU.LANG_STRING_NOT_FOUND',
[
'#STRING#' => $string,
'#FILE#' => Loc::getMessage('INTERVOLGA_EDU.FSE', [
'#NAME#' => $ruLang->getDirectoryName() . '/' . $fileName,
'#FILEMAN_URL#' => Admin::getFileManUrl($ruLang),
]),
],
$message
));

return;
}
$enLang = FileSystem::getFile($dirPath . "/lang/en/" . $fileName);
if (!static::langCodeExists($enLang, $code)) {
static::registerError(
static::getCustomOrLocMessage(
'INTERVOLGA_EDU.EN_LANG_CODE_NOT_FOUND',
[
'#CODE#' => $code,
'#FILE#' => Loc::getMessage('INTERVOLGA_EDU.FSE', [
'#NAME#' => $enLang->getDirectoryName() . '/' . $fileName,
'#FILEMAN_URL#' => Admin::getFileManUrl($enLang),
]),
],
$message
));

return;
}
$file = FileSystem::getFile($dirPath . '/' . $fileName);
if (!static::codeInFileExists($file, $code)) {
static::registerError(
static::getCustomOrLocMessage(
'INTERVOLGA_EDU.LOC_MESSAGE_NOT_FOUND',
[
'#CODE#' => $code,
'#FILE#' => Loc::getMessage('INTERVOLGA_EDU.FSE', [
'#NAME#' => $file->getDirectoryName() . '/' . $fileName,
'#FILEMAN_URL#' => Admin::getFileManUrl($file),
]),
],
$message
));
}
}

/**
* @param string $message
* @throws AssertException
Expand Down Expand Up @@ -1103,6 +1177,45 @@ protected static function getStringFromArray($separator, $array, $endString = "<
return $result;
}

/**
* @param File $file
* @param string $value
* @return string|null
* @throws FileNotFoundException
*/
protected static function getLangCodeByValue(File $file, string $value): ?string
{
$fileContent = $file->getContents();
$regex = new Regex('/\$MESS\[[\'|\"](.*)[\'|\"]\]\s=\s[\'|\"]' . $value . '[\'|\"];/mui',
'$MESS["INTERVOLGA.CONTACT"] = "Contact information:";');
$res = preg_match($regex->getRegex(), $fileContent, $output);
if ($res) {
return $output[1];
}

return null;
}

/**
* @throws FileNotFoundException
*/
protected static function langCodeExists(File $file, string $code): bool
{
$fileContent = $file->getContents();

return preg_match('/\$MESS\[[\'|\"]' . $code . '[\'|\"]\]/m', $fileContent);
}

/**
* @throws FileNotFoundException
*/
protected static function codeInFileExists(File $file, string $code): bool
{
$fileContent = $file->getContents();

return preg_match('/Loc::getMessage\([\'|\"]' . $code . '[\'|\"]\)/m', $fileContent);
}

/**
* @param string|BaseLocator $parentLocatorClass
* @param string|BaseLocator $locatorClass
Expand Down
Loading

0 comments on commit 6d6fb79

Please sign in to comment.