New in version 4.6.7 (02-24-2019)
- Improved performances during SharePoint processing when documents with changes are processed
- Rewritten SharePoint coding when processing document libraries with Content Approval and/or Major/Minor versioning
- SharePoint.Online SSO logon additional changes (functionality still in BETA)
- Changed how LinkSources in Excel documents are processed
- Extended support that ReplaceMagic can process documents in SharePoint sites collection and not that you have to login in each of sites separately
- Bug fixing when processing documents in SharePoint OnPrem. SharePoint.Online allows # and % in file name and support for that caused issues on SharePoint.OnPrem
- Improvement during check for broken links in documents stored on SharePoint (Online and OnPremise) - in case that relative link is found ReplaceMagic, during check if link is broken, will show full URL. SharePoint is doing something similar. Links in the document will stay the same. Due to security reasons might happen that check for broken links will not work (potential error code: "The remote server returned an error: (403) Forbidden.")
- Improved cleanup of long running documents
- Improved checks of memory utilization
- Cosmetical changes
- If something is in RegEx field and checkbox is unchecked RegEx content is removed
- Fixed double showing of replacement dashboard when processing is manually stopped
- Fix problem that when processing is cancelled in some cases all buttons are disabled (only option to continue processing is to close and re-open ReplaceMagic again)
What is changed:
- Added additional SharePoint logon method (beta)
- Improved preparation phases for scan or replacement process
- Ultra-fast scan performances improved
- Scanning dashboard extended to include additional information after ultra-fast scan
- Further multi document processing improvements
- …
As always, we recommend that you update and use latest version of ReplaceMagic...
New in version 4.6.3 (01-14-2019)
- During 2018 SharePoint.Online started to support some special characters in folder(s)/file(s) name. ReplaceMagic can all process those documents
- Improved result display in dashboards (removed "bad" files from "processed" documents counter)
- Extended that all document types are shown in Console view (Text/Custom files were missing)
- Extended Dashboards to show text/custom extension files
- Included check that export results does not work if result tables are empty
- Fixed bug - due to missing exception handling, if maximum memory limit was reached, ReplaceMagic was not executing memory cleanup routine.
Now something different - as we use BlogEngine.io for our blog system we experienced issue that this Blog software does not add canonical tags which are needed for SEO.
Now, extension is not that complicated (btw. we use 3.3.6 version).
Search for file account.master and add there in <head> section:
<link href="https://YOUR_URL/account/login.aspx" rel="canonical" />
As a second step go to BlogEngine.Core project and search for file BlogBasePage.cs (should be in \Web\Controls folder) and add following code (I put it after protected virtual void AddMetaContentType()):
/// <summary>
/// Adds the canonical tag to the header.
/// </summary>
protected virtual void AddCanonical()
{
string rawUrl = String.Concat(this.GetApplicationUrl(), Request.RawUrl);
//if (rawUrl.Contains("/post/"))
//{
//bool hasQueryStrings = Request.QueryString.Keys.Count > 1;
//if (hasQueryStrings)
//{
Uri uri = new Uri(rawUrl);
rawUrl = uri.GetLeftPart(UriPartial.Path);
HtmlLink canonical = new HtmlLink();
canonical.Href = rawUrl;
canonical.Attributes["rel"] = "canonical";
Page.Header.Controls.Add(canonical);
//}
//}
}
private string GetApplicationUrl()
{
string basePath;
string port = HttpContext.Current.Request.ServerVariables["SERVER_PORT"];
string protocol = HttpContext.Current.Request.ServerVariables["SERVER_PORT_SECURE"];
string serverName = HttpContext.Current.Request.ServerVariables["SERVER_NAME"];
if (port == null || port == "80")
{
port = String.Empty;
}
else
{
port = String.Concat(":", port);
}
if (protocol == null || protocol == "0")
{
protocol = "http://";
}
else
{
protocol = "https://";
}
basePath = String.Concat(protocol, serverName, port);
return basePath;
}
In case that you want to add canonical tag only to post pages uncomment
if (rawUrl.Contains("/post/"))
and in case that you have QueryStrings you'll need to uncomment
bool hasQueryStrings = Request.QueryString.Keys.Count > 1;
and
if (hasQueryStrings)
Finally, when everything is in place go to: protected override void OnLoad(EventArgs e) in BlogBasePage.cs and add call to AddCanonical() which I did just after AddMetaContentType().
Hope that this helps.