Skip to content

Commit

Permalink
Version 1.4
Browse files Browse the repository at this point in the history
  • Loading branch information
Ronef committed Sep 3, 2023
2 parents e96df94 + c767dbf commit b7eed00
Show file tree
Hide file tree
Showing 8 changed files with 447 additions and 120 deletions.
34 changes: 33 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
# (MODX)EvolutionCMS.snippets.ddGetParentId changelog


## Version 1.4 (2023-09-04)
* \+ You can just call `\DDTools\Snippet::runSnippet` to run the snippet without DB and eval (see README → Examples).
* \+ README → Installation → Using (MODX)EvolutionCMS.libraries.ddInstaller.
* \+ README_ru, CHANGELOG_ru.
* \* Attention! (MODX)EvolutionCMS.libraries.ddTools >= 0.60 is required.


## Version 1.3.1 (2020-06-22)
* \* Attention! (MODX)EvolutionCMS.libraries.ddTools >= 0.40.1 is required (not tested in older versions).
* \* Compatibility with new versions of (MODX)EvolutionCMS.libraries.ddTools.
Expand All @@ -24,9 +31,34 @@
* \* Refactoring and other changes.


## Version 1.2.1 (2018-12-09)
* \* Wrong variable name was fixed.


## Version 1.2 (2017-10-09)
* \+ Added support of the `@CODE:` keyword prefix in the `tpl` parameter.
* \+ Added an ability to return several parents (see the `result_itemsNumber` and `result_itemsGlue` parameters).
* \* The following parameters have been renamed (with backward compatibility):
* \* `tpl` → `result_itemTpl`.
* \* `toPlaceholder` → `result_toPlaceholder`.
* \* `placeholderName` → `result_toPlaceholder_name`.
* \* The snippet result will be returned in anyway (empty string for empty result).
* \* Attention! PHP >= 5.4 is required.
* \* Attention! (MODX)EvolutionCMS >= 1.1 is required.
* \* Attention! (MODX)EvolutionCMS.libraries.ddTools >= 0.20 is required.


## Version 1.1 (2014-11-05)
* \+ Negative values can now be passed to the `level` parameter for setting parent level from the end (`-1` — the last parent; `-2` — the parent before the last; etc).


## Version 1.0.1 (2013-08-10)
* \* The id of a current document will be returned if it has no parent (root document).


## Version 1.0 (2011-12-18)
* \+ The first release.


<link rel="stylesheet" type="text/css" href="https://DivanDesign.ru/assets/files/ddMarkdown.css" />
<link rel="stylesheet" type="text/css" href="https://raw.githack.com/DivanDesign/CSS.ddMarkdown/master/style.min.css" />
<style>ul{list-style:none;}</style>
64 changes: 64 additions & 0 deletions CHANGELOG_ru.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# (MODX)EvolutionCMS.snippets.ddGetParentId changelog


## Версия 1.4 (2023-09-04)
* \+ Запустить сниппет без DB и eval можно через `\DDTools\Snippet::runSnippet` (см. README → Примеры).
* \+ README → Установка → Используя (MODX)EvolutionCMS.libraries.ddInstaller.
* \+ README_ru, CHANGELOG_ru.
* \* Внимание! Требуется (MODX)EvolutionCMS.libraries.ddTools >= 0.60.


## Версия 1.3.1 (2020-06-22)
* \* Внимание! Требуется (MODX)EvolutionCMS.libraries.ddTools >= 0.40.1 (не тестировался с более ранними версиями).
* \* Совместимость с новыми версиями (MODX)EvolutionCMS.libraries.ddTools.
* \* README, CHANGELOG: Изменения стиля.
* \* README:
* \- Home.
* \+ Links.
* \* Composer.json → `require``dd/evolutioncms-libraries-ddtools`:
* \* Переименована из `dd/modxevo-library-ddtools`.
* \* Исправлен формат версии.


## Версия 1.3 (2020-03-02)
* \+ Пустые элементы после парсинга `result_itemTpl` будут игнорироваться (можно вызывать сторонние сниппеты в шаблоне и задавать свои условия отображения).
* \+ Composer.json → Require.


## Версия 1.2.2 (2020-02-11)
* \* Внимание! Требуется (MODX)EvolutionCMS.libraries.ddTools >= 0.30.
* \* Исправлена ошибка, при которой `result_itemsNumber` всегда было равно `'all'`.
* \* Рефакторинг и прочие изменения.


## Версия 1.2.1 (2018-12-09)
* \* Исправлено неправильное имя переменной.


