Оглавление
Описание
Проект в проекте позволяет подключить уже готовый, записанный проект к текущему проекту. Этот экшен похож на Плагины.
Как добавить действие в проект?
Через контекстное меню Добавить действие → Проект → Проект в проекте
Либо воспользуйтесь умным поиском.
Применение
Чаще всего Проект в проекте используется для повторяющихся частей:
Пример: Вы работаете с сайтом. Для работы с данным сайтом у Вас несколько отдельных шаблонов: парсер товаров, парсер пользователей, рассыльщик сообщений. Для работы на сайте необходимо быть авторизованым. В каждом из этих шаблонов есть один и тот же участок логики - проверка авторизован ли пользователь и, если не авторизован, то авторизация на портале. Хорошим решением будет вынести участок проверки и авторизации в отдельный, небольшой подшаблон и подключать его в нужных местах. И в будущем, если Вы захотите внести правки в логику проверки авторизации, Вам придётся внести правки только в одно месте - в подшаблоне (а не в нескольких шаблонах), что серьёзно сокращает вероятность допустить ошибку.
Так же в подпроекты можно вынести универсальные функции, которые могут использоваться в разных шаблонах:
генерация текста
проверка текста на уникальность
загрузка изображений на хостинги картинок и многое другое
Еще одним возможным применением может быть разбивка одного большого шаблона на подшаблоны
иногда шаблоны разрастаются до очень больших размеров, особенно когда это “комбайн” по работе с каким-либо ресурсом: регистратор, парсер, чекер, рассыльщик. Неплохой идеей будет разбить один большой шаблон на более мелкие части и подключать эти части как Проект в проекте, а из основного шаблона задавать только настройки.
любой шаблон можно использовать как вложенный и, как и в случае с Плагинами, здесь Вас ограничивает только Ваша фантазия
Как работать с экшеном?
Базовые настройки
Путь к вложенному проекту
Здесь указывается абсолютный путь к подшаблону (можно использовать макросы переменных. На скриншоте можно увидеть переменную {-Project.Directory-}
- путь к текущей папке проекта. Чтоб данная переменная автоматически ставилась при написании проекта необходимо включить соответствующую настройку)
Передавать контекст проекта (project.Context)
project.Context позволяет сохранять С# объекты и переносить их между разными частями шаблона. Данная опция используется при работе с C# кодом.
Открывать браузер если требуется
Включение данной настройки позволяет вложенному шаблону запускать браузер даже если во внешнем проекте он отключен через Настройки проекта
Передача переменных
Сопоставление переменных
В данном окне происходит передача данных из внешнего проекта во внутренний. Передать данные можно только с помощью переменных.
Сопоставлять переменные с одинаковыми именами
При включении данной опции все переменные, имена которых идентичны в обоих проектах, будут автоматически сопоставлены, без необходимости ручной настройки.
Ручная настройка имеет больший приоритет перед “Сопоставлением…”.
Пример: если включена опция “Сопоставить переменные…” и в обоих проектах есть переменная с именем variable, но Вы, вручную, через настройки, сопоставили переменную variable внутреннего проекта с другой переменной внешнего проекта, например second_var, то переменная variable внутреннего проекта теперь будет ассоциирована с переменной second_var внешнего проекта.
Не передавать значения обратно при неудачном выполнении
По умолчанию все изменения переменных во внутреннем проекте отражаются и на переменных из внешнего проекта. При включении данной настройки изменения переменных будут игнорироваться внешним проектом в случае ошибочного завершения внутреннего.
Пример использования
В качестве примера можно привести отправку себе оповещений через email.
Можно создать шаблон, который будет автоматически, на основе переданного email, определять настройки для соединения с сервером. Вам же останется только со внешнего проекта передать текст сообщения, данные отправителя, данные получателя.
Продажа шаблонов, которые содержат вложенные проекты
При продаже своих шаблонов, которые используют вложенные проекты, стоит не забывать про комиссию.
Ошибка загрузки проекта
Если во время создания проекта появилось такое окно и в логе ошибка "Выполнение действия ProjectInProject Ошибка при обработке", то с большой долей вероятности проблема в том, что Вы пытаетесь запустить закрытый шаблон на неактивном оборудовании.
Чтобы это исправить, надо зайти в Личный кабинет, во вкладку Оборудование и активировать то оборудование, на котором Вы сейчас работаете.
Искать проект с расширением .zp при выполнении действия “Проект в проекте”
Добавлено в ZennoPoster 7.4.0.0
При включении данной настройки, если в действии используется проект старого формата с расширением .xmlz, то при его отсутствии будет искаться проект с таким же именем, но с новым расширением .zp
.xmlz - расширения проектов ZennoPoster, которое использовалось в ZennoPoster 5 и ниже
.zp - расширение проектов, которое используется в ZennoPoster 7.