Explore product-specific spaces to ask questions, share insights, and learn best practices.
Recently active
No text available
How to Share Selected i18n Dictionaries in JSON Format — AEM(Adobe Experience Manager) by Albinsblog Abstract The AEM internationalization framework(i18n) uses dictionaries in the repository to store English strings and their translations in other languages. The framework uses English as the default language. Localized strings can be stored in several dictionaries in the repository, e.g., component level. The AEM internationalization framework combines the dictionaries and makes them available in Sling as a single ResourceBundle object. The i18n can be used in slightly, JavaScript, and Java to display the language-specific labels and values. In some cases, we may have the use case to share the i18n dictionaries externally. There are a couple of options to share the dictionaries externally. RESOURCEBUNDLEEXPORTSERVLET: By default the dictionaries are exposed using the ResourceBundleExportServlet (com.adobe.granite.i18n.impl.ResourceBundleExportServlet) registered under path /libs/cq
I have made 3 master pages for my document, Page 1 has the header, page 2 does not, and page 3 is a narrative continuation page. The Narrative is on the middle of Page 1, and I have an expanding text field. Is there a way to have the expanding text field on page 1 continue onto page 3 without affecting the items after it on page 1 and page 2?
AEM micro-optimization (part 2) by Jörg Hoh Abstract Micro optimizations are important, and their importance is described by a LWN posting about the linux kernel: Most users are unlikely to notice any amazing speed improvements resulting from these changes. But they are an important part of the ongoing effort to optimize the kernel’s behavior wherever possible; a long list of changes like this is the reason why Linux performs as well as it does. And is not specific for the Linux kernel, but you can apply the same strategy to every piece of software. AEM as a complex (and admittedly, it can sometimes be really slow) beast applies the very same. There are a number of cases in AEM, where do you operate not only single objcets (pages, assets, resources, nodes), but apply the same operation on multiple of these objects. The naive approach of just iterating the list and execute the operation on a single element of that list can be quite ineffective, especially if this operation comes wi
What are Custom HTML Elements? | How to use Custom HTML Elements in AEM? by Albinsblog Abstract In this post, let us explore what Custom HTML Elements are and how to use Custom HTML Elements in AEM. Custom Elements allow web developers to define new types of HTML elements.Once a custom element is defined, we can use it on par with built-in HTML elements. Some of the important features are enabled by Custom HTML elements. Define new HTML/DOM elements Create elements that extend from other elements Logically bundle together custom functionality into a single tag Extend the API of existing DOM elements Web Components uses Custom HTML Elements as one of the building blocks to enable reusable custom elements(Components). RULES ON CREATING CUSTOM ELEMENTS: The name of a custom element must contain a dash (-). So , and are valid names. You can’t register the same tag more than once. Attempting to do so will throw a DOMException Custom elements cannot be self-closing(), Always write a clo
7 data analytics trends for 2022 by Adobe Abstract Over the last two years, digital trends have been anything but static. According to the 12th annual Digital Trends report from Adobe and eConsultancy, 87% of surveyed senior executives agreed that the events of 2020 and 2021 have rewired customers to be digital-first. But customers don’t just expect rich digital experiences. To make a lasting impression, businesses need to provide personalized content that creates a unified journey across channels. New technology and market changes are constantly pushing the envelope on digital experiences. Businesses can’t simply configure their data analytics once and forget about it. Instead, they need to be adaptable and turn to real-time data and insights to keep pace. The right technology acts as a foundation. Adobe Analytics already helps thousands of businesses unlock data in real time for immediate, actionable insights. Businesses that use Adobe Real-Time Customer Data Platform can pull the
Show/Hide Page Properties/tabs based on Template paths in AEM by Shaji Ahmed Abstract This blog is an extension to show/hide page properties for multiple templates from my ex-colleague Ahmed Musallam’s post How to show/hide page properties based on a single template path. In AEM , editable templates usually share the same page component, which means the same page properties dialog. Below are the steps to show/hide page properties based on the template paths. Create a servlet package com.taqalytics.core.servlets; import java.io.IOException; import java.util.Arrays; import javax.servlet.Servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.api.resource.ResourceUtil; i
AEM Cloud Service - Sort PathField Picker pages Alphabetically by Sreekanth Choudry Nalabotu Abstract Goal AEM Cloud Version 2022.4.7138.20220427T075748Z-220401 PathField picker shows pages in the order they exist in CRX. This extension is to show them in Alphabetical order... Solution 1) Create the project... mvn -B org.apache.maven.plugins:maven-archetype-plugin:3.2.1:generate -D archetypeGroupId=com.adobe.aem -D archetypeArtifactId=aem-project-archetype -D archetypeVersion=36 -D aemVersion=cloud -D appTitle="Experience AEM Path Field Sort" -D appId="eaem-pathfield-sort" -D groupId="apps.experienceaem.sites" -D frontendModule=none -D includeExamples=n -D includeDispatcherConfig=n 2) Add filter apps.experienceaem.sites.core.filters.PathFieldSortFilter to sort the nodes for PathField picker ... package apps.experienceaem.sites.core.filters; import com.adobe.granite.ui.components.ds.AbstractDataSource; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.
Adobe Experience Manager buoys U.S. census during pandemic by Don Fluckinger Abstract Holding up the 2020 U.S. Census as an example, Adobe made its case to U.S. government users that its cloud content management and web experience tools can serve up rich digital experiences, as Congress opens up its coffers to fund IT modernization. The census is taken once every 10 years and boasts the largest peacetime mobilization of U.S. civilians in order to count its population, said Christina Stoehr, chief of the U.S. Census Bureau's web and new media branch. In the midst of the COVID-19 pandemic and social distancing, the national self-response rate was 57.3% as of current data through May 5, exceeding the planners' expectations, she said. Digitizing the census-taking process saves $107 in taxes for each citizen who fills it out, with a potential savings of $55 million over the course of the census, said Stoehr, who discussed the project at the Adobe Digital Government Symposium. The census
A heads up that this System Admin Essentials learning webinar is happening tomorrow! I know governance and roles and responsibilities is a hot topic among Agencies. Hope you can make it (but even if you can't, register anyway and we'll send you the recording!)
Hello All!I have a script that is designed to scan through the form when the users submits it and make any hidden required fields un-required. However, recently after a change to the default profile (I think this was the inciting incident, I'm not entirely sure), the user has to press the submit button twice in order for the script to work. I have absolutely no idea what's causing this, I poured over it all day, but can't figure it out. Any help would be greatly appreciated! Relevent code linked below:-----------function validateForm() { fixNullTest( xfa.form.form1.formPage ); console.log("after fix null test"); var validationReturn = !ValidationHTML.setFocusToRequired(xfa.form.form1.formPage, null, true).bool; console.log("after validationHTML") console.log("validation return: " + validationReturn) return validationReturn; }//function // this is called by validate form to turn off the required attributes for fields // that are hidden function fixNullTest( oNode ) { if (
Hi,I am writing a custom workflow step to publish a page and all the asset/tag/content-policy references on the page, so I can publish them as well. Currently, the servlet http://localhost:4502/libs/wcm/core/content/reference.json gets all the references, but I am unable to access the services used within that servlet in my code. I am able to get all the asset references using the AssetReferenceSearch API. Is there a similar service for tags & content policies on a page?Please help! Thanks!
We have functionality that inserts a custom audit log type whenever a certain property is updated - auditLogger.add(new AuditLogEntry( "com/day/cq/wcm/core/page", new Date(), newEvent.getUserID(), pageNodePath, "PageRestricted", entryProperties )); This was added back in classic and has been working fine, but we just noticed that in touch it causes the timeline to display "An error has occurred." The log shows that this is because it can't handle that "PageRestricted" type - 2022-05-05T19:25:39.848Z *ERROR* 127.0.0.1 [1651778739703] GET /mnt/overlay/wcm/core/content/sites/jcr%3acontent/rails/timeline/items/timeline/items/events.provider.html HTTP/1.1 org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Uncaught SlingException java.lang.IllegalArgumentException: Unknown modification type: PageRestricted at com.day.cq.wcm.api.PageModification$ModificationType.fromName(PageModification.java:114) at com.day.cq.wcm.core.impl.AuditLogTim
Adobe Experience Platform Mobile SDK with Jetpack Compose by Yansong Yang Abstract In this blog, we give you a step-by-step tutorial on how to integrate Adobe Experience Platform Mobile SDKs with a Jetpack Compose application. Jetpack Compose, which is becoming more and more popular, is Android’s modern toolkit for building native UI. It simplifies and accelerates UI development on Android and it brings your app to life with less code, powerful tools, and intuitive Kotlin APIs. Initializing AEP Mobile SDK Registering the extensions and initializing the Adobe Experience Platform Mobile SDKs when launching the application are required before making SDK API calls. This sample code is provided as a reference. For more information, see the documentation on “add initialization code”. class MyApp: Application() { override fun onCreate() { super.onCreate() MobileCore.setApplication(this) MobileCore.setLogLevel(LoggingMode.VERBOSE) Lifecycle.registerExtension() Analytics.registerExtension(
AEM Experience Manager(AEM): Content Sharing Approaches by Albinsblog Abstract In most cases, we need to share the CMS content with external systems to support the Omni channel's headless experiences or other use cases to support content sharing. In this post, let us see the options available to share the AEM content with external systems. GRAPH QL: The graph QL API shares the content fragments to enable the headless content experience with the external system. The structured data can be managed through Content Fragments in AEM and shared through Graph QL API to support the omnichannel experiences. The latest AEM 6.5 and AEM as a Clod Services versions support Graph QL API; the Graph QL API currently supports only exposing content fragments externally, not for the regular page content. Refer to the following URL for more details on using Graph QL to API to share content fragments with external systems — https://medium.com/tech-learnings/how-to-deliver-headless-content-through-graph
AEM - Asset selector by Adobe Abstract The asset selector lets you browse, search, and filter assets in Adobe Experience Manager Assets. You can also fetch the metadata of assets that you select using the asset selector. To customize the asset selector interface, you can launch it with supported request parameters. These parameters set the context of the asset selector for a particular scenario. Currently, you can pass the request parameters assettype (Image/Video/Text) and selection mode (Single/Multiple) as contextual information for the asset selector, which remains intact throughout the selection. The asset selector uses the HTML5 Window.postMessage message to send data for the selected asset to the recipient. The asset selector is based on Granite’s foundation picker vocabulary. By default, the asset selector operates in browse mode. However, you can apply filters using the Omnisearch experience to refine your search for particular assets. You can integrate any web page (irre
Best practices for Experience Manager Assets by Adobe Abstract Adobe Experience Manager Assets is a crucial part of delivering high-quality digital marketing experiences that contribute to the achievement of business goals through increasing your content velocity. If you work with a large number of assets within Assets or regularly/periodically upload numerous assets, including videos and dynamic media, optimizing your digital asset management experience is critical for system efficiency. Depending upon how you have positioned Assets for your organization and the features that you use around asset ingestion, rendition generation, and metadata extraction, identifying and adhering to best practices in different areas greatly enhances system stability and performance under load. After reviewing the following guides, you will have the knowledge and tools to build and manage an enterprise asset management system that meets your needs. Assets performance tuning guide Includes a set of be
Adobe Experience Manager, the leading headless CMS by Adobe Abstract Why would you need a headless CMS? IT is looking to address Agility and Flexibility Organisations want to deliver app-like experiences in addition to regular content pages Javascript frameworks like React and Angular have matured Content delivery channels have increased in number and technology has diversified So, IT needs a flexible, decoupled, developer friendly CMS. AEM's Pillars for Headless GraphQL and Content Services power efficient rendering in client applications and robust APIs for content management AEM's Content Fragment Model editor enables you to define content models, relationships and governance via a no-code GUI. Our content fragment editor is an intuitive user interface for creating and managing content. Experience Fragments can be delivered as json objects or plain html while enabling rich personalisation across channels Read Full Blog Adobe Experience Manager, the leading headless CMS Q&am
Application security testing within AEM Boundary and Tools by Aaemtutorial Abstract Evolution of AEM from on-prem/AMS to AEM As Cloud service has reduced the security concerns to a certain limit. But there are areas an AEM architect should be concerned about, when the code moves to production. Role of Application Security Testing (AST) The application security is a major consideration when new design techniques are adopted and DevSecOps are in demand. Application Security Testing (AST) tools available as On-Premise,Cloud or as a SaaS offering. The current tech-market comprises of Application Security Testing (AST) tools offering core testing capabilities — which can be of type static, dynamic, interactive and various optional, specialized capabilities testing; Below given a set of the AST techniques in brief Static AST (SAST): SAST analyzes an application’s source, bytecode or binary code for security vulnerabilities - Mainly during development & testing phases. Dynamic AST (
How to limit the number of components in Container Components? by Albinsblog Abstract In this post, let us see the approaches to limit the components in container components; in some cases, we may have the use case to limit the number of child components allowed to be added into the container due to the business rules. OPTION1 — LIMIT THROUGH FE LOGIC: Limit the number of components through Front End Javascript; refer to http://mnmaem.blogspot.com/2018/02/aem-parsys-customisation.html for more details on this approach. The challenge of this approach sometime may create incompatibility issues or out-of-sync issues during the AEM level changes. In this post, let us see the approaches to limit the components in container components; in some cases, we may have the use case to limit the number of child components allowed to be added into the container due to the business rules. OPTION1 — LIMIT THROUGH FE LOGIC: Limit the number of components through Front End Javascript; refer to http:/
AEM Cloud Service - Sort PathField Picker pages Alphabetically by Sreekanth Choudry Nalabotu Abstract AEM Cloud Version 2022.4.7138.20220427T075748Z-220401 PathField picker shows pages in the order they exist in CRX. This extension is to show them in Alphabetical order... Solution 1) Create the project... mvn -B org.apache.maven.plugins:maven-archetype-plugin:3.2.1:generate -D archetypeGroupId=com.adobe.aem -D archetypeArtifactId=aem-project-archetype -D archetypeVersion=36 -D aemVersion=cloud -D appTitle="Experience AEM Path Field Sort" -D appId="eaem-pathfield-sort" -D groupId="apps.experienceaem.sites" -D frontendModule=none -D includeExamples=n -D includeDispatcherConfig=n 2) Add filter apps.experienceaem.sites.core.filters.PathFieldSortFilter to sort the nodes for PathField picker ... package apps.experienceaem.sites.core.filters; import com.adobe.granite.ui.components.ds.AbstractDataSource; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.re
Hi ,I would want inputs as how the AuthenticationInfoPostProcessor will get invoked for capturing saml response in java code using aem6.5. If implement an component like below @Component(immediate = true, metatype = false) @Service public class SAMLResponsePostProcessor implements AuthenticationInfoPostProcessor {1>Need inputs as How will this component be invoked by saml response after login. I see entries in our code base like com.adobe.granite.auth.saml.SamlAuthenticationHandler-app1.xml , we have like this 4 apps,I meant app1,app2,app3,app4. I also see the as soon as the user logs in it creates a Node for the user details under /home with rep:user. But don't see any entries in com.adobe.granite.auth.saml.SamlAuthenticationHandler-app1.xml for user creation under /home with rep:user. So how is that the above sample code will be hit when we saml login happens. Please provide input
Hello Everyone, We want to better support your understanding and use of Adobe Campaign. Please share your feedback on how Adobe can better meet your needs through a 10-minute survey open through Tuesday, May 31st. Take the survey! Thanks in advance for your valuable insights. Your input will help us create more relevant and helpful learning content to support your success with Adobe Campaign. * Note: To complete the survey, you'll need to sign up for the Customer Feedback Panel. You may unsubscribe once you complete the survey. If you remain subscribed, you’ll get access to feedback sessions, sneak peeks of upcoming products, and share your needs with product teams directly.
Hi Campaign Community! Today is your last chance to take the Adobe Campaign Customer Adoption Survey. The 8-minute survey closes at midnight on Tuesday, May 31st. Don't miss your opportunity to share input. Take the survey! Thanks in advance for your valuable insights. Your input will help us create more relevant and helpful learning content to support your success with Adobe Campaign. * Note: To complete the survey, you'll need to sign up for the Customer Feedback Panel. You may unsubscribe once you complete the survey. If you remain subscribed, you’ll get access to feedback sessions, sneak peeks of upcoming products, and share your needs with product teams directly.
All,Followed adobe docs to add dispatcher module to the git. Now the question is,1. do we need to add all the files into conf.d conf.dispatcher.d, including the ones we didn't alter?2. I know we create a zip file, as part of the build process , does cloud manager replace the directory itself or just the files that we have in the repo gets pushed in there that gets updated? I believe it is latter but thought of confirming ....Online document states " Upon deployment to a dispatcher Instance, the contents of these directories will overwrite the contents of these directories on the Dispatcher instance" 3. Is there a restart of dispatcher that has to manually occur post deployment or does cloud manager take care of it for every deployment?4. Validated the configs on local and it looks fine. Are there any other steps to be taken? The variables are already set by AMS
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.