The documentation of Craft CMS improves constantly but for a CMS that evolves at the pace we’re used to with Craft, keeping up with documenting every nook and cranny doesn’t always happen. The HTML Email Template is pretty basic and hasn’t received much love in the docs yet. Searching the Craft documentation doesn’t turn up much information. If you search the Craft Discord community, you’ll find documentation nuggets scattered in conversations. In this post… + read on
I have recently embraced using Docker for my local development. To be clear, I’ve had stumbles along the way. Luckily, I have a friend who is always there to help me out. (Thanks, Andrew!) As with almost everything I post on this site, this post serves as a note to my future self, but I hope you (you, being you, not me) gets something out of it too. ## Why do this? Like many… + read on
Hello Craft friends! I’ve got news to share about Craft Link List, the Craft CMS-focused newsletter I’ve written since May 2015. Craft Link List #127 was the last issue I worked on before handing over the newsletter to the Craft CMS team. The decision to stop writing the newsletter was difficult. The diagram above is from this tweet that I stumbled upon in early December. I bookmarked it and kept coming back to it… + read on
I have a Craft CMS site with two Date/Time fields. One field is called
calStartTime and the other is
calEndTime. The goal is to check that
calEndTime does not happen before the
calStartTime. To do this, I have a custom module. Head over to pluginfactory.io to scaffold out a module. You could also do this in a plugin, but a module is probably easier. Listen for the
Entry::EVENT_BEFORE_SAVE event and then make sure the… + read on
I have been trying to get critical to work on my Mac but kept getting the following error when my webpack configuration hit the point where it was trying to configure the Critical CSS.
Error: Chromium revision is not downloaded. Run "npm install" or "yarn install" at Launcher.launch (/Users/john/Sites/craft-w-webpack/node_modules/puppeteer/lib/Launcher.js:119:15) I tried fixing this by following the instructions,
npm install, but the error continued to happen. The path to getting this fixed had… + read on
Whenever I update to new versions of PHP in my local installation, I need to reinstall Imagick. Since I look up these steps every time, I’m documenting them here so future me can remember this. ## Is Imagick really not installed? First you might have it installed on your machine. Does this return a version number?
convert -version If so, you have it installed but it might not be wired up for… + read on
In one terminal window I did this:
echo $(brew --prefix MariaDB) That gave me the path to my MariaDB of:
/usr/local/opt/mariadb Then I ran this in that same window:
/usr/local/opt/mariadb/mysqld_safe That started MariaDB successfully. Then I opened a 2nd terminal window.
sudo $(brew --prefix mariadb)/bin/mysqladmin -u root password I followed the prompts to reset the password to ”, i.e. blank. Then I killed the MariaDB current running by… + read on
I’ve had a Synology for many years, and the interface has changed over time, obscuring useful information for installed apps. One of my favorite apps to run on it is Plex. In the Synology interface, it used to be easy to open Plex. The URL was shown in the “Package Center” when looking up the app. Below is a screenshot of how the interface used to look. This is not a screenshot I created… + read on
I’ve used Laravel Forge for quite a while in my workflow. It’s a convenient way to set up servers, quickly add security certificates, and deploy sites. I’ve got a number of my own sites and client sites using it and I’ve been very pleased with it. ## The Laravel Forge deployment process The piece of the process I’ve been thinking about recently is the deployment method I’m using in Forge. The deployment method built… + read on
I write and maintain a Yeoman generator called “Build A Banner”, aka BAB. As you might guess from the title, the generator helps in developing animated display ad banners. It creates a directory with customized HTML, JS and CSS starter files, builds a small development server with live-reloading, and has workflows for optimizing and delivering banners… + read on