Index: site-impl/impl/src/java/org/sakaiproject/site/impl/BaseSite.java =================================================================== --- site-impl/impl/src/java/org/sakaiproject/site/impl/BaseSite.java (revisiĆ³n: 52386) +++ site-impl/impl/src/java/org/sakaiproject/site/impl/BaseSite.java (copia de trabajo) @@ -63,6 +63,8 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import org.sakaiproject.util.FormattedText; + /** *

* BaseSite is a base implementation of the Site API Site. @@ -1645,4 +1647,25 @@ if (changed) m_azgChanged = true; return changed; } + + public String doPlainTextAndLimit(String formattedText, int maxNumOfChars, String ellipse) + { + formattedText = StringUtil.trimToNull(formattedText); + if(formattedText == null || formattedText.equalsIgnoreCase("
") || formattedText.equalsIgnoreCase("
")|| + formattedText.equals(" ") || FormattedText.escapeHtml(formattedText,false).equals("<br type="_moz" />")){ + + return ""; + } + + StringBuilder sb = new StringBuilder(); + String text = FormattedText.convertFormattedTextToPlaintext(formattedText); + if(maxNumOfChars>text.length()){ + maxNumOfChars=text.length(); + } + String trimmedText=text.substring(0, maxNumOfChars); + sb.setLength(0); + sb.append(trimmedText).append(ellipse); + return sb.toString(); + } + } Index: site-api/api/src/java/org/sakaiproject/site/api/Site.java =================================================================== --- site-api/api/src/java/org/sakaiproject/site/api/Site.java (revisiĆ³n: 52386) +++ site-api/api/src/java/org/sakaiproject/site/api/Site.java (copia de trabajo) @@ -347,4 +347,6 @@ * true if the site has a custom page ordering, false if not. */ void setCustomPageOrdered(boolean custom); + + public String doPlainTextAndLimit(String formattedText, int maxNumOfChars, String ellipse); }