From 9ce56e501c8ec66ea5d1291fe25d9576c0bedb67 Mon Sep 17 00:00:00 2001 From: Ilyas Ronef Date: Wed, 28 Apr 2021 01:00:48 +0300 Subject: [PATCH 1/4] =?UTF-8?q?+=20README=20=E2=86=92=C2=A0Documentation?= =?UTF-8?q?=20=E2=86=92=20Installation=20=E2=86=92=20Using=20(MODX)Evoluti?= =?UTF-8?q?onCMS.libraries.ddInstaller.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 +++++++++++++++++++++++++++-- README_ru.md | 29 +++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c18f22e..ec59ffe 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,10 @@ This snippet compares different values and returns required chunk or string. ### Installation -#### 1. Elements → Snippets: Create a new snippet with the following data +#### Manually + + +##### 1. Elements → Snippets: Create a new snippet with the following data 1. Snippet name: `ddIf`. 2. Description: `2.1 This snippet compares different values and returns required chunk or string.`. @@ -25,12 +28,34 @@ This snippet compares different values and returns required chunk or string. 5. Snippet code (php): Insert content of the `ddIf_snippet.php` file from the archive. -#### 2. Elements → Manage Files +##### 2. Elements → Manage Files 1. Create a new folder `assets/snippets/ddIf/`. 2. Extract the archive to the folder (except `ddIf_snippet.php`). +#### Using [(MODX)EvolutionCMS.libraries.ddInstaller](https://github.com/DivanDesign/EvolutionCMS.libraries.ddInstaller) + +Just run the following PHP code in your sources or [Console](https://github.com/vanchelo/MODX-Evolution-Ajax-Console): + +```php +//Include (MODX)EvolutionCMS.libraries.ddInstaller +require_once( + $modx->getConfig('base_path') . + 'assets/libs/ddInstaller/require.php' +); + +//Install (MODX)EvolutionCMS.snippets.ddIf +\DDInstaller::install([ + 'url' => 'https://github.com/DivanDesign/EvolutionCMS.snippets.ddIf', + 'type' => 'snippet' +]); +``` + +* If `ddIf` is not exist on your site, `ddInstaller` will just install it. +* If `ddIf` is already exist on your site, `ddInstaller` will check it version and update it if needed. + + ### Parameters description * `operand1` diff --git a/README_ru.md b/README_ru.md index b564033..66f7a29 100644 --- a/README_ru.md +++ b/README_ru.md @@ -16,7 +16,10 @@ ### Установка -#### 1. Элементы → Сниппеты: Создайте новый сниппет со следующими параметрами +#### Вручную + + +##### 1. Элементы → Сниппеты: Создайте новый сниппет со следующими параметрами 1. Название сниппета: `ddIf`. 2. Описание: `2.1 Сравнивает значения и выводит необходимый чанк или строку.`. @@ -25,12 +28,34 @@ 5. Код сниппета (php): Вставьте содержимое файла `ddIf_snippet.php` из архива. -#### 2. Элементы → Управление файлами +##### 2. Элементы → Управление файлами 1. Создайте новую папку `assets/snippets/ddIf/`. 2. Извлеките содержимое архива в неё (кроме файла `ddIf_snippet.php`). +#### Используя [(MODX)EvolutionCMS.libraries.ddInstaller](https://github.com/DivanDesign/EvolutionCMS.libraries.ddInstaller) + +Просто вызовите следующий код в своих исходинках или модуле [Console](https://github.com/vanchelo/MODX-Evolution-Ajax-Console): + +```php +//Подключение (MODX)EvolutionCMS.libraries.ddInstaller +require_once( + $modx->getConfig('base_path') . + 'assets/libs/ddInstaller/require.php' +); + +//Установка (MODX)EvolutionCMS.snippets.ddIf +\DDInstaller::install([ + 'url' => 'https://github.com/DivanDesign/EvolutionCMS.snippets.ddIf', + 'type' => 'snippet' +]); +``` + +* Если `ddIf` отсутствует на вашем сайте, `ddInstaller` просто установит его. +* Если `ddIf` уже есть на вашем сайте, `ddInstaller` проверит его версию и обновит, если нужно. + + ### Описание параметров * `operand1` From 91c8ffb0c7aa755db17e1e42dc7a11a5c4153914 Mon Sep 17 00:00:00 2001 From: Ilyas Ronef Date: Fri, 30 Apr 2021 11:45:14 +0300 Subject: [PATCH 2/4] =?UTF-8?q?+=20Parameters=20=E2=86=92=C2=A0`operator`:?= =?UTF-8?q?=20Values=20are=20case=20insensitive.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 ++++++----- README_ru.md | 11 ++++++----- src/Snippet.php | 6 ++++-- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index ec59ffe..0465e0c 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,8 @@ require_once( * Default value: `''` * `operator` - * Desctription: Comparing operator. + * Desctription: Comparing operator. + Values are case insensitive (the following names are equal: `'isNumeric'`, `'isnumeric'`, `'ISNUMERIC'`, etc). * Valid values: * `'=='` * `'!='` @@ -79,8 +80,8 @@ require_once( * `'<='` * `'>='` * `'bool'` - * `'inarray'` - * `'isnumeric'` + * `'inArray'` + * `'isNumeric'` * Default value: `'=='` * `trueChunk` @@ -157,7 +158,7 @@ The strings are not equal. ``` [[ddIf? &operand1=`Apple` - &operator=`inarray` + &operator=`inArray` &operand2=`Pear,Banana,Apple,Orange` &trueChunk=`@CODE:Exists.` &falseChunk=`@CODE:Not exists.` @@ -176,7 +177,7 @@ Exists. ``` [[ddIf? &operand1=`123` - &operator=`isnumeric` + &operator=`isNumeric` &trueChunk=`@CODE:Number.` &falseChunk=`@CODE:Not number.` ]] diff --git a/README_ru.md b/README_ru.md index 66f7a29..038decf 100644 --- a/README_ru.md +++ b/README_ru.md @@ -70,7 +70,8 @@ require_once( * Значение по умолчанию: `''` * `operator` - * Описание: Оператор сравнения. + * Описание: Оператор сравнения. + Значения регистронезависимы (следующие значения равны: `'isNumeric'`, `'isnumeric'`, `'ISNUMERIC'` и т. п.). * Допустимые значения: * `'=='` * `'!='` @@ -79,8 +80,8 @@ require_once( * `'<='` * `'>='` * `'bool'` - * `'inarray'` - * `'isnumeric'` + * `'inArray'` + * `'isNumeric'` * Значение по умолчанию: `'=='` * `trueChunk` @@ -157,7 +158,7 @@ require_once( ``` [[ddIf? &operand1=`Яблоки` - &operator=`inarray` + &operator=`inArray` &operand2=`Груши,Бананы,Яблоки,Апельсины` &trueChunk=`@CODE:Присутствует.` &falseChunk=`@CODE:Отсутствует.` @@ -176,7 +177,7 @@ require_once( ``` [[ddIf? &operand1=`123` - &operator=`isnumeric` + &operator=`isNumeric` &trueChunk=`@CODE:Число.` &falseChunk=`@CODE:Не число.` ]] diff --git a/src/Snippet.php b/src/Snippet.php index 0e685da..a26a7f4 100644 --- a/src/Snippet.php +++ b/src/Snippet.php @@ -26,7 +26,7 @@ class Snippet extends \DDTools\Snippet { /** * prepareParams - * @version 1.1 (2021-04-26) + * @version 1.2 (2021-04-30) * * @param $params {stdClass|arrayAssociative|stringJsonObject|stringQueryFormatted} * @@ -52,6 +52,8 @@ protected function prepareParams($params = []){ $this->params->operand1 = ''; } + $this->params->operator = mb_strtolower($this->params->operator); + //Backward compatibility $operatorBackwardCompliance = [ 'r' => '==', @@ -64,7 +66,7 @@ protected function prepareParams($params = []){ if ( array_key_exists( - mb_strtolower($this->params->operator), + $this->params->operator, $operatorBackwardCompliance ) ){ From 039b1479e779806878c57c943165a5ca8d27581c Mon Sep 17 00:00:00 2001 From: Ilyas Ronef Date: Fri, 30 Apr 2021 13:52:36 +0300 Subject: [PATCH 3/4] =?UTF-8?q?+=20Parameters=20=E2=86=92=C2=A0`operator`:?= =?UTF-8?q?=20Added=20the=20ability=20to=20check=20if=20`operand1`=20is=20?= =?UTF-8?q?just=20white=20space=20(see=20README).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ README_ru.md | 43 +++++++++++++++++++++++++++++++++++++++++++ src/Snippet.php | 9 ++++++++- 3 files changed, 94 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0465e0c..c99855c 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ require_once( * `'bool'` * `'inArray'` * `'isNumeric'` + * `'isWhitespace'` — checks if `operand1` is just white space (an empty string is also considered as white space) * Default value: `'=='` * `trueChunk` @@ -190,6 +191,48 @@ Number. ``` +#### Checks if a `operand1` value is just white space or not + +Any number of spaces / tabs / new lines / etc are considered as white space. +An empty string is also considered as white space. + +``` +[[ddIf? + &operand1=` + + + + ` + &operator=`isWhitespace` + &trueChunk=`@CODE:The string contains only some whitespace characters.` + &falseChunk=`@CODE:[+snippetParams.operand1+]` +]] +``` + +Returns: + +``` +The string contains only some whitespace characters. +``` + +If `operand1` contains any non-whitespace characters, `falseString` will be returned. + +``` +[[ddIf? + &operand1=`All you need is love.` + &operator=`isWhitespace` + &trueChunk=`@CODE:The string contains only some whitespace characters.` + &falseChunk=`@CODE:[+snippetParams.operand1+]` +]] +``` + +Returns: + +``` +All you need is love. +``` + + #### Number comparison and pass additional data to chunks ``` diff --git a/README_ru.md b/README_ru.md index 038decf..2904d75 100644 --- a/README_ru.md +++ b/README_ru.md @@ -82,6 +82,7 @@ require_once( * `'bool'` * `'inArray'` * `'isNumeric'` + * `'isWhitespace'` — проверяет, что строка `operand1` содержит только пробельные символы (пустая строка также считается пробельным символом) * Значение по умолчанию: `'=='` * `trueChunk` @@ -190,6 +191,48 @@ require_once( ``` +#### Содержит ли `operand1` что-то, кроме пробельных символов + +Любое количество пробелов / табуляторов / новых строк / etc трактуются пробельными. +Пустая строка также считается пробельным символом. + +``` +[[ddIf? + &operand1=` + + + + ` + &operator=`isWhitespace` + &trueChunk=`@CODE:Строка содержит только пробельные символы.` + &falseChunk=`@CODE:[+snippetParams.operand1+]` +]] +``` + +Вернёт: + +``` +Строка содержит только пробельные символы. +``` + +Если `operand1` содержит какие-либо непробельные символы, сниппет вернёт `falseString`. + +``` +[[ddIf? + &operand1=`All you need is love.` + &operator=`isWhitespace` + &trueChunk=`@CODE:Строка содержит только пробельные символы.` + &falseChunk=`@CODE:[+snippetParams.operand1+]` +]] +``` + +Вернёт: + +``` +All you need is love. +``` + + #### Сравнение двух чисел и передача дополнительных данных в чанки ``` diff --git a/src/Snippet.php b/src/Snippet.php index a26a7f4..e6b3e40 100644 --- a/src/Snippet.php +++ b/src/Snippet.php @@ -76,7 +76,7 @@ protected function prepareParams($params = []){ /** * run - * @version 1.0.1 (2021-04-26) + * @version 1.1 (2021-04-30) * * @return {string} */ @@ -159,6 +159,13 @@ public function run(){ $boolOut = is_numeric($this->params->operand1); break; + case 'iswhitespace': + $boolOut = + $this->params->operand1 == '' || + ctype_space($this->params->operand1) + ; + break; + case '==': default: $boolOut = From 7d88ff4fcaf65b9f6452c286e109eb1cca65a845 Mon Sep 17 00:00:00 2001 From: Ilyas Ronef Date: Fri, 30 Apr 2021 16:23:12 +0300 Subject: [PATCH 4/4] Prerelease --- CHANGELOG.md | 7 +++++++ CHANGELOG_ru.md | 7 +++++++ README.md | 2 +- README_ru.md | 2 +- composer.json | 2 +- ddIf_snippet.php | 2 +- src/Snippet.php | 2 +- 7 files changed, 19 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6df76e0..584f533 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ # (MODX)EvolutionCMS.snippets.ddIf changelog +## Version 2.2 (2021-04-30) +* \+ Parameters → `operator`: + * \+ Added the ability to check if `operand1` is just white space (see README). + * \+ Values are case insensitive. +* \+ README → Documentation → Installation → Using (MODX)EvolutionCMS.libraries.ddInstaller. + + ## Version 2.1 (2021-04-27) * \* Attention! PHP >= 5.6 is required. * \* Attention! (MODX)EvolutionCMS.libraries.ddTools >= 0.49.1 is required. diff --git a/CHANGELOG_ru.md b/CHANGELOG_ru.md index eb7d21c..c0fc120 100644 --- a/CHANGELOG_ru.md +++ b/CHANGELOG_ru.md @@ -1,6 +1,13 @@ # (MODX)EvolutionCMS.snippets.ddIf changelog +## Версия 2.2 (2021-04-30) +* \+ Параметры → `operator`: + * \+ Добавлена возможность проверить, что строка `operand1` содержит только пробельные символы (см. README). + * \+ Значения регистронезависимы. +* \+ README → Документация → Установка → Используя (MODX)EvolutionCMS.libraries.ddInstaller. + + ## Версия 2.1 (2021-04-27) * \* Внимание! Требуется PHP >= 5.6. * \* Внимание! Требуется (MODX)EvolutionCMS.libraries.ddTools >= 0.49.1. diff --git a/README.md b/README.md index c99855c..3712c9c 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ This snippet compares different values and returns required chunk or string. ##### 1. Elements → Snippets: Create a new snippet with the following data 1. Snippet name: `ddIf`. -2. Description: `2.1 This snippet compares different values and returns required chunk or string.`. +2. Description: `2.2 This snippet compares different values and returns required chunk or string.`. 3. Category: `Core`. 4. Parse DocBlock: `no`. 5. Snippet code (php): Insert content of the `ddIf_snippet.php` file from the archive. diff --git a/README_ru.md b/README_ru.md index 2904d75..1f8b487 100644 --- a/README_ru.md +++ b/README_ru.md @@ -22,7 +22,7 @@ ##### 1. Элементы → Сниппеты: Создайте новый сниппет со следующими параметрами 1. Название сниппета: `ddIf`. -2. Описание: `2.1 Сравнивает значения и выводит необходимый чанк или строку.`. +2. Описание: `2.2 Сравнивает значения и выводит необходимый чанк или строку.`. 3. Категория: `Core`. 4. Анализировать DocBlock: `no`. 5. Код сниппета (php): Вставьте содержимое файла `ddIf_snippet.php` из архива. diff --git a/composer.json b/composer.json index 06ea9b7..1a76d83 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "dd/evolutioncms-snippets-ddif", "type": "modxevo-snippet", - "version": "2.1.0", + "version": "2.2.0", "description": "This snippet compares different values and returns required chunk or string.", "keywords": [ "modx", diff --git a/ddIf_snippet.php b/ddIf_snippet.php index 731f6ae..7ad8e7b 100644 --- a/ddIf_snippet.php +++ b/ddIf_snippet.php @@ -1,7 +1,7 @@