This is a project demonstrates how to improve authoring experience Matrix Façades

Overview

nystudio107

About nystudio107/matrixfacades

This is a project demonstrates how to improve authoring experience Matrix Façades

Using nystudio107/matrixfacades

Initial setup

You'll need Docker desktop for your platform installed to run devMode in local development

Ensure no other local development environments are running that might have port conflicts, then:

  1. Clone the git repo with:
git clone https://github.com/nystudio107/matrixfacades.git
  1. Go into the project's directory:
   cd matrixfacades
  1. Start up the site by typing this in the project's root directory:
make dev

(the first build will be somewhat lengthy, ignore the warnings from queue_1).

If it appears to hang at Building php_xdebug, your PhpStorm or other IDE is likely waiting for an Xdebug connection; quit PhpStorm or stop it from listening for Xdebug during the initial build.

  1. Once the site is up and running (see below), navigate to:
http://localhost:8000

The first time you do make dev it will be slow, because it has to build all of the Docker images.

Subsequent make dev commands will be much faster, but still a little slow because we intentionally do a composer install to keep our dependencies in sync.

Wait until you see the following to indicate that the PHP container is ready:

php_1         | Craft is installed.
php_1         | Applying changes from your project config files ... done
php_1         | [01-Dec-2020 18:38:46] NOTICE: fpm is running, pid 22
php_1         | [01-Dec-2020 18:38:46] NOTICE: ready to handle connections

Login

The default login is:

User: admin
Password: password

Matrix Façades in Action

The project comes pre-populated with example content that demonstrates an example Matrix Façades.

Navigate to Entries → Orders → Some order and you'll see an example entry:

Screenshot

While this looks like a table, it's actually a Matrix Façade field which subclasses Craft Matrix Block fields, and returns custom HTML for the user input.

You can modify the table by adding or removing items, and upon saving the entry, Craft will take care of updating the Matrix Block data behind the scenes.

To see behind the façade, click on the User icon in the upper-right corner of the CP, and click on the Admin user. Then click on User Settings:

Screenshot

Check the Disable Matrix Façades checkbox, and click on Save.

Then navigate back to Entries → Orders → Some order and you'll see the example entry as it really is:

Screenshot

...a series of Matrix blocks 🪄

You can perform Matrix Block Queries on the data stored in them just as normal.

You can even use the Matrix Criteria Behavior discussed in the Searching Craft CMS Matrix Blocks to find entries based on data stored in the Matrix Block fields.

The Matrix Criteria Behavior comes bundled with this project as well, so you can do things like:

{% set orders = craft.entries
    .section('orders')
    .matrixCriteria('scoops', {
        'type': 'default',
        'nuts': 'nuts'
    })
    .all()
%}

Makefile Project Commands

This project uses Docker to shrink-wrap the devops it needs to run around the project.

To make using it easier, we're using a Makefile and the built-in make utility to create local aliases. You can run the following from terminal in the project directory:

  • make dev - starts up the local dev server listening on http://localhost:8000/
  • make clean - shuts down the Docker containers, removes any mounted volumes (including the database), and then rebuilds the containers from scratch
  • make update - causes the project to update to the latest Composer dependencies
  • make update-clean - completely removes node_modules/ & vendor/, then causes the project to update to the latest Composer dependencies
  • make composer xxx - runs the composer command passed in, e.g. make composer install in the php container
  • make craft xxx - runs the craft console command passed in, e.g. make craft project-config/apply in the php container

Brought to you by nystudio107

You might also like...
Il était une fois un dev est une plateforme proposant une nouvelle expérience d'apprentissage

Il était une fois un dev - Domaine métier Présentation Il était une fois un dev est une plateforme proposant une nouvelle expérience d'apprentissage.

A Tinder-like experience for Plex Watchlist: swipe and match with another person and find the movie you're gonna watch tonight.

Plex Finder This app's goal is to help choose a film to watch when neither you nor your SO/friend/roommate/whatever is any good at choosing anything.

Roach-example-project - Example project to demonstrate how to use RoachPHP in a Laravel project.

Example repository to illustrate how to use roach-php/laravel in a Laravel app. Check app/Spiders/FussballdatenSpider.php for an example spider that c

