---
name: quiqqer_info_popup_create_and_edit
description: Use when a project-wide QUIQQER info popup should be shown to visitors when a page opens - announcements, notices, banners, promotions, maintenance or cookie hints - or when listing, creating, scheduling, updating, activating or deleting such popups through MCP, including multilingual content, audience visibility and display settings.
category: content
---

# Create and edit QUIQQER info popups

Use this skill for editorial work on project-wide info popups.

## Safe workflow

1. Call `quiqqer_info_popups_list` before creating a popup and check for an existing popup with the same purpose.
2. Call `quiqqer_info_popups_get` before every update. Treat the returned popup as the source of truth.
3. Send only fields that should change to `quiqqer_info_popups_update`. Omitted fields are preserved.
4. Preserve every existing language entry when changing multilingual `title` or `content` values.
5. Load the popup again after creating or updating it and verify the result.
6. Delete a popup only when the user explicitly asks for deletion.

## Ask before acting

Do not guess when a request is ambiguous. Ask a short, specific question first:

- A media layout (`sidebar`, `sidebarRight`, `top`) is requested but neither `mediaImage` nor `mediaColor` is given. Ask whether to use an image from the media library, only a background colour, or the `content` layout without a media area.
- `visibility: groups` is requested but the group is not clearly identified. Resolve or ask for the group; never guess IDs.
- The project is multilingual but the text is supplied in only one language. Ask whether to translate it or leave the other languages empty.
- A schedule date is given without a time. Confirm a sensible time before using `validFrom` / `validTo`.
- It is unclear whether the popup should go live immediately. Keep it inactive and confirm before setting `active: true`.

## Resolving media images

- Never invent a `mediaImage` reference.
- Find the image with `quiqqer_media_search` (or `quiqqer_media_get`). Build the reference from the result as `image.php?id=<id>&project=<project>`.
- If several images match, ask which one to use. If none fits, ask instead of guessing.

## Publication safety

- `title` is required when creating a popup.
- New popups are inactive by default. Set `active` to `true` only when immediate publication is explicitly requested.
- Use `validFrom` and `validTo` in `YYYY-MM-DD HH:MM:SS` format only when a schedule is requested. Ensure the end is later than the start.
- Use `visibilityGroupIds` only with `visibility: groups`.
- Resolve actual group IDs before using them; never guess IDs.
- To clear optional dates, media references, or colours during an update, pass an empty string. Use an empty array to clear `visibilityGroupIds` and `0` to restore default dimensions.

## Design and content

- `displayMode: ""` uses the project default.
- `displayMode: "content"` shows no media area. `sidebar`, `sidebarRight`, and `top` support `mediaImage` and `mediaColor`.
- With `displayMode: "top"`, set `mediaAutoHeight: true` when text, logos, or other important image content must remain fully visible. For example, use it for a Black Friday banner with embedded sale text so the offer is not cropped. The setting is preserved but has no frontend effect in other display modes.
- Set `centerContent: true` to center the title and content that has no explicit editor alignment. Individually aligned paragraphs keep their editor-defined alignment.
- Use `maxWidth: 0` or `maxHeight: 0` to return to the project default.
- Use language-keyed objects for multilingual content, for example `{"de": "Hinweis", "en": "Notice"}`.
- Keep HTML semantic and minimal. Do not add scripts, global CSS, tracking markup, or unrelated page changes.
