Chuyển đến nội dung chính

[CQ ADMIN] Overriding the default damadmin or siteadmin pages in CQ5



Overriding the default damadmin or siteadmin pages in CQ5


Overriding foundation content in CQ5 was made fairly easy by our friends on the Adobe CQ team.  In the vastmajority of cases, we can just replicate the path of the original code under libs to our apps folder.  In the case of siteadmin and damadmin, this would mean we need to copy the root node from the original path: /libs/wcm/core/content/damadmin or /libs/wcm/core/content/siteadmin to /apps/wcm/core/content/damadmin.  However, since these particular nodes are accessed through a vanityURL (/damadmin and /siteadmin respectively) instead of their path in the repository, there is a slightly different approach to overriding them.  Although it is still best practice to override in the same folder structure as the libs node (so you can default back to them for any un-overridden piece), there is an extra step to getting your content to actually appear when using vanity urls.
This little gem of an property is called: vanityOrder
On both the damadmin and siteadmin nodes there is a property called vanityOrder.  Typically, this property is not necessary as any vanityPaths set in custom content will be unique.  In this case, however, since the original content is under libs, we need to set a vanity order to establish what content the vanity url maps to.
Let's do a little example:
We're going to add a button to the "Tools" dropdown in the damadmin.  The first step is to copy the damadmin node to your apps folder, as seen below (Note: Folders must be of type sling:folder):

[[{"type":"media","view_mode":"media_large","fid":"73","attributes":{"alt":"","class":"media-image","height":"398","typeof":"foaf:Image","width":"440"}}]]

Now that you have a copy in your apps folder, delete any child nodes that you will not be overriding (we want to revert back to the libs version in case of future updates).  As we're adding a "Tools" item, it is safe to remove the grid, treeRoot, search, tabs, and tags nodes.  After removing these items, it will look as follows:
[[{"type":"media","view_mode":"media_large","fid":"74","attributes":{"alt":"","class":"media-image","height":"257","typeof":"foaf:Image","width":"409"}}]]

Now that we have just the portion we want to override copied over, lets create some changes (so we can prove that we're overriding the default).  I'll start with something extremely simple, we'll copy an existing item and change the text.  In the example below, I copied "References..." and set the text to "Export Item":
[[{"type":"media","view_mode":"media_large","fid":"75","attributes":{"alt":"","class":"media-image","height":"314","typeof":"foaf:Image","width":"440"}}]]

So now we have an updated damadmin console!  Lets go to our browser and see the changes (http://localhost:4502/damadmin):
[[{"type":"media","view_mode":"media_large","fid":"76","attributes":{"alt":"","class":"media-image","height":"180","typeof":"foaf:Image","width":"480"}}]]

Interesting, it doesn't seem to have picked up our changes!  A new item was supposed to be under "Download" in the tools dropdown.  This is where we need to modify the "vanityOrder".  You see, since we're using a vanity path, we need to specifically tell CQ which item will take priority.  This is also where the different CQ versions will act differently (unfortunately).  You can see on the copied damadmin node, the vanityOrder is set to 290 (seen in the first screenshot under properties).  In CQ5 (without any SP), we need to set our overridden version to have a higher number.  Let's see what happens when we set it to 291:
[[{"type":"media","view_mode":"media_large","fid":"77","attributes":{"alt":"","class":"media-image","height":"331","typeof":"foaf:Image","width":"454"}}]]

Now lets see if our changes have been picked up:
[[{"type":"media","view_mode":"media_large","fid":"78","attributes":{"alt":"","class":"media-image","height":"159","typeof":"foaf:Image","width":"463"}}]]

Huzzah! It worked.  Now that we know how to make changes, you can actually modify the default buttons and interactions of this console.

By Ryan McCullough

Nhận xét

Bài đăng phổ biến từ blog này

[PERFORMANCE] Adobe WEM/CQ performance tuning

Adobe WEM/CQ performance tuning Contents Caching-related configurations CRX Bundle cache CRX Search index handler (Lucene) cache Tar PM index cache Scalability Maintenance Optimizing Tar Files (for Tar Persistence Manager) Data Store Garbage Collection Main documentation you should consult first: http://dev.day.com/docs/en/cq/current/deploying/performance.html http://dev.day.com/content/kb/home/cq5/CQ5Troubleshooting/performancetuningtips.html Caching-related configurations CRX Bundle cache CRX caches bundles, consisting of a node with all its properties. This is used by all bundle-based Persistence Managers. The default size of BundleCache is 8 MB. If this is too small it can cause an excessive number of read-accesses to the underlying persistence layer. Set the bundleCacheSize to something larger than the default. See more here: http://dev.day.com/docs/en/cq/current/deploying/performance.html#CRX%20Bundle%20Cache CRX Search index handler (Lucene...

[Query Builder] Advanced Search

Using the Advanced Search When using a list, select from the 'Build list using' options 'Advanced Search.' This will open a new tab in the list window with one text box labeled: 'Querybuilder Predicate Notation.' This is asking for a few lines of code to define search parameters. Example Code - With Explanations of Results Searching for Pages type=cq:Page property=jcr:content/jcr:title property.value=Places 'type' defines what sort of object you'll be searching for (it's usually a page). 'property' defines what property of the object you'll be filtering by; in this case, its by the title. 'property.value' defines your search term. So this search would be searching all PAGES with the TITLE of PLACES. So it would find every page titled Places. *IMPORTANT* Searches by title ARE case-sensitive, so 'Places' is not the same as 'places'. type=cq:Page path=/cq/sandbox property=jcr:cont...

[CQ6-SYSTEM] MAINTAINING THE REPOSITORY - Reduce repository size (cleanup repository)

Compacting Tar Files As data is never overwritten in a tar file, the disk usage increases even when only updating existing data. To make up for the growing size of the repository, AEM employs a garbage collection mechanism called Tar Compaction. The mechanism will reclaim disk space by removing obsolete data from the repository. Revision Clean Up By default, tar file compaction is automatically run each night between 2 am and 5 am. The automatic compaction can be triggered manually in the Operations Dashboard via a maintenance job called Revision Clean Up. To start Revision Clean Up you need to: Go to the AEM Welcome Screen. In the main AEM window, go to Tools - Operations - Dashboard - Maintenance or directly browse to http://localhost:4502/libs/granite/operations/content/maintenance.html Click on Daily Maintenance Window. Hover over the Revision Clean Up window and press the Start button. The icon will turn orange to indicate that the Revision Clean Up ...