Skip to content

Commit

Permalink
Version 2.2
Browse files Browse the repository at this point in the history
  • Loading branch information
Ronef committed Apr 30, 2021
2 parents 88dbcde + 7d88ff4 commit 1f70676
Show file tree
Hide file tree
Showing 7 changed files with 183 additions and 22 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG_ru.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
85 changes: 77 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,46 @@ 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: `<b>2.1</b> This snippet compares different values and returns required chunk or string.`.
2. Description: `<b>2.2</b> 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.


#### 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`
Expand All @@ -45,7 +70,8 @@ This snippet compares different values and returns required chunk or string.
* Default value: `''`

* `operator`
* Desctription: Comparing operator.
* Desctription: Comparing operator.
Values are case insensitive (the following names are equal: `'isNumeric'`, `'isnumeric'`, `'ISNUMERIC'`, etc).
* Valid values:
* `'=='`
* `'!='`
Expand All @@ -54,8 +80,9 @@ This snippet compares different values and returns required chunk or string.
* `'<='`
* `'>='`
* `'bool'`
* `'inarray'`
* `'isnumeric'`
* `'inArray'`
* `'isNumeric'`
* `'isWhitespace'` — checks if `operand1` is just white space (an empty string is also considered as white space)
* Default value: `'=='`

* `trueChunk`
Expand Down Expand Up @@ -132,7 +159,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.`
Expand All @@ -151,7 +178,7 @@ Exists.
```
[[ddIf?
&operand1=`123`
&operator=`isnumeric`
&operator=`isNumeric`
&trueChunk=`@CODE:Number.`
&falseChunk=`@CODE:Not number.`
]]
Expand All @@ -164,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

```
Expand Down
85 changes: 77 additions & 8 deletions README_ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,46 @@
### Установка


#### 1. Элементы → Сниппеты: Создайте новый сниппет со следующими параметрами
#### Вручную


##### 1. Элементы → Сниппеты: Создайте новый сниппет со следующими параметрами

1. Название сниппета: `ddIf`.
2. Описание: `<b>2.1</b> Сравнивает значения и выводит необходимый чанк или строку.`.
2. Описание: `<b>2.2</b> Сравнивает значения и выводит необходимый чанк или строку.`.
3. Категория: `Core`.
4. Анализировать DocBlock: `no`.
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`
Expand All @@ -45,7 +70,8 @@
* Значение по умолчанию: `''`

* `operator`
* Описание: Оператор сравнения.
* Описание: Оператор сравнения.
Значения регистронезависимы (следующие значения равны: `'isNumeric'`, `'isnumeric'`, `'ISNUMERIC'` и т. п.).
* Допустимые значения:
* `'=='`
* `'!='`
Expand All @@ -54,8 +80,9 @@
* `'<='`
* `'>='`
* `'bool'`
* `'inarray'`
* `'isnumeric'`
* `'inArray'`
* `'isNumeric'`
* `'isWhitespace'` — проверяет, что строка `operand1` содержит только пробельные символы (пустая строка также считается пробельным символом)
* Значение по умолчанию: `'=='`

* `trueChunk`
Expand Down Expand Up @@ -132,7 +159,7 @@
```
[[ddIf?
&operand1=`Яблоки`
&operator=`inarray`
&operator=`inArray`
&operand2=`Груши,Бананы,Яблоки,Апельсины`
&trueChunk=`@CODE:Присутствует.`
&falseChunk=`@CODE:Отсутствует.`
Expand All @@ -151,7 +178,7 @@
```
[[ddIf?
&operand1=`123`
&operator=`isnumeric`
&operator=`isNumeric`
&trueChunk=`@CODE:Число.`
&falseChunk=`@CODE:Не число.`
]]
Expand All @@ -164,6 +191,48 @@
```


#### Содержит ли `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.
```


#### Сравнение двух чисел и передача дополнительных данных в чанки

```
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion ddIf_snippet.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?php
/**
* ddIf
* @version 2.1 (2021-04-27)
* @version 2.2 (2021-04-30)
*
* @see README.md
*
Expand Down
17 changes: 13 additions & 4 deletions src/Snippet.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

class Snippet extends \DDTools\Snippet {
protected
$version = '2.1.0',
$version = '2.2.0',

$params = [
//Defaults
Expand All @@ -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}
*
Expand All @@ -52,6 +52,8 @@ protected function prepareParams($params = []){
$this->params->operand1 = '';
}

$this->params->operator = mb_strtolower($this->params->operator);

//Backward compatibility
$operatorBackwardCompliance = [
'r' => '==',
Expand All @@ -64,7 +66,7 @@ protected function prepareParams($params = []){

if (
array_key_exists(
mb_strtolower($this->params->operator),
$this->params->operator,
$operatorBackwardCompliance
)
){
Expand All @@ -74,7 +76,7 @@ protected function prepareParams($params = []){

/**
* run
* @version 1.0.1 (2021-04-26)
* @version 1.1 (2021-04-30)
*
* @return {string}
*/
Expand Down Expand Up @@ -157,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 =
Expand Down

0 comments on commit 1f70676

Please sign in to comment.