Launch the new Digital Marketing Support Community

-Scott MacDonald

We are getting ready to launch the new Digital Marketing support community in mid-July 2013 (only a few weeks away). The new community will feature new CQ-based forums and new Digital Marketing help pages that contain resources such as a 'Spot Light' section, articles, videos, FAQs, Twitter feeds, and so on.

...

......

Read the full blog post at Adobe Digital Marketing Blog

Submitting Mobile Data to Adobe CQ using a Sling Post Servlet

-Scott MacDonald

You can create an Adobe CQ mobile form using JQuery Mobile API and submit the data to Adobe CQ using a Sling Post Servlet. When a mobile user fills in the form and clicks the submit button, form data is submitted to Adobe CQ.

...

......

Read the full blog post at Adobe Digital Marketing Blog

Developing a Spring MVC project using Maven, JSTL tags, and data persistence

-Scott MacDonald

Scotts Digital Community article falls into a general programming discussion (as opposed to an Adobe Enterprise development article) and provides details on developing a Spring MVC application that persists data.

....

.......

Read the full blog post at Adobe Digital Marketing Blog

AEM5.6: Socoadmin: reply button and refresh issues in moderation UI

- David McMahon

Issue

If you are using the classic UI (/socoadmin) for social moderation in AEM5.6, you may notice some strange behaviour as follows

Reply button disabled
1) Go to http://localhost:4502/socoadmin
2) Select a blog comment from Geometrixx

...

........

Read the full blog post at Adobe Digital Marketing Blog

Custom CQ5 workflow step that integrates Twitter and Jabber

-Michael Marth

As part of the IKS project each CMS vendor completes a couple of benchmarks in order to establish a baseline against which future semantic improvements can be measured. For benchmark 3 "Workflow Service" Bertrand and I chose to implement the task "Create a multi-channel (email, SMS, instant messaging, Twitter,...) notification service for workflow transitions". We have created an automated workflow step that can be inserted into a custom workflow and either send an e-mail, send a direct message on Twitter or send a chat message on GTalk/Jabber. The corresponding message's payload is the path to the content node in the workflow plus an optional custom text.

...

........

Read the full blog post at Adobe Digital Marketing Blog

Creating gallery components that display digital assets stored in the CQ DAM

-Scott MacDonald

You can create an interactive visual component that lets your AEM users engage with your Adobe CQ web site by viewing and clicking on images. When a user clicks on a thumbnail version of an image, a larger view of the image appears. In this workflow, the component retrieves images from the Adobe CQ Digital Asset Management (DAM) repository.

...

......

Read the full blog post at Adobe Digital Marketing Blog

Submitting Mobile Form Data to Adobe CQ

-Scott MacDonald

You can create an Adobe CQ mobile form using JQuery Mobile API. When a mobile user fills in the form and clicks the submit button, form data is submitted to Adobe CQ. You can develop an OSGi bundle operation to process the submitted form data to meet your business requirements.

...

.......

Read the full blog post at Adobe Digital Marketing Blog

Adobe CQ/AEM support tools available

-David McMahon

We have recently published a package with support tools that can be useful to help diagnose issues encountered with Adobe Experience Manager.  As the tools project continues to mature, additional tools will be provided to ease the overall diagnosis and maintenance of CQ.

...

......

Read the full blog post at Adobe Digital Marketing Blog

Ways to access your content with JCR (part 1)

- Jörg Hoh

If you are a developer and need to work with databases, you often relay on the features your framework offers you to get your work done easily. Working directly with JDBC and SQL is not really comfortable, writing “SELECT something FROM table” with lots of constraints can be tedious …

The SQL language offers only the “select” statement to retrieve data from the database. JCR offers multiple ways to actually get access to a node:

Each of these methods serve for different purposes.

  • session.getNode(path) is used, when you know exactly the path of a node. That’s comparable to a “select * from table where path = “/content/geometrixx/en” in SQL, which is a direct lookup of a well-known node/row.
  • node.getNodes() returns all child nodes below the node. This method has no equivalent in the SQL world, because in JCR there are not only distinct and independent nodes, but nodes might have a hierarchical relation.
  • The JCR search is the equivalent of the SQL query, it can return a set of nodes. Yes, ANSI SQL 92 is much more powerful, but let’s ignore that for this article, okay?

...

----------

Read the complete post on the Things on a content management system blog.

CQ coding patterns: Sling vs JCR (part 2)

- Jörg Hoh

In the last posting I showed the benefits of Sling regarding resource access over plain JCR. But not only in resource access both frameworks offer similar functionality, but also in the important area of listening to changes in the repository. So today I want to compare JCR observation to Sling eventing.

JCR observation is a part of the JCR specification and is a very easy way to listen for changes in the repository.

@component (immediate=true, metatype=false)
@service
class Listener implements ObservationListener {

  @Reference
  SlingRepository repo;

  Session session;
  Logger log = LoggerFactory.getLogger (Listener.class);

  @activate
  protected void activate () {
    try {
      Session adminSession = repo.loginAdministrative(null);
      session = adminSession.impersonate (new SimpleCredentials("author",new char[0]));
      adminSession.logout();
      adminSession = null;
      session.getObservationManager.addEventListener( this, // listener
        NODE_CREATED|NODE_DELETED|NODE_MOVED, // eventTypes
        "/", // absPath
        true, // isDeep
        null, // uuid
        null, //nodeTypeNames
        true // noLocal
      );
    } catch (RepositoryException e) {
      log.error ("Error while registering observation", e);
    }
  }

  @deactivate
  protected void deactivate() {
    session.getObservationManager.removeListener(this);
    session.logout();
    session = null:
  }

  private handleEvents (Events events) {
    while (events.hasNext()) {
      Event e = events.next();
      … // do here your event handling
     }
  }
}

In JCR the creation of an observation listener is straight forward, also the event listening. The observation process is tied to the lifetime of the session, which is started and stopped at activation/deactivation of this sling service. This kind of implementation is a common pattern.

...

------

Read the complete blog post at  http://cqdump.wordpress.com/2012/11/13/cq-coding-patterns-sling-vs-jcr-part-2/

   

Copyright © 2012 Adobe Systems Incorporated. All rights reserved.
Terms of Use | Privacy Policy and Cookies (Updated)