Saturday 27 April 2013

Guidelines - Assets Upload into CQ DAM

Here are the few guidelines suggested by CQ Experts (from google groups):


1. Folder/Asset Naming convention

    a. Is it good a have a folder/Asset name contains underscore ( _ ).

        Eg:  /content/dam/Test/Advanced_buttons
    
    Is CQ providing any best naming conventions.

2. Assets (Images/pdf/docs whatever)
   
     a. What is the max size limit of an Asset?

3. What is the max number of Assets that we can upload in a dam folder.

Comments:

1. Yes folders can have underscores. I didn't see any issue till now.
2. Max size limit I am not sure but I injected around 10 to 30 MB size with out any issues.
3. There should not be much issue even if you inject 100 to 150 gigs of assets. we migrated around 130 gigs with out much issues. In terms of number of assets inside a particular folder (Number of nodes at one level) Adobe recommends dont use more than 200 to 250 at one level. If it is more than that front end DAM UI will slows down (still repository doesn't show any issue)


Quick Notes


How to get a Resource when we have node path:

In Java:

@Reference 
private ResourceResolverFactory resourceResolverFactory;

ResourceResolver resolver=null;

resolver = resourceResolverFactory.getAdministrativeResourceResolver(null);

Resource res=null;
res= resolver.getResource("PATH");

In JSP:

Resource res= resourceResolver.getResource("PATH");


How to get a Node, Get node property, Add/Update node property:


Node node = res.adaptTo(Node.class);

Get propoerty:

String prop= node.getProperty("Prop_name").getValue().getString();

String prop = node.setProperty("Prop_name","Value");

Note: Don't forget to save the session when the node is updated.

Update Node using PersistableValueMap:


Resource resource = resolver.getResource("Node Path");
if(resource !=null)
{
PersistableValueMap valueMap= resource.adaptTo(PersistableValueMap.class);
valueMap.put("propname","value");
valueMap.save();

}



How to get a JackRabbit session in the Workflow:

final JackrabbitSession jackrabbitSession = (JackrabbitSession) wfsession.getSession();
UserManager userManager = jackrabbitSession.getUserManager();

Friday 11 January 2013

Store Form Data

Task: Create a page which has form by default where we can add different form fields like text, radio buttons, file upload and so on..

Sol
  Step 1:  Create a template and add properties as shown in the following example. Here the template name is 'formtemplate' 
   Also add resourceType property to the template..

           

Step 2: 
      Add property called Sling:resourceType as 'foundation/components/parsys'

Step 3:
      
     Will up soon...
    
      



Note: 

   1. While configuring Action to store the data, we specify the path as follows:
      Eg: /tmp/formdata   or /tmp/formdata/
   
   To Override the form data, We have to specify like
      /tmp/formdata
   To store data in another node, We have to specify like
      /tmp/formdata/