Drupal Planet

Live Preview Module for LocalGov Microsites is Beta Ready

Beautifully crafted digital products and experiences that matter.

As I said on linked in, this week my brain was fried and also buzzing while working on getting a beta release of the LocalGov Live Preview module.

Need LocalGov Drupal services? Give Big Blue Door a shout.

Meetings and Meet-ups

  1. Merge Tuesday: A very interesting meeting this week, no major items merged but lots of small items that have been in PR-purgatory for a while got looked at and merged, which is very helpful.
  2. Quality Metrics: Another very good chat this week about bringing quality metric data into LGD - readability, broken links, etc.
  3. Microsites Meet up: We discovered a regression where aliases set for microsites pages are not being respected.
  4. NetCall Converse Walk-through: Honestly, the more I see of this platform, the more impressed I am.

Code Contributions

This week I tried to focus on the Live Preview feature for LGD Microsites. I think this is going to be really useful as part of the Editor Experience mission for microsites admins, once we get it stable.

  1. I moved all the microsites-specific items to a sub module. This means we can have a base module with low-level functionality, such as theming the settings tray, and this can be shared across any platform that uses the module - LGD CMS or Microsites.
  2. Then I re-created the "Edit Microsite Design" tab to use a routing file and some permissions so it's not visible all the time (and has a nice fallback if JavaScript fails to load).
  3. Then I set up a custom form mode for live previews, so we don't have "all the fields" in the off-canvas tray when editing the design of the microsite.
  4. Next up was to update the README.md so people will know how to use the module.
  5. And finally I created an uninstall function to remove the custom "Live Preview" form mode if we uninstall the module, so we then won't have any conflicts if someone decides to later re-install the module.
  6. After that I created a Beta release of the module so I can get a few more testers to try it out before we tag it as being stable. If you'd like to try it, you can do so via composer require localgovdrupal/localgov_live_preview:^1.0.0@beta.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

My LocalGov Drupal contributions for week-ending October 18th, 2024

Beautifully crafted digital products and experiences that matter.

This week was powered by the letter M and the noun "meetings".

Need LocalGov Drupal services? Give Big Blue Door a shout.

Meetings and Meet-ups

  1. Merge Tuesday: We got the 1.8 branch of Alert Banner merged and released. This is a great news, as it's a rewrite of the Alert Banner module using more modern Drupal paradigms (and has lots of modern JS in it, which makes my frontend heart happy).
  2. Quality Metrics: We had a really energising meeting about the metrics modules that are available for Drupal that we would could look at making available in LocalGov Drupal - such as reading age, broken links, spell checker, etc.
  3. Tech Group Drop-in: Lots of talk about options for image carousels for LocalGov Microsites.
  4. Netcall Working Group: We demoed the work I have been doing on the Netcall AI Widget module and started mapping out a process to bring Netcall data directly into your LGD website.
  5. Community Meetup: Lots of good news this month in the LGD community - website launches, new events channels, and I got to demo 3 things I have been working on:
    1. LocalGov Replicate module
    2. LocalGov KeyNav module
    3. Netcall AI Widget module
  6. Global Open Source Gov Community: This was the first meeting of an initiative to build a community of open source government organisations. We had people attend from Mexico, Canada, Greece, Columbia, Switzerland ... the full spectrum. I hope this takes off.

Code Contributions

  1. I built an integration for the Netcall AI Widget a while ago. Last week LGD got access to our own ConverseCX instance, so I can test it properly. However, I needed to build some AI Widgets first to test, which was fun and an interesting learning experience. I'm pretty amazed at how powerful the whole Netcall suite is and looking forward to writing more integrations for it. And I'm delighted to report that after a little bit of trial and error, I was able to properly test my module and we now have ... a process to show different AI Widgets on different pages, including a general widget as a catch all for all pages not showing specific widgets.
  2. Our Alert Banner module has a JavaScript file that uses jQuery instead of modern JS. That's been on my mind for a while to get rewritten. Now that we are almost ready for a new version of the LocalGov Alert Banner module, I got the chance to create a PR to remove the jQuery, but also modernise the JS with Drupal Behaviours and once, etc while I was at it.
  3. Councils often ask for their facets on directories to not submit/refresh the page until users have finished selecting all the facets they want. To achieve this Andy and Adnan worked on getting the Drupal Facets Forms module working with our facets. Then they created an issue so the frontend of it would play nicely, so I created a PR for that issue. And now everyone is able to sleep soundly!
  4. I want to start rewriting our CSS to use logical properties, so we have less to maintain and we send less to the server. That's good for developer ergonomics and also good for the environment. To get this started, I rewrote the css for fields.css and created a PR for it. Once merged, I'll rewrite the rest of the codebase.
  5. Our Events template in LocalGov Microsites Base uses a full copy of the LocalGov Base event template just to add a block for the breadcrumbs. However, this means if we make any updates to the LocalGov Base template, the LocalGov Microsites Base template will not avail of them. To get around this, I created a PR in LocalGov Base to add a Twig block for the breadcrumbs so then I could create a follow-up PR for LocalGov Microsites Base to extend from the LocalGov Base theme and just use the Twig block to inject the breadcrumbs.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

