Манипулируем объектами
Счетчики
Счетчики могут быть использованы в ситуациях когда вам нужно вести подсчет определенных событий, например для подсчета количества итераций walk в repeat режиме. Счетчики могут быть использованы как подстановочные данные, а значит вы можете использовать их для решения задач пагинации, и не только для передачи номера страницы, но и передачи номера стартовой записи, потому что увеличить (или уменьшить) значение счетчика можно на любое число, а не только на единицу.
Перед использованием счетчика, вы можете его проинициализировать с любым начальным целочисленным значением, используя команду counter_set. Если счетчик не был проиниализирован, ему автоматически будет присвоено значение 0 при выполнении одной из команд: counter_get, counter_increment или counter_decrement.
Все методы, предназначенные для работы со счетчиками, за исключением counter_get (работает только в блоковом контексте), могут быть использованы во всех контекстах.
Рассмотрим возможности счётчиков более детально на примерах:
# СОЗДАДИМ ТЕСТОВЫЙ БЛОК
- register_set: '<div>123</div>'
- to_block
- find:
path: div
do:
# ЗАПИШЕМ ЗНАЧЕНИЕ В РЕГИСТР
- parse
# СОЗДАДИМ СЧЁТЧИК С ИМЕНЕМ `somecounter`
- counter_set: somecounter
# ЗНАЧЕНИЕ СЧЕТЧИКА В ЭТОМ СЛУЧАЕ БУДЕТ РАВНО: 123
# ------------------------------------------------------
# ИЛИ ЗАПИШЕМ НАЧАЛЬНОЕ ЗНАЧЕНИЕ СЧЁТЧИКА В РЕГИСТР САМИ
- register_set: 456
# СОЗДАДИМ СЧЁТЧИК С ИМЕНЕМ `somecounter`
- counter_set: somecounter
# ЗНАЧЕНИЕ СЧЕТЧИКА В ЭТОМ СЛУЧАЕ БУДЕТ РАВНО: 456
# ------------------------------------------------------
# ИНИЦИАЛИЗИРУЕМ СЧЕТЧИК `somecounter` НАПРЯМУЮ
- counter_set:
name: somecounter
value: 100
# ЗНАЧЕНИЕ СЧЕТЧИКА В ЭТОМ СЛУЧАЕ БУДЕТ РАВНО: 100
# СОЗДАДИМ ТЕСТОВЫЙ БЛОК
- register_set: '<div>232</div><p>block</p>'
- to_block
- find:
path: div
do:
# ЗАПИШЕМ ЗНАЧЕНИЕ В РЕГИСТР
- parse
# СОЗДАДИМ СЧЁТЧИК С ИМЕНЕМ `somecounter`
- counter_set: somecounter
# ЗНАЧЕНИЕ СЧЕТЧИКА БУДЕТ РАВНО: 232
- find:
path: p
do:
# ЗАПОЛНИМ ЗНАЧЕНИЕ РЕГИСТРА ДАННЫМИ ИЗ СЧЁТЧИКА С ИМЕНЕМ `somecounter`
- counter_get: somecounter
# ТЕПЕРЬ В РЕГИСТРЕ НАХОДИТСЯ: 232
# ТАК ЖЕ МОЖНО ПОЛУЧАТЬ ЗНАЧЕНИЕ СЧЁТЧИКА В ДРУГИХ КОМАНДАХ, НАПРИМЕР:
- register_set: <%somecounter%>
# ТЕПЕРЬ В РЕГИСТРЕ НАХОДИТСЯ: 232
# СОЗДАДИМ ТЕСТОВЫЙ БЛОК
- register_set: '<div>232</div><p>block</p>'
- to_block
- find:
path: div
do:
# ЗАПИШЕМ ЗНАЧЕНИЕ В РЕГИСТР
- parse
# ТЕПЕРЬ В РЕГИСТРЕ НАХОДИТСЯ: 232
- counter_set: somecounter
# ЗНАЧЕНИЕ СЧЕТЧИКА БУДЕТ РАВНО: 232
- find:
path: p
do:
# УВЕЛИЧИМ ЗНАЧЕНИЕ СЧЁТЧИКА НА 1
- counter_increment:
name: somecounter
# ЗНАЧЕНИЕ СЧЁТЧИКА РАВНО: 233
# УВЕЛИЧИМ ЗНАЧЕНИЕ СЧЁТЧИКА НА 24
- counter_increment:
name: somecounter
by: 24
# ЗНАЧЕНИЕ СЧЁТЧИКА РАВНО: 257
# СОЗДАДИМ ТЕСТОВЫЙ БЛОК
- register_set: '<div>232</div><p>block</p>'
- to_block
- find:
path: div
do:
# ЗАПИШЕМ ЗНАЧЕНИЕ В РЕГИСТР
- parse
# СОЗДАДИМ СЧЁТЧИК С ИМЕНЕМ `somecounter`
- counter_set: somecounter
# ЗНАЧЕНИЕ СЧЕТЧИКА БУДЕТ РАВНО: 232
- find:
path: p
do:
# УМЕНЬШИМ ЗНАЧЕНИЕ СЧЁТЧИКА НА 1
- counter_decrement:
name: somecounter
# ЗНАЧЕНИЕ СЧЁТЧИКА РАВНО: 231
# УМЕНЬШИМ ЗНАЧЕНИЕ СЧЁТЧИКА НА 24
- counter_decrement:
name: somecounter
by: 24
# ЗНАЧЕНИЕ СЧЁТЧИКА РАВНО: 207
# СОЗДАДИМ ТЕСТОВЫЙ БЛОК
- register_set: '<div>232</div><p>block</p>'
- to_block
- find:
path: div
do:
# ЗАПИШЕМ ЗНАЧЕНИЕ В РЕГИСТР
- parse
# СОЗДАДИМ СЧЁТЧИК С ИМЕНЕМ `somecounter`
- counter_set: somecounter
# ЗНАЧЕНИЕ СЧЁТЧИКА РАВНО: 232
- find:
path: p
do:
# СБРОСИМ СЧЁТЧИК
- counter_reset: somecounter
# ЗНАЧЕНИЕ СЧЁТЧИКА РАВНО: 0
В следующей главе мы рассмотрим методы для работы с пулом ссылок.