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

How to add a new supported language in CQ / WEM (Translator in CQ)

Use case:  You want to add new language to CQ Change display language options in translator grid Change language name and default countries  Solution: You can access translator UI in CQ with following URL http://<HOST>:<PORT>/libs/cq/i18n/translator.html Create new language location for Dictionary Go to CRXDE lite (or your favorite JCR browser) and add this structure (assuming /apps/myapp/i18n as a typical location for custom apps): /apps/myapp/i18n [sling:Folder]     - de [nt:unstructured]         + jcr:mixinTypes = [mix:language]         + jcr:language = de     - fr [nt:unstructured]         + jcr:mixinTypes = [mix:language]         + jcr:language = fr Then reload the translator and the path /apps/ myapp /i18n should show up in the drop-down at the top. Note: the translator will only save translations for languages that are actually present underneath the path (e.g. /apps/myapp/i18n), others will be skipped. Then on jsp pa

Login / Logout on a Publish instance and Closed User Group (CUG)

In CQ5 there is the login logout could be configured using a Closed User Group. Closed User Groups (CUGs) are used to limit access to specific pages that reside within a published internet site. Such pages require the assigned members to login and provide security credentials. http://dev.day.com/docs/en/cq/5-4/howto/create_apply_cug.html The logout using /libs/cq/core/content/login.logout.html always gets redirected to the geometrixx site   http://localhost:4503/content/geometrixx-outdoors/en.html By configuring the Default login page  under the osgi configuration for com.day.cq.auth.impl.LoginSelectorHandler to be – /content/mysite/en/login But still after logout the page goes to the geometrixx site. IIRC, the redirect first goes to to / which then goes through the standard, somewhat complex handling of the root with multiple redirects: 1) / has a resource type of sling:redirect and redirects to /index.html 2) /index.html is handled by the RootMappingServlet [0] which h

[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