feat(wordpress): EMCP Tools workflow skills + widget catalogs + pending wordpress skills
- emcp-page-building, emcp-content-ops, emcp-site-audit: EMCP Tools MCP workflows verified live (atomic/legacy interplay, apply-template overwrite risk, create-theme-template goes live immediately, false-positive malware pattern in scan-security, change ledger + rollback) - elementor-pro-widgets: 30+5 native Elementor Pro widgets (curated catalog) - elementskit-widgets / powerpack-widgets: 42 + 97 third-party widgets, widgetType extracted from plugin source (not guessed by convention) - plugin.json bumped 1.2.0 -> 1.3.0, keywords + description updated - commits pending wordpress skills already present as untracked files (emcp-tools, wordfence, wp-activity-log, seguranca-descomplicar, webp-express, wp-fastest-cache, wp-font-perf, wp-meteor, wp-activity-log, redis-object-cache, app-for-cloudflare) and pending edits (rank-math, wp-cli, wp-content-seo-gate)
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
---
|
||||
name: powerpack-widgets
|
||||
description: Catálogo completo e verificado dos 97 widgets PowerPack Elements Pro para Elementor, com o widgetType real de cada um extraído do código-fonte (classes/class-pp-config.php) — não estão no catálogo curado do EMCP Tools (list-widgets), por isso precisam de get-widget-schema com full:true. Usar quando "powerpack", "pp-widget", "advanced menu elementor", "hotspots elementor", "flip box powerpack", "woo product elementor", "info box powerpack".
|
||||
layer: wiki
|
||||
---
|
||||
|
||||
# /powerpack-widgets — Catálogo de Widgets PowerPack Elements Pro
|
||||
|
||||
PowerPack Elements (Team IdeaBox, plugin `powerpack-elements`) regista os próprios widgets Elementor **fora** do catálogo curado do EMCP Tools — `list-widgets` não os lista. Este catálogo foi extraído directamente do array de configuração fonte (`wp-content/plugins/powerpack-elements/classes/class-pp-config.php`, método `get_widget_info()`) num site em produção com PowerPack Elements Pro 2.11.7 — **não adivinhado por convenção de nomes**, o que importa porque a convenção `pp-<nome-módulo>` tem excepções reais confirmadas (ver notas abaixo da tabela).
|
||||
|
||||
Catálogo completo (97 widgets) em `references/catalogo.md` — esta página tem o workflow e os widgets mais úteis para arranque rápido.
|
||||
|
||||
## Como usar (workflow)
|
||||
|
||||
1. Confirmar que `powerpack-elements` está activo: `list-plugins`, procurar o slug.
|
||||
2. `get-widget-schema({ widget_type: "pp-<slug>", full: true })` — **não estão no catálogo curado**, a chamada sem `full:true` devolve erro "Not in the curated catalog". `full:true` devolve o schema de controlos bruto.
|
||||
3. Adicionar com `add-free-widget({ post_id, parent_id, widget_type, settings })` num container **legacy** (`add-container`) — mesma mecânica de `elementskit-widgets`, sem equivalente atómico.
|
||||
4. **Nunca assumir o `widgetType` pelo nome da pasta do módulo** — verificado no código-fonte: `Hotspots` → `pp-image-hotspots` (não `pp-hotspots`), `Onepage_Nav` → `pp-one-page-nav` (não `pp-onepage-nav`), `Popup_Box` (pasta `modal-popup`) → `pp-modal-popup`, `Link_Effects` → **`pa-link-effects`** (prefixo `pa-`, não `pp-`!). Confirmar sempre com `get-widget-schema(full:true)` antes de construir em produção — ver tabela completa para todas as excepções.
|
||||
|
||||
## Widgets mais usados (ver `references/catalogo.md` para os 97 completos)
|
||||
|
||||
| `widgetType` | Título | Uso |
|
||||
|---|---|---|
|
||||
| `pp-info-box` | Info Box | ícone/imagem + título + descrição, muito usado em secções de features |
|
||||
| `pp-flipbox` | Flip Box | cartão de dois lados com flip ao hover |
|
||||
| `pp-advanced-menu` | Advanced Menu | menu de navegação avançado com mega-menu |
|
||||
| `pp-image-hotspots` | Image Hotspots | pontos interactivos sobre imagem (excepção de nome — pasta `hotspots`) |
|
||||
| `pp-pricing-table` | Pricing Table | tabela de preços |
|
||||
| `pp-team-member` | Team Member | cartão de membro de equipa |
|
||||
| `pp-testimonials` | Testimonials | testemunhos com carrossel |
|
||||
| `pp-posts` | Advanced Posts | grelha/lista de posts avançada com query control |
|
||||
| `pp-login-form` | Login Form | formulário de login frontend |
|
||||
| `pp-business-hours` | Business Hours | horário de funcionamento |
|
||||
| `pp-countdown` | Countdown Timer | temporizador |
|
||||
| `pp-table-of-contents` | Table of Contents | índice automático |
|
||||
| `pp-instafeed` | Instagram Feed | feed do Instagram |
|
||||
| `pp-modal-popup` | Popup Box | popup modal (excepção de nome — pasta `modal-popup`) |
|
||||
| `pp-woo-product-price` | Woo — Product Price | preço de produto WooCommerce, um de ~15 widgets `pp-woo-*` |
|
||||
|
||||
## Notas
|
||||
|
||||
- 15 dos 97 widgets são específicos WooCommerce (`pp-woo-*`) e só têm efeito útil com WooCommerce activo e no contexto de um produto/loja.
|
||||
- Alguns módulos listados no directório `modules/` (`display-conditions`, `dynamic-tags`, `presets-style`, `query-control`, `devices`) são **extensões transversais**, não widgets autónomos — não aparecem no catálogo porque não têm `widgetType` próprio; afectam definições de outros widgets PowerPack (o mesmo padrão visto no `elementskit-widgets` com `ekit_cursor_text_label`).
|
||||
|
||||
## Skills relacionadas
|
||||
- `emcp-page-building` — mecânica de coexistência atómico/legacy, sequência de construção.
|
||||
- `elementor-pro-widgets` — catálogo nativo Elementor Pro (curado, no `list-widgets`).
|
||||
- `elementskit-widgets` — catálogo do addon concorrente ElementsKit Lite (também fora do catálogo curado).
|
||||
@@ -0,0 +1,113 @@
|
||||
# Catálogo completo — 97 widgets PowerPack Elements Pro
|
||||
|
||||
Extraído ao vivo de `wp-content/plugins/powerpack-elements/classes/class-pp-config.php`, método `get_widget_info()`, num site em produção com PowerPack Elements Pro 2.11.7. Coluna `Classe PHP` é o identificador interno do módulo (útil para localizar o ficheiro fonte em `modules/<pasta>/widgets/`); coluna `widgetType` é o valor real gravado em `_elementor_data` e usado em `get-widget-schema`/`add-free-widget`.
|
||||
|
||||
| widgetType | Título | Classe PHP |
|
||||
|---|---|---|
|
||||
| `pp-advanced-accordion` | Advanced Accordion | Advanced_Accordion |
|
||||
| `pp-advanced-menu` | Advanced Menu | Advanced_Menu |
|
||||
| `pp-advanced-tabs` | Advanced Tabs | Advanced_Tabs |
|
||||
| `pp-album` | Album | Album |
|
||||
| `pp-author-list` | Author List | Author_List |
|
||||
| `pp-breadcrumbs` | Breadcrumbs | Breadcrumbs |
|
||||
| `pp-business-hours` | Business Hours | Business_Hours |
|
||||
| `pp-business-reviews` | Business Reviews | Business_Reviews |
|
||||
| `pp-buttons` | Buttons | Buttons |
|
||||
| `pp-card-slider` | Card Slider | Card_Slider |
|
||||
| `pp-categories` | Categories | Categories |
|
||||
| `pp-contact-form-7` | Contact Form 7 | Contact_Form_7 |
|
||||
| `pp-content-reveal` | Content Reveal | Content_Reveal |
|
||||
| `pp-content-ticker` | Content Ticker | Content_Ticker |
|
||||
| `pp-countdown` | Countdown Timer | Countdown |
|
||||
| `pp-counter` | Counter | Counter |
|
||||
| `pp-coupons` | Coupons | Coupons |
|
||||
| `pp-devices` | Devices | Devices |
|
||||
| `pp-divider` | Divider | Divider |
|
||||
| `pp-faq` | FAQ | Faq |
|
||||
| `pp-flipbox` | Flip Box | Flipbox |
|
||||
| `pp-fluent-forms` | Fluent Forms | Fluent_Forms |
|
||||
| `pp-formidable-forms` | Formidable Forms | Formidable_Forms |
|
||||
| `pp-image-gallery` | Image Gallery | Image_Gallery |
|
||||
| `pp-image-slider` | Image Slider | Image_Slider |
|
||||
| `pp-google-maps` | Google Maps | Google_Maps |
|
||||
| `pp-gravity-forms` | Gravity Forms | Gravity_Forms |
|
||||
| `pp-dual-heading` | Dual Heading | Dual_Heading |
|
||||
| `pp-fancy-heading` | Fancy Heading | Fancy_Heading |
|
||||
| `pp-image-hotspots` | Image Hotspots | Hotspots |
|
||||
| `pp-how-to` | How To | How_To |
|
||||
| `pp-icon-list` | Icon List | Icon_List |
|
||||
| `pp-image-accordion` | Image Accordion | Image_Accordion |
|
||||
| `pp-image-comparison` | Image Comparison | Image_Comparison |
|
||||
| `pp-info-box` | Info Box | Info_Box |
|
||||
| `pp-info-box-carousel` | Info Grid & Carousel | Info_Box_Carousel |
|
||||
| `pp-info-list` | Info List | Info_List |
|
||||
| `pp-info-table` | Info Table | Info_Table |
|
||||
| `pp-instafeed` | Instagram Feed | Instafeed |
|
||||
| `pa-link-effects` | Link Effects | Link_Effects |
|
||||
| `pp-login-form` | Login Form | Login_Form |
|
||||
| `pp-logo-carousel` | Logo Carousel | Logo_Carousel |
|
||||
| `pp-logo-grid` | Logo Grid | Logo_Grid |
|
||||
| `pp-magazine-slider` | Magazine Slider | Magazine_Slider |
|
||||
| `pp-ninja-forms` | Ninja Forms | Ninja_Forms |
|
||||
| `pp-offcanvas-content` | Offcanvas Content | Offcanvas_Content |
|
||||
| `pp-one-page-nav` | One Page Navigation | Onepage_Nav |
|
||||
| `pp-modal-popup` | Popup Box | Popup_Box |
|
||||
| `pp-posts` | Advanced Posts | Posts |
|
||||
| `pp-price-menu` | Price Menu | Price_Menu |
|
||||
| `pp-pricing-table` | Pricing Table | Pricing_Table |
|
||||
| `pp-promo-box` | Promo Box | Promo_Box |
|
||||
| `pp-random-image` | Random Image | Random_Image |
|
||||
| `pp-recipe` | Recipe | Recipe |
|
||||
| `pp-registration-form` | Registration Form | Registration_Form |
|
||||
| `pp-review-box` | Review Box | Review_Box |
|
||||
| `pp-scroll-image` | Scroll Image | Scroll_Image |
|
||||
| `pp-showcase` | Showcase | Showcase |
|
||||
| `pp-sitemap` | Sitemap | Sitemap |
|
||||
| `pp-table` | Table | Table |
|
||||
| `pp-tabbed-gallery` | Tabbed Gallery | Tabbed_Gallery |
|
||||
| `pp-table-of-contents` | Table of Contents | Table_Of_Contents |
|
||||
| `pp-team-member` | Team Member | Team_Member |
|
||||
| `pp-team-member-carousel` | Team Member Carousel | Team_Member_Carousel |
|
||||
| `pp-testimonials` | Testimonials | Testimonials |
|
||||
| `pp-tiled-posts` | Tiled Posts | Tiled_Posts |
|
||||
| `pp-timeline` | Timeline | Timeline |
|
||||
| `pp-toggle` | Toggle | Toggle |
|
||||
| `pp-twitter-buttons` | Twitter Buttons | Twitter_Buttons |
|
||||
| `pp-twitter-grid` | Twitter Grid | Twitter_Grid |
|
||||
| `pp-twitter-timeline` | Twitter Timeline | Twitter_Timeline |
|
||||
| `pp-twitter-tweet` | Twitter Tweet | Twitter_Tweet |
|
||||
| `pp-video` | Video | Video |
|
||||
| `pp-video-gallery` | Video Gallery | Video_Gallery |
|
||||
| `pp-wpforms` | WP Forms | WP_Forms |
|
||||
| `pp-woo-add-to-cart` | Woo — Add To Cart | Woo_Add_To_Cart |
|
||||
| `pp-woo-cart` | Woo — Cart | Woo_Cart |
|
||||
| `pp-woo-categories` | Woo — Categories | Woo_Categories |
|
||||
| `pp-woo-checkout` | Woo — Checkout | Woo_Checkout |
|
||||
| `pp-woo-mini-cart` | Woo — Mini Cart | Woo_Mini_Cart |
|
||||
| `pp-woo-offcanvas-cart` | Woo — Off Canvas Cart | Woo_Offcanvas_Cart |
|
||||
| `pp-woo-products` | Woo — Products | Woo_Products |
|
||||
| `pp-woo-my-account` | Woo — My Account | Woo_My_Account |
|
||||
| `pp-woo-product-tabs` | Woo — Product Tabs | Woo_Product_Tabs |
|
||||
| `pp-woo-product-title` | Woo — Product Title | Woo_Product_Title |
|
||||
| `pp-woo-product-meta` | Woo — Product Meta | Woo_Product_Meta |
|
||||
| `pp-woo-product-price` | Woo — Product Price | Woo_Product_Price |
|
||||
| `pp-woo-product-rating` | Woo — Product Rating | Woo_Product_Rating |
|
||||
| `pp-woo-product-stock` | Woo — Product Stock | Woo_Product_Stock |
|
||||
| `pp-woo-product-short-description` | Woo — Product Short Description | Woo_Product_Short_Description |
|
||||
| `pp-woo-product-content` | Woo — Product Content | Woo_Product_Content |
|
||||
| `pp-woo-product-images` | Woo — Product Images | Woo_Product_Images |
|
||||
| `pp-woo-product-reviews` | Woo — Product Reviews | Woo_Product_Reviews |
|
||||
| `pp-woo-product-upsell` | Woo — Product Upsell | Woo_Product_Upsell |
|
||||
| `pp-woo-add-to-cart-notification` | Woo — Add to Cart Notification | Woo_Add_To_Cart_Notification |
|
||||
| `pp-woo-archive-description` | Woo — Archive Description | Woo_Archive_Description |
|
||||
| `pp-woo-single-product` | Woo — Single Product | Woo_Single_Product |
|
||||
|
||||
## Excepções confirmadas ao nome-de-pasta óbvio
|
||||
|
||||
- `Hotspots` (pasta `modules/hotspots`) → `pp-image-hotspots`, não `pp-hotspots`.
|
||||
- `Onepage_Nav` (pasta `modules/onepage-nav`) → `pp-one-page-nav`, não `pp-onepage-nav`.
|
||||
- `Popup_Box` (pasta `modules/modal-popup`) → `pp-modal-popup`.
|
||||
- `Link_Effects` (pasta `modules/link-effects`) → **`pa-link-effects`** — único widget com prefixo `pa-` em vez de `pp-` em todo o catálogo.
|
||||
- `WP_Forms` → `pp-wpforms` (sem hífen entre "wp" e "forms").
|
||||
|
||||
Regra geral: confirmar sempre `widgetType` com `get-widget-schema({ widget_type, full: true })` antes de o usar em `add-free-widget` — este ficheiro é a fonte mais fiável disponível, mas widgets podem ser adicionados/renomeados em versões futuras do plugin.
|
||||
Reference in New Issue
Block a user