Cloning Content in a LocalGov Drupal website

Beautifully crafted digital products and experiences that matter.

This week as part of my "Editor Experience" work for LocalGov Drupal, I worked on creating a feature to allow editors to clone pages of their sites.

Need LocalGov Drupal services? Give Big Blue Door a shout.

I spent last week and this week working mostly on editor experience issues for LocalGov Drupal. Last week was small bug fixes and features, and this week I spent my time getting a new module created that would do two things:

  1. Allow site owners decide what content types could have their content cloned, and
  2. Allow site editors to then clone pages from those content types.

This is a feature request that councils have been asking for for quite a while.

Why Clone Content?

Often on a council website you could have a lot of events and you might want to have all the same info for the events, but a different date, image, and signup link. Being able to clone a default event is a great time saver in this case.

You might also have a number of landing pages which can be time consuming to create - banner, related links, quick links, etc. In terms of consistency it's very handy to be able to create a template landing page, then clone it each time you need a new one.

How does it LocalGov Replicate module work?

It's quite simple. You install the LocalGov Replicate module - available via composer require localgovdrupal/localgov_replicate. Then go to the settings page admin/config/content/localgov-replicate, choose what content types you want editors to be allowed to replicate.

Now when you visit any nodes of these types, there will be a new tab (besides the "View | Edit | Delete" tabs) called "Replicate". When you click on that it will:

  1. Create a copy of the current page, and
  2. Bring you to that new version of the page so you can start editing it, and
  3. Leave the new page unpublished until you are ready to publish it.

Node Clone Vs Entity Clone Vs Replicate

We chose the Replicate module to use for this feature. Node clone will only clone nodes and we might in the future want to clone more entities, such as custom entities.

Entity clone will clone entities, but would clone the each entity on the page at the same time.

Replicate is an API-first module, without a UI (you can install Replicate UI if you want), but gives us full control over everything we want to do with our cloning feature.

Is it feature complete?

Nope, not by a long shot. 

I have one major issue with it at the moment, which is that the "Replicate" tab is showing up for all content types no matter what you choose on the settings page. 

Once I get that solved, I need to see what happens when you clone nodes with media and other entities in them. I guess we want to reference media, taxonomy, etc, but we want to clone paragraphs. Then we've the trickier question of reusable paragraphs in our "Page Components" module which I guess we also want to reference rather than clone, so if we update for example an address, it will update everywhere.

Thanks to Big Blue Door for sponsoring my time to work on this.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

My LocalGov Drupal contributions for week-ending October 4th, 2024

Beautifully crafted digital products and experiences that matter.

This week, I spent my time mostly looking at issues tagged with "Editor Experience".

Need LocalGov Drupal services? Give Big Blue Door a shout.

Meetings and Meet-ups

  1. Merge Tuesday: We still don't have LocalGov Base 1.7.0 released, but are very close once we get the adjacent PRs for LocalGov profile and Microsites profile all merged at the same time. Hopefully we'll get there by the end of the week.
  2. Accessibility Meetup: Maria from Agile Collective gave a really good presentation about the use of colour on our websites. And we recorded it, so do go watch it back.
  3. Tech Group Drop-in: I hosted the meeting again this week - I'm getting used to that now - and we talked about facets, carousels, and default themes for microsites.

