Overridden aem OOTB journal component not getting css - aem

I'm very new with AEM. I'm using AEM 6.2 version. I overridden OOTB journal component from libs/social/journal/components/hbs/journal to in my project. I copied it and past into my project.
Then I changed journal component property sling:resourceSuperTyep:social/forum/components/hbs/forum to sling:resourceSuperTyep:/libs/social/journal/components/hbs/journal in my project. Then I authored this overridden component on page. After authored it only displaying text boxes and buttons but not displaying any css design.
What I did wrong? Please help me.

The issue is most likely due to missing CSS includes evident
due to 404's you are getting in your browser's console. This may be due to one or more of following causes:
Bad sling mappings.
Bad dispatcher configuration.
Invalid clientlibs path.
The clientlibs seems to be included ok otherwise you won't be getting 404s as the files would never have been referenced.

Failed to load resource: net::ERR_NAME_NOT_RESOLVED
This means your resource's URI cannot be resolved. Open the full link in a new tab in the browser and get more details on error. It is most likely a misconfigured path.

Related

TYPO3 11.5.21 error: TypoScript settings missing Unable to find TypoScript settings for module

yes, it's me with a further, maybe stupid question. I'm very new in TYPO3, I just started working with it. I know some programming languages but no typoscript. Therefore I'm working with the bootstrap package first.
I made some forms with TYPO3 core and so far everything was fine but there wasn't any possibility to customize the email (to sender). Therefore I first installed "Form: Mailtexts via plugin" but afterwards the form was not working anymore and I deleted it and everything was fine again.
After some research I have found powermail for creating forms with loads of cool functions.
So, I read four different tutorials about making forms in powermail and it's not working at all.
As far as I can evaluate the problem, I would guess that the last step is the problem, placing the content on the page.
After loading the page with the powermail elements an error message is shown
"TypoScript settings are missing. Did you include the related static templates? No form to show"
Of course I googled this error message and found this post https://github.com/derhansen/sf_event_mgt/issues/432.
In this post they include "fluid content elements" and "Event management and registration" extension and so did I. A new icon in the backend popped up "Events". Selecting this icon a further error message is shown:
"TypoScript settings missing Unable to find TypoScript settings for module. Please make sure, you have included the static TypoScript for the extension."
The page with the powermail elements is empty now, i.e. no more error message but it's also not working at all.
Please, does anyone understand what's going on here? I'm devastated :-(
Many thanks in advance for your kind help!
Best,
expikx
I tried to solve the problem by internet research and experiments
The plugin of powermail just informed you, that basic configuration is missing. The configuration is given via TypoScript and of course powermail brings some default configuration with it.
You now have to include them. You can do it by opening your default TypoScript template, change to the tab "Includes" and select "Main Template (powermail)". Save your template and reload your frontend.

Sightly syntax to retrieve crx/de properties in jsp/html page

I would like to retrieve some properties e.g. jcr:created using Sightly or any related syntax for the panel component in AEM adaptive forms. 1
The previous Sighlty syntaxes that I have attempted to retrieve the crx/de properties include:
${properties.jcr:created}
${pageProperties\[jcr:created\].getTime.toString}
${guidePanel.jcr:created}
${resource.jcr:created}]
I have tried the following syntaxes but unable to retrieve the value from the property and in worst cases, the component may not be rendered on screen.
I have looked up on Adobe forum sites and past stackoverflow questions that other people may have asked. I have tried the solutions and given answers but was unable to achieve the result. I would greatly appreciate for any help or sharing of applicable knowledge if you have encountered similar issues or previously attempted to solve similar problems. Thank you!
You can always create Use class in Java or Javascript to access these properties, it's cleaner and testable. Better than that, you can use Sling Models which are more readable and easier to implement, here is a good presentation about it https://www.slideshare.net/accunitysoft/understanding-sling-models-in-aem
Properties of resources are readable without any extra definitions needed.
So you might want to check what resource is handled in your component by adding this:
${resource.path}
Then you can check the returned path in CRXDE if there really is a jcr:created property available at this path - which should be the case if you are accessing a resource that has a proper sling resource type. Then this call should give a valid return value:
${resource.path} ___ created:
${properties.jcr:created.getTime.toString}
If the path is not displayed as well, then it would help if you could post
the repo path of the content resource you are processing
the sling:resourceType
the path to the component's ht(m)l file that you are using

