Hi Luiz,
(I'm only answering this on dspace-tech, as that's the most appropriate
list for this question)
It might be easier to add simple HTML into the *Theme* itself (i.e. the
XSLTs that make up the theme) rather than the Aspect layer. The Aspect
layer is only exports valid DRI (XML), which is then processed by the
Theme's XSLTs and turned into the final HTML. More on the DRI XML
format: https://wiki.duraspace.org/display/DSDOC5x/DRI+Schema+Reference
So, if you just want to add a simple link, it'd probably be easier to do
that in the XSLT of your theme.
If you still want to do it at the Aspect layer, you probably need to be
sure the HTML is actually "well formed" (and valid XML as well). It
looks like your HTML is not, as it has an ending "<\a>" tag, instead of
the "</a>" tag that is expected in HTML/XML.
Additionally, the "SimpleHTMLFragment" only supports some *very basic*
HTML tags/attributes. When you use this option of the API, your HTML
fragment is actually "translated" into valid DRI XML. From reading the
"SimpleHTMLFragment.translate()" method, it looks like the <a> tag is
supported. But, the *class* attribute is not supported..so that may be
another factor in the problems you are having. Here's the full contents
of that translate() method:
https://github.com/DSpace/DSpace/blob/dspace-5_x/dspace-xmlui/src/main/java/org/dspace/app/xmlui/wing/element/SimpleHTMLFragment.java#L324
Good luck,
Tim
On 2/24/2016 12:02 PM, Luiz dos Santos wrote:
Hi,
Our repository have two kind of url in the
dc.relation.externalresourse, internal and external url, so I add the
method below in the class
org.dspace.app.xmlui.aspect.artifactbrowser.ItemViewer.java, in module
folder. I'm calling the method in the addBody. The problem is that I
would like to add html to the item page, so I add the code that
"externalLinks.addSimpleHTMLFragment(*false*, *"<a href=**\"**" *+
value + *"**\"**class=**\"**extternal-link**\"**> External Link
<**\\**a>"*);" but it is printing the string as a literal in item page
html, I mean, the browser is not render the html code. My question,
how can I add something in the html using a aspect class?
Thanks in advance
Luiz
*private void *addExternalItems(Division division, Item item) *throws
*WingException {
DCValue[] related = item.getMetadata(*"dc"*, *"relation"*,
*"externalresource"*, Item.*/ANY/*);
ArrayList<String> links = *new *ArrayList<String>();
*for*(DCValue dcValue: related ){
*if*(!isInternal(dcValue.*value*)) {
links.add(dcValue.*value*);
}
}
*if*(!links.isEmpty()) {
Division externalLinks = division.addDivision(*"externalLinks"*);
*for*(String value: links) {
externalLinks.addSimpleHTMLFragment(*false*, *"<a href=**\"**" *+
value + *"**\"**class=**\"**extternal-link**\"**> External Link
<**\\**a>"*);
}
}
}
--
You received this message because you are subscribed to the Google
Groups "DSpace Technical Support" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at https://groups.google.com/group/dspace-tech.
For more options, visit https://groups.google.com/d/optout.
--
Tim Donohue
Technical Lead for DSpace & DSpaceDirect
DuraSpace.org | DSpace.org | DSpaceDirect.org
--
You received this message because you are subscribed to the Google Groups "DSpace
Technical Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/dspace-tech.
For more options, visit https://groups.google.com/d/optout.