code: public String substituteLinkForUnknownTarget(CmsObject cms, String link, boolean forceSecure) {
  
          return substituteLinkForUnknownTarget(cms, link, null, forceSecure);
      }
docs: Returns a link <i>from</i> the URI stored in the provided OpenCms user context
  <i>to</i> the given <code>link</code>, for use on web pages.<p>
  
  A number of tests are performed with the <code>link</code> in order to find out how to create the link:<ul>
  <li>If <code>link</code> is empty, an empty String is returned.
  <li>If <code>link</code> starts with an URI scheme component, for example <code>http://</code>,
  and does not point to an internal OpenCms site, it is returned unchanged.
  <li>If <code>link</code> is an absolute URI that starts with a configured site root,
  the site root is cut from the link and
  the same result as {@link #substituteLink(CmsObject, String, String)} is returned.
  <li>Otherwise the same result as {@link #substituteLink(CmsObject, String)} is returned.
  </ul>
  
  @param cms the current OpenCms user context
  @param link the link to process
  @param forceSecure forces the secure server prefix if the link target is secure
  
  @return a link <i>from</i> the URI stored in the provided OpenCms user context
  <i>to</i> the given <code>link</code>