How to stop AEM from including author instance javascripts on the publisher instance

The publisher instance has the following javascript files included:
/etc/clientlibs/granite/jquery.min.js
/etc/clientlibs/granite/utils.min.js
/etc/clientlibs/granite/jquery/granite.min.js
/etc/clientlibs/foundation/main.min.js
/etc/clientlibs/granite/jquery/granite/csrf.min.js
It would be best to exclude them for performance and also the fact that I am using jQuery 2.0 as my part of AEM site.
These scripts(not including the csrf.min.js) are part of the category cq.foundation-main. You can use this utility for checking this.
http://localhost:4502/libs/granite/ui/content/dumplibs.test.html?categories=cq.foundation-main
If you create your page template components by extending the OOTB wcm/foundation/components/page (assuming you use sightly), AEM will add these scripts in the head section. More specifically these are included in headlibs.html file present under the OOTB page component.
To overcome this, you can override this file in your component, and either comment this below line or include it conditionally only when wcmmode is edit.
<sly data-sly-test="${wcmmode.edit}" data-sly-call="${clientLib.all # categories='cq.foundation-main'}" />
For JSP based components (foundation/components/page), the same thing is done in headlibs.jsp.
By the way, you wouldn't want to remove the CSRF JS. It's AEM's solution to counter CSRF issues.
What you see is the clientcontext related js'es
The script that loads the given js'es is as below (or sth similiar)
<cq:include path="clientcontext" resourceType="cq/personalization/components/clientcontext"/>
either you exclude it completely for publish (wcmMode=disabled) which would probably break sth related to analytics on your publish, or change the include to some overwrite of the clientcontext component that you'd develop.
If you however don't use any native Adobe integration you should be safe just with excluding the thing.

Segment resolving in AEM / CQ5 using initializeTeaserLoader adding multiple divs inside campaign target

The below code is part of teaser.jsp (/libs/cq/personalization/components/teaser/teaser.jsp)
<script type="text/javascript">$CQ(function() {
initializeTeaserLoader(<%=allTeasers%>, "<%=strategy%>", "<%=targetDivId%>", "<%=(WCMMode.fromRequest(request) == WCMMode.EDIT)%>", "<%=trackingURLStr%>", "<%=resource.getPath()%>");
});</script>
Similar code we used in our customized teaser jsp.
The aboveinitializeTeaserLoader method is adding multiple divs inside the target div at the first time when offerpage is resolved.
Ideally it should have only one resolved div. Is there any solution for it?
Note: On page refresh functionality is working fine. But our application is single page application may be this issue is coming.
Its seems to be an existing issue with OOTB teaser component.Apparently same thing happened in our project, we were using Angular Js on top of AEM (6.1).
We we went to ADOBE with a ticket and got one patch for the same problem (and few more, not relevant to this question).
Most probably if you go ahead and use 6.2, this problem should not persist.
Good LUCK (y)

AEM Serving dynamic content (JSPs) from /etc/designs

I would like to implement an extensible templating mechanism in AEM, so as to permit component users to control markup for individual projects (designs) without modifying the components' pre-defined JSPs.
I have extended the <cq:include> tag to permit this, by passing a template name, which is then retrieved from the current design, falling back to the default markup when an override does not exist in the design:
<ct:template name="listNav/prev" />
This should load the jsp script from [1], unless the location does not exist, defaulting to [2]:
/etc/designs/projectName/component_templates/listNav/prev.jsp
/etc/designs/component_templates/listNav/prev.jsp
When using the extended tag, I'm receiving the exception (yes, the file exists):
Caused by: org.apache.sling.api.SlingException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Could not find script /etc/designs/component_templates/listNav/prev.jsp
This all works when the component_templates is under /apps. Is there any way to make this work? Is there a better approach? I'd prefer to keep the component_templates with the designs, if possible.
I don't think it is a good idea to put application script to etc. They should be under /apps.
But I think it could work, if you add /etc path to the "Resource Search Path" of this service:
system/console/configMgr/org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl
you can choose between different "designs" within the advanced page properties tab! afaik you should use this mechanism to declare different designts i.e. stylesheets etc. to your pages and of cause you don't need to modify anything at the jsp's to switch between different styles if implemented properly.
Have a look at this:
Adobe AEM Designs