Code Contributions

  1. We've been going around and around with an issue for moving the "Files" tab from the content tabs list to the media tabs list. We decided at the Product Group meeting last week to add an update hook to move it for existing sites as well as new installs, and create release notes to let people know why. So ... that's done now, hopefully we'll get it merged at Merge Tuesday tomorrow.
  2. Another kind of lingering issue was adding masquerade module vs msqrole module to our default installation. At the Product Group meeting last week we decided to go with masquerade module since it now has security team coverage and is the preferred choice from the Drupal Startshot initiative. With that being the case, we now have a PR for this.
  3. I updated last week's PR to enable the LocalGov Base Helper module for LocalGov Microsites Group, so it now does it via an update hook instead of in the info.yml file.
  4. I enjoyed spending some time this week researching solutions for a "What other pages on my site link to this page?" feature that we want to add to LocalGov Drupal. What wasn't quite so enjoyable was my findings - a module to do what we want, in the way that we want it, does not exist.
  5. Alistair Wearing has written a nifty PR for us to add the icons for accordions via Twig templates instead of JS so it is much easier to override and maintain if you want to. Once we get that merged, I've a few follow-up issues I'd like to consider as well - such as placing the title of the accordion inside the button and placing the icon for the accordion outside the button.
  6. Our 1.7.0 release of LocalGov Base is going to have a helper module along side it, so we can have update hooks in themes, basically. But this is needing a lot of coordination between the default profile the default theme the microsites profile and the microsites theme. After a lot of reviewing of a PR on microsites, it looks like we're just about there now.
  7. Paul McCrodden has been helping us out with some PRs, working through some of the "Good first issue" items to get himself up to speed with how we work. It's been great to mentor him and help him find issues to work on, and even approve some of his PRs. Thanks Paul.
  8. And that then got me thinking about a larger clean-up issue for us - use logical properties for all our CSS. This will mean a smaller codebase to maintain, but also an easier codebase to maintain. No more [dir="rtl"] styles.
  9. We are working hard on "Editor Experience". One issue was trying to make it easier to link to documents from your media library. I've created a PR for this now, so you can add simple links to documents. If you want a more complex display of the document (including metadata, etc) you can still do that via the standard media embed.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

My LocalGov Drupal contributions for week-ending September 27th, 2024

Beautifully crafted digital products and experiences that matter.

I spent a lot of time this week working on LocalGov Base. It's great to have a strong core that all other themes can build upon.

Need LocalGov Drupal services? Give Big Blue Door a shout.

Meetings and Meet-ups

  1. Merge Tuesday: We had a monster mash of reviewing and merging LocalGov Base code after all the PRs I got created yesterday. I love seeing issues being created, fixed, and merged so quickly.
  2. Product Group meet-up: So many cool things coming up in LGD. Today we talked a lot about our on-going "Editor experience" mission.

Code Contributions

  1. My old friend Paul McCrodden has just joined us and is starting to help us out with some of the issues on GitHub. It was great to spend some time getting him up to speed and doing general mentoring work to find issues for him to work on.
  2. Having spent all of last week working on the LocalGov Live Preview module, my GitHub notifications were well-amassed this week, so lots of time was spent on issue triaging and responding to comments/issues/PRs.
  3. We had been printing the navigation for step-by-steps and guides in our print.css. Jonny reckoned we should not be printing these items and created an issue for it. I agreed with him, so created a PR to remove them from the print stylesheet.
  4. Maria created an issue to let me know that when you create a blockquote via the WYSIWYG, there is no styling added to it so people may not know it is a quote. This seems like something easy to fix, except we also have a "Pull Out Quote" component which creates a blockquote and that does have CSS for it. The conundrum is then how do we style general blockquotes, without affecting our pull out quotes? I think I got a pretty-elegant solution.
  5. Another tricky accessibility issue was created by Lauri, saying that the quick fact component does not have a proper semantic hierarchy. This showed up two issues for me - I'm not sure what any particular item in the quick fact component should have for it's semantic element besides p and we thought we were printing the main content of it in a p but weren't. We now have a PR to fix that, but I feel we might need more discussion to figure out if a more specific element would be more appropriate.
  6. Some of our JS code was written at a time when we were explicitely supporting IE11. We have moved on from explicit support to "let's not intentionally break it" support, so I'd like to start getting our transpilers and *.es6.js files removed. This will mean we'll serve more modern JS but also mean it will be a lot easier for people to contribute to the project since they won't have to get set up with transpilers and polyfills. Here's a PR to show what I mean for LocalGov Alert Banner module.
  7. The "View map" link on service landing pages opens in a new tab, which can be disorientating for people, especially screenreader and assistive technology users. Maria created an issue for this, and I created a PR for screenreaders to announce that it is an external link and also that it opens in a new tab.
  8. We got the large PR to add a sticky header feature to LocalGov Base merged at last, and also a corresponding PR in LocalGov Core to enable a LocalGov Base helper module, but after that we realised we need to come up with a similar strategy for LocalGov Microsites. So ... that's thrown a spanner in the works. Hopefully a PR for LocalGov Microsites Group module will suffice to fix this issue.
  9. Our step-by-step pages show sighted users which step is the current step in the sidebar navigation. However, we don't give the same affordance to non-sighted and screen reader users. Well, we used to not, but now we do!

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