Plant Watering Sensor Project for Zigbee Network (based on the Source Code of the DIYRUZ Flower Project  - https://github.com/diyruz/flower).
Plant Watering Sensor Project for Zigbee Network (based on the Source Code of the DIYRUZ Flower Project - https://github.com/diyruz/flower).

Plant-Watering-Sensor-Zigbee Plant Watering Sensor Project for Zigbee Network (based on the Source Code of the DIYRUZ Flower Project

This project processes a small database with php all on a web server. This project uses XAMPP to run the web server and the database.

PHP-introduction This project processes a small database with php all on a web server. This project uses XAMPP to run the web server and the database.

In order to use the Korean Language on your Magento 2 store, it is time to start with Magento 2 Korean Language Pack in the set of informative documentations by Mageplaza. Magento 2 Korean Language Package is published by Magento 2 Translation Project at Crowdin, so all phrases will be replaced by the Korean language according to the contribution to that project. Please following up the guides in this post to convert the language with ease! Magento 2 Italian Language Pack is special gift for Magento 2 Community Edition. The data of the translation is supplied by Magento 2 Translation Project of Crowdin site, on which you will contribute into the project and download the zip file to install on your own store. This knowledge base will include full of the clear guides that supports you to convert the default language (English) into Italian language on your entire store.
Releases(1.0.11)
Owner
nystudio107
Consulting, Branding, Design, Development
nystudio107
Adds a compact "easy-sort" mode to Repeater and Repeater Matrix, making those fields easier to sort when there are a large number of items.

Repeater Easy Sort Adds a compact "easy-sort" mode to Repeater and Repeater Matrix, making those fields easier to sort when there are a large number o

Robin Sallis 3 Oct 10, 2021
Authoring Tool and Language Workbench for Online Courses

Authoring Tool and Language Workbench for Online Courses

sellquiz 1 Feb 2, 2022
Prepare your Laravel apps incredibly fast, with various commands, services, facades and boilerplates.

Grafite Builder Grafite has archived this project and no longer supports or develops the code. We recommend using only as a source of ideas for your o

Grafite Inc 997 Dec 22, 2022
This repository demonstrates exemplary implementation of chat using HTTP and Websocket servers in PHP using Kraken Framework components.

This repository demonstrates exemplary implementation of chat using HTTP and Websocket servers in PHP using Kraken Framework components.

Kraken 48 Aug 11, 2021
HTMX example app that demonstrates how to use HTMX to add javascript interactivity to a serverside rendered PHP app

HTMX examle app This demo app demonstrates how to use HTMX to transform a server side rendered PHP app into a more 'interactive' app with AJAX request

Alexander Morland 3 Dec 11, 2022
Arc meta - Textpattern plugin for meta tags to improve site SEO and social marketing.

arc_meta A Textpattern plugin for meta tags to improve site SEO and social marketing. arc_meta adds meta fields to your article, section and category

Andy Carter 3 Jan 20, 2017
Improve default Magento 2 Import / Export features - cron jobs, CSV , XML , JSON , Excel

Improve default Magento 2 Import / Export features - cron jobs, CSV , XML , JSON , Excel , mapping of any format, Google Sheet, data and price modification, improved speed and a lot more!

Firebear Studio 173 Dec 17, 2022
This website for web pentesters and beginner bug bounty hunters,You can improve your hacking skills by practicing xss in this lab.

XSSLab [Not finished yet, it's under development] XSSLab is a vulnerable website coded By Mahdi Jaber "Mr MJT" {in digital world}.. By XSSLab you can

Mr MJT [Mahdi Jaber] 7 Aug 30, 2022
Bundle providing Honeypot field for the Form Builder in Ibexa DXP Experience/Commerce (3.X)

IbexaHoneypot Bundle providing Honeypot field for the Form Builder in Ibexa DXP Experience/Commerce (3.X) What is Honey pot? A honey pot trap involves

null 1 Oct 14, 2021
Open Source Data & Experience Management Platform (PIM, MDM, CDP, DAM, DXP/CMS & Digital Commerce)

Pimcore - Open Source Data & Experience Management Platform: PIM, MDM, CDP, DAM, DXP/CMS & Digital Commerce

Pimcore 2.7k Jan 4, 2023