=== DPLab Page Studio === Contributors: dplabapp Tags: layout builder, visual builder, page builder, drag and drop, template Requires at least: 6.0 Tested up to: 6.9 Requires PHP: 7.4 Stable tag: 1.0.12 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html A powerful FREE visual layout builder for WordPress with drag-and-drop interface, 17 widgets, and responsive design. == Description == **DPLab Page Studio** is a powerful visual layout builder that lets you create stunning page layouts without writing any code. With an intuitive drag-and-drop interface, you can design custom layouts for your homepage, blog posts, and any page on your WordPress site. **100% Free** - All features included, no premium upsells, no hidden costs. = Key Features = * **Visual Drag & Drop Builder** - Intuitive interface for creating layouts * **Live Preview** - See changes instantly as you edit * **Interactive Editing** - Click-to-edit interface that behaves like the real site * **Flexible Column System** - 1, 2, 3, or 4 column layouts with custom widths * **17 Built-in Widgets** - Everything you need to build professional layouts * **Responsive Design** - Automatically adapts to mobile, tablet, and desktop * **Template Override** - Use custom layouts for homepage and single posts * **Shortcode Support** - Embed layouts anywhere with `[dplab_pagestudio_layout id="X"]` * **Widget Customization** - Card styles, colors, padding, borders, and more * **Global Design Settings** - Colors, typography, and container width * **External Widget API** - Extensible for plugins like DP Slider Pro, DP Gallery Pro, and DP Contact Form Pro = 17 Built-in Widgets = **Content Widgets:** * Text (Rich Editor) * Heading (H1-H6) * List * Quote **Media Widgets:** * Image * Video (YouTube/Vimeo embed) * Icon * Button **Layout Widgets:** * Spacer * Divider * Layout (Nested layouts) * HTML Code **Dynamic Widgets:** * Blog List * Current Post * Categories * Menu * Social Share = Perfect For = * Creating unique homepage layouts * Designing custom single post templates * Building landing pages * Creating portfolio pages * Customizing blog post layouts * Adding structured content sections = Global Design Settings = Configure site-wide design settings: * **Colors** - Primary, Secondary, Text, Background, Heading, Accent, H1 * **Typography** - Heading font, Body font, Base font size * **Layout** - Container width (default 1200px) All colors are available as CSS variables for consistent styling. = How It Works = 1. **Create a Layout** - Use the visual builder to design your layout 2. **Add Widgets** - Drag and drop text, images, buttons, and more 3. **Customize Appearance** - Style your widgets with colors, padding, borders 4. **Publish & Use** - Embed with shortcode or set as template override = Developer Friendly = * Clean, well-documented code * WordPress Coding Standards compliant * Extensible architecture with External Widget API * REST API for programmatic access * CSS variables for theme integration [Documentation](https://dplab.app/docs) | [Support](https://dplab.app) == Installation == = Automatic Installation = 1. Log in to your WordPress admin panel 2. Navigate to Plugins > Add New 3. Search for "DPLab Page Studio" 4. Click "Install Now" and then "Activate" = Manual Installation = 1. Download the plugin ZIP file 2. Log in to your WordPress admin panel 3. Navigate to Plugins > Add New > Upload Plugin 4. Choose the ZIP file and click "Install Now" 5. Activate the plugin = After Activation = 1. Go to **DPLab Page Studio** in your WordPress admin menu 2. Click "Create New Layout" to start building 3. Use the drag-and-drop interface to add rows and widgets 4. Save your layout and use it with the shortcode or template override == Frequently Asked Questions == = Is it really 100% free? = Yes! DPLab Page Studio is completely free with all 17 widgets, responsive design, template override, and global settings. No hidden premium features. = How do I add a layout to my homepage? = Go to **DPLab Page Studio > Page Layouts** and select your layout from the "Layout for Homepage" dropdown. Save the settings and your homepage will use the custom layout. = How do I use a custom layout for blog posts? = Go to **DPLab Page Studio > Page Layouts**, select your layout from "Layout for Single Posts" dropdown. Make sure your layout includes a "Current Post" widget to display the post content. = Can I embed a layout in a page or post? = Yes! Use the shortcode `[dplab_pagestudio_layout id="X"]` where X is your layout ID. You can find the layout ID in the Layout Manager. = Is the plugin responsive? = Absolutely! All layouts automatically adapt to mobile, tablet, and desktop screens with smart column stacking on smaller devices. = Can I customize widget styles? = Yes! Each widget has a "General Settings" panel where you can customize: * Background color * Border color and radius * Padding and margins * Text color * Cover images * Custom CSS classes = Does it work with my theme? = DPLab Page Studio is designed to work with any well-coded WordPress theme. The layouts render using clean HTML and CSS that adapts to your theme's styling. = Is there a limit to how many layouts I can create? = No! Create as many layouts as you need for different pages, posts, or sections of your site. = Can I extend it with custom widgets? = Yes! PageStudio has an external widget API. Plugins like DP Slider Pro, DP Gallery Pro, and DP Contact Form Pro add new widgets seamlessly. Developers can register custom widgets via PHP. == Screenshots == 1. Visual layout builder with drag-and-drop interface 2. Widget sidebar with 17 widget types 3. Plugin settings page for template overrides 4. Responsive column layouts (1-4 columns) 5. Widget customization panel 6. Global design settings == Changelog == = 1.0.12 = * Changed: Categories widget now uses slugs instead of IDs for include/exclude fields = 1.0.11 = * Fix: Resolved coding standards issues for WordPress.org compliance = 1.0.10 = * New: Sticky Column option (with offset control) * New: Custom Mobile Size controls (width, height, object-fit) for Image Widget * New: ID attribute support for Image Widget * Fix: Z-index improvements for editor modals * Fix: Sticky Column offset adjustment for Admin Bar * Fix: Text Widget paragraph spacing = 1.0.9 = * Fix: Critical regression - CSS appearing as text on frontend (wp_kses_post stripping style tags) = 1.0.8 = * Improved: WordPress Plugin Check compliance - all coding standards errors resolved * Fixed: Text domain corrected from 'PageStudio' to 'dp-PageStudio' across all files * Fixed: Proper output escaping (esc_html__, wp_kses_post, esc_url, esc_attr_e) * Fixed: Input sanitization with wp_unslash() before sanitize functions * Fixed: Resource versioning in wp_enqueue_style() calls * Removed: Debug code (error_log, ini_set, error_reporting) = 1.0.7 = * New: Blog List widget - "Use current archive category" option to automatically display posts from the current category or tag on archive pages = 1.0.6 = * Changed: Shortcode renamed from [custom_layout] to [dplab_pagestudio_layout] to avoid conflicts with other plugins * Improved: Updated readme with complete 17 widgets documentation = 1.0.5 = * Fix: Critical bug causing incorrect row/column nesting in frontend layouts * Fix: External widgets (Slider Pro, Gallery Pro) not rendering on frontend = 1.0.4 = * Fix: Critical error with external widgets * Improved: Color settings now include "Clear" button and hex input * New: H1 Color setting = 1.0.3 = * New: Live Preview - See changes in real-time as you edit * New: Interactive Preview Mode - Test links and sliders directly in the editor * New: Draggable Settings Panel - Move the settings window anywhere on screen * Improved: Silent saving mechanism for smoother experience * Fix: Solved infinite update loop in preview * Fix: Corrected "Save" button reverting changes bug = 1.0.2 = * Fix: Editor layout issues * Improvement: Better sidebar handling = 1.0.1 = * Initial public release * Added shortcode support = 1.0.0 = * First Version == Upgrade Notice == = 1.0.12 = Categories widget: Use category slugs (e.g., "news, tutorials") instead of IDs. = 1.0.11 = Bug fixes and coding standards improvements. = 1.0.10 = Major update: Plugin renamed to DPLab Page Studio. Includes Migration Wizard, Sticky Columns, and bug fixes. = 1.0.9 = Critical fix: Resolves CSS display issue introduced in 1.0.8. = 1.0.8 = Code quality improvements for WordPress.org compliance. No functional changes. = 1.0.7 = New feature: Blog List can now automatically show posts from the current category/tag on archive pages. = 1.0.6 = Shortcode renamed to [dplab_pagestudio_layout]. Update any existing shortcodes in your content. = 1.0.5 = CRITICAL: Fixes broken frontend layouts and external widget rendering. Strongly recommended for all users. = 1.0.4 = Bug fixes and UI improvements for color settings. Recommended upgrade. = 1.0.3 = New Live Preview feature with real-time updates. Recommended upgrade for all users. = 1.0.1 = Bug fix for column width issues. Recommended for all users. = 1.0.0 = Initial release. == External Services == This plugin uses third-party services for social sharing and video embedding functionality. These services are only accessed when the user actively uses specific widgets. = Social Share Widget = When users click on social sharing buttons, they are redirected to the respective platform's sharing page. The following data is sent: **Facebook** * Data sent: Current page URL * When: User clicks the Facebook share button * Service: [Facebook Terms](https://www.facebook.com/terms.php) | [Privacy Policy](https://www.facebook.com/privacy/policy/) **X (Twitter)** * Data sent: Current page URL and title * When: User clicks the X/Twitter share button * Service: [X Terms](https://twitter.com/tos) | [Privacy Policy](https://twitter.com/privacy) **LinkedIn** * Data sent: Current page URL and title * When: User clicks the LinkedIn share button * Service: [LinkedIn Terms](https://www.linkedin.com/legal/user-agreement) | [Privacy Policy](https://www.linkedin.com/legal/privacy-policy) **WhatsApp** * Data sent: Current page URL and title * When: User clicks the WhatsApp share button * Service: [WhatsApp Terms](https://www.whatsapp.com/legal/terms-of-service) | [Privacy Policy](https://www.whatsapp.com/legal/privacy-policy) **Telegram** * Data sent: Current page URL and title * When: User clicks the Telegram share button * Service: [Telegram Terms](https://telegram.org/tos) | [Privacy Policy](https://telegram.org/privacy) **Pinterest** * Data sent: Current page URL and title * When: User clicks the Pinterest share button * Service: [Pinterest Terms](https://policy.pinterest.com/terms-of-service) | [Privacy Policy](https://policy.pinterest.com/privacy-policy) **Instagram** * Data sent: None (opens Instagram app/website) * When: User clicks the Instagram share button * Service: [Instagram Terms](https://help.instagram.com/581066165581870) | [Privacy Policy](https://help.instagram.com/155833707900388) = Video Embed Widget = When embedding videos, the plugin loads content from external video platforms: **YouTube** * Data sent: Video ID, user's IP address (by YouTube) * When: A YouTube video is embedded and displayed * Service: [YouTube Terms](https://www.youtube.com/t/terms) | [Privacy Policy](https://policies.google.com/privacy) **Vimeo** * Data sent: Video ID, user's IP address (by Vimeo) * When: A Vimeo video is embedded and displayed * Service: [Vimeo Terms](https://vimeo.com/terms) | [Privacy Policy](https://vimeo.com/privacy) = Important Notes = * No data is sent automatically. Social sharing only occurs when users actively click share buttons. * Video embeds load content from YouTube/Vimeo servers when the page is viewed. * This plugin does not store or process any personal data from these services. * Site administrators should update their privacy policy to inform visitors about embedded content and social sharing features.