=== Pilo'Press ===
Contributors: pilotin
Donate link: https://www.pilot-in.com
Tags: acf, page builder, tailwindcss
Requires at least: 4.9
Tested up to: 6.2
Requires PHP: 5.6
Stable tag: 0.4.3.2
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

The most advanced WordPress Page Builder using Advanced Custom Fields & TailwindCSS.

== Description ==

Pilo'Press is a framework plugin for WordPress. Based on ACF and ACF Extended, it allows you to create layouts among other things and use the Flexible Content field as a page builder.

Pilo'Press uses Tailwind CSS for style templating which can be setup and build directly from the back-office.
Please note that Tailwind CSS is not mandatory, you can choose to use it or not.

== Requirements ==

This plugin requires [Advanced Custom Fields PRO](https://www.advancedcustomfields.com/pro/) and [Advanced Custom Fields: Extended](https://wordpress.org/plugins/acf-extended/) plugins in order to work correctly.

== Getting started ==

1. Activate Advanced Custom Fields Pro plugin
2. Activate ACF Extended plugin
3. Activate Pilo'Press plugin
4. In your theme, create a `pilopress` folder
5. Within the `pilopress` folder, create `layouts` subfolder
6. Within the `pilopress` folder, create `assets` subfolder
7. In the `index.php` file, add the following code:

`
    <?php

    get_header();

        the_pip_content();

    get_footer();
`

== Tailwind CSS ==

In the administration, under `Pilo'Press > Styles`, when you click on "Update & Compile", TailwindCSS will be compiled remotely using [TailwindAPI](https://www.tailwindapi.com/). Minified CSS files are then created under `/pilopress/assets/styles.min.css` and `/pilopress/assets/styles-admin.min.css`.

You can manually enqueue those files in your theme for the front-end & the back-end, but we recommend to use automatic enqueue code above.

It is possible to manually retrieve the Tailwind PostCSS & JS fields of the administration if you want to build TailwindCSS locally. To do so, you can use the following code:

`
$tailwind_css = get_field( 'pip_tailwind_style', 'pip_styles_tailwind' );
$tailwind_config = get_field( 'pip_tailwind_config', 'pip_styles_tailwind' );
`

For more details, see [Tailwind CSS Documentation](https://tailwindcss.com/docs/installation/).

== Customizing style ==

To customize default Tailwind CSS styles, go to `Pilo'Press > Styles` from left navigation menu or top bar menu.

For more details about customization, see [Github Page](https://pilot-in.github.io/PiloPress/docs/customizing-styles/).

== Add new layout ==

- In the admin menu `Pilo'Press > Layouts`, add a new layout
- Configure the layouts fields
- Create PHP, CSS and JS files in your theme layout folder `/your-theme/pilopress/layouts/your-layout`
- You have to name those files the same way you did in back-office settings

Note: only PHP template file is require.

== Templating ==

To display the content of your post, you have to use the following function:
`
// Pilo'Press content (doesn't need 'echo')
the_pip_content();

// Pilo'Press content (needs 'echo')
echo get_pip_content();
`

== Components ==

See [GitHub Page](https://pilot-in.github.io/PiloPress/docs/components/) for complete example.

== Hooks ==

Available hooks are list and describe in [GitHub Page](https://pilot-in.github.io/PiloPress/docs/hooks/)

== Installation ==

= Plugin Install =

1. Activate Advanced Custom Fields Pro plugin
2. Activate ACF Extended plugin
3. Activate Pilo'Press plugin

= Theme Install =

1. In your theme, create a `pilopress` folder
2. Within the `pilopress` folder, create `layouts` subfolder
3. Within the `pilopress` folder, create `assets` subfolder

== Screenshots ==

1. Flexible Content Layout UI

== Changelog ==

= 0.4.3.2 - 05/04/2023 =
* Added: TailwindCSS CDN feature
* Added: filter `pip/layouts/flexible_render_style` to allow CSS enqueue via ACFE
* Added : filters `pip/shortcode/button/start_html_output` and `pip/shortcode/button/end_html_output` for easier HTML customization with `pip_button` shortcode
* Added: filters `pip/tailwind_api/front_build_args` and `pip/tailwind_api/admin_build_args`
* Added: action `pip/flexible/layouts/prefix`
* Improved: admin styles for layout preview displaying better (not getting overriden by WP default styles anymore)
* Improved: clearer Tailwind CSS error when compiling
* Improved: layout's JS files version based on `filemtime()`
* Improved: way of handling the path of uploaded fonts
* Fixed: Default Content / Locked Content not creating duplicates anymore when activating Polylang
* Fixed: JS conflict with moving a layout with the "up" or "down" controls in the `pip_flexible` when there was another flexible content within
* Fixed: some parts of ACF V6 UI that were hidden

= 0.4.3.1 - 12/10/2022 =
* Added: TailwindCSS3 & JIT compatibility
* Improved: ACF v6.0 new UI compatibility
* Fixed: Tailwind CSS overriden configuration modifications being erased on layout edit
* Fixed: Component field value not being correct when a layout is toggled off (ACFE feature) before the layout that contains the component

= 0.4.3 - 08/07/2022 =

* Added: Filter `pip/locked_content/fields` to allow user add fields to locked content layout
* Added: Filter `pip/locked_content/html` to allow user alter HTML of locked content layout
* Added: Filter `pip/builder/hide_on_screen` to allow user to enable / disable the_content
* Added: Filter `pip/tailwind/config/prefix` to allow prefixed TailwindCSS generated classes
* Improved: "Set locked content (Post)" is displayed on 404 error page but it shouldn't
* Improved: Change edit locked content icon in admin bar
* Fixed: Title missing conditional in `[pip_title]` shortcode for home page.
* Fixed: Locked content - "Last posts" layout-like seems to trigger "locked content" set in another post-type
* Fixed: Default content - notice on multisite
* Fixed: PIP_Pattern doesn't retrieve correct `pattern_post_id` in other than default language when logged out
* Fixed: Fix component field when not in pip_flexible

= 0.4.2 - 07/03/2022 =

* Fixed: Location match for "Components" location condition
* Fixed: Remove Categories and Collections columns in layout sync screen to avoid columns to break
* Fixed: WYSIWYG Dark mode detection
* Fixed: Layout field group thumbnail not taking the whole space
* Fixed: AlpineJS enqueue through module
* Fixed: Layouts actions on newly added layout
* Fixed: Console log leftover in preview
* Fixed: Fix duplicated keys in pip_layout_var
* Fixed: deprecated acf.add_action to acf.addAction
* Improved: Add message when layout thumbnail already in folder
* Improved: Use `WP_Filesystem` instead of `file_get_contents()` or `file_put_contents()`
* Improved: Update TailwindCSS Native colors values according to TailwindCSS v2
* Improved: Add style around layout in admin when an error occurs to facilitate error location
* Improved: Rank Math compatibility for Breadcrumb + possibility to set a custom breadcrumb
* Improved: Export/import layouts style + wording
* Improved: Adding custom actions in Site Template aswell
* Added: Layout slug column in layout listing
* Added: Add option to show only button, font family and style checked as "Available in editor"
* Added: Preview for typography, colors, buttons and fonts in Pilo'Press > Styles
* Added: Import and Export tools for layouts
* Added: Search bar inside layouts selection modal
* Added: Edit layout, Move layout up and Move layout down actions
* Added: `pip/flexible/layouts/icons` filter
* Added: `pip/flexible/layouts/icons/hide` filter
* Added: `pip/shortcode/breadcrumb` filter
* Added: New module “**Patterns**” *(with Default Content & Locked Content per post-type / taxonomy)*

= 0.4.1.1 - 01/10/2021 =

* Improved: Change tailwindapi.com to api.pilopress.com
* Improved: Change way to get terms, improved performances in admin
* Improved: Change custom styles, colors and fonts wrapper argument to false, to allow user to apply different styles in
  same paragraph
* Added: Add `pip/shortcode/button_group/class` filter

= 0.4.1 - 02/08/2021 =
* Fixed: Pilo'Press navbar now displayed on new layout page
* Fixed: import for tailwind components position in code
* Fixed: PHP error on fresh install
* Fixed: PHP notice from wp_localize_script()
* Fixed: Hide actions on sync layouts page
* Fixed: Remove collection's badge from layout title when doing AJAX
* Fixed: Conditions to show layouts and Pilo'Press" flexible on options pages
* Fixed: Allow 3rd party buttons in TinyMCE toolbars
* Fixed: Infinite loop in specific cases for Components loop
* Improved: change button's "classes to apply" field from text to textarea
* Improved: Add "disabled" status in button states choices
* Improved: Allow HTML in button shortcode text
* Improved: Allow button shortcode to be a download link + add downloaded file name option
* Improved: Administration of fonts in Styles
* Improved: Pilo'Press' styles files version (from Pilo'Press version to `filemtime()`)
* Improved: Save all styles options when saving one page
* Improved: Thumbnail preview when selected size is Full
* Improved: Allow custom styles in TinyMCE to be applied on part of text instead of whole paragraph
* Added: Add option for a FontAwesome icon in `pip_button` shortcode
* Added: Add `pip/shortcode/button/icon_margin` filter
* Added: Add `pip/custom_font/url` filter to allow URL modification for custom fonts
* Added: AlpineJS module in administration panel. You can now enqueue easily AlpineJS with a toggle and specify its version (default to 3.0.6)
* Added: Add `pip/alpinejs` and `pip/alpinejs/version` filters
* Added: Add a notice in administration if Pilo'Press is active but no `pilopress` folder is found in active theme
* Added: Add spacings in Configuration tab
* Added: Add option to WYSIWYG fields to enable Dark mode by default
* Added: Fallback fonts option
* Added: CSS Vars for colors, screens, container paddings and fonts

= 0.4.0 - 04/02/2021 =
* Fixed: `pip_get_formatted_post_id()` function used in `get_pip_content()` and return nothing if used on custom post
  type archive when no posts
* Fixed: Render when multiple components on the same post
* Fixed: Sync link on layouts listing page
* Fixed: Use `pip/builder/parameters` filter for Header flexible and Footer flexible
* Fixed: Location match when location is set to Components > All
* Fixed: Redirection to ACF field groups when you duplicate a layout
* Fixed: Compatibility issue with ACF: Font Awesome plugin
* Added: Variables system to layouts
* Added: Allow user to compile locally, without TailwindAPI
* Added: `pip/tailwind_api` filter
* Added: `pip/tailwind/config_file_name` filter
* Added: `pip/tailwind/styles_file_name` filter
* Added: `pip/tailwind/css/after_base` filter
* Added: `pip/tailwind/css/after_fonts` filter
* Added: `pip/tailwind/css/after_components` filter
* Added: `pip/tailwind/css/after_utilities` filter
* Added: `pip/formatted_post_id` filter
* Added: `pip/tailwind_api` filter
* Added: `pip/tailwind/config_file_name` filter
* Added: `pip/tailwind/styles_file_name` filter
* Added: Filter choices in `pip_font_color` fields
* Added: Type of class returned by `pip_font_color` fields (text, background or border)
* Added: A lot of helpers to get data from back-office
* Added: TailwindCSS error message when compilation failed
* Added: Automatically create configuration file on layout insert or update
* Added: New "component like" location rule
* Improved: Make style back-office feature oriented
* Improved: Code quality
* Improved: Theme colors field type. Add return format choice and default value option
* Improved: Categories and collections filters on layouts listing page
* Improved: "pip_title" shortcode

= 0.3.2.11 - 02/11/2020 =
* Fixed: Reset h2 style inside TinyMCE
* Improved: When TailwindCSS compilation via TailwindAPI crashes, show an error message and don't replace CSS file content
* Improved: Allow main flexible in nav menu location
* Improved: Change version of generated CSS files to filemtime( FILE )

= 0.3.2.10 - 10/09/2020 =
* Fixed: Configuration file placeholder misleading
* Fixed: Component loop
* Fixed: PHP 7.4.9 warnings
* Fixed: Error if no layout slug
* Fixed: Top admin bar on plugin activation
* Fixed: Field groups colors in "Layouts" listing
* Fixed: Field groups in sync listing
* Improved: Add auto layout thumbnails for Site Template
* Added: Filter `pip/builder/parameters`

= 0.3.2.9 - 07/09/2020 =
* Fixed: Remove thumbnail and collection badge from layout title
* Fixed: Image inside layout folder used as thumbnail
* Improved: Add top nav menu as ACF did
* Improved: Add see more for components listing in Pilo'Press dashboard

= 0.3.2.8 - 22/07/2020 =
* Fixed: Collection badge style with automatic thumbnail

= 0.3.2.7 - 22/07/2020 =
* Added: `pip/layouts/always_show_collection` filter
* Added: Layout configuration file option
* Added: Allow png, jpeg, jpg file inside layout folder to be used as thumbnail. The file needs to be named as the layout slug.
* Added: Create layout folder and PHP file on layout creation
* Improved: Rename helpers functions
* Improved: Reset TinyMCE styles in a cleaner way
* Improved: Register conditions for Pilo'Press field types

= 0.3.2.6 - 16/07/2020 =
* Added: Create `pilopress/assets` and `pilopress/layouts` folders on plugin activation
* Improved: ACFE 0.8.6.7 Compatibility
* Improved: Group Pilo'Press field types under "Pilo'Press" category
* Improved: Use layout slug to autocomplete file names
* Improved: Use layout slug for location check, allow multiple layouts to have the same name
* Improved: Show collection badge only on layouts with the same name instead of on all layouts
* Fixed: Filters in layout modal when collections are used
* Fixed: Remove Collection meta box on field group pages
* Fixed: Translations

= 0.3.2.5 - 17/06/2020 =
* Improved: Collections name tag
* Improved: Layouts Configuration Modal setting now also display Local Field Groups
* Fixed: WYSIWYG Dark Mode not working in some specific cases
* Fixed: Readme URL

= 0.3.2.4 - 10/06/2020 =
* Improved: Collections name in layouts label
* Improved: Builder name is now displayed in the Builder Modal
* Fixed: Flexible Content PHP notice
* Fixed: Builder Mirror being displayed on pages

= 0.3.2.3 - 10/06/2020 =
* Added: `pip_maybe_get()` helper function
* Fixed: Fix WYSIWYG dark mode

= 0.3.2.2 - 09/06/2020 =
* Fixed: Fix WYSIWYG dark mode values and detection

= 0.3.2.1 - 08/06/2020 =
* Fixed: Fix WYSIWYG dark mode being required in specific case

= 0.3.2 - 08/06/2020 =
* Added: Dark mode for TinyMCE Editors
* Added: PHP Sync for layouts
* Added: Collection taxonomy for layouts, displayed before layout title. Example: "Collection: Layout title"
* Improved: `get_pip_header()` and `get_pip_footer()` are include in `the_pip_content()`
* Improved: Styles from Pilo'Press automatically enqueued
* Improved: Add layouts categories and collection in JSON and PHP files
* Improved: Hide category and collection columns if no term exist in layouts admin page

= 0.3.1 - 29/05/2020 =
* Improved: Translations
* Fixed: Save of builder field group

= 0.3 - 20/05/2020 =
* Improved: General Dashboard
* Fixed: Layouts Json Sync when the folder doesn't exists
* Removed: TailwindCSS PostCSS & JS file generation have been removed

= 0.2 - 19/05/2020 =
* Fixed: Layout path prefix field to correctly check theme path
* Fixed: Google Fonts are now enqueued using `wp_enqueue_style()`
* Fixed: TaildwindAPI now use native `wp_remote_post()` function instead of CURL

= 0.1 - 14/05/2020 =
* Initial commit