## Версия 1.2 (2017-10-09)
* \+ Добавлено указание шаблона `tpl` без чанка, через префикс `@CODE:`
* \+ Добавлена возможность возвращать несколько родителей (см. параметры `result_itemsNumber` и `result_itemsGlue`).
* \* Следующие параметры были переименованы (с обратной совместимостью):
* \* `tpl` → `result_itemTpl`.
* \* `toPlaceholder` → `result_toPlaceholder`.
* \* `placeholderName` → `result_toPlaceholder_name`.
* \* Результат сниппета возвращается всегда (пустой для пустой строки).
* \* Внимание! Требуется PHP >= 5.4.
* \* Внимание! Требуется (MODX)EvolutionCMS >= 1.1.
* \* Внимание! Требуется (MODX)EvolutionCMS.libraries.ddTools >= 0.20.


## Версия 1.1 (2014-11-05)
* \+ Параметр `level` теперь может принимать отрицательные значения, чтобы задать уровень родителя с конца (`-1` соответствует последнему; `-2` — предпоследнему и т.д.).


## Версия 1.0.1 (2013-08-10)
* \* Если родителя нет (документ в корне), возвращается ID текущего документа.


## Версия 1.0 (2011-12-18)
* \+ Первый релиз.


<link rel="stylesheet" type="text/css" href="https://raw.githack.com/DivanDesign/CSS.ddMarkdown/master/style.min.css" />
<style>ul{list-style:none;}</style>
79 changes: 66 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,40 +4,69 @@ Gets document parent ID(s) of the required level.