Need to hire Drupal developers? I can help you

The Confident Logo, Drupal Agency led by Mark Conroy

Today I launched a new service, matching available Drupal developers with recruiters and agencies that are hiring.

I am often asked by people looking for work if I know of any one that is hiring.

I am also often asked by people who are hiring if I know of any Drupal developers looking for work.

The answer to both is usually "Yes". I seem to know lots of people in the Drupal community and am trusted enough by them to let me know if they are looking for a new job/contract (often in private so their current employer doesn't know).

Last week I sent contact details of two very good Drupal developers that I know personally to a recruiter. I know at least one of them is being interviewed this week. But then I had a brainwave! Why am I doing the work of a recruitment agency for free, especially when I know how much recruitment agencies charge for their services.

A new Drupal recruitment agency?

My solution? I am going to charge people who are hiring, just like a recruitment agency would, for my recommendations. Except, my cost is going to be about 90% cheaper than a recruitment agency. Why so cheap? The price I am charging is a very fair price for basically telling someone that someone else is available for work.

I am calling this service "Available Drupal Developers". If I was cool, I'd call it ADD or something and set up a website and a CRM, and get some merch and hoodies, and blah, blah, blah. But I'm not cool, so I am keeping it all in a spreadsheet for now and a landing page on this humble website.

How much does it cost?

I've a simple pricing model. If you hire a developer that I recommend, the cost will be €1,500 per developer. No deposit, no recurring charges, no "18% of their first year's salary", just a simple one-off fee of €1,500 (ex-VAT, if applicable). If you are a developer, there is no charge.

Is there a vetting process

I'm keeping this simple. I'm only prepared to recommend people who can pass this threshold:

  1. I know you personally (have worked with you, worked on issues together on Drupal.org, met at conferences, etc) and/or
  2. I can validate your work from open source sources (blog posts, presentations, Drupal, GitHub)

Take my money already, Mark

If you are looking to hire a Drupal developer, get in contact and I'll see if any of the 40 people I currently have on my list would suit you (that 40 will be significantly reduced soon as I make my way through vetting people).

I'm available for Drupal work

If you are a Drupal developer thinking of changing jobs, fill out this form and I'll see if I can recommend you to someone suitable.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

My LocalGov Drupal contributions for week-ending September 20th, 2024

Beautifully crafted digital products and experiences that matter.

Do one thing, do it well - this week I spent most of my time creating a live preview module for microsites.

Need LocalGov Drupal services? Give Big Blue Door a shout.

Meetings and Meet-ups

  1. Merge Tuesday: Great meeting today discussing getting a stable release of LGD microsites released, and also our process for adding new features to LocalGov Drupal.
  2. Government Design System meetup: This was my third time representing LocalGov Drupal at the Government Design System meetup. This time we talked about performance measurement - how do we measure the success of our design system.
  3. Community Meetup: We had a very informative meetup this week, discussing the new Job Vacancies module as well as myself and Finn presenting our "Live Preview" work.
  4. Tech Group Drop-in: As usual, a very lively chat. This week Netcall integrations and SSO were on the agenda.

Code Contributions

I created a LocalGov Live Preview module to work with the microsites platform, which took up all my time this week, and encouragingly got a great response at the community meet-up. 

I think this is going to be a game-changer for how councils and others put their microsites together. No more "make a change, click save, refresh page, rinse, repeat". Now you can see all the changes happening live.

Here's a video walkthrough of it:

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

Live Previews for LocalGov Microsites Design Changes

Live Previews for LocalGov Microsites

I had great fun today expanding what was a proof-of-concept module from last year into a very usable live preview module for LGD Microsites.

Last year I made a module as a proof-of-concept for live previews for LocalGov Drupal Microsites. Today, I spent the day taking it out of "proof-of-concept" mode and getting it into shape as a fully functional module.

I'm pretty happy with the results so far. I'll keep refining it a bit more as the week goes on.

Here's a short intro to it.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

My LocalGov Drupal contributions for week-ending September 13th, 2024

Beautifully crafted digital products and experiences that matter.

This week's big issue was building a prototype for "Axe Thrower" so we can "throw" multiple URLs at AXE at the same time.

Need LocalGov Drupal services? Give Big Blue Door a shout.

Meetings and Meet-ups

  1. Merge Tuesday: Another productive meeting. I'm especially happy with the merge to localgov_paragraphs to add the new "Show all" accordions widget.
  2. Content Group: We had a great chat about what people are enjoying about LGD - microsites, subsites extras, and replicate all came up. And a WHOLE LOTTA Love for Miro.
  3. Tech Group Governance: Nice to get to this monthly meeting. Today we discussed stabilising microsites, preparing for Drupal 11, and the community fund.
  4. Tech Group Drop-in: Lots (and lots and lots) of talking about maps, maps, and mapping.

Code Contributions

  1. We're preparing for Drupal 11 support, so the week began with reviewing/approving PRs for some of the items that I maintain - LocalGov Sa11y, LocalGov Scarfolk, LocalGov Base, etc.
  2. Most councils want a "Feedback form". Those small forms that say "was this page useful?" and ask you to give some details if it wasn't. Here's a PR to create that feature. Remind me to stop creating forms, they're tricker little things.
  3. I love when we get accessibility issues submitted for LocalGov Drupal. It means when we fix them, we make the web better for everyone. Bisd posted one recently about our "Read more" for service status pages not being translatable. After a little bit of investigating, it turns out it was translatable, and we also have a corresponding aria-label to be more expressive for people using assitive technology.
  4. The "move components to single-directory components" issue is moving along very nicely. Just one tiny comment or two from me to Christopher and then I think we're good to go.
  5. We've been discussing our approach to checking if a region is empty before rendering it for the past few weeks. What we currently have might has an effect on caching (it's a long-running Drupal core issue too). But any solutions to it throw up other issues as well. I tried, and have nearly succedeeded, in a CSS-only answer to it, but I'm stumped on the if/else clauses for sidebars in the page.html.twig file. If you'd like to contribute to the conversation, please do.
  6. Will mentioned that it might be helpful for editors to more clearly see what heading levels that have used in the wysiwyg. I put together a quick proof of concept to show how we could achieve this with just some simple CSS.
  7. We have an open issue in the LocalGov Sa11y module to prevent sa11y from running on wysiwyg fields. After a bit of testing, it turns out it already does not run on ckeditor fields. It only runs on rendered content, not editing content, and only runs on the frontend, not while viewing an admin theme. And even testing it on the frontend by creating a comments field showed it was working as expected. We now no longer have this open issue.
  8. Last week at the LocalGov Accessibility Meetup, Michael from Big Blue Door gave a really interesting talk about automated accessibility tools, which allow you to scan a page to automatically detect accessibility issues. One of the questions that came up was if you can scan more than one page at a time. I put together a demo repo of code to show how this can be done, then made a video to explain it, and a blog post too.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

The Confident: Mark Conroy's new Drupal agency

The Confident Logo, Drupal Agency led by Mark Conroy

I've got some big news.

I've just started my own new agency. 

It's called The Confident, with a tagline "For those who demand the impossible". Yep, we're not afraid to take on extremely challenging projects and see them through to completion.

Starting off, we will have a hyper-focus on the Local Government market, specifically LocalGov Drupal. I see us as being complementary to the existing agencies in this space, offering 4 services:
 

  1. Figuring out what a council wants for a new website or feature on an existing site.
  2. Helping them source the best placed agency to work on this project.
  3. Being a link between the council and this agency to ensure the project is a success.
  4. Co-pitching with other agencies to win big contracts


If you think any of the above could be of interest to you, I'd love to have a chat.

As well as the above, we have a line of products that we plan on launching. The first of which will be coming next week. Stay tuned!

The Confident

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).