diff --git a/.vitepress/sidebar.js b/.vitepress/sidebar.js index 8b1cf0e1..543e6938 100644 --- a/.vitepress/sidebar.js +++ b/.vitepress/sidebar.js @@ -1,7 +1,9 @@ import ZooEssentialsSidebar from '../src/essentials-for-zoo/sidebar.json'; import YOOthemeProEssentialsSidebar from '../src/essentials-for-yootheme-pro/sidebar.json'; +import YOOthemeProEssentialsV22Sidebar from '../src/essentials-for-yootheme-pro/v2.2/sidebar.json'; export default { '/essentials-for-zoo/': ZooEssentialsSidebar, '/essentials-for-yootheme-pro/': YOOthemeProEssentialsSidebar, + '/essentials-for-yootheme-pro/v2.2/': YOOthemeProEssentialsV22Sidebar, }; diff --git a/src/essentials-for-yootheme-pro/addons/forms/_partials/action-csv.md b/src/essentials-for-yootheme-pro/addons/forms/_partials/action-csv.md new file mode 100644 index 00000000..f7a9ddd8 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/forms/_partials/action-csv.md @@ -0,0 +1,37 @@ +## CSV Action {#csv} + +
+ +
+ +The **CSV Action** creates and deletes records from a local [CSV](https://en.wikipedia.org/wiki/Comma-separated_values) or [TSV](https://en.wikipedia.org/wiki/Tab-separated_values) file. Use it to store data or log submissions. + +::: warning Pre-formatted CSV File +This action won't create or format the file by itself, you must provide a path to a pre-existing and pre-formatted file. The file can be as basic as a list of column headers separated by commas set in the very first line, as for example `Name,Comment,Date`. +::: + +### Create/Update Record {#csv-record-upsert} + +Creates a CSV file record. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *File* | The path to the file where the data will be appended. | ✓ | +| *Delimeter* | The character used to separate columns data, defaults to a comma (`,`). | +| *Enclosure* | The character used to enclose columns data, defaults to a double-quote (`"`). | + + + + +### Delete Record {#csv-record-delete} + +Deletes a CSV file record. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *File* | The path to the file where the data will be appended. | ✓ | +| *Delimeter* | The character used to separate columns data, defaults to a comma (`,`). | +| *Enclosure* | The character used to enclose columns data, defaults to a double-quote (`"`). | +| *Column* | The column that will identify the record to be deleted. | ✓ | +| *Value* | The value that will identify the record to be deleted. | ✓ | ✓ | + diff --git a/src/essentials-for-yootheme-pro/addons/forms/_partials/action-database.md b/src/essentials-for-yootheme-pro/addons/forms/_partials/action-database.md new file mode 100644 index 00000000..0de29de3 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/forms/_partials/action-database.md @@ -0,0 +1,47 @@ +## Database Action {#database} + +
+ +
+ +The **Database Action** creates, updates and deletes records from a local or external database table. Use it to store data or log submissions. + +### Create/Update Record {#database-record-upsert} + +Creates or updates a database table record. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Database* | The name of the database to which to connect. | ✓ | +| *Custom Connection* | Allows overriding the system default database connection. | +| -- *Host* | The server host IP or address to which to connect, e.g. `127.0.0.1`. | ✓ | +| -- *Port* | The port to use for the connection, e.g. `3306`. | ✓ | +| -- *Creds* | The username & password which to use for the connection. | ✓ | +| *Table* | The name of the database Table to which to connect. | ✓ | +| *Update Record* | Should a record be updated instead of created. | +| -- *Associative Key* | The table column key that will be used to associate the record. | ✓ | +| -- *Associative Value* | The table column value that will be used to associate the record. | ✓ | ✓ | +| *Content* | The mapping configuration of the submission data to the table columns. | ✓ | ✓ | + + + + +When the Update Record setting is enabled the submitted data will override an existing table record determined by the association configuration. If no associated record is found, a new record will be created instead. + +![SaveToDatabase Action Update](./assets/actions/action-database-update.webp) + +An example to understand the association is to think of a _Users Table_ with an _ID_ column as its primary key. In such a scenario, the submission data should contain the _user_id_ value representing the user row being updated, the _Associative Key_ should be set as _ID_, and the _Associative Value_ mapped to the Form Submission _user_id_. + +### Delete Record {#database-record-delete} + +Deletes a database table record. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Database* | The name of the database to which to connect. | ✓ | +| *Custom Connection* | Allows overriding the system default database connection. | +| -- *Host* | The server host IP or address to which to connect, e.g. `127.0.0.1`. | ✓ | +| -- *Port* | The port to use for the connection, e.g. `3306`. | ✓ | +| -- *Creds* | The username & password which to use for the connection. | ✓ | +| *Table* | The name of the database Table to which to connect. | ✓ | + diff --git a/src/essentials-for-yootheme-pro/addons/forms/_partials/action-google-sheets.md b/src/essentials-for-yootheme-pro/addons/forms/_partials/action-google-sheets.md new file mode 100644 index 00000000..00b95e6b --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/forms/_partials/action-google-sheets.md @@ -0,0 +1,34 @@ +## Google Sheets Action {#google-sheets} + +
+ +
+ +The **Google Sheets Action** creates and deletes records from [Google Sheets](https://workspace.google.com/products/sheets/) spreadsheets. Use it to store data or log submissions. + +### Create Record {#google-sheets-record-upsert} + +Creates a spreadsheet record. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Account* | The Google account used to connect to Google Drive via OAuth. | ✓ | +| *Spreadsheet* | The Google Drive Spreadsheet to which to connect. | ✓ | +| *Sheet* | The Spreadsheet Sheet to use as the data destination, defaults to the first sheet. | +| *Value Input Option* | Defines how the data will be interpreted when saved to the spreadsheet. _Raw_, the values will be stored as-is, or _User Entered_, the values will be parsed as if were typed into the UI. | + + + + +### Delete Record {#google-sheets-record-delete} + +Deletes a spreadsheet record. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Account* | The Google account used to connect to Google Drive via OAuth. | ✓ | +| *Spreadsheet* | The Google Drive Spreadsheet to which to connect. | ✓ | +| *Sheet* | The Spreadsheet Sheet to use as the data destination, defaults to the first sheet. | +| *Column* | The column that will identify the record to be deleted. | ✓ | +| *Value* | The value that will identify the record to be deleted. | ✓ | ✓ | + diff --git a/src/essentials-for-yootheme-pro/addons/forms/_partials/action-webhook.md b/src/essentials-for-yootheme-pro/addons/forms/_partials/action-webhook.md new file mode 100644 index 00000000..2f5d6ce2 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/forms/_partials/action-webhook.md @@ -0,0 +1,16 @@ +## Webhook Action {#webhook} + +
+ +
+ +The **Webhook Action** triggers an HTTP request to a third-party service. If the validation fails, no further actions will be executed. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *URL* | The URL to send the request to. | ✓ | ✓ | +| *Method* | The HTTP method to send the request with, `GET`, `POST`, `PUT`, `PATCH`, or `DELETE`. Defaults to `POST`. | ✓ | ✓ | +| *Format* | The format of the data that will be sent in the request, `JSON`, `XML`, `RAW` or `Form-Data`. Defaults to `JSON`. | | ✓ | +| *Body* | The body content that will be sent in the request when the format is `json\|xml\|raw` and the method is not `GET`. | ✓ | ✓ | +| *Data* | The data that will be sent in the request when the request method is `GET` or the format is `Form-Data`. | ✓ | ✓ | + diff --git a/src/essentials-for-yootheme-pro/addons/forms/actions.md b/src/essentials-for-yootheme-pro/addons/forms/actions.md index c55722ae..9e485d05 100644 --- a/src/essentials-for-yootheme-pro/addons/forms/actions.md +++ b/src/essentials-for-yootheme-pro/addons/forms/actions.md @@ -5,12 +5,13 @@ Actions are multi-instance functions that will run sequentially, after a form ha + + + - - - + diff --git a/src/essentials-for-yootheme-pro/addons/forms/assets/action-save-csv.svg b/src/essentials-for-yootheme-pro/addons/forms/assets/action-csv.svg similarity index 100% rename from src/essentials-for-yootheme-pro/addons/forms/assets/action-save-csv.svg rename to src/essentials-for-yootheme-pro/addons/forms/assets/action-csv.svg diff --git a/src/essentials-for-yootheme-pro/addons/forms/assets/action-save-database.svg b/src/essentials-for-yootheme-pro/addons/forms/assets/action-database.svg similarity index 100% rename from src/essentials-for-yootheme-pro/addons/forms/assets/action-save-database.svg rename to src/essentials-for-yootheme-pro/addons/forms/assets/action-database.svg diff --git a/src/essentials-for-yootheme-pro/addons/forms/assets/action-save-google-sheet.svg b/src/essentials-for-yootheme-pro/addons/forms/assets/action-google-sheets.svg similarity index 100% rename from src/essentials-for-yootheme-pro/addons/forms/assets/action-save-google-sheet.svg rename to src/essentials-for-yootheme-pro/addons/forms/assets/action-google-sheets.svg diff --git a/src/essentials-for-yootheme-pro/addons/forms/assets/action-webhook.svg b/src/essentials-for-yootheme-pro/addons/forms/assets/action-webhook.svg new file mode 100644 index 00000000..55831073 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/forms/assets/action-webhook.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/essentials-for-yootheme-pro/addons/forms/assets/actions/action-savetodb-update.webp b/src/essentials-for-yootheme-pro/addons/forms/assets/actions/action-database-update.webp similarity index 100% rename from src/essentials-for-yootheme-pro/addons/forms/assets/actions/action-savetodb-update.webp rename to src/essentials-for-yootheme-pro/addons/forms/assets/actions/action-database-update.webp diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/antdesign/antdesign.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/antdesign/antdesign.json new file mode 100644 index 00000000..687bef05 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/antdesign/antdesign.json @@ -0,0 +1,14 @@ +{ + "name": "antdesign", + "title": "Ant Design", + "description": "The abstract trees of the Ant Design SVG icons.", + "groups": [ + "filled", + "outlined" + ], + "version": "4.3.0", + "release": "August, 2023", + "license": "MIT", + "url": "https://github.com/ant-design/ant-design-icons", + "icons": 639 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/antdesign/antdesign.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/antdesign/antdesign.svg new file mode 100644 index 00000000..9e591f49 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/antdesign/antdesign.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/bootstrap.php b/src/essentials-for-yootheme-pro/addons/icons/_collections/bootstrap.php new file mode 100644 index 00000000..196f18f9 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/bootstrap.php @@ -0,0 +1,11 @@ + [ + IconLoader::class => function (IconLoader $loader, $app) { + $loader->registerCollections('~yooessentials/modules/icon-collections/*/*.json'); + }, + ], +]; diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/bootstrap/bootstrap.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/bootstrap/bootstrap.json new file mode 100644 index 00000000..dff3eaf1 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/bootstrap/bootstrap.json @@ -0,0 +1,13 @@ +{ + "name": "bootstrap", + "title": "Bootstrap", + "description": "Official Bootstrap SVG icon library with over 2.000 icons.", + "groups": [ + "filled" + ], + "version": "1.11.3", + "release": "January, 2024", + "license": "MIT", + "url": "https://icons.getbootstrap.com", + "icons": 2051 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/bootstrap/bootstrap.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/bootstrap/bootstrap.svg new file mode 100644 index 00000000..3cc96dde --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/bootstrap/bootstrap.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/boxicons/boxicons.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/boxicons/boxicons.json new file mode 100644 index 00000000..574e024b --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/boxicons/boxicons.json @@ -0,0 +1,15 @@ +{ + "name": "boxicons", + "title": "Boxicons", + "description": "High Quality Web Icons Set.", + "groups": [ + "regular", + "solid", + "logos" + ], + "version": "2.1.4", + "release": "September, 2022", + "license": "MIT", + "url": "https://boxicons.com", + "icons": 1634 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/boxicons/boxicons.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/boxicons/boxicons.svg new file mode 100644 index 00000000..b96a420f --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/boxicons/boxicons.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/coreui/coreui.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/coreui/coreui.json new file mode 100644 index 00000000..dc77fc02 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/coreui/coreui.json @@ -0,0 +1,13 @@ +{ + "name": "coreui", + "title": "CoreUI", + "description": "Simply beautiful open source icons.", + "groups": [ + "brand" + ], + "version": "3.0.1", + "release": "March, 2023", + "license": "MIT", + "url": "https://icons.coreui.io", + "icons": 1386 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/coreui/coreui.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/coreui/coreui.svg new file mode 100644 index 00000000..37410268 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/coreui/coreui.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/fa6/fa6.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/fa6/fa6.json new file mode 100644 index 00000000..32e78753 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/fa6/fa6.json @@ -0,0 +1,15 @@ +{ + "name": "fa6", + "title": "Font Awesome 6", + "description": "Icons and social logos by Font Awesome, the web's most popular icon set.", + "groups": [ + "regular", + "solid", + "brands" + ], + "version": "6.6.0", + "release": "July, 2024", + "license": "CC BY 4.0", + "url": "https://fontawesome.com", + "icons": 2050 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/fa6/fa6.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/fa6/fa6.svg new file mode 100644 index 00000000..b6962668 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/fa6/fa6.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/feather/feather.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/feather/feather.json new file mode 100644 index 00000000..58c9a563 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/feather/feather.json @@ -0,0 +1,10 @@ +{ + "name": "feather", + "title": "Feather", + "description": "Simply beautiful open source icons.", + "version": "4.29.0", + "release": "March, 2022", + "license": "MIT", + "url": "https://feathericons.com", + "icons": 287 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/feather/feather.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/feather/feather.svg new file mode 100644 index 00000000..86962009 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/feather/feather.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/fontawesome/fontawesome.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/fontawesome/fontawesome.json new file mode 100644 index 00000000..1b4cc9c9 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/fontawesome/fontawesome.json @@ -0,0 +1,15 @@ +{ + "name": "fontawesome", + "title": "Font Awesome 5", + "description": "Icons and social logos by Font Awesome, the web's most popular icon set.", + "groups": [ + "regular", + "solid", + "brands" + ], + "version": "5.15.4", + "release": "August 8, 2021", + "license": "CC BY 4.0", + "url": "https://fontawesome.com", + "icons": 1611 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/fontawesome/fontawesome.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/fontawesome/fontawesome.svg new file mode 100644 index 00000000..60432dfe --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/fontawesome/fontawesome.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/heroicons/heroicons.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/heroicons/heroicons.json new file mode 100644 index 00000000..db96e514 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/heroicons/heroicons.json @@ -0,0 +1,14 @@ +{ + "name": "heroicons", + "title": "Heroicons", + "description": "Beautiful hand-crafted icons, by the makers of Tailwind CSS.", + "groups": [ + "outline", + "solid" + ], + "version": "2.1.5", + "release": "July, 2024", + "license": "MIT", + "url": "https://heroicons.com", + "icons": 648 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/heroicons/heroicons.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/heroicons/heroicons.svg new file mode 100644 index 00000000..c60da274 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/heroicons/heroicons.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/ionicons/ionicons.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/ionicons/ionicons.json new file mode 100644 index 00000000..b44194fb --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/ionicons/ionicons.json @@ -0,0 +1,16 @@ +{ + "name": "ionicons", + "title": "Ionicons", + "description": "Beautifully crafted open source icons built by the Ionic Framework team.", + "groups": [ + "outline", + "filled", + "sharp", + "logo" + ], + "version": "7.1.2", + "release": "May, 2023", + "license": "MIT", + "url": "https://ionicons.com", + "icons": 1338 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/ionicons/ionicons.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/ionicons/ionicons.svg new file mode 100644 index 00000000..ea684314 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/ionicons/ionicons.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/octicons/octicons.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/octicons/octicons.json new file mode 100644 index 00000000..b3ff7873 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/octicons/octicons.json @@ -0,0 +1,10 @@ +{ + "name": "octicons", + "title": "Octicons", + "description": "Set of SVG icons built by GitHub for GitHub.", + "version": "19.12.0", + "release": "October, 2024", + "license": "MIT", + "url": "https://github.com/primer/octicons", + "icons": 307 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/octicons/octicons.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/octicons/octicons.svg new file mode 100644 index 00000000..71f60e63 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/octicons/octicons.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/phosporicons/phosporicons.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/phosporicons/phosporicons.json new file mode 100644 index 00000000..e66090f4 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/phosporicons/phosporicons.json @@ -0,0 +1,17 @@ +{ + "name": "phosporicons", + "title": "Phospor Icons", + "description": "A flexible icon family for interfaces, diagrams, presentations...", + "groups": [ + "bold", + "fill", + "light", + "regular", + "thin" + ], + "version": "1.4.0", + "release": "December, 2021", + "license": "MIT", + "url": "https://phosphoricons.com", + "icons": 5235 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/phosporicons/phosporicons.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/phosporicons/phosporicons.svg new file mode 100644 index 00000000..3403b2f9 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/phosporicons/phosporicons.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/pixelarticons/pixelarticons.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/pixelarticons/pixelarticons.json new file mode 100644 index 00000000..c441ac38 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/pixelarticons/pixelarticons.json @@ -0,0 +1,10 @@ +{ + "name": "pixelarticons", + "title": "Pixelarticons", + "description": "Pixel-art style icons.", + "version": "1.8.1", + "release": "April, 2024", + "license": "MIT", + "url": "https://pixelarticons.com", + "icons": 486 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/pixelarticons/pixelarticons.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/pixelarticons/pixelarticons.svg new file mode 100644 index 00000000..2b898fd3 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/pixelarticons/pixelarticons.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/remixicon/remixicon.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/remixicon/remixicon.json new file mode 100644 index 00000000..023777d0 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/remixicon/remixicon.json @@ -0,0 +1,31 @@ +{ + "name": "remixicon", + "title": "Remix Icon", + "description": "A set of open-source neutral-style system symbols for designers and developers.", + "groups": [ + "arrows", + "buildings", + "business", + "communication", + "design", + "development", + "device", + "document", + "editor", + "finance", + "food", + "health", + "logos", + "map", + "media", + "others", + "system", + "user", + "weather" + ], + "version": "4.5.0", + "release": "November, 2024", + "license": "Apache", + "url": "https://remixicon.com", + "icons": 3020 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/remixicon/remixicon.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/remixicon/remixicon.svg new file mode 100644 index 00000000..8d844c05 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/remixicon/remixicon.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/tablericons/tablericons.json b/src/essentials-for-yootheme-pro/addons/icons/_collections/tablericons/tablericons.json new file mode 100644 index 00000000..3bda3fcb --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/tablericons/tablericons.json @@ -0,0 +1,14 @@ +{ + "name": "tablericons", + "title": "Tabler Icons", + "description": "A set of over 1250 high-quality SVG icons designed on a 24x24 grid and a 2px stroke.", + "groups": [ + "filled", + "outline" + ], + "version": "3.22.0", + "release": "November, 2024", + "license": "MIT", + "url": "https://tabler-icons.io", + "icons": 5718 +} \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/_collections/tablericons/tablericons.svg b/src/essentials-for-yootheme-pro/addons/icons/_collections/tablericons/tablericons.svg new file mode 100644 index 00000000..97590d16 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/icons/_collections/tablericons/tablericons.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/icons/assets/collection-coreui.webp b/src/essentials-for-yootheme-pro/addons/icons/assets/collection-coreui.webp new file mode 100644 index 00000000..b22c1c53 Binary files /dev/null and b/src/essentials-for-yootheme-pro/addons/icons/assets/collection-coreui.webp differ diff --git a/src/essentials-for-yootheme-pro/addons/icons/assets/collection-fa6.webp b/src/essentials-for-yootheme-pro/addons/icons/assets/collection-fa6.webp new file mode 100644 index 00000000..beacf193 Binary files /dev/null and b/src/essentials-for-yootheme-pro/addons/icons/assets/collection-fa6.webp differ diff --git a/src/essentials-for-yootheme-pro/addons/icons/assets/collection-phosporicons.webp b/src/essentials-for-yootheme-pro/addons/icons/assets/collection-phosporicons.webp new file mode 100644 index 00000000..ee2da6e0 Binary files /dev/null and b/src/essentials-for-yootheme-pro/addons/icons/assets/collection-phosporicons.webp differ diff --git a/src/essentials-for-yootheme-pro/addons/icons/assets/collection-pixelarticons.webp b/src/essentials-for-yootheme-pro/addons/icons/assets/collection-pixelarticons.webp new file mode 100644 index 00000000..19f807a8 Binary files /dev/null and b/src/essentials-for-yootheme-pro/addons/icons/assets/collection-pixelarticons.webp differ diff --git a/src/essentials-for-yootheme-pro/addons/icons/collections.data.js b/src/essentials-for-yootheme-pro/addons/icons/collections.data.js index da70d4c0..217e626f 100644 --- a/src/essentials-for-yootheme-pro/addons/icons/collections.data.js +++ b/src/essentials-for-yootheme-pro/addons/icons/collections.data.js @@ -3,9 +3,11 @@ import fs from 'node:fs'; export default { watch: ['./_collections/*/*.json'], load(watchedFiles) { - return watchedFiles.map((file) => ({ - ...JSON.parse(fs.readFileSync(file, 'utf-8')), - icon: fs.readFileSync(file.replace('collection.json', 'icon.svg'), 'utf-8'), - })); + return watchedFiles.map((file) => { + return { + ...JSON.parse(fs.readFileSync(file, 'utf-8')), + icon: fs.readFileSync(file.replace('.json', '.svg'), 'utf-8'), + }; + }); }, }; diff --git a/src/essentials-for-yootheme-pro/addons/sources/_partials/common-provider-settings.md b/src/essentials-for-yootheme-pro/addons/sources/_partials/common-provider-settings.md index 7c273cce..6b647eed 100644 --- a/src/essentials-for-yootheme-pro/addons/sources/_partials/common-provider-settings.md +++ b/src/essentials-for-yootheme-pro/addons/sources/_partials/common-provider-settings.md @@ -1,4 +1,4 @@ -![Source Instance Common Settings](/essentials-for-yootheme-pro/addons/sources/assets/common-provider-settings.webp) +![Source Instance Common Settings](assets/common-provider-settings.webp) | Setting | Description | Default | | --- | --- | --- | diff --git a/src/essentials-for-yootheme-pro/addons/sources/_partials/provider-bluesky.md b/src/essentials-for-yootheme-pro/addons/sources/_partials/provider-bluesky.md new file mode 100644 index 00000000..a11e8502 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/sources/_partials/provider-bluesky.md @@ -0,0 +1,140 @@ +## Bluesky Source {#bluesky} + +
+ +
+ +The **Bluesky Source** feeds data from the [Bluesky](https://bsky.app/) social platform supporting [Author Feed](#bluesky-author-feed-query), [List Feed](#bluesky-list-feed-query), [Posts](#bluesky-posts-query) and [Profile](#bluesky-profile-query) queries. + + + +| Setting | Description | +| --- | --- | +| *Actor* | The Bluesky actor AT Identifier from which to create the source. | + +### Bluesky Author Feed Query + +Fetches posts and reposts made by the authenticated profile and resolves to [Bluesky Feed Type](#bluesky-feed-type). + +| Setting | Description | Default | Dynamic | +| --- | --- | --- | :---: | +| *Limit* | The maximum number of posts to fetch. | | ✓ | +| *Cache* | The duration in seconds before the cache is invalidated and the query re-executed. | `3600` | + +### Bluesky List Feed Query + +Fetches posts and reposts from profiles from a list and resolves to [Bluesky Feed Type](#bluesky-feed-type). + +| Setting | Description | Default | Dynamic | +| --- | --- | --- | :---: | +| *List* | The list of profiles from which to create the source from. | | ✓ | +| *Limit* | The maximum number of posts to fetch. | | ✓ | +| *Cache* | The duration in seconds before the cache is invalidated and the query re-executed. | `3600` | + +### Bluesky Posts Query + +Fetches posts made by the authenticated profile matching a search criteria and resolves to [Bluesky Post Type](#bluesky-post-type). + +| Setting | Description | Default | Dynamic | +| --- | --- | --- | :---: | +| *Query* | Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. | | ✓ | +| *Since* | Filter results for posts after the indicated datetime (inclusive). Can be a datetime, or just an ISO date `YYYY-MM-DD`. | | ✓ | +| *Until* | Filter results for posts before the indicated datetime (not inclusive). Can be a datetime, or just an ISO date `YYYY-MM-DD`. | | ✓ | +| *Mentions* | Filter to posts which mention the given account. | | ✓ | +| *Language* | Filter to posts in the given language. Expected to be based on post language field, though Bluesky server may override language detection. | | ✓ | +| *Domain* | Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Bluesky server may apply hostname normalization. | | ✓ | +| *URL* | Filter to posts with links (facet links or embeds) pointing to this URL. Bluesky server may apply URL normalization or fuzzy matching. | | ✓ | +| *Tag* | Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with `AND` matching. | | ✓ | +| *Limit* | The maximum number of posts to fetch. | | ✓ | +| *Sort* | The order by wich to sort the posts, `Top` or `Latest`. | `Top` | +| *Cache* | The duration in seconds before the cache is invalidated and the query re-executed. | `3600` | + +### Bluesky Profile Query + +Fetches the authenticated profile detailed data and resolves to [Bluesky Profile Type](#bluesky-profile-type). + +| Setting | Description | Default | +| --- | --- | --- | +| *Cache* | The duration in seconds before the cache is invalidated and the query re-executed. | `3600` | + +### Bluesky Feed Type + +Defines the mapping options of a Bluesky Feed object. + +| Field | Description | Type | +| --- | --- | --- | +| *Post* | The feed post. | [Post](#bluesky-post-type) | + +### Bluesky Post Type + +Defines the mapping options of a Bluesky Post object. + +| Field | Description | Type | Filters | +| --- | --- | --- | --- | +| *CID* | Unique identifier of the content. | `String` | +| *URI* | Uniform Resource Identifier of the post. | `String` | +| *Author* | Author of the post. | [Profile](#bluesky-profile-type) | +| *Text* | Text of the post. | `String` | `limit` | +| *Media Type* | If present, the type of media in the post. | `String` | +| *Images* | Images of the post. | [Post Image](#bluesky-post-image-type) | +| *Images Counts* | The total amount of images of the post. | `Int` | +| *Videos* | Videos of the post. | [Post Video](#bluesky-post-video-type) | +| *GIF* | GIF of the post. | [Post GIF](#bluesky-post-gif-type) | +| *Reply Count* | Number of replies to the post. | `Int` | +| *Repost Count* | Number of reposts of the post. | `Int` | +| *Like Count* | Number of likes on the post. | `Int` | +| *Quote Count* | Number of quotes of the post. | `Int` | +| *Indexed At* | Timestamp when the post was indexed. | `String` | `date` | + + +### Bluesky Post Video Type + +Defines the mapping options of a Bluesky Post Video object. + +| Field | Description | Type | +| --- | --- | --- | +| *CID* | Content Identifier for the video. | `String` | +| *Thumbnail URL* | URL of the thumbnail image. | `String` | +| *Playlist* | URL of the video playlist, or a single video. | `String` | +| *Height* | Height of the video. | `Int` | +| *Width* | Width of the video. | `Int` | + +### Bluesky Post Image Type + +Defines the mapping options of a Bluesky Post Image object. + +| Field | Description | Type | Filters | +| --- | --- | --- | --- | +| *Thumbnail URL* | URL of the thumbnail image. | `String` | +| *Fullsize URL* | URL of the full-size image. | `String` | +| *Alt Text* | Alternative text for the image. | `String` | `limit` | +| *Height* | Height of the image. | `Int` | +| *Width* | Width of the image. | `Int` | + +### Bluesky Post GIF Type + +Defines the mapping options of a Bluesky Post GIF object. + +| Field | Description | Type | Filters | +| --- | --- | --- | --- | +| *URI* | URL of the GIF. | `String` | +| *Title* | Title of the GIF. | `String` | `limit` | +| *Description* | Description of the GIF. | `String` | `limit` | +| *Thumbnail URL* | URL of the thumbnail image. | `String` | + +### Bluesky Profile Type + +Defines the mapping options of a Bluesky Profile object. + +| Field | Description | Type | Filters | +| --- | --- | --- | --- | +| *DID* | Unique identifier. | `String` | +| *Handle* | Unique alias used as username and url for the profile. | `String` | +| *Display name* | Profile Display Name. | `String` | +| *Description* | Profile description. | `String` | `limit` | +| *Avatar* | Profile avatar URL. | `String` | +| *Banner* | Profile banner URL. | `String` | +| *Created At* | Profile date of creation. | `String` | `date` | +| *Followers Count* | Total number of followers. | `Int` | +| *Follows Count* | Total number of follows. | `Int` | +| *Posts Count* | Total number of posts. | `Int` | diff --git a/src/essentials-for-yootheme-pro/addons/sources/_partials/provider-linkedin.md b/src/essentials-for-yootheme-pro/addons/sources/_partials/provider-linkedin.md new file mode 100644 index 00000000..5ab58178 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/sources/_partials/provider-linkedin.md @@ -0,0 +1,88 @@ +## LinkedIn Source {#linkedin} + +
+ +
+ +The **LinkedIn Source** feeds data from the [LinkedIn](https://linkedin.com/) social platform supporting Organization [Post](#linkedin-organization-post-query) and [Posts](#linkedin-organization-posts-query) queries. + +:::warning LinkedIn App +In order to authenticate you will need to create a custom LinkedIn App [following this guide](../../auths/custom-linkedin-dev-app.md). +::: + + + +| Setting | Description | +| --- | --- | +| *Account* | The LinkedIn account which to connect with. | +| *Organization* | The LinkedIn Organization from which to create the source. Only organizations that the authenticated user is an administrator of will be shown. | + +### LinkedIn Organization Post Query + +Fetches a single post belonging to an organization and resolves to a [LinkedIn Post Type](#linkedin-post-type). + +| Setting | Description | Default | Dynamic | +| --- | --- | --- | :---: | +| *URN* | URN of the post, in full format like `urn:li:ugcPost:1234567890`. | | ✓ | +| *Cache* | The duration in seconds before the cache is invalidated and the query re-executed. | `3600` | + +### LinkedIn Organization Posts Query + +Fetches posts belonging to an organization and resolves to a list of [LinkedIn Post Type](#linkedin-post-type). + +| Setting | Description | Default | Dynamic | +| --- | --- | --- | :---: | +| *Start* | The start number of posts to fetch. | `1` | ✓ | +| *Count* | The maximum number of posts to fetch. | `10` | ✓ | +| *Sort By* | The order by which to sort the posts, `Last Modified` or `Created`. | `Last Modified` | ✓ | +| *Cache* | The duration in seconds before the cache is invalidated and the query re-executed. | `3600` | + +### LinkedIn Post Type + +Defines the mapping options of a LinkedIn Post object. + +| Field | Description | Type | Filters | +| --- | --- | --- | --- | +| *ID* | Unique identifier of the content. | `String` | +| *State* | The state of the content. | `String` | +| *Visibility* | The visibility of the content. | `String` | +| *Commentary* | The user generated commentary for the content. | `String` | `limit` | +| *Created At* | The post creation date. | `String` | `date` | +| *Published At* | The post publication date. | `String` | `date` | +| *Modified At* | The post last modification date. | `String` | `date` | +| *Author* | The author of the content. | [Organization](#linkedin-organization-type) | +| *Article* | The posted content of an Article. | [Post Article](#linkedin-post-article-type) | +| *Media* | The posted media. | [Post Media](#linkedin-post-media-type) | +| *Images* | The posted images. | [Post Media](#linkedin-post-media-type)[] | + +### LinkedIn Post Article Type + +Defines the mapping options of a LinkedIn Post Article object. + +| Field | Description | Type | Filters | +| --- | --- | --- | --- | +| *ID* | Unique identifier of the content. | `String` | + +### LinkedIn Post Media Type + +Defines the mapping options of a LinkedIn Post Media object. + +| Field | Description | Type | Filters | +| --- | --- | --- | --- | +| *ID* | Unique identifier of the content. | `String` | +| *Alt Text* | Alternative text for the media. | `String` | `limit` | +| *URL* | URL of the media. | `String` | +| *Type* | Type of the media content, either image or video. | `String` | + +### LinkedIn Organization Type + +Defines the mapping options of a LinkedIn Organization object. + +| Field | Description | Type | Filters | +| --- | --- | --- | --- | +| *ID* | Unique identifier of the organization. | `String` | +| *Name* | The organization name. | `String` | +| *Vanity Name* | The organization vanity name. | `String` | +| *Description* | The organization description. | `String` | `limit` | +| *Website* | The organization website. | `String` | +| *Logo URL* | The organization logo URL. | `String` | diff --git a/src/essentials-for-yootheme-pro/addons/sources/assets/provider-bluesky.svg b/src/essentials-for-yootheme-pro/addons/sources/assets/provider-bluesky.svg new file mode 100644 index 00000000..b212ac8b --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/sources/assets/provider-bluesky.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/sources/assets/provider-linkedin.svg b/src/essentials-for-yootheme-pro/addons/sources/assets/provider-linkedin.svg new file mode 100644 index 00000000..59ed6e68 --- /dev/null +++ b/src/essentials-for-yootheme-pro/addons/sources/assets/provider-linkedin.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/addons/sources/providers.md b/src/essentials-for-yootheme-pro/addons/sources/providers.md index 8ca944b4..c3e2dc30 100644 --- a/src/essentials-for-yootheme-pro/addons/sources/providers.md +++ b/src/essentials-for-yootheme-pro/addons/sources/providers.md @@ -3,6 +3,7 @@ Each Essentials multi-instance source relies on a provider that manages the source instances and workflow. To learn more about [sources](./), refer to the corresponding documentation. + @@ -12,6 +13,7 @@ Each Essentials multi-instance source relies on a provider that manages the sour + diff --git a/src/essentials-for-yootheme-pro/index.md b/src/essentials-for-yootheme-pro/index.md index 1d1622a3..1bb15869 100644 --- a/src/essentials-for-yootheme-pro/index.md +++ b/src/essentials-for-yootheme-pro/index.md @@ -14,8 +14,9 @@ Also take a look at the specific requirements of [YOOtheme Pro](https://yootheme | Version | YOOtheme Pro | WordPress | Joomla | PHP | | --- | --- | --- | --- | --- | -| Essentials v1 | 2.3/3 | 5/6 | 3.9/5 | 7.4/8.2 | -| Essentials v2 | 4/4.4 | 5/6 | 3.9/5 | 7.4/8.3 | +| Essentials v1 | 2/3 | 5/6 | 3.9/5 | 7.4/8.2 | +| Essentials v2.2 | 4.4 | 5/6 | 3.9/5 | 7.4/8.3 | +| Essentials v2.3 | 4.5+ | 5/6 | 3.9/5 | 7.4/8.3 | ## Changelog diff --git a/src/essentials-for-yootheme-pro/installation.md b/src/essentials-for-yootheme-pro/installation.md index f5609f82..8ba4e64a 100644 --- a/src/essentials-for-yootheme-pro/installation.md +++ b/src/essentials-for-yootheme-pro/installation.md @@ -25,7 +25,7 @@ Locate the **ZOOlanders Installer Plugin** and input the Download ID into it set ::: details WordPress Locate the **ZOOlanders Settings Panel** in Global Settings, then input the Download ID into it settings. -![Download ID WordPress](/essentials-for-yootheme-pro/assets/essential-settings-wordpress.png) +![Download ID WordPress](./assets/essential-settings-wordpress.png) ::: ## Upgrade diff --git a/src/essentials-for-yootheme-pro/sidebar.json b/src/essentials-for-yootheme-pro/sidebar.json index 4ba3d4db..32779e24 100644 --- a/src/essentials-for-yootheme-pro/sidebar.json +++ b/src/essentials-for-yootheme-pro/sidebar.json @@ -14,6 +14,10 @@ { "text": "Updating", "link": "/updating" + }, + { + "text": "v2.2", + "link": "/v2.2" } ] }, diff --git a/src/essentials-for-yootheme-pro/updating.md b/src/essentials-for-yootheme-pro/updating.md index c94dc90c..3e1a633c 100644 --- a/src/essentials-for-yootheme-pro/updating.md +++ b/src/essentials-for-yootheme-pro/updating.md @@ -18,7 +18,7 @@ In Joomla go to the Installer Options in the **Global Configuration**. ::: details WordPress In WordPress go to the **ZOOlanders Settings Panel** in Global Settings. -![Minimum Stability WordPress](/essentials-for-yootheme-pro/assets/essential-settings-wordpress.png) +![Minimum Stability WordPress](./assets/essential-settings-wordpress.png) ::: ## Updating Essentials diff --git a/src/essentials-for-yootheme-pro/v2.2/_data/addons.data.js b/src/essentials-for-yootheme-pro/v2.2/_data/addons.data.js new file mode 100644 index 00000000..42ef5d2d --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/_data/addons.data.js @@ -0,0 +1,13 @@ +import { createContentLoader } from 'vitepress'; + +export default createContentLoader('/essentials-for-yootheme-pro/addons/*/index.md', { + excerpt: true, + transform(rawData) { + return rawData.map((item) => { + return { + ...item.frontmatter, + link: item.url, + }; + }); + }, +}); diff --git a/src/essentials-for-yootheme-pro/v2.2/_data/auth-drivers.data.js b/src/essentials-for-yootheme-pro/v2.2/_data/auth-drivers.data.js new file mode 100644 index 00000000..2c2ed9e2 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/_data/auth-drivers.data.js @@ -0,0 +1,18 @@ +import { createContentLoader } from 'vitepress'; + +export default createContentLoader('/essentials-for-yootheme-pro/auth-drivers/*.md', { + excerpt: true, + transform(rawData) { + return rawData + .filter((item) => !item.url?.endsWith('/')) + .map((item) => { + const name = item.frontmatter?.title?.toLowerCase().replace(/ /g, '-'); + + return { + ...item.frontmatter, + icon: `/essentials-for-yootheme-pro/auth-drivers/assets/${name}.svg`, + link: item.url, + }; + }); + }, +}); diff --git a/src/essentials-for-yootheme-pro/v2.2/_data/storage-adapters.data.js b/src/essentials-for-yootheme-pro/v2.2/_data/storage-adapters.data.js new file mode 100644 index 00000000..0afe838a --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/_data/storage-adapters.data.js @@ -0,0 +1,18 @@ +import { createContentLoader } from 'vitepress'; + +export default createContentLoader('/essentials-for-yootheme-pro/storage/*.md', { + excerpt: true, + transform(rawData) { + return rawData + .filter((item) => !item.url?.endsWith('/')) + .map((item) => { + const name = item.frontmatter?.title?.toLowerCase().replace(/ /g, '-'); + + return { + ...item.frontmatter, + icon: `/essentials-for-yootheme-pro/storage/assets/${name}.svg`, + link: item.url, + }; + }); + }, +}); diff --git a/src/essentials-for-yootheme-pro/v2.2/_partials/storage-ftp.md b/src/essentials-for-yootheme-pro/v2.2/_partials/storage-ftp.md new file mode 100644 index 00000000..bedd96ab --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/_partials/storage-ftp.md @@ -0,0 +1,18 @@ +## FTP Storage Adapter + +The **S/FTP Storage Adapter** sets a remote server folder as storage through a S/FTP protocol. + +![S/FTP Storage Adapter](./assets/storage-ftp.webp) + +| Setting | Description | Required | +| --- | --- | :---: | +| *Name* | A name to identify this storage. | | +| *Host* | The URL to the server hosting the folder. | ✓ | +| *Port* | The port to use for establishing the connection with the server, defualts to `21`. | | +| *Username/Password* | The credentials for establishing the connection with the server. | ✓ | +| *Root* | The remote path that will be used as the storage root. | | +| *Write Permission* | Wether the storage will have Write in addition to Read permission. | | +| *Passive Mode* | Wether to use Passive Mode for the connection. | | +| *SSL* | Wether to use SSL for the connection. | | +| *UTF8* | Wether to use UTF8 as the files content encoding format. | | +| *Ignore Passive Address* | Wether to ignore Passive Address for the connection. | | diff --git a/src/essentials-for-yootheme-pro/v2.2/_partials/storage-local.md b/src/essentials-for-yootheme-pro/v2.2/_partials/storage-local.md new file mode 100644 index 00000000..b00f1be4 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/_partials/storage-local.md @@ -0,0 +1,17 @@ +## Local Storage Adapter + +The **Local Storage Adapter** sets a specific folder as a storage location. This folder can either be relative to the site directory, such as `layouts`, or absolute from the server root, such as `/home/user/layouts`. + +The designated folder must already exist and be accessible for reading and writing by the PHP user. Typically, this means that the folder should be located within the user's home directory. + +![Local Storage Adapter](./assets/storage-local.webp) + +| Setting | Description | +| --- | --- | +| *Name* | A name to identify this storage. | +| *Root* | The path that will be used as the storage root, e.g. `layouts` as a site relative path or `/layouts` as a server absolute. | +| *Write Permission* | Wether the storage will have Write in addition to Read permission. | + +::: warning Security Reminder +Folders within the site's root directory are publicly accessible and exposed to those who know the folder path and its contents naming, unless you [explicitly deny access to it](https://stackoverflow.com/questions/9507645/htaccess-deny-from-all). +::: diff --git a/src/essentials-for-yootheme-pro/v2.2/_partials/storage-s3.md b/src/essentials-for-yootheme-pro/v2.2/_partials/storage-s3.md new file mode 100644 index 00000000..d22faaaf --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/_partials/storage-s3.md @@ -0,0 +1,14 @@ +## S3 Storage Adapter + +The **S3 Storage Adapter** sets an Amazon S3 Bucket as storage. + +![S3 Storage Adapter](./assets/storage-s3.webp) + +| Setting | Description | Required | +| --- | --- | :---: | +| *Name* | A name to identify this storage. | +| *Account* | The AWS credentials for establishing the connection. | ✓ | +| *Bucket* | The name of the Amazon S3 bucket. | ✓ | +| *Region* | The region where the bucket is hosted. | ✓ | +| *Root* | The path relative to the bucket that will be used as the storage root. | +| *Write Permission* | Wether the storage will have Write in addition to Read permission. | diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/_partials/enable-addon.md b/src/essentials-for-yootheme-pro/v2.2/addons/_partials/enable-addon.md new file mode 100644 index 00000000..3061f28b --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/_partials/enable-addon.md @@ -0,0 +1,17 @@ +::: tip Requirements +Make sure Essentials for YOOtheme Pro is [installed](/essentials-for-yootheme-pro/installation) and _{{ $frontmatter.addon }} Addon_ enabled. +::: + +::: details How to enable {{ $frontmatter.addon }} Addon + +Open the _Customizer -> Essentials -> Advanced_ panel and spot the **{{ $frontmatter.addon }} Addon** checkbox. If is off, enable it, save the changes and refresh the page. + + + +Notice that **{{ $frontmatter.addon }}** is a premium addon not available in Essentials free release. + + + +![Enable {{ $frontmatter.addon }} Addon](./assets/enable-addon.gif) + +::: diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/advanced-rule-settings.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/advanced-rule-settings.md new file mode 100644 index 00000000..63d0072c --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/advanced-rule-settings.md @@ -0,0 +1,3 @@ +| *Advanced* | Advanced Tab settings. | +| -- *Name* | The name to reference this condition. | +| -- *Status* | Defines if the condition is `enabled` or `disabled`. | ✓ | diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-browser.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-browser.md new file mode 100644 index 00000000..fee678ce --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-browser.md @@ -0,0 +1,30 @@ +--- +title: Browser +description: Validates against the browser +collection: Device +--- + +## Browser Rule {#browser} + +
+ +
+ +The **Browser Rule** evaluates whether the browser agent matches one of the specified patterns, e.g. `Firefox 90`. + +Supported browsers: + +- Desktop: _Chrome_, _Firefox_, _Opera_, _Safari_, _Edge_, _MSIE_. +- Mobile: _Android_, _iPad_, _iPhone_, _iPod_, _Blackberry_, _IEMobile_, _NetFront_, _NokiaBrowser_, _Opera Mini_, _Opera Mobi_, _UC Browser_. + +::: warning Limited Detection +Notice that browser detection is not always accurate, users can setup their browser to mimic other agents. +::: + +![Browser Rule Settings](./assets/rules/rule-browser.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Selection* | The browsers list with optional version range that the browser agent must match for the condition to be considered valid. Separate the entries with a comma and/or new line, e.g `Chrome, Firefox 60-70`. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-date.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-date.md new file mode 100644 index 00000000..3ea0e101 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-date.md @@ -0,0 +1,20 @@ +--- +title: Date +collection: Date & Time +--- + +## Date Rule {#date} + +
+ +
+ +The **Date Rule** evaluates whether the current date matches a specified date range. + +![Date Rule Settings](./assets/rules/rule-date.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *From/Until* | The range of date in `Y-m-d` format that the current date must constrain to for the condition to be considered valid. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-datetime.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-datetime.md new file mode 100644 index 00000000..1a34150b --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-datetime.md @@ -0,0 +1,21 @@ +--- +title: Datetime +description: Validates against the current date & time +collection: Date & Time +--- + +## Datetime Rule {#datetime} + +
+ +
+ +The **Datetime Rule** evaluates whether the current date & time matches the specified datetime range. + +![Datetime Rule Settings](./assets/rules/rule-datetime.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *From/Until* | The range of date & time in `Y-m-d H:i` format that the current time must constrain to for the condition to be considered valid. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-day.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-day.md new file mode 100644 index 00000000..d0c277b5 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-day.md @@ -0,0 +1,21 @@ +--- +title: Day +description: Validates against the current day +collection: Date & Time +--- + +## Day Rule {#day} + +
+ +
+ +The **Day Rule** evaluates whether the current day matches one of the selected days. + +![Day Rule Settings](./assets/rules/rule-day.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Selection* | The days that the current day must match, at least one, for the condition to be considered valid. Timezone from Site configuration is automatically applied. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-device.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-device.md new file mode 100644 index 00000000..3ed0c718 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-device.md @@ -0,0 +1,25 @@ +--- +title: Device +description: Validates against the device type +collection: Device +--- + +## Device Rule {#device} + +
+ +
+ +The **Device Rule** evaluates whether the browser agent matches one of the selected device types, _Mobile_, _Table_, or _Desktop_. + +::: warning Limited Detection +Notice that browser detection is not always accurate, users can setup their browser to mimic other agents. +::: + +![Device Rule Settings](./assets/rules/rule-device.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Selection* | The device types that the browser agent must match, at least one, for the condition to be considered valid. . | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-dynamic.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-dynamic.md new file mode 100644 index 00000000..52ae2c04 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-dynamic.md @@ -0,0 +1,23 @@ +--- +title: Dynamic +description: Validates against dynamic content +collection: Misc +--- + +## Dynamic Rule {#dynamic} + +
+ +
+ +The **Dynamic Rule** determines whether a given value satisfies a specific set of conditions. This Rule is versatile and can be applied to multiple scenarios as both the value and the condition value can be set either static or dynamic. + +![Dynamic Rule Settings](./assets/rules/rule-dynamic.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Value* | The value that must validate for the condition to be considered valid. | ✓ | ✓ | +| *Evaluation* | The logic that will be applied to the specified value, _Is empty_, _Includes_, _Equals to_, _Greater than_, _Starts with_ or _Ends with_. | ✓ | +| *Evaluation Value* | The value that the main value will be evaluated with, if required by the evaluation logic. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-ip-address.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-ip-address.md new file mode 100644 index 00000000..67fc716a --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-ip-address.md @@ -0,0 +1,21 @@ +--- +title: IP Address +description: Validates against the IP Address +collection: Device +--- + +## IP Address Rule {#ip-address} + +
+ +
+ +The **IP Address Rule** evaluates whether the device ip address matches one of the specified patterns. + +![IP Address Rule Settings](./assets/rules/rule-ip-address.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Selection* | The IP Address list with optional range that the device must match for the condition to be considered valid. Separate the entries with a comma and/or new line, e.g `127.0.0.1, 128.0-129.1`. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-ip-geolocation.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-ip-geolocation.md new file mode 100644 index 00000000..c82b5b6b --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-ip-geolocation.md @@ -0,0 +1,24 @@ +--- +title: IP Geolocation +description: Validates against the IP location +collection: Device +--- + +## IP Geolocation Rule {#ip-geolocation} + +
+ +
+ +The **IP Geolocation Rule** evaluates whether the device ip location, determined by [MaxMind GeoIp Database](/essentials-for-yootheme-pro/settings#geoip-database), matches one of the specified patterns. + +![IP Geolocation Rule Settings](./assets/rules/rule-ip-geolocation.webp) + +| Setting | Description | Dynamic | +| --- | --- | :---: | +| *Continents* | The list of continents that the IP location must constraint to for the condition to be considered valid. International names and two letter codes are supported. Separate the entries with a comma and/or new line, e.g. `Africa, AU`. | ✓ | +| *Countries* | The list of countries that the IP location must constraint to for the condition to be considered valid. International names and [ISO Codes](https://www.iso.org/iso-3166-country-codes.html) are supported. Separate the entries with a comma and/or new line, e.g. `Spain, DE`. | ✓ | +| *Cities* | The list of cities that the IP location must constraint to for the condition to be considered valid. International names are supported. Separate the entries with a comma and/or new line, e.g. `Barcelona, Hamburg`. | ✓ | +| *Postal Codes* | The list of postal codes that the IP location must constraint to for the condition to be considered valid. Separate the entries with a comma and/or new line, e.g. `55455, 55456`. | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-language.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-language.md new file mode 100644 index 00000000..d4be14e3 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-language.md @@ -0,0 +1,21 @@ +--- +title: Language +description: Validates against the site's language +collection: Site +--- + +## Language Rule {#language} + +
+ +
+ +The **Language Rule** evaluates whether the site language matches one of the selected languages. + +![Language Rule Settings](./assets/rules/rule-language.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Selection* | The languages that the site must match, at least one, for the condition to be considered valid. Only the installed languages will be listed. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-month.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-month.md new file mode 100644 index 00000000..c725f916 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-month.md @@ -0,0 +1,21 @@ +--- +title: Month +description: Validates against the current month +collection: Date & Time +--- + +## Month Rule {#month} + +
+ +
+ +The **Month Rule** evaluates whether the current month matches one of the selected months. + +![Month Rule Settings](./assets/rules/rule-month.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Selection* | The months that the current month must match, at least one, for the condition to be considered valid. Timezone from Site configuration is automatically applied. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-operating-system.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-operating-system.md new file mode 100644 index 00000000..bc4072c1 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-operating-system.md @@ -0,0 +1,27 @@ +--- +title: Operating System +description: Validates against the operating system +collection: Device +--- + +## Operating System Rule {#operating-system} + +
+ +
+ +The **Operating System Rule** evaluates whether the browser agent matches one of the specified patterns, e.g. `MacOS 10.1`. + +Supported OS: _Mac OS X_, _Mac OS Classic_, _Linux_, _Open BSD_, _Sun OS_, _QNX_, _BeOS_, _OS/2_, _Windows_, _Windows Vista_, _Windows Server 2003_, _Windows XP_, _Windows 2000 sp1_, _Windows 2000_, _Windows NT_, _Windows Me_, _Windows 98_, _Windows 95_, _Windows CE_. + +::: warning Limited Detection +Notice that browser detection is not always accurate, users can setup their browser to mimic other agents. +::: + +![Operating System Rule Settings](./assets/rules/rule-os.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Selection* | The Operating System list with optional version range that the browser agent must match for the condition to be considered valid. Separate the entries with a comma and/or new line, e.g `Windows, Mac OS X 10.2-10`. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-season.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-season.md new file mode 100644 index 00000000..4a5221f8 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-season.md @@ -0,0 +1,22 @@ +--- +title: Season +description: Validates against the current season +collection: Date & Time +--- + +## Season Rule {#season} + +
+ +
+ +The **Season Rule** evaluates whether the current season matches one of the selected seasons. + +![Season Rule Settings](./assets/rules/rule-season.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Selection* | The seasons that the current season must match, at least one, for the condition to be considered valid. Timezone from Site configuration is automatically applied. | ✓ | ✓ | +| *Hemisphere* | The hemisphere from which to calculate the current season. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-time.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-time.md new file mode 100644 index 00000000..ecb95714 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-time.md @@ -0,0 +1,21 @@ +--- +title: Time +description: Validates against the current time +collection: Date & Time +--- + +## Time Rule {#time} + +
+ +
+ +The **Time Rule** evaluates whether the current time matches the specified time range. + +![Time Rule Settings](./assets/rules/rule-time.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *From/Until* | The range of time in `H:i` format that the current time must constrain to for the condition to be considered valid. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-url.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-url.md new file mode 100644 index 00000000..d9a89dee --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-url.md @@ -0,0 +1,22 @@ +--- +title: URL +description: Validates against the site's URL +collection: Site +--- + +## URL Rule {#url} + +
+ +
+ +The **URL Rule** evaluates whether the site URL matches one of the specified patterns. + +![URL Rule Settings](./assets/rules/rule-url.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Patterns* | The list of patterns that the Site URL must match for the condition to be considered valid. Separate the entries with a comma and/or new line, e.g `localhost, about/team`. | ✓ | ✓ | +| *Use RegExp* | Whether to enable [Regular Expressions](https://regex101.com) in the patterns. | | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-user-group.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-user-group.md new file mode 100644 index 00000000..55a9477b --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-user-group.md @@ -0,0 +1,26 @@ +--- +title: User Group +description: Validates against the current user's group +collection: Site +--- + +## User Group Rule {#user-group} + +
+ +
+ +The **User Group Rule** evaluates whether the current user is part of the selected user groups. + +::: warning Joomla Specific Rule +Notice that this rule is specific to the Joomla platform. +::: + +![User Group Rule Settings](./assets/rules/rule-user-group.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Selection* | The groups that the user must match, at least one, for the condition to be considered valid. | ✓ | ✓ | +| *Match All* | Whether all groups must be matched for the validation to pass. | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-user-level.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-user-level.md new file mode 100644 index 00000000..7a5b6baf --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-user-level.md @@ -0,0 +1,22 @@ +--- +title: User Level +description: Validates against current user access/role +collection: Site +--- + +## User Level Rule {#user-level} + +
+ +
+ +The **User Level Rule** evaluates whether the current user's access or role level matches one of the selection. + +![User Level Rule Settings](./assets/rules/rule-user-level.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Selection* | The Access or Role levels that the user must match, at least one, for the condition to be considered valid. | ✓ | ✓ | +| *Match All* | Whether all levels must be matched for the validation to pass. | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-user.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-user.md new file mode 100644 index 00000000..e5943fa5 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-user.md @@ -0,0 +1,21 @@ +--- +title: User +description: Validates against current user +collection: Site +--- + +## User Rule {#user} + +
+ +
+ +The **User Rule** evaluates whether the current user's `id` or `username` matches one of the selection. + +![User Rule Settings](./assets/rules/rule-user.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Selection* | The ids or usernames that the user must match, at least one, for the condition to be considered valid. Separate the entries with a comma and/or new line, e.g `346, johndoe`. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-week.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-week.md new file mode 100644 index 00000000..62b8f531 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/_partials/rule-week.md @@ -0,0 +1,21 @@ +--- +title: Week +description: Validates against the current week +collection: Date & Time +--- + +## Week Rule {#week} + +
+ +
+ +The **Week Rule** evaluates whether the current week of the year matches one of the patterns. + +![Week Rule Settings](./assets/rules/rule-week.webp) + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Selection* | The list or range of weeks in a year that the current week must match, considering that in average a year has 52 weeks and the week starts in Monday. Separate the entries with a comma and/or new line, e.g `2, 5-8`. | ✓ | ✓ | +| *Reversed* | Whether the evaluation result should be returned reversed. Use it to set a condition as `IS NOT`. | | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-addon.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-addon.webp new file mode 100644 index 00000000..f0138b47 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-addon.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition-evaluation.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition-evaluation.webp new file mode 100644 index 00000000..ef0bf1b0 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition-evaluation.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition-log.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition-log.webp new file mode 100644 index 00000000..11233537 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition-log.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition-logs.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition-logs.webp new file mode 100644 index 00000000..e5328a06 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition-logs.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition-rules.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition-rules.webp new file mode 100644 index 00000000..5e60c021 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition-rules.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition.webp new file mode 100644 index 00000000..be23e3d2 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/access-condition.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/compose-condition.gif b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/compose-condition.gif new file mode 100644 index 00000000..1117720c Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/compose-condition.gif differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/enable-addon.gif b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/enable-addon.gif new file mode 100644 index 00000000..b4ff9995 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/enable-addon.gif differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/open-condition-panel.gif b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/open-condition-panel.gif new file mode 100644 index 00000000..d06845bd Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/open-condition-panel.gif differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/review-evaluation-logs.gif b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/review-evaluation-logs.gif new file mode 100644 index 00000000..1c32df7b Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/review-evaluation-logs.gif differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-browser.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-browser.svg new file mode 100644 index 00000000..13eed443 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-browser.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-browser.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-browser.webp new file mode 100644 index 00000000..01b7bb78 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-browser.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-customizer.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-customizer.svg new file mode 100644 index 00000000..c3f68198 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-customizer.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-date.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-date.svg new file mode 100644 index 00000000..3d1ca80c --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-date.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-date.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-date.webp new file mode 100644 index 00000000..6c64585e Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-date.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-datetime.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-datetime.svg new file mode 100644 index 00000000..761a80a9 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-datetime.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-datetime.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-datetime.webp new file mode 100644 index 00000000..c63da8d4 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-datetime.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-day.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-day.svg new file mode 100644 index 00000000..8dfd37c0 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-day.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-day.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-day.webp new file mode 100644 index 00000000..3e807580 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-day.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-device.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-device.svg new file mode 100644 index 00000000..b63b4363 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-device.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-device.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-device.webp new file mode 100644 index 00000000..657d7fd7 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-device.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-dynamic-usecase-date.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-dynamic-usecase-date.webp new file mode 100644 index 00000000..13b1a2f0 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-dynamic-usecase-date.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-dynamic.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-dynamic.svg new file mode 100644 index 00000000..16633dd6 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-dynamic.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-dynamic.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-dynamic.webp new file mode 100644 index 00000000..0d7379ff Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-dynamic.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-ip-address.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-ip-address.svg new file mode 100644 index 00000000..d930c480 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-ip-address.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-ip-address.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-ip-address.webp new file mode 100644 index 00000000..40ebbc39 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-ip-address.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-ip-geolocation.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-ip-geolocation.svg new file mode 100644 index 00000000..d930c480 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-ip-geolocation.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-ip-geolocation.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-ip-geolocation.webp new file mode 100644 index 00000000..fffd783b Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-ip-geolocation.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-language.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-language.svg new file mode 100644 index 00000000..3bcc541e --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-language.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-language.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-language.webp new file mode 100644 index 00000000..0f597449 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-language.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-month.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-month.svg new file mode 100644 index 00000000..f54c2d0e --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-month.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-month.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-month.webp new file mode 100644 index 00000000..6d967a01 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-month.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-operating-system.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-operating-system.svg new file mode 100644 index 00000000..d8710043 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-operating-system.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-os.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-os.webp new file mode 100644 index 00000000..1871e4da Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-os.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-season.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-season.svg new file mode 100644 index 00000000..18db60ff --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-season.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-season.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-season.webp new file mode 100644 index 00000000..c92435cd Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-season.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-time.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-time.svg new file mode 100644 index 00000000..7ad740d1 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-time.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-time.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-time.webp new file mode 100644 index 00000000..af316fbb Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-time.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-url.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-url.svg new file mode 100644 index 00000000..ea394192 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-url.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-url.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-url.webp new file mode 100644 index 00000000..f933b03d Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-url.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user-group.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user-group.svg new file mode 100644 index 00000000..fb12dcad --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user-group.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user-group.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user-group.webp new file mode 100644 index 00000000..35c0c1ef Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user-group.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user-level.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user-level.svg new file mode 100644 index 00000000..ea94b4c4 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user-level.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user-level.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user-level.webp new file mode 100644 index 00000000..fb465a6a Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user-level.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user.svg new file mode 100644 index 00000000..a8896c51 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user.webp new file mode 100644 index 00000000..338e8a53 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-user.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-week.svg b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-week.svg new file mode 100644 index 00000000..76536ff1 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-week.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-week.webp b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-week.webp new file mode 100644 index 00000000..de8ddc0f Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/rules/rule-week.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/set-evaluation-mode.gif b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/set-evaluation-mode.gif new file mode 100644 index 00000000..ca1dd976 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/access/assets/set-evaluation-mode.gif differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/custom-rule.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/custom-rule.md new file mode 100644 index 00000000..1ae6ca35 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/custom-rule.md @@ -0,0 +1,87 @@ +--- +description: Learn now to create a Custom Access Condition Rule for Access and others +--- + +# Custom Access Rule + +{{ $frontmatter.description }}. + +Follow the bellow steps to create your custom rule, you can alternatively use this [rule example](https://github.com/zoolanders/ytp-condition-rules) in GitHub which includes more details and a working code. Also notice that core rules are a useful resource to get started and can be found in the `modules/condition/rules` directory relative to the [installation folder](/essentials-for-yootheme-pro/installation). + +::: warning Extending YOOtheme Pro +The following guide assumes you are already familar with code, PHP, and [extending YOOtheme Pro](https://yootheme.com/support/yootheme-pro/joomla/developers-child-themes#extend-functionality). +::: + +## 1. Create the Rule Class + +Start by creating a PHP Class that extends `ZOOlanders\YOOessentials\Access\AccessRule` and declares a `resolve` function. Store it into a YOOtheme Pro Child Theme or a Module. + +```php +use ZOOlanders\YOOessentials\Access\AccessRule; + +class MyCustomRule extends AccessRule +{ + /** + * @param \stdClass $props The settings values from the rule fields + * @param \stdClass $node The current element node being evaluated + */ + public function resolve($props, $node) : bool + { + // return early if no configuration is set + if (!isset($props->foo)) { + return true; + } + + // evaluate... + $result = false; + + // return a boolean indicating the validation status + return $result; + } +``` + +## 2. Create the Rule Config + +Create a config file in JSON format that will specify the rule configuration, store it beside the PHP class as `config.json`. + +```json +{ + "name": "", + "title": "", + "icon": "", + "description": "", + "group": "", + "collection": "", + "fields": {} +} +``` + +| Prop | Description | Required | +| --- | --- | :---: | +| *Name* | The rule name prefixed by `yooessentials_access_`, e.g. `yooessentials_access_myrule`. | ✓ | +| *Title* | The rule title as should appear in the UI, e.g. `My Rule`. | ✓ | +| *Icon* | The absolute path to the rule icon. | ✓ | +| *Fields* | The rule fields configuration. Those will hold the values of the configuration and are based on the same workflow as the [Elements Fields](https://yootheme.com/support/yootheme-pro/joomla/developers-elements). | ✓ | +| *Description* | The rule description explaining what it validates. | +| *Group* | Rules with the same group will be displayed under the same section in the UI. | +| *Collection* | Rules of the same collection will be displayed joined in the UI, indicating a strong relation between them. | + +## 3. Declare the Rule + +Declare custom rules by adding a `yooessentials-condition-rules` key to the `config.php` or `bootstrap.php` file referencing the rule class and a path to it config. + +```php + [ + MyCustomRule::class => __DIR__ . '/rules/MyCustomRule/config.json', + MyOtherCustomRule::class => __DIR__ . '/rules/MyOtherCustomRule/config.json', + ] + +]; +``` diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/index.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/index.md new file mode 100644 index 00000000..85bf373a --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/index.md @@ -0,0 +1,29 @@ +# Access Conditions Overview + +Compose rules that will determine the evaluation criteria for rendering an element. With support for static and dynamic values, establish custom evaluation logic, and view logs directly in the builder to gain a better understanding of the evaluation results. + +The rules are composed in the builder element _Advanced Tab_ settings. Go through the [Integration Guide](./integration) to learn more about how to set a condition. + +![Access Condition](./assets/access-condition.webp) + +## Composable Rules + +Essentials provides a variety of core [rules](./rules), totaling over 16 organized into groups of _Site_, _Device_ and _DateTime_. It is possible to include multiple types of the same rule within a single condition, with different configurations. + +![Access Condition Rules](./assets/access-condition-rules.webp) + +## Evaluation Mode + +When an Access Condition is applied to an element, it will first evaluate each of the specified rules individually, then will apply an evaluation mode, `AND|OR|Custom`, to determine the final result. The `AND` mode requires all rules to pass, `OR` mode requires at least one, while `Custom` mode would apply a custom logic. + +A custom logic is inputed with a query that references each rule using their order number within brackets, such as `{1}`, and use `AND|OR` operators, such as `{1} AND {2}`, or `{1} OR {2}`. Parentheses can also be used to alter the execution order, such as `({1} AND {2}) OR {3}`. + +![Access Condition Evaluation](./assets/access-condition-evaluation.webp) + +## Evaluation Logs + +While in the customizer, the Access Condition will display evaluation logs for each rule as well the final result. These logs can be used to gain insights into the evaluation process and troubleshoot any issues with the logic. + +![Access Condition Evaluation Logs](./assets/access-condition-logs.webp) + +![Access Condition Evaluation Log](./assets/access-condition-log.webp) diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/integration.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/integration.md new file mode 100644 index 00000000..96111f48 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/integration.md @@ -0,0 +1,33 @@ +--- +addon: Access +--- + +# Access Conditions Integration + +Compose a rule that will determine the evaluation criteria for rendering an element. + + + +## 1. Open the Condition Panel + +Navigate to the Builder and select the element you want to condition. From there, open the Access Condition Rules panel located under the [Advanced Settings](https://yootheme.com/support/yootheme-pro/joomla/elements). + +![Open Access Condition Panel](./assets/open-condition-panel.gif) + +## 2. Compose the Condition + +Check the [rules reference](./rules) to gain insights and form the condition according to your needs. In this particular case, we will be using a Day rule. + +![Compose Access Condition](./assets/compose-condition.gif) + +## 3. Set an Evaluation Mode + +If a condition is composed of multiple rules, the default evaluation mode is `AND`, meaning the condition will only be validated if all rules evaluate as true. However, you can also set the mode to `OR` or even `Custom`. In this case we are going to keep the default mode. + +![Set Access Condition Evaluation Mode](./assets/set-evaluation-mode.gif) + +### 4. Final Review + +Review the logs to confirm that the evaluation is using the correct data and that the outcome match your expectation. + +![Review Access Condition Evaluation Logs](./assets/review-evaluation-logs.gif) diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/access/rules.md b/src/essentials-for-yootheme-pro/v2.2/addons/access/rules.md new file mode 100644 index 00000000..4c417ed3 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/access/rules.md @@ -0,0 +1,22 @@ +# Access Rules + +A list of rules to compose a condition. To learn more about [conditions](./), see the corresponding documentation. + + + + + + + + + + + + + + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-alias.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-alias.webp new file mode 100644 index 00000000..fb9ff06b Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-alias.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-button.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-button.webp new file mode 100644 index 00000000..b54587e8 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-button.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-dynamic-content.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-dynamic-content.webp new file mode 100644 index 00000000..120a4ff7 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-dynamic-content.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-editor.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-editor.webp new file mode 100644 index 00000000..a5f0461f Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-editor.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-filters.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-filters.webp new file mode 100644 index 00000000..f551f9ff Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/composable-sources/compose-filters.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/dynamic-query-arguments.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/dynamic-query-arguments.webp new file mode 100644 index 00000000..3f4c0954 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/dynamic-query-arguments.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/enable-addon.gif b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/enable-addon.gif new file mode 100644 index 00000000..a4984376 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/enable-addon.gif differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-composed-source.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-composed-source.webp new file mode 100644 index 00000000..fd1ff6d7 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-composed-source.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-custom-query-config.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-custom-query-config.webp new file mode 100644 index 00000000..e62afa7c Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-custom-query-config.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-custom-query.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-custom-query.webp new file mode 100644 index 00000000..e8f3f53c Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-custom-query.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-dynamic-button.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-dynamic-button.webp new file mode 100644 index 00000000..07afc7d9 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-dynamic-button.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-dynamic-options.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-dynamic-options.webp new file mode 100644 index 00000000..1ce4b235 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-dynamic-options.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-filter-implode.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-filter-implode.webp new file mode 100644 index 00000000..7102be94 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-filter-implode.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-global-query.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-global-query.webp new file mode 100644 index 00000000..8b5b4e64 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-global-query.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-global-source.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-global-source.webp new file mode 100644 index 00000000..b905abba Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-global-source.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-inherit-node.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-inherit-node.webp new file mode 100644 index 00000000..9fe7f160 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-inherit-node.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-inherit-parent.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-inherit-parent.webp new file mode 100644 index 00000000..d944ed85 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-inherit-parent.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-page-query.webp b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-page-query.webp new file mode 100644 index 00000000..5a4111ab Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/assets/field-page-query.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/composed-sources.md b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/composed-sources.md new file mode 100644 index 00000000..2d3a9f06 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/composed-sources.md @@ -0,0 +1,31 @@ +# Composed Sources + +Composed Sources is an Essential only feature which doesn't limit you on the builder nodes tree to compose a source but rather let you write content and include between words dynamic content from any source as placeholders. + +![Compose Editor](./assets/composable-sources/compose-editor.webp) + +## Compose Content + +Composed Source will appear as a dynamic option for all fields. Once selected, it will open a new panel with a dedicated editor to compose a source by combining static text with values from dynamic content sources. + +![Field Composed Source](./assets/field-composed-source.webp) + +If a field has a dynamic content already assigned, a new `compose` icon will appear. If clicked the current source will be migrated to a composed source and open the editor where you will see the migrated source already inserted into the content. Now you can just start typing any additional content you may want to add, or even add new dynamic content to it. + +![Compose Editor](./assets/composable-sources/compose-editor.webp) + +To do so, just press the _Add Dynamic_ button on the top right of the editor, and choose any dynamic option as a new dynamic content. To learn more about Essentials [Dynamic Content](./), see the corresponding documentation. + +![Field Dynamic Options](./assets/field-dynamic-options.webp) + +## Filters and Arguments + +Once a dynamic content placeholder has been added to the content, you can click on it to show the editing interface that you're already used to from the dynamic workflow. As usual you can set filters, arguments if available, and the changes will be reflected immediately. + +![Compose Filters](./assets/composable-sources/compose-filters.webp) + +## Set an Alias + +Sometimes the placeholder name can get too long or not really meaningful. For these cases, you can set an alias by clicking on the placeholder, and then click on the _Set alias_ link near the name of the source. Fill in any name there, and it will be used in the placeholder tag instead of the default one. Don't worry, this has no impact at all on the rendering of the page, it's just an editing utility! + +![Compose Alias](./assets/composable-sources/compose-alias.webp) diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/index.md b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/index.md new file mode 100644 index 00000000..94bb1fad --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/index.md @@ -0,0 +1,99 @@ +# Dynamic Content Overview + +Essentials extends YOOtheme Pro [Dynamic Content](https://yootheme.com/support/yootheme-pro/joomla/dynamic-content) with advanced features that integrates natively into the builder. Lets find out what are those advanced features all about. + +## Field Sources + +In YOOtheme Pro a dynamic content source is set on a node level, e.g. a Text element, in which case the elements fields will be enhanced with an option to map a dynamic content from the node source. Essentials expands on that notion adding the option to choose a source on an element field level regardless of the element source configuration. + +With that in mind is expected that a Dynamic option will always be present above the element fields allowing to map to those any source directly. + +![Field Dynamic Options](./assets/field-dynamic-options.webp) + +If the mapped source content results in multiple values, those will be joined with a custom separator, or optionally left as is for the underlying element to deal with the content instead. + +![Field Implode Filter](./assets/field-filter-implode.webp) + +### Inherit Node + +What if a source has already been set in the element! In such case, an _Inherit Node_ option will appear and you can opt to inherit the souce from the node for that field specifically. + +![Field Inherit Node](./assets/field-inherit-node.webp) + +### Inherit Parent + +Similarly, if an upper level parent with a source is found, an _Inherit Parent_ will appear as a dynamic option. + +![Field Inherit Parent](./assets/field-inherit-parent.webp) + +### Page Sources + +If there are source queries related to the current view, e.g. _Article_ or _Post_, those will be available as dynamic options under the _Page_ group. + +![Field Page Query](./assets/field-page-query.webp) + +### Global Sources + +Global sources will always be available under the group _Global_, such is the _Site Source_, as well as the custom set [global queries](#global-queries). + +![Field Global Query](./assets/field-global-query.webp) + +### Custom Queries + +If none of the dynamic options fit the use case, there is a _Custom Query_ option that allows fetching a source with a custom query. + +![Field Custom Query](./assets/field-custom-query.webp) + +![Field Custom Query Config](./assets/field-custom-query-config.webp) + +::: warning +Custom queries might affect page loading performance as the query would be executed for each field instead of each node. When possible, set those on a node level instead. +::: + +### Composed Sources + +Finally, the _Composed Source_ option allows composing any dynamic options in a free-form text where sources are simple to set placeholders. As this is rather a feature reach option there is a [dedicated documentation](composed-sources) about it. + +![Field Composed Source](./assets/field-composed-source.webp) + +## Global Queries + +A global query is a custom source query made available as a global dynamic source option. It can help speed up the creation of layouts that use complex queries over and over. Those can be managed within the [Global Queries Manager](/essentials-for-yootheme-pro/settings#global-queries). + +![Global Queries](/essentials-for-yootheme-pro/assets/global-queries-manager.gif) + +## Query Arguments + +YOOtheme Pro Dynamic source queries arguments are limited to static configuration. Essentials breakes through that limitation and allows setting dynamic arguments opening the door for even more advanced dynamic workflows. + +![Dynamic Query Arguments](./assets/dynamic-query-arguments.webp) + +::: warning Obvious Limitation +The arguments dynamic options are limited to _Page_, _Global_ and _Custom_ sources. That's expected as it would not be possible to inherit dynamic content from a node which source hasn't been set yet! +::: + +If you want your custom sources to support this feature, add `'source' => 'true'` property to your source query aguments configuration. + +```php +// query fields configuration +'fields' => [ + 'events' => [ + 'type' => [ + 'listOf' => 'Event', + ], + 'args' => [ + 'timeMin' => [ + 'type' => 'String', + ] + ], + 'metadata' => [ + 'fields' => [ + 'timeMin' => [ + 'label' => 'Time Min', + 'source' => 'true', + ], + ], + ], + ], +] +``` diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/integration.md b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/integration.md new file mode 100644 index 00000000..8f572d72 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/dynamic/integration.md @@ -0,0 +1,13 @@ +--- +addon: Dynamic +--- + +# Dynamic Content Integration + +Extend YOOtheme Pro Dynamic Content workflow with advanced dynamic features. + + + +At this point the Dynamic Content workflow has been extended, take the time to delve into the new [dynamic concepts](./). Incorporate them into your layouts as needed, using the familiar approach, but now with a wider range of mapping options available. + +![Field Dynamic Options](./assets/field-dynamic-options.webp) diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/add-element.gif b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/add-element.gif new file mode 100644 index 00000000..81aace49 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/add-element.gif differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/chartjs-element.webp b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/chartjs-element.webp new file mode 100644 index 00000000..d084e589 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/chartjs-element.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/chartjs-preset.zip b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/chartjs-preset.zip new file mode 100644 index 00000000..4b794d66 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/chartjs-preset.zip differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/enable-addon.gif b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/enable-addon.gif new file mode 100644 index 00000000..218b2834 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/enable-addon.gif differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/icon/chart.svg b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/icon/chart.svg new file mode 100644 index 00000000..efc0c496 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/icon/chart.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/icon/markdown.svg b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/icon/markdown.svg new file mode 100644 index 00000000..0076ed09 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/icon/markdown.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/icon/social-sharing.svg b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/icon/social-sharing.svg new file mode 100644 index 00000000..6cff3396 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/icon/social-sharing.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/markdown-element.webp b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/markdown-element.webp new file mode 100644 index 00000000..e4de8074 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/markdown-element.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/social-sharing-element.webp b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/social-sharing-element.webp new file mode 100644 index 00000000..f20fe9a6 Binary files /dev/null and b/src/essentials-for-yootheme-pro/v2.2/addons/elements/assets/social-sharing-element.webp differ diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/chart-element.md b/src/essentials-for-yootheme-pro/v2.2/addons/elements/chart-element.md new file mode 100644 index 00000000..69c49a37 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/elements/chart-element.md @@ -0,0 +1,29 @@ +--- +addon: 'Elements' +--- + +# Chart Element + +A chart element based on Chart.js. + +The Chart Element allows you to display static and dynamic data using visually appealing charts and graphs based on the popular JavaScript library [Chart.js v4.3.0](https://www.chartjs.org/docs/4.3.0/). + +Variety of chart types are supported, including Line, Vertical Bar, Horizontal Bar, Radar, Pie, Doughnut, Polar Area, Bubble, and Scatter. You can also customize the appearance of your charts using a range of options and settings. + +![Chart Element](./assets/chartjs-element.webp) + + + +## Quick Start + +Setting up a Dynamic Chart can be somewhat overwhelming, for an easier start you can download this combo of a _Section_ plus _CSV Data_ and then do this simple setup: + +1. [Download preset](/presets/chart-element.zip) and unzip. +1. Create a new [CSV Source](/essentials-for-yootheme-pro/addons/sources/providers.html#csv) based on the csv file. +1. Open the builder, import the layout and render it content. +1. In the Chart element open the first _Dataset_, then again open its _Data Item_. +1. In the _Advanced Tab_ of the item choose the previously created source as its Dynamic Content. + +::: warning Sources Addon Required +Notice that this preset is dependent on the premium [Sources Addon](/essentials-for-yootheme-pro/addons/sources/) for the CSV data source creation. +::: diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/index.md b/src/essentials-for-yootheme-pro/v2.2/addons/elements/index.md new file mode 100644 index 00000000..7402b36e --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/elements/index.md @@ -0,0 +1,12 @@ +--- +addon: Elements +description: Create visually impressive charts, process markdown or let users share on social media +--- + +# Elements Overview + +Create visually appealing charts from static and dynamic data, process markdown content or let users share your website's content on their social media. + +Essential elements can be found in the element library under _Essentials_. They are standard YOOtheme Pro [elements](https://yootheme.com/support/yootheme-pro/joomla/elements), to learn more about general element settings, see the corresponding documentation. + +![Add Element](./assets/add-element.gif) diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/markdown-element.md b/src/essentials-for-yootheme-pro/v2.2/addons/elements/markdown-element.md new file mode 100644 index 00000000..ac5e0d8a --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/elements/markdown-element.md @@ -0,0 +1,13 @@ +--- +addon: 'Elements' +--- + +# Markdown Element + +A markdown element based on CommonMark. + +Markdown is a lightweight markup language that is used to create content with plain text syntax. With the Markdown Element, static or dynamic markdown content can be rendered with [CommonMark](https://commonmark.org) and cached for optimal performance. + +![Markdown Element](./assets/markdown-element.webp) + + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/elements/social-sharing-element.md b/src/essentials-for-yootheme-pro/v2.2/addons/elements/social-sharing-element.md new file mode 100644 index 00000000..14e307db --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/elements/social-sharing-element.md @@ -0,0 +1,28 @@ +--- +addon: 'Elements' +--- + +# Social Sharing Element + +A social network sharing element. + +Enable your users to share your website's content on their preferred social media platform, whether it be Twitter, Facebook, WhatsApp, Viber, a custom network that you have established, or even Email. + +![Social Sharing Element](./assets/social-sharing-element.webp) + + + +## Content Preview of a Shared Url + +When a URL is shared in a Social Media or App is totally up to the plaform if and how to extract the content preview from it, but luckily there are some standards. Most of platforms, including Facebok, relies on the Open Graph protocol, while Twitter has it own called Twitter Cards. Our recommendation is to support both. + +- [Information and guide for Open Graph](https://developers.facebook.com/docs/sharing/webmasters) +- [Information and guide for Twitter Cards](https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards) + +## Share Current Page URL by Email + +Sharing the current site page by email is possible, but requires additional steps. + +1. First of all we need to retreieve the current page URL. Do so using the global _Request_ source part of Essentials Sources. +1. Then map it _Href_ property to the MailTo body field. +1. Further customizer thee body content using the _before_ and _after_ filters. diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-acymailing.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-acymailing.md new file mode 100644 index 00000000..e31e230f --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-acymailing.md @@ -0,0 +1,30 @@ +## AcyMailing Action {#acymailing} + +
+ +
+ +The **AcyMailing Action** subscribes or unsubscribes a member from an [AcyMailing](https://www.acymailing.com/) list. + +### Subscribe {#acymailing-subscribe} + +Create or update an AcyMailing list subscriber. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Email* | Subscriber's email address. | ✓ | ✓ | +| *Name* | Subscriber's name, it will be autocreated from the email if omited. | | ✓ | +| *Status* | Subscriber's confirmation status. | | ✓ | +| *Lists* | The lists to which to subscribe. | ✓ | ✓ | +| *Custom Fields* | Subscriber's additional data specified by AcyMailing custom fields. | ✓ | ✓ | + + +### Unsubscribe {#acymailing-unsubscribe} + +Unsubcribe an AcyMailing list subscriber. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Email* | Subscriber's email address. | ✓ | ✓ | +| *Lists* | The lists to which to subscribe. | ✓ | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-airtable.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-airtable.md new file mode 100644 index 00000000..9f9226ee --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-airtable.md @@ -0,0 +1,36 @@ +## Airtable Action {#airtable} + +
+ +
+ +The **Airtable Action** creates or deletes records from an [Airtable](https://airtable.com/) base. + +### Create Record {#airtable-create-record} + +Creates or update a base record. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Authentication* | The Airtable authentication credentials. | ✓ | +| *Base* | The Airtable base which to connect to. | ✓ | +| *Table* | The Airtable table which to connect to. | ✓ | +| *Record* | The Airtable record ID which to update. If left empty, a new record will be created instead. | | ✓ | +| *Fields* | Data mapping for the record fields. | ✓ | ✓ | +| *Type Cast* | When enabled, Airtable API will perform best-effort for automatic data conversion. E.g. from a string to integer. | +| *Replace* | When enabled, Airtable API will replace the entire record instead of patch it. | + + + + +### Delete Record {#airtable-delete-record} + +Deletes a base record. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Authentication* | The Airtable authentication credentials. | ✓ | +| *Base* | The Airtable base which to connect to. | ✓ | +| *Table* | The Airtable table which to connect to. | ✓ | +| *Record* | The Airtable record ID which to delete. | ✓ | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-alter.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-alter.md new file mode 100644 index 00000000..a34ed01f --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-alter.md @@ -0,0 +1,22 @@ +## Alter Action {#alter} + +
+ +
+ +The **Alter Action** adds or alters the submitted data allowing a wide range of use cases. + +- Duplicate a submitted date with a custom format for consequent actions use. +- Add context information to the Submission, e.g. the _Request -> Timestamp_ (current date & time) or IP. +- Add sensitive data without the need to expose it in a hidden input. + +::: warning Order is important +Notice that this action must be executed before any other action that might rely on it altered data. +::: + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Data* | The list of data entries to add to the submission. | ✓ | ✓ | +| -- *Name* | The name or key for the data entry, if data already exists it value will be overwritten. | ✓ | +| -- *Value* | The value for the data entry. | ✓ | ✓ | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-download.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-download.md new file mode 100644 index 00000000..186516db --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-download.md @@ -0,0 +1,12 @@ +## Download Action {#download} + +
+ +
+ +The **Download Action** triggers a download of a specified file. Use it to provide the submitter with an asset only after a validated submission. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *File* | The path to the file which download to trigger. | ✓ | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-email.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-email.md new file mode 100644 index 00000000..f0b0d6bc --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-email.md @@ -0,0 +1,29 @@ +## Email Action {#email} + +
+ +
+ +The **Email Action** sends preset emails with support for attachments. Use it to send a _Thank You_ email to the submitter, a transactional email to the site owner, etc. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Subject* | The subject of the email. | ✓ | ✓ | +| *Recipients* | The list of addresses to which the email will be sent, separated by a comma. | ✓ | ✓ | +| *Body* | The main content of the email. | ✓ | ✓ | +| *Send as HTML* | Should the email content be sent as HTML instead of plain text. | +| *Reply To* | The list of addresses to which the recipient will be replying, separated by a comma. | ✓ | +| *Static Attachments* | The list of server files that will be attached to the email. | ✓ | +| *Dynamic Attachments* | The list of Upload Fields which files will be attached to the email. | ✓ | +| *CCS* | The list of addresses to which the email will be sent as a [Carbon Copy](https://en.wikipedia.org/wiki/Carbon_copy), separated by a comma. | ✓ | +| *BCCS* | The list of addresses to which the email will be sent as a [Blind Carbon Copy](https://en.wikipedia.org/wiki/Blind_carbon_copy), separated by a comma. | ✓ | +| *From Name/Email* | The name and email address of the email sender, defaults to the site configuration one. | ✓ | + + +::: tip Submitted Attachments +When a file is submitted by the user, the [Data Placeholder](./index#data-placeholders) of the uploaded file holds just the name of the file, if you want to send that file attached to the email set it as a dynamic attachment instead. +::: + +::: warning Reply To +If you want to receive an email like if it was sent by the submitter, use _Reply To_ instead of _From Email_. Forcing the email sender to a different value is considered a bad practice and might affect the delivery rate. +::: diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-mailchimp.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-mailchimp.md new file mode 100644 index 00000000..d160a041 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-mailchimp.md @@ -0,0 +1,41 @@ +## Mailchimp Action {#mailchimp} + +
+ +
+ +The **Mailchimp Action** creates, updates or removes a member from a [Mailchimp](https://mailchimp.com/) audience. + +### Add member to a list {#mailchimp-member-upsert} + +Create or update a Mailchimp audience member. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Account* | The Mailchimp account specified with oAuth or an API Key. | ✓ | +| *Audience* | The audience to which to add a new member or alter an existing. | ✓ | +| *Update if exists* | Specifies if the member data should be updated if it already exists. | +| *Skip Merge Fields validation* | Specifies if Merge Fields validation should be skipped. | +| *Email Address* | Member's email address. | ✓ | ✓ | +| *Email Type* | The email type the member has requested to get (html or text). | | ✓ | +| *Status* | Member's subscription status, for double opt-in set as pending. | | ✓ | +| *Language* | Member's language, used for segmentation purpose. If omitted Mailchimp will attempt to detect it with member's further interaction. | | ✓ | +| *VIP* | Mark the member as [VIP](https://mailchimp.com/help/designate-and-send-to-vip-contacts) for targeted campaigns. | | ✓ | +| *Location* | Member's location latitute and longitude separated by a comma. Used for segmentation purpose. | | ✓ | +| *Tags* | A list of tags, separated by a comma or newline, associated with the member. Used for segmentation purpose. | | ✓ | +| *Merge Fields* | Specific to the selected audience, [Merge Fields](https://mailchimp.com/developer/marketing/docs/merge-fields) determines additional information about members. | | ✓ | +| *Interests* | Specific to the selected audience, determines the member interests used in targeted campaigns. | | ✓ | +| *Marketing Permissions* | Specific to the selected audience, determines the memebers marketing consents. | | ✓ | + + +### Remove member from a list {#mailchimp-member-remove} + +Archive or delete a Mailchimp audience member. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Account* | The Mailchimp account specified with oAuth or an API Key. | ✓ | +| *Audience* | The audience from which to remove a member. | ✓ | +| *Email Address* | Member's email address. | ✓ | ✓ | +| *Delete Instead* | Delete instead of archive. The member will be removed from the list and all it personally identifiable information will be deleted. This will make it impossible to re-import the list member. | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-message.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-message.md new file mode 100644 index 00000000..45a13a0e --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-message.md @@ -0,0 +1,12 @@ +## Message Action {#message} + +
+ +
+ +The **Message Action** displays a custom message in a modal. Use it to show the submitter a _Thank You_ message or additional information. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Message* | The content to display in the modal. | ✓ | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-redirect.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-redirect.md new file mode 100644 index 00000000..d55bcc3e --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-redirect.md @@ -0,0 +1,14 @@ +## Redirect Action {#redirect} + +
+ +
+ +The **Redirect Action** redirects the browser to a specified URL, with an optional message that will be displayed using the Joomla or WordPress core message display system. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Redirect To* | The URL where to redirect the browser to. | ✓ | ✓ | +| *New Window* | Should the redirection happen in a new window instead. | +| *Timeout* | The seconds to wait before triggering the redirect. | + diff --git a/src/essentials-for-yootheme-pro/addons/forms/_partials/action-save-csv.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-save-csv.md similarity index 100% rename from src/essentials-for-yootheme-pro/addons/forms/_partials/action-save-csv.md rename to src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-save-csv.md diff --git a/src/essentials-for-yootheme-pro/addons/forms/_partials/action-save-database.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-save-database.md similarity index 100% rename from src/essentials-for-yootheme-pro/addons/forms/_partials/action-save-database.md rename to src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-save-database.md diff --git a/src/essentials-for-yootheme-pro/addons/forms/_partials/action-save-google-sheet.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-save-google-sheet.md similarity index 100% rename from src/essentials-for-yootheme-pro/addons/forms/_partials/action-save-google-sheet.md rename to src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-save-google-sheet.md diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-validate.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-validate.md new file mode 100644 index 00000000..2fe3a1d6 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/action-validate.md @@ -0,0 +1,13 @@ +## Validate Action {#validate} + +
+ +
+ +The **Validate Action** validates the submitted data with custom condition rules, if the validation fails no further actions will be executed. + +| Setting | Description | Required | Dynamic | +| --- | --- | :---: | :---: | +| *Conditions* | The condition that will be used for validation. | ✓ | ✓ | +| *Message* | The message that will be displayed if the validation fails. | ✓ | + diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-action-content-mapping.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-action-content-mapping.md new file mode 100644 index 00000000..1a578c90 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-action-content-mapping.md @@ -0,0 +1,7 @@ +Once the basic configuration has been set, the resource fields will load for mapping. The mapping will determine the value that each resource field will be created or updated with. Each field can be mapped to a static or dynamic value. + +![Save to Action Mapping](./assets/actions/action-saveto-mapping.webp) + +::: tip Most mapping is optional +In fact, mapping is disabled by default and must be enabled for each field by clicking on the last toggle icon. +::: diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-action-settings.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-action-settings.md new file mode 100644 index 00000000..e9953623 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-action-settings.md @@ -0,0 +1,4 @@ +| Advanced | +| *Action Name* | The name to reference this action. | +| *Status* | Defines if the action is `enabled` or `disabled`. | +| *Execution* | A composed condition that must be met in order for the action to be executed. | | ✓ | diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-element-options.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-element-options.md new file mode 100644 index 00000000..6fe8b0fe --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-element-options.md @@ -0,0 +1,10 @@ +Options are specified as child items that can be input manually as well as dynamically with the use of a Dynamic Content source. Each option has the following settings: + +![Field Options](./assets/elements/options.webp) + +| Setting | Description | Required | +| --- | --- | :---: | +| *Value* | The option value, must be unique among its siblings. | ✓ | +| *Text* | The option text, defaults to the value if omitted. HTML tags are supported. | ✓ | +| *State* | Defines if the option is _Disabled_ or _Enabled_. Disabled options are unusable and unclickable. | ✓ | +| *Id* | The option ID attribute, it overrides any ID set in the parent element. | ✓ | diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-element-settings.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-element-settings.md new file mode 100644 index 00000000..c72115ca --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-element-settings.md @@ -0,0 +1,6 @@ +| *Label* | The title for the field that represents the field data. | ✓ | +| *Control* | The name that identifies the field control within the form. It's required and must be unique for the Form Area. | +| *Value* | The default value for the field. The user can change it. | ✓ | +| *Readonly* | Should the field be read-only. Any default value will be unedible. | +| *Autofocus* | Should the field will be autofocused as soon as the page loads. Only one field can be focused on each page. | +| *Sync ID / Control* | Should the field ID attribute obtain it value from the Control Name. | diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-element-validation.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-element-validation.md new file mode 100644 index 00000000..7c1a4bd2 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/common-element-validation.md @@ -0,0 +1,2 @@ +| *Required* | Defines if the field must have a value. | ✓ | ✓ | ✓ | +| *Error Message* | A message that will be displayed if the element validation fails. Optionally use `{fieldlabel}` as placeholder, it will be replaced with the field label. | ✓ | | ✓ | diff --git a/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/element-button.md b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/element-button.md new file mode 100644 index 00000000..e4476a98 --- /dev/null +++ b/src/essentials-for-yootheme-pro/v2.2/addons/forms/_partials/element-button.md @@ -0,0 +1,42 @@ +## Button Element {#button} + +
+ +
+ +The **Form Button Element** displays a grid of [\](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button) HTML elements with support for `submit` and `reset` types. Each type is wrapped into a child element with its specific features. + +![Button Element](./assets/elements/button-settings.webp) + +| Setting | Description | +| --- | --- | +| *Size* | The field size defined by `uk-form-{size}` [modifier](https://getuikit.com/docs/form#size-modifiers). | +| *Full Width* | Should the field occupy the full width of its parent. | +| *Column Gap* | The size of the gap between grid columns. | +| *Row Gap* | The size of the gap between grid rows. | + +## Button Reset Element {#button-reset} + +Child of [Button Element](#button), the **Button Reset Element** displays a [\