Перейти к основному содержимому

Проект в проекте (Вложенные проекты)

🔗 Оригинальная страница — Источник данного материала


Проект в проекте (Вложенные проекты)

Описание

*Проект в проекте позволяет подключить уже готовый, записанный проект к текущему проекту. Этот экшен похож на ❗→ *Плагины.

Как добавить действие в проект?

Через контекстное меню Добавить действиеПроектПроект в проекте

image-20200813-072309

Либо воспользуйтесь ❗→ умным поиском.

Применение

  • Чаще всего *Проект в проекте используется для повторяющихся частей:
    • Пример: Вы работаете с сайтом. Для работы с данным сайтом у Вас несколько отдельных шаблонов: парсер товаров, парсер пользователей, рассыльщик сообщений. Для работы на сайте необходимо быть авторизованым. В каждом из этих шаблонов есть один и тот же участок логики - проверка авторизован ли пользователь и, если не авторизован, то авторизация на портале. Хорошим решением будет вынести участок проверки и авторизации в отдельный, небольшой подшаблон и подключать его в нужных местах. И в будущем, если Вы захотите внести правки в логику проверки авторизации, Вам придётся внести правки только в одно месте - в подшаблоне (а не в нескольких шаблонах), что серьёзно сокращает вероятность допустить ошибку.
  • Так же в подпроекты можно вынести универсальные функции, которые могут использоваться в разных шаблонах:
    • генерация текста
    • проверка текста на уникальность
    • загрузка изображений на хостинги картинок и многое другое
  • Еще одним возможным применением может быть разбивка одного большого шаблона на подшаблоны
    • иногда шаблоны разрастаются до очень больших размеров, особенно когда это “комбайн” по работе с каким-либо ресурсом: регистратор, парсер, чекер, рассыльщик. Неплохой идеей будет разбить один большой шаблон на более мелкие части и подключать эти части как *Проект в проекте, а из основного шаблона задавать только настройки.
  • любой шаблон можно использовать как вложенный и, как и в случае с *Плагинами, здесь Вас ограничивает только Ваша фантазия

Как работать с экшеном?

Базовые настройки

image-20200813-083014

Путь к вложенному проекту

Здесь указывается абсолютный путь к подшаблону (можно использовать макросы ❗→ переменных. На скриншоте можно увидеть переменную { -Project.Directory- } - путь к текущей папке проекта. Чтоб данная переменная автоматически ставилась при написании проекта необходимо включить ❗→ соответствующую настройку)

Передавать контекст проекта (project.Context)

❗→ project.Context позволяет сохранять С# объекты и переносить их между разными частями шаблона. Данная опция используется при работе с ❗→ C# кодом.

Открывать браузер если требуется

Включение данной настройки позволяет вложенному шаблону запускать ❗→ браузер даже если во внешнем проекте он отключен через ❗→ Настройки проекта

Передача переменных

image-20200813-083220

Сопоставление переменных

В данном окне происходит передача данных из внешнего проекта во внутренний. Передать данные можно только с помощью переменных.

Сопоставлять переменные с одинаковыми именами

При включении данной опции все переменные, имена которых идентичны в обоих проектах, будут автоматически сопоставлены, без необходимости ручной настройки.

Внимание

Ручная настройка имеет больший приоритет перед "Сопоставлением…".Пример: если включена опция "Сопоставить переменные…" и в обоих проектах есть переменная с именем variable, но Вы, вручную, через настройки, сопоставили переменную variable внутреннего проекта с другой переменной внешнего проекта, например second_var, то переменная variable внутреннего проекта теперь будет ассоциирована с переменной second_var внешнего проекта.

Не передавать значения обратно при неудачном выполнении

По умолчанию все изменения переменных во внутреннем проекте отражаются и на переменных из внешнего проекта. При включении данной настройки изменения переменных будут игнорироваться внешним проектом в случае ошибочного завершения внутреннего.

Пример использования

В качестве примера можно привести отправку себе оповещений через email.

Можно создать шаблон, который будет автоматически, на основе переданного email, определять настройки для соединения с сервером. Вам же останется только со внешнего проекта передать текст сообщения, данные отправителя, данные получателя.

image-20200813-091819

Продажа шаблонов, которые содержат вложенные проекты

При продаже своих шаблонов, которые используют вложенные проекты, стоит не забывать про ❗→ комиссию.

Ошибка загрузки проекта

image-20201228-131135

Если во время создания проекта появилось такое окно и в логе ошибка "*Выполнение действия ProjectInProject Ошибка при обработке", то с большой долей вероятности проблема в том, что Вы пытаетесь запустить закрытый шаблон на неактивном оборудовании.

Чтобы это исправить, надо зайти в Личный кабинет, во вкладку Оборудование и активировать то оборудование, на котором Вы сейчас работаете.

Искать проект с расширением .zp при выполнении действия "Проект в проекте"

Информация

Добавлено в ZennoPoster 7.4.0.0

При включении ❗→ данной настройки, если в действии используется проект старого формата с расширением .xmlz, то при его отсутствии будет искаться проект с таким же именем, но с новым расширением .zp

.xmlz - расширения проектов ZennoPoster, которое использовалось в ZennoPoster 5 и ниже
.zp - расширение проектов, которое используется в ZennoPoster 7.

Полезные ссылки