## Requires
* PHP >= 5.4
* PHP >= 5.6
* [(MODX)EvolutionCMS](https://github.com/evolution-cms/evolution) >= 1.1
* [(MODX)EvolutionCMS.libraries.ddTools](https://code.divandesign.biz/modx/ddtools) >= 0.40.1
* [(MODX)EvolutionCMS.libraries.ddTools](https://code.divandesign.ru/modx/ddtools) >= 0.60


## Documentation
## Installation


### Installation
### Using [(MODX)EvolutionCMS.libraries.ddInstaller](https://github.com/DivanDesign/EvolutionCMS.libraries.ddInstaller)

Elements → Snippets: Create a new snippet with the following data
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.ddGetParentId
\DDInstaller::install([
'url' => 'https://github.com/DivanDesign/EvolutionCMS.snippets.ddGetParentId',
'type' => 'snippet'
]);
```

* If `ddGetParentId` is not exist on your site, `ddInstaller` will just install it.
* If `ddGetParentId` is already exist on your site, `ddInstaller` will check it version and update it if needed.


### Manually


#### 1. Elements → Snippets: Create a new snippet with the following data

1. Snippet name: `ddGetParentId`.
2. Description: `<b>1.3.1</b> Gets document parent ID(s) of the required level.`.
2. Description: `<b>1.4</b> Gets document parent ID(s) of the required level.`.
3. Category: `Core`.
4. Parse DocBlock: `no`.
5. Snippet code (php): Insert content of the `ddGetParentId_snippet.php` file from the archive.


### Parameters description
#### 2. Elements → Manage Files

1. Create a new folder `assets/snippets/ddGetParentId/`.
2. Extract the archive to the folder (except `ddGetParentId_snippet.php`).


## Parameters description

* `id`
* Desctription: Document Id.
* Valid values: `integer`
* Default value: `[*id*]` (current document)

* `level`
* Desctription: Parent level
* Desctription: Parent level.
* Valid values:
* `1` — the immediate parent
* `2` — the parent of the immediate parent
* `-1` — the last parent
* `-2` — the parent before the last
* etc.
* Valid values: `integer`
* `integer` — etc
* Default value: `1`

* `result_itemsNumber`
Expand All @@ -53,7 +82,7 @@ Elements → Snippets: Create a new snippet with the following data
Available placeholders:
* `[+id+]` — Parent ID.
* Valid values:
* `string_chunkName`
* `stringChunkName`
* `string` — use inline templates starting with `@CODE:`
* Default value: `'@CODE:[+id+]'`

Expand All @@ -75,10 +104,34 @@ Elements → Snippets: Create a new snippet with the following data
* Default value: `'ddParent'`


## Examples


### Run the snippet through `\DDTools\Snippet::runSnippet` without DB and eval

```php
//Include (MODX)EvolutionCMS.libraries.ddTools
require_once(
$modx->getConfig('base_path') .
'assets/libs/ddTools/modx.ddtools.class.php'
);

//Run (MODX)EvolutionCMS.snippets.ddGetParentId
\DDTools\Snippet::runSnippet([
'name' => 'ddGetParentId',
'params' => [
'level' => -1
]
]);
```


## Links

* [Home page](https://code.divandesign.biz/modx/ddgetparentid)
* [Home page](https://code.divandesign.ru/modx/ddgetparentid)
* [Telegram chat](https://t.me/dd_code)
* [Packagist](https://packagist.org/packages/dd/evolutioncms-snippets-ddgetparentid)
* [GitHub](https://github.com/DivanDesign/EvolutionCMS.snippets.ddGetParentId)


<link rel="stylesheet" type="text/css" href="https://DivanDesign.ru/assets/files/ddMarkdown.css" />
<link rel="stylesheet" type="text/css" href="https://raw.githack.com/DivanDesign/CSS.ddMarkdown/master/style.min.css" />
136 changes: 136 additions & 0 deletions README_ru.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
# (MODX)EvolutionCMS.snippets.ddGetParentId

Получает ID родителя(ей) необходимого уровня.


## Использует
* PHP >= 5.6
* [(MODX)EvolutionCMS](https://github.com/evolution-cms/evolution) >= 1.1
* [(MODX)EvolutionCMS.libraries.ddTools](https://code.divandesign.ru/modx/ddtools) >= 0.60


## Установка


### Используя [(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.ddGetParentId
\DDInstaller::install([
'url' => 'https://github.com/DivanDesign/EvolutionCMS.snippets.ddGetParentId',
'type' => 'snippet'
]);
```

* Если `ddGetParentId` отсутствует на вашем сайте, `ddInstaller` просто установит его.
* Если `ddGetParentId` уже есть на вашем сайте, `ddInstaller` проверит его версию и обновит, если нужно.


### Вручную


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

1. Название сниппета: `ddGetParentId`.
2. Описание: `<b>1.4</b> Получает ID родителя(ей) необходимого уровня.`.
3. Категория: `Core`.
4. Анализировать DocBlock: `no`.
5. Код сниппета (php): Вставьте содержимое файла `ddGetParentId_snippet.php` из архива.


#### 2. Элементы → Управление файлами

1. Создайте новую папку `assets/snippets/ddGetParentId/`.
2. Извлеките содержимое архива в неё (кроме файла `ddGetParentId_snippet.php`).


## Описание параметров

* `id`
* Описание: ID документа.
* Допустимые значения: `integer`
* Значение по умолчанию: `[*id*]` (текущий документ)

* `level`
* Описание: Уровень родителя.
* Допустимые значения:
* `1` — непосредственный родитель
* `2` — родитель родителя
* `-1` — последний родитель
* `-2` — предпоследний родитель
* `integer` — etc
* Значение по умолчанию: `1`

* `result_itemsNumber`
* Описание: Количество возвращаемых родителей.
* Допустимые значения:
* `integer`
* `'all'`
* Значение по умолчанию: `1`

* `result_itemTpl`
* Описание: Шаблон (имя чанка) для вывода.
Пустые элементы после парсинга шаблона будут игнорироваться (можно вызывать сторонние сниппеты в шаблоне и задавать свои условия отображения).
Доступные плейсхолдеры:
* `[+id+]` — Parent ID.
* Допустимые значения:
* `stringChunkName`
* `string` — передавать код напрямую без чанка можно начиная значение с `@CODE:`
* Значение по умолчанию: `'@CODE:[+id+]'`

* `result_itemsGlue`
* Описание: Строка, объединяющая элементы при рендеринге.
* Допустимые значения: `string`
* Значение по умолчанию: `''`

* `result_toPlaceholder`
* Описание: Возвращать значение в плэйсхолдер.
* Допустимые значения:
* `0`
* `1`
* Значение по умолчанию: `0`

* `result_toPlaceholder_name`
* Описание: Имя плэйсхолдера.
* Допустимые значения: `string`
* Значение по умолчанию: `'ddParent'`


## Примеры

### Запустить сниппет через `\DDTools\Snippet::runSnippet` без DB и eval

```php
//Подключение (MODX)EvolutionCMS.libraries.ddTools
require_once(
$modx->getConfig('base_path') .
'assets/libs/ddTools/modx.ddtools.class.php'
);

//Запуск (MODX)EvolutionCMS.snippets.ddGetParentId
\DDTools\Snippet::runSnippet([
'name' => 'ddGetParentId',
'params' => [
'level' => -1
]
]);
```


## Ссылки

* [Home page](https://code.divandesign.ru/modx/ddgetparentid)
* [Telegram chat](https://t.me/dd_code)
* [Packagist](https://packagist.org/packages/dd/evolutioncms-snippets-ddgetparentid)
* [GitHub](https://github.com/DivanDesign/EvolutionCMS.snippets.ddGetParentId)


<link rel="stylesheet" type="text/css" href="https://raw.githack.com/DivanDesign/CSS.ddMarkdown/master/style.min.css" />
Loading

0 comments on commit b7eed00

Please sign in to comment.