Hi Donald,

I'd recommend reading in the URL via ConfigurationManager (or in 6.x and 
newer, the DSpaceConfigurationService) and reading the label in from the 
i18n Messages file so it can be translated if needed.

In 5.x and previous, you could import org.dspace.core.ConfigurationManager 
in StatisticsTransformer and use it where the other static strings are 
created, like

private static final String T_link_feedback_url = 
ConfigurationManager.getProperty("xmlui.statistics.feedback_url");

or in 6.x+, import org.dspace.services.factory.DSpaceServicesFactory and 
use it much the same way

private static final String T_link_feedback_url = 
DSpaceServicesFactory.getInstance().getConfigurationService().getProperty("xmlui.statistics.feedback_url");

And read in a message key from the i18n messages.xml files like:

private static final Message T_label_feedback_url = 
message("xmlui.statistics.feedback_label");

Now these values can be fed into the Xref, using addContent() instead of 
passing the second parameter because the constructor itself expects a 
String, not a Message:

valListRow.addCell("02", Cell.ROLE_DATA, 
"datacell").addXref(T_link_feedback_url).addContent(T_label_feedback_url);

In dspace.cfg with the other XMLUI properties (or in a local customised cfg 
file under $dspace/config/modules/), you could put
xmlui.statistics.feedback_url = http://www.mycustomurl.com

And in the XMLUI i18n messages.xml file(s), add 
<message key="xmlui.statistics.feedback_label">Click to see 
feedback</message>

Regarding the target attribute, I know that that third value passed in is 
technically a "rendering hint" rather than strictly a class, but I'm not 
sure exactly how rendering hints get processed and added as classes later 
on the chain - that might be a place where you could make Xref (or wing 
elements generally) be more clever by using rendering hints to create 
target attribute if appropriate.

Hope this helps!

Cheers

Kim

On Tuesday, January 10, 2017 at 8:13:37 AM UTC+13, Donald Bynum wrote:
>
> I am running DSpace 5.5 with XMLUI.  I am making some customizations to 
> the StatisticsTransformer java module.  I am hoping to crack two nuts with 
> this post/question.  I have written my own version of the procedure 
> "addDisplayListing".  I want to be able to render a custom hyperlink.  So, 
> I know that I need to use the addXref function.  I'd like to have the 
> target URL as a string in some config file somewhere (like messages.xml).  
> I'd also like to be able to have the target URL open in a new browser 
> winder (i.e. setting the "target" attribute of the resulting <A></A> tag),
>
> Currently, in order to render the <A></A> tag content,  I have:
>
>     valListRow.addCell("02", Cell.ROLE_DATA, "datacell").addXref("
> http://mySpecialURL.com";, "Click to see feedback");
>
> This results in <A href="http://mySpecialURL.com";>Click to see 
> feedback</A>
>
> Q1. So, how/where can I make "http://mySpecialURL.com"; configurable so 
> that I don't have to do a special build for dev and another for test and 
> another for prod?
>
> Q2. I know that there is version of addXref with a  third parameter, but 
> that results in setting the "class" attribute of the <A></A> tag (there is 
> no way in CSS to target a new browser window - if there were, this would be 
> the solution).  So, is there some way of injecting the "target" attribute 
> into the resulting <A></A> tag?
>
> Best regards,
>
> Don.
>
>
>

-- 
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 dspace-tech+unsubscr...@googlegroups.com.
To post to this group, send email to dspace-tech@googlegroups.com.
Visit this group at https://groups.google.com/group/dspace-tech.
For more options, visit https://groups.google.com/d/optout.

Reply via email to