More than 60 gems for Joomla 4 I can’t live without
Present slides https://slides.woluweb.be
1. INTRODUCTION
I am always very happy to pay Developers for Joomla Extensions because they deserve it.
Some extensions are widely known because they are available on the Joomla! Extensions Directory™ https://extensions.joomla.org/ and have excellent reviews.
But there are also many gems out there which are less known, for example because they are only available on Github .In this article I wanted to share with you my own list of those little extensions that I use on most of my Joomla 4 websites, together with a few tips & tricks.
The vast majority of these extensions are open source (in which case I encourage you to contribute!) or at least free of charge. I have gathered them in 9 themes:
- MEDIA MANAGER
- SEO & OPEN GRAPH
- CUSTOM FIELDS
- EDITOR
- CONTENT
- ADMINISTRATION
- ADDITIONAL FEATURES
- LEARN MORE
- BEYOND JOOMLA
Have fun and enjoy Joomla! ❤️💙🧡💚
2. I love them all
I love each of the following extension of course.
But I have limited time for this session so I added a ❤️ on the ones I want to focus on.
3. The Gems
3.1. MEDIA MANAGER
3.1.1. Allow SVG in the Media Manager ❤️
What about allowing the upload of SVG images in the Media Manager? All it takes is 30 seconds to adapt the Options.
https://www.youtube.com/watch?v=U7hHYpuNqsg
Txs Brian!
3.1.2. Responsive Images ❤️
3.1.2.1. The Responsive Images plugin itself
What about generating automatically AVIF & WEBP images and creating source sets (ie creating different sizes of each image in order be totally responsive) ?
https://responsive-images.dgrammatiko.dev/
Txs Dimitris!
3.1.2.2. A CLI to generate all the resized images at once
[ added on 2023.08.23 ]
In combination with the previous plugin, this CLI (Command Line Interface) allows to have all images “resized” at once (instead of slowing the site down when a page gets visited for the first time)
https://github.com/ttc-freebies/responsive-cli
Txs Dimitris!
3.1.3. A different folder for each User in the Media Manager
What about restricting access to a specific part of the images folder (images/user/userName, where userName is either the real or a hashed version of the user name). The plugin could be enabled per user group.
https://restrictedfs.dgrammatiko.dev/
Txs Dimitris!
3.1.4. FTP, Pixabay, Pexels, Emoji, Filters directly in the Media Manager ❤️
What about seeing not only local files but also distant files in the Media Manager? And having Filters and other additional features?
https://joomla.digital-peak.com/products/dpmedia
Txs Allon!
3.1.5. Allowing Documents -PDF etc- in the Custom Field of Type Media
Want to have a Custom Field of Type Media which would allow to select not only Images but also (for example) Documents?
The paid version of DP Media mentioned just above allows this (and many more things)
Txs Allon!
3.2. SEO & OPEN GRAPH
3.2.1. Open Graph – images used when sharing on social media ❤️
What about automatically generating Open Graph images for your site’s pages, superimposing text and graphics over an image or solid color background
https://github.com/lucid-fox/social-magick
Txs Crystal!
3.2.2. Sharing Buttons ❤️
What about having lightweight Sharing Buttons with no javascript and no tracking?
https://github.com/woluweb/Sharing-Buttons
Txs me!
3.2.3. Yoast SEO
What about having SEO tips when you edit an Article?
https://www.firecoders.com/joomla-extensions/route-66
Txs Firecoders!
3.2.4. SEO ❤️
What about having an SEO extension that does it all (Open Graph but also structured data, sitemap, internal linking content writing assistance, broken links, error pages, redirections, …)? Given all these features (and I still discover new ones every time I use it), this is a paid extension.
https://weeblr.com/joomla-seo/4seo
Txs Yannick G.!
3.2.5. SEOInfo❤️
What about having a free browser extension for Firefox, Chrome and chromium-based browsers such as Edge or Brave, displaying SEO information about visited pages and alerts you of SEO and performance issues?
https://weeblr.com/doc/products.seoinfo/current/
Txs Yannick G.!
3.3. CUSTOM FIELDS
3.3.1. More Types of Custom Fields ❤️
What about having 26 new Types of Custom Fields (videos, maps, …) on top of the 16 native ones
https://www.tassos.gr/joomla-extensions/advanced-custom-fields
Txs Tassos!
3.3.2. Chained Fields
What having having the ability to create cascading dropdown fields that dynamically change based on the previous selection? That is 1 of the 7 extra Types of Custom Fields you get with the paid version.
https://www.tassos.gr/joomla-extensions/advanced-custom-fields/docs/the-chained-fields-field
Txs Tassos!
3.3.3. Fields inception
What about nesting Custom Fields of Type Subform (a repeatable list consisting of other Custom Fields)
- https://github.com/nikosdion/plg_fields_inception
- https://www.dionysopoulos.me/software-tools/inception-form-field.html
Txs Nicholas!
3.3.4. Filtering ❤️
What about adding the following kinds of filters for each category displayed in the frontend of your site: Subcategory / Tags / Custom fields
https://github.com/nikosdion/plg_system_filtermagic
Txs Nicholas!
3.3.5. Sort by field ❤️
[ added on 2023.08.30 ]
What about sorting the articles in a category by the value of a custom field.
https://github.com/nikosdion/sortbyfield
Txs Nicholas!
3.3.6. Lite Youtube
[ added on 2023.08.30 ]
Renders faster than a sneeze. Provide videos with a supercharged focus on visual performance. This custom element renders just like the real thing but approximately 224× faster.
https://github.com/brianteeman/ytlite
Txs Brian!
3.3.7. Synchronize CF and Creation Date
[ added on 2023.09.13 ]
When you use Smart Search (or JFilter which allows to filter on Custom Fields… and also uses the Smart Search view – https://extensions.joomla.org/extension/jfilters/) you can only order by
- Relevance
- Title
- (Creation) Date
So when you display Events (where each Event is an Article having a Custom Field of Type Calendar in order to select the Date+Time of the event) by default you cannot order them by Date of Event.
This plugin allows to “copy-paste” that Date+Time from the Custom Field to the Creation Date… so that ordering the Articles by Creation Date simulates ordering the Articles by Date of Event…
https://github.com/coolcat-creations/cccsetcreatedate
Txs Elisa!
3.3.8. Conditional fields – showon
[ added on 2023.09.13 ]
Using conditional fields (“showon”) has been a very developer centric feature and since Joomla 4.3, that notion is available for Custom Fields.
Works also with Custom Fields of type Subform (“Repeatable” Custom Fields)
https://www.youtube.com/watch?v=_uozqGT1LC0
Txs to the contributors and txs Olivier for the presentation!
3.4. EDITOR
3.4.1. WYSIWYG ❤️
What about enabling true WYSIWYG for Joomla’s tinyMCE Editor?
By default it supplies only the required files for the Cassiopeia template but you can use it for any other template as well.
https://wysiwyg.dgrammatiko.dev/
Txs Dimitris!
3.4.2. A different Edit Form per Category
What about customizing any back-end / front-end com_content Edit Form per Category?
https://github.com/ttc-freebies/custom-edit-forms-per-cat
Txs Dimitris!
3.4.3. Facilitate the customization of front-end editing
What about improving the editing of articles in the front-end a little?
https://obix.nl/en/joomla/joomla-extensions-by-obix/front-end-edit-helper
Txs Pieter-Jan!
3.4.4. Facilitate the customization of back-end editing
What about improving the editing of articles in the back-end? This paid extension allows to customize totally the fields and/or tabs.
https://data2site.com/extensions/d2-profiles
Txs Sigrid & Peter!
3.4.5. Better front-end edition
What about making editing content in the front-end of your Joomla 4 website distraction free?
https://github.com/brianteeman/cleanedit
Txs Brian!
3.4.6. Shortcuts in TinyMCE
What about having a set of keyboard shortcuts to use when creating content with Joomla 4 and the default editor (TinyMCE).
https://github.com/brianteeman/slashtools
Txs Brian!
3.4.7. Customizing TinyMCE menus ❤️
This all started with a question I asked on the Joomla Facebook Group: https://www.facebook.com/groups/joomlanospam/posts/10158526033230997/
There are 2 ways to add Styles to the predefined menus of TinyMCE:
- there is a native solution, playing with media\templates\site\cassiopeia\css\editor.css (or editor.min.css) or its equivalent in a Child Template (note: make sure your classes are not set as .test but p.test for instance)
- there is a better solution when using the above-mentioned https://wysiwyg.dgrammatiko.dev/The WYSIWYG plugin adds ao the following 2 files
- /media/templates/site/cassiopeia/js/style_formats.json
- /media/templates/site/cassiopeia/js/formats.json
See more explanations about this (including the content of those files) at the bottom of https://wysiwyg.dgrammatiko.dev/documentation/index.htmlIf you use a Child Template, you can simply put those file in your Child Template (which is handy and makes sure your files are never overwritten):
- /media/templates/site/cassiopeia_MYCHILD/js/style_formats.json
- /media/templates/site/cassiopeia_MYCHILD/js/formats.json
Note: in the case of multilingual websites, if those files in your Child Template do not “trigger” then simply make sure
- that the Child Template is “default” for each language
- and also that the Child Template is “default” (and not the Parent Template)
Txs Dimitris!
3.4.8. Customizing further TinyMCE ❤️
Wha about having a system plugin to customise TinyMCE beyond what Joomla lets you do?
https://github.com/nikosdion/plg_system_tinymod
Txs Nicholas!
3.4.9. Inserting Code in TinyMCE… with Code Highlighting ❤️
[ added on 2023.08.23 ]
If you want to use TinyMCE in Joomla! and its builtin “Insert/Edit code” feature, you need this plugin to have syntax highlighting on your site.
https://extensions.joomla.org/extension/prism-syntax-highlighter-for-joomla/
Txs Andre!
3.5. CONTENT
3.5.1. Translations with Deepl ❤️
What about translating all your content to other languages thanks to Deepl, directly from your Editor (so keeping all the HTML tags!)
https://obix.nl/en/joomla/joomla-extensions-by-obix/editor-translation-plugin
Txs Pieter-Jan!
3.5.2. Artificial Intelligence with ChatGPT
Too lazy to create your own content? Want to use ChatGPT directly from your Joomla Editor?
https://github.com/R2H-BV/chatgpt
Txs Rick!
3.5.3. Create Articles or Categories in bulk ❤️
What about creating Article or Categories in bulk, including the corresponding Menu Items?
https://www.joomlashack.com/joomla-extensions/oscontent/
Txs Steve!
3.5.4. Create Articles from a Google Sheet ❤️
What about creating hundreds of thousands of Articles, including their Custom Fields directly from a Google Sheet (thanks to the Joomla API)?
Well, I have written a series of articles in the Joomla Community Magazine (JCM) about this.
Txs Alexandre!
3.5.5. Create Articles from a CSV file
What about importing/exporting your Articles in batch, including their Custom Fields, directly from a CSV file?
https://github.com/AlekVolsk/cfi/
Txs Alek!
3.5.6. A super simple Form to let visitors -or administrators- create Articles from the front-end ❤️
What about a super simple Form to let visitors (or administrators) create Articles from the front-end, including the Custom Fields (thanks to the Joomla API)?
This is just one example of what is possible with Convert Forms 4, I think only in the paid version.
https://www.tassos.gr/joomla-extensions/convert-forms/docs/webhooks#webhooks_article
Txs Tassos!
3.5.7. RO-CSVI in general ❤️
I have just mentioned 4 tools to import Articles in Joomla. It would not be fair not to mention the most complete tool afaik allowing import/export, being logically a paid extension.
https://rolandd.com/products/ro-csvi
Txs Roland!
3.5.8. RO-CSVI to import from Wordpress in particular
[ added on 2023.08.23 ]
Elisa shared this tip to import from Wordpress: https://joomlacommunity.cloud.mattermost.com/main/pl/5kfem5957tdmmbscph73fbshcw
I just migrated a blog category so easily with RO-CSVI I am so happy.
1) Exported the Wordpress Posts with:
SELECT
p.ID,
p.post_title,
p.post_content,
p.post_date,
p.post_status,
(SELECT guid FROM #__posts WHERE ID = meta.meta_value) AS introimage
FROM
#__posts p
LEFT JOIN
#__postmeta meta ON (p.ID = meta.post_id AND meta.meta_key = '_thumbnail_id')
WHERE
p.post_type = 'post' AND p.post_status = 'publish';
2) Imported with RO-SCVi
Everything is done!
NB: It seems Compojoom has a (paid) tool for J3 but the db export was enough for my usecase
Txs Elisa!
3.5.9. db8 ipsum
[ added on 2023.09.16 ]
This Console Plugin works on the command line. It generates Categories, Articles, Menu Items and Category/Article Images.
https://github.com/pe7er/plg_console_db8ipsum
Txs Peter
3.6. ADMINISTRATION
3.6.1. Access your Log files ❤️
What about accessing your Log files directly from the backend (instead of FTP)?
https://weeblr.com/joomla-seo/4logs-simple-free-logs-viewer
Txs Yannick G.!
3.6.2. Task list
What about having your Task list directly in the backend of your website?
https://github.com/brianteeman/tasklist
Txs Brian!
3.6.3. A Task Scheduler to check in all your content ❤️
What about having all your Articles, Menu Items, Plugins etc be automatically checked in every night or at the frequency that you choose?
https://github.com/zero-24/plg_task_checkin
Txs Tobias!
3.6.4. Administration Dashboard
What about having a Dashboard Module, ready to configure?
https://github.com/micker/mod_dashboard
Txs Yannick B.!
3.6.5. Impersonation
What about allowing administrators to log in as any other user?
https://github.com/akeeba/skeletonkey
Txs Nicholas!
3.6.6. Joomla! Downloader ❤️
[ added on 2023.08.30 ]
What about having a PHP script to automatically download the latest version of Joomla! directly server to server without having to download it locally. The script also extracts the zip directly on your server after downloading it.
https://github.com/JoomlaLABS/Joomla_Downloader
Txs JoomlaLABS!
3.7. ADDITIONAL FEATURES
3.7.1. A powerful comment system ❤️
What about having a fast, powerful and highly configurable comment system for Joomla?
https://www.akeeba.com/products/engage.html
Txs Nicholas!
3.7.2. Invalidate browsers caches
We have all experienced this: we have changed some CSS or JS file… but our users don’t see the result because of their browsers cache.
https://github.com/dgrammatiko/invalidate-cache
Txs Dimitris!
3.7.3. Dark Mode for your back-end
What about having an alternative version of Atum, the backend template of Joomla4? This is Muta
Txs Dimitris!
3.7.4. Dark Mode for your back-end and/or front-end
What about taking care of your eyes?
https://github.com/nikosdion/DarkMagic
Txs Nicholas!
3.7.5. Cards Layout
What about having nice overrides with configuration settings to create Card Layouts?
https://github.com/brianteeman/joomla-cards
Txs Brian!
3.7.6. Login Modal
What about displaying the login module in a modal/popup?
https://github.com/brianteeman/loginmodal
Txs Brian!
3.7.7. Module Versioning ❤️
What about having Module Versioning (the same way we have Article Versioning natively)?
Txs Rick!
3.7.8. Orphan images ❤️
What about finally cleaning your website? This starts by identifying orphan images.
3.7.8.1. R2h Image Manager
R2h Image Manager is a Joomla Component, meaning you have an interface to identify your orphan images or move them (and have the links adapted)
Joomla 3 version is free, Joomla 4 version is paid
R2H Image Manager https://www.r2h.nl/joomla-extensions
Txs Rick!
3.7.8.2. tidyup_myfile
tidyup_myfile is a PHP script allowing to
- get rid of unused Data on your Page (for example unused images in the images folder)
- rename files to be websafe / seo-safe
Versions:
- Joomla 3: https://github.com/joomtools/tidyup_myfiles/tree/master
- Joomla 4: https://github.com/joomtools/tidyup_myfiles/tree/joomla4
Txs Guido!
3.7.8.3. jfindfiles
jfindfiles is a bash script allowing to find used and unused content files in your Joomla website
[ works with Joomla 3 – checking whether it is compatible with Joomla 4 ]
https://github.com/renekreijveld/joomlabashscripts/blob/master/src/jfindfiles
Txs René!
3.7.9. Using Bootstrap in Joomla 4
Ever wanted to know how to enable Bootstrap in Joomla4 (for example if you need a Slideshow, an Accordion, …)?
https://gist.github.com/dgrammatiko/efb3de4aa7cab4813a244f93f73cc0fd
Txs Dimitris
3.7.10. Export your Child Template
Ever needed a Graphical User Interface (GUI) way to export your Child Templates? Here’s a little module that does exactly that.
https://github.com/dgrammatiko/mod_child_export/
Txs Dimitris!
3.7.11. user.css creator
[ added on 2023.08.23 ]
What about either generating a color scheme or picking own colors directely via a form? Then you can download the generated user.css file and upload it into you Cassiopeia child theme
Txs Elisa!
3.7.12. Export your Joomla Articles to md
[ added on 2023.08.30 ]
What about having a simple CLI (Command Line Interface) Plugin to export to md (Markdown)?
https://github.com/dgrammatiko/export-to-md
Txs Dimitris!
3.7.13. AdvancedRedirect Plugin
[ added on 2023.08.30 ]
This plugin is based on the Joomla Core Redirect Plugin and acts as a so-called drop in replacement for the Core Plugin. In addition to the Joomla Core Plugin, it allows you to define your own derivation rules.
This plugin has three plugin modes:
- Automatic: the plugin will try to get an URL to the category overview
- URL Hopping: the plugin will try to remove the latest part of the URL.
- Static redirect: the plugin will use a static redirect url
https://github.com/zero-24/plg_system_advancedredirect
Txs Tobias!
3.8. LEARN MORE
3.8.1. Joomla! 4 Masterclass
A practitioner’s guide to building rich and modern websites using the brand-new features of Joomla 4
Paperback so paid of course (PDF version included)
https://www.amazon.com/Joomla-Masterclass-practitioners-building-brand-new/dp/1803238976
Txs Luca!
3.8.2. Extension Development
The missing Joomla™ reference for extension developers
https://www.dionysopoulos.me/book.html
Txs Nicholas!
3.8.3. Joomla 4 – Developing Extensions
550 pages to lean developing extensions
https://ug-mayen.de/images/aextension2301262/1.en.pdf
Txs Astrid!
3.8.4. Learn Joomla 4
Powerful user tips & secrets about Joomla 4 (13 videos atm)
https://www.youtube.com/@learnjoomla4/videos
Txs Brian!
3.8.5. BasicJoomla
Hundreds of videos
https://www.youtube.com/@Basicjoomla/videos & https://www.youtube.com/@Basicjoomla/streams
Txs Tim!
3.8.6. Creating Joomla Content Plugins With Examples
[ added on 2023.04.26 ]
https://kevinsguides.com/guides/webdev/joomla4/ref/content-plugins-with-exs
Txs Kevin!
3.8.7. Astrid Guenther’s blog
[ added on 2023.08.23 ]
What about learning many things about Cassiopeia (or Joomla in general), like adding Local Fonts to your template? Next to her book mentioned above, Astrid also has a blog (available both in English and German).
https://blog.astrid-guenther.de/en/ > Cassiopeia
Txs Astrid!
3.8.8. The Joomla 4 templates book
[ added on 2023.08.23 ]
What about having a eBook explaining everything about Joomla templates for only € 16?
- English version: https://www.joomlack.fr/en/joomla-documentations-tutorials/ebook-joomla-4-templates
- French version: https://www.joomlack.fr/documentations-tutoriels-joomla/ebook-joomla-4-templates
Txs Cédric!
3.8.9. Cassiopeia Template – a bunch of Tips & Tricks
[ added on 2023.08.23 ]
What about having one place gathering all Tips & Tricks about Cassiopeia
https://slides.woluweb.be/cassiopeia/cassiopeia.html
Txs Marc – myself :D
3.9. Beyond Joomla
In this section I mention tools which go beyond the Joomla realm but can be useful for Joomlers :)
3.9.1. php_grep
[ added on 2023.08.30 ]
This script will allow you to scan files of your website and search for a specific pattern; f.i. a word or a sentence.
Example: for a recent hack in a well-known extension you wanted to spot all the files containing '$_COOKIE’. With this little script you can easily find them very quickly, even on your distant server.
https://github.com/cavo789/php_grep
Txs Christophe!
3.9.2. aesecure_quickscan
[ added on 2023.08.30 ]
aeSecure QuickScan allows to scan your website for suspicious files:
- red list: it recognizes more than 45.000 viruses
- green list: it uses hashes to avoid to scan Joomla and WordPress native files (all versions)
In order to help users affected by the hack of a well-known extension, a 2.0 version has been released end of August 2023 which
- is now compatible with PHP 8.2.9
- has now updated its green list with the hashes of all native & unchanged files of all Joomla versions up to 2023.08.30: https://github.com/cavo789/aesecure_quickscan/tree/master/hashes/joomla
This will greatly accelerate the scan and reduce the number of false positives.
https://github.com/cavo789/aesecure_quickscan
Txs Christophe!
4. Get in touch
Any suggestion about this presentation?
Please feel free to contact me. I’ll be happy to keep improving it 🙂
Marc Dechèvre | woluweb
+32 474 37 13 12 | +32 2 772 58 69