Below you can find a function that loops through all news items and removes all the hyperlinks from the NewsText field.
Below you can find a function that loops through all news items and removes all the hyperlinks from the NewsText field.
// Specify the query
string query = "select DocumentCulture, NodeID from View_CMS_News_Joined";
// Get the connection
CMS.DataEngine.GeneralConnection con = CMS.DataEngine.ConnectionHelper.GetConnection();
// Execute the query into a DataSet
System.Data.DataSet ds = con.ExecuteQuery(query, null, CMS.IDataConnectionLibrary.QueryTypeEnum.SQLQuery, false);
// Loop through the results
foreach (System.Data.DataRow row in ds.Tables[0].Rows)
{
// Get the values from the record
int nodeID = ValidationHelper.GetInteger(row["NodeID"], 0);
string cultureCode = ValidationHelper.GetString(row["DocumentCulture"], "");
// Get the current user info
CMS.TreeEngine.TreeProvider tree = new CMS.TreeEngine.TreeProvider(CMSContext.CurrentUser);
CMS.TreeEngine.TreeNode node = null;
// Get the document using the NodeID and the DocumentCulture
if (nodeID > 0)
{
node = CMS.WorkflowEngine.DocumentHelper.GetDocument(nodeID, cultureCode, tree);
}
// Get the text from the NewsText field
string newsTextOriginal = ValidationHelper.GetString(node.GetValue("NewsText"), "");
string newsTextNew = newsTextOriginal;
// Setup the regular expression
string regex = @"<a[\s]+[^>]*?href[\s]?=[\s\""\']+(.*?)[\""\']+.*?>([^<]+|.*?)?<\/a>";
System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(regex, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
// Find the matches
System.Text.RegularExpressions.MatchCollection matches = r.Matches(newsTextOriginal);
// Loop through the matches
foreach (System.Text.RegularExpressions.Match match in matches)
{
// Remove the link by replacing the hyperlink with pure text
newsTextNew = newsTextOriginal.Replace(match.Value, match.Groups[2].Value);
}
// Update the node
tree.UseCustomHandlers = false;
node.SetValue("NewsText", newsTextNew);
DocumentHelper.UpdateDocument(node, tree);
// Optional: add workflow publishing
}