Skip to content
reggie #7 edited this page Nov 4, 2017 · 14 revisions

Welcome to the AEM Tools wiki. My name is Radosław Wesołowski, I work as a BE AEM freelance developer. Throughout my career I've developed some tools that proved useful in the projects I took part in. The one here is aimed at preserving them for myself and, being open source, might be helpful to the community, who knows, maybe it solves some issues for you too. In case it does - please just let me know, I'll be pleased to find out I could help. Don't forget to cite the source of my solutions in your code and any other materials that advertise its usage.


The installation should be straightforward if you have experience with AEM via maven workflow. It was developed and tested on 6.3 without any additional hotfixes or service packs. Just remember to have the Adobe stuff in settings.xml (check out README in case of doubt). Once the code is installed to localhost - you can browse the sample pages from both /content/enigmatic branch and from /content/mobirise one.

The first part is very raw and its purpose is to show the minimal setup of features presented without additional flamboyances that come with the fully featured corporate website equipped with fancy designs and lots of custom front-end code. All of the core code is there as well.

The second piece is quite the opposite. It's much closer to a real life scenario usage of the features. It's definitely not a production ready project in there yet, but still it should hopefully be quite close to such state. The front end comes from Mobirise's Free HTML Bootstrap templates: One Page and Blog Demo. The ones linked might differ from the version used by me since they've updated their examples.

Features

Here are some of the features that can't be explained with a single line paragraph:

Message Styles

I've been involved with quite some AEM projects in my career already and what stroke me was the fact that none of them (besides my extremely short encounter with Cognifide) has used any visual distinction for warnings/messages/errors presented to the authors while editing pages. The authoring info would simply vanish within the page. And the solution is sooo simple... In aem-tools I'm presenting most of the styling inside /content/enigmatic sample content page. The classes are defined in messages clientlib.

Data Source for select

As a shortcut to providing a datasource node for a Touch UI's dialog widget granite/ui/components/foundation/form/select the enigmatic/dialog/datasource component was introduced. Its script simply wraps all of the repetetive steps in supplying the request attribute. To actually get the values it's using a provider class that only needs to implement GetOptions interface. The configuration is then as simple as

<datasource jcr:primaryType="nt:unstructured"
	sling:resourceType="enigmatic/dialog/datasource"
	provider="pl.enigmatic.aem.dialog.GlobalLabelsOptions" />

The code comes from a link dialog widgets lib. It's used for all the links throughout the whole project to fetch global labels via GlobalLabelsOptions implementation of GetOptions.