Thursday, December 19, 2013

Changing page properties


I'm attempting to add an additional field to page properties for both the web UI and the sidekick.

Web UI

Web UI page properties exist at this path:
wcm/core/content/sites/bulkproperties/items/content

If I want to add a specific field, I would want to dig deeper to the tab and column to situate the field:
wcm/core/content/sites/bulkproperties/items/content/items/tabs/items/basic/items/col1/items

I think I can duplicate some of this in my local app, but am not sure. I will have to try the sling:resourceSuperType to see if I can modify this. I don't want to modify it in the WCM since this is core information for the entire install of AEM.

I also found a way to restrict the tags, it's on this same node. Again, doing it on the WCM will affect all content on the install, so I don't want to do that here.

Editing the WCM instance does NOT add it to the page properties dialog in the sidekick.

Sidekick

The page property dialogs for the sidekick are here:
libs/foundation/components/page/dialog [cq:Dialog]
libs/foundation/components/page/tab_basic [cq:Panel]

Dialog contains items that reference the tab panels.

TRIAL: I've copied both items to my app/component/page folder and made adjustments to test the addition of a new panel to the dialog. I've removed all other parts of the dialog with the assumption that the component/dialog should be picking up the rest since the parent node "page" is has a resourceSuperType pointing to the original resource.

RESULT: Copying these two folders and essential child nodes to the app's component/page folder appears to disable the page properties feature in the sidekick.

OUTCOME: Fail.

Software development -- from a designer's perspective

I am traditionally a front-end web designer/developer, so diving head-first into AEM development is a bit of a stretch for me. I get how the HTML and CSS fit together. I get how to take apart my pages and put them back together. I know how to design a page and make it user friendly -- I don't know how to think in terms of software development though.

Hence this post. A helpful page I just found on ways to think about working with the Java Content Repository: David's Model: A guide for content modeling

In brief, seven simple rules:

  • Rule #1: Data First, Structure Later. Maybe.
  • Rule #2: Drive the content hierarchy, don't let it happen.
  • Rule #3: Workspaces are for clone(), merge() and update().
  • Rule #4: Beware of Same Name Siblings.
  • Rule #5: References considered harmful.
  • Rule #6: Files are Files are Files.
  • Rule #7: ID's are evil.

Things I'm looking for


  • Working with images
    • Accessing different versions from the DAM
    • Accessing image properties from the DAM
    • Creating modal view with image properties displayed
  • Working with tags
    • Deactivating tags
    • Categorizing tags
    • Restricting tags by project/app NOT by user
    • Treating some tags differently than others (major categories vs. supporting)
    • Adding new tags on the fly by user
  • Adjusting page properties
  • Optimizing software
    • Initial heap sizes
    • CRXDE packages
    • Adding nodes to CRXDE view
  • Links to resources
    • user-written blogs
    • forums
    • Dev Day docs

Working with tags

For this particular project, I want to create custom tags that can be used to organize my site content in AEM. I've figured out how to add new tags and I've figure out how to deactivate existing tags. However, AEM is not actually disabling these tags! I still have a lot of junk tags in the system that came with the AEM install. Instead of deleting these, I'd like to discover a way to either hide these or to restrict them to a specific area of the install.

Also, when assigning tags through the web UI, tags that are hierarchically organized get cut off. This is frustrating, as a tag like "Asset: Orientation: Horizontal" and "Asset: Orientation: Vertical" both look like "Asset: Orientation". Not good Adobe.
Need to look into restricting namespaces to specific sites, this might be the key.