На данном этапе мы добавим к нашему фону мерцающие звезды. Это будет выполнено с применением программных аргументов, которые создаются функцией
Перед нами стоит задача расположить хаотично звезды на фоне и рассинхранизировать анимацию мерцания звезд. Для этого создадим программный аргумент stars (массив параметров звезд) и обычный аргумент starsCount, который будет хранить количество звезд.
Изменим файл шаблона :templates/blocks/planet.tmpl
Теперь создадим файл обработки хуков используя fcfmngr или плагины. В котором будем формировать аргумент stars.
И изменим свойство hooksProgrammableArgument, добавив код формирования информации о наших звездах.
Файл :templates/blocks/planet.hooks.js
Теперь аргумент stars содержит массив с информацией о каждой звезде. Мы не указывали starsCount в зависимостях аргумента stars, несмотря на то, что его сборка явно зависит от этого значения. Так как, последовательность сборки аргументов шаблона по умолчанию соответствует очередности:
- Системные аргументы (начинающиеся с префикса fcf)
- URL аргументы
- Аргументы - значения
- Аргументы - шаблоны
- Программные аргументы
Если бы организация аргументов и их взаимосвязи были другими, возможно нам бы пришлось добавить зависимость при объявлении аргумента в опции
Теперь давайте отобразим наши данные. Используя конструкцию кода Javascript for в конструкции %{{ }}%.
Файл :templates/blocks/planet.tmpl
Как видно из выдержки измененного файла, наш массив stars содержит параметры стилей каждой звезды, которая является обычным DOM элементов.
Теперь посмотрим в браузере на результат нашей работы.

Одной из основных задач программных аргументов, является задача разгрузить логику шаблонов, что бы все вычисления оставались в отдельных модулях, а за формирования HTML отвечал простой и читабельный код.