Content duplicity in cq5 page - components

I am observing content duplicity on my CQ5 page, i cross-checked for any duplicacy of property names in the component's dialog, however, there were none. However, the duplicacy for the properties have occured only with the xtpye as "richtext". Can there be any other reason for this?

Related

Accessing properties across pages in AEM HTL (Sightly)

I have a carousel component, whose slide content will be the content from another page, accessed via reference component. I want to get some properties authored in the carousel to be accessible inside the referenced page. i.e. I have Page A- with a Carousel accessing PageB through reference component. I want to get proeprties from PageA in PageB. Can this be achieved?
Sure it can, you will need to lookup/query the content and find pages where PageB is included, then get the properties of those pages (there might be more than one) and merge them. It will have to be custom code though as this is not available out-of-the-box as of AEM 6.3.
The solution could be adding a query parameter or setting a request parameter. But then again, this depends on the requirement. For me, this worked!!

Error accessing Xpage using $$OpenDominoDocument.xsp method on database replica

I have a Form called 'Contact Level\Customer Contact | Customer Contact', which is a response document, and in the properties I have associated the customerContact XPage to the form. In all view panel controls I have use the 'XPage associated with the document's form' property.
On server A the XPage is opened correctly using the $$OpenDominoDocument.xsp method from any view control.
On server B, which has a replica of the server A database, the XPage does not open from any of the views using the $$OpenDocumentDocument.xsp method. The error I see on the server log is 'HTTP Web Server: Item Not Found Exception [db.nsf/$$OpenDominoDocument.xsp?documentId=......&action=openDocument]'.
I have removed sections of code from the XPage to track down whereabouts the error is happening and it was the domino document settings that cause the problem.
I have checked the form properties and they are correct.
If I change the $$OpenDominoDocument.xsp section of the URL to customerContact.xsp then the document opens without error.
If I change the view panel property to explicitly open the customerContact XPage then again the document opens without error.
I have tried changing the form and XPage so it opens the 'contact' XPage instead (an almost identical non-response version of the same form) and the XPage still errored.
I tried saving a document in client but the XPage still errored.
I changed the form name to include a new alias of CustomerContact and modified a document to use the new form name, and this document opened without error. That made me wonder if the space in the Customer Contact name was causing the error, but there are many forms / XPages on the database in question, some others with spaces in there alias, and this is the only form that errors.
Any help would be greatly appreciated.
Is there another Form or Subform that has the same name or has "Customer Contact" as an alias? I have a feeling I read a blog some time ago that mentioned $$OpenDocument picking up a subform instead of a form, but I'm not 100% sure, so that may be wrong. If it's working on a newer server, that issue may have been fixed.

404 Item not found When Providing access to existing documents from an XPage View

I have been following the tutorial here for creating an XPage application. Unfortunately I am encountering an Error 404 HTTP Web Server: Item Not Found Exception when you try to follow a link to another document from the main view XPage. Everything else seems to function properly until that point.
It happens when you select "XPage associated with the documents form".
According to some googling I simply needed to rebuild my project but that didn't work. That was the only fix I was able to find.
The link for my xpage for my view is : http://localhost/ExpenseClaims.nsf/xclaimsview.xsp
The link to a xpage with the 404 error from my view is: http://localhost/ExpenseClaims.nsf/%24%24OpenDominoDocument.xsp?documentId=15DA9966C77908D385257C150070483D&action=openDocument
The problem has returned for my "claim" xpage that represents a form document named "claim". My response documents open as needed.
My associations are:
Views: Xpage:
Claims -> xclaimsView
Forms: Xpage:
claim -> claim
response -> response
Most likely the connection between your XPage and the form didn't work. Open the form, then in the properties pick the XPage you want to open. Save it and try again.
There's one special case when you have an XPage with the same name as the form, where that should happen automatically, but it is safer if you specify the property in the form (second tab on the property box)
The data connection from the xpage to the form seems to be breaking down that's a possible cause but not an acceptable answer. The reasons are everything from the project build being broken to the port that domino designer is using as default being occupied.
Cleaning then building the project may help (Project -> Clean) but in my case it didn't. Opening the Page by selecting it by name is helpful but not if you are opening two different pages from the same view(View Properties -> at run time open selected document). There was another suggestion that said to move the default domino test port(File -> Preferences -> Domino Designer) but that didn't work for me.
The final answer was to go to each form's properties box and link it to it's corresponding xpage (second tab form properties). (see answer marked as correct for a link to IBM with a better explanation)

Unable to get document page name for

I have a view that has XPage Associated with document form set.
The form property has the xpage associated with the document.
If I click on the link in the view the proper correct xpage is displayed as expected.
But if I close the browser, and paste the URL to the document into the browser, I get the error, Unable to get document page name for (and the unid). As long as I remain logged in the url will work without error or if I set anonymous to Reader the url will continue to work. But if I close the browser where I would be prompted to login then I get the error but I get the error before being prompted to log in.
The url for assocated forms looks a little different than when the view is used to display the xpage.
myserver/mydb.nsf/$$OpenDominoDocument.xsp?documentId=12B571F2B03E3764852573690041E273&action=openDocument
The view has various types of forms so I need to associate the form with the xpage or I suppose I can compute the xpage for the form. But any idea what would be causing this issue?
If you are opening a document from a view, the associated form could be overriden by a form formula of the view. When opening the document directly with $$OpenDominoDocument.xsp the original form stored in the document is used instead.
The form can be associated with a XPage in different ways:
For XPiNC there is a field $XPagesAltClient in the form
For web access there is a field $XPagesAlt in the form
There is a entry in the xsp.properties file.
For example this entry...
xsp.domino.form.xpage.foo=bar
...will open a document with the value foo in the Form field with the XPage bar.xsp.
Hope this helps
Sven

Accessing a "Page Field" value in layout.cshtml

I have added a field (media picker field) for "BackgroundPhoto" to the Page content type.
I'm trying to get the page so when that field exists, or has a value, that it's added through css as the background URL to the layout-wrapper found in layout.cshtml.
I have searched and come close to finding how this works, but never accessing a value from a content type on the layout page. Does anyone have an example where this works? Specifically, a value in a page field is added to the "layout-wrapper" item in layout.cshtml.
Thanks for your help!
Technically, the layout wrapper is document.cshtml. You could override that to render a value that you stored in HttpContext from your deeper field template.
To recap: create a template override for your field in your theme; from there, set the value of the field into a HttpContext item; From document.cshtml, retrieve and render that value.

Resources