Skip to content

Instantly share code, notes, and snippets.

@5up3rman
5up3rman / StringUtil.cs
Last active February 1, 2024 21:04
String Utilities
using Sitecore.Collections;
using Sitecore.Diagnostics;
using Sitecore.Reflection;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
@5up3rman
5up3rman / ParseQueryString.cs
Created September 13, 2017 01:42
Web Utility Parse Query String
var values = WebUtil.ParseQueryString("print=1&target=me&group=first");
var s0 = values["print"]; // "1";
var s1 = values["target"]; // "me";
var s2 = values["group"]; // "first";
var s3 = values["non-existing"]; // null;
@5up3rman
5up3rman / AddQueryString.cs
Created September 13, 2017 01:23
Web Utility - Add Query String
var url1 = WebUtil.AddQueryString("http://www.mysite.net", "print", "1");
// Result: "http://www.mysite.net?print=1"
var url2 = WebUtil.AddQueryString("http://www.mysite.net", "print", "1", "lg", "print");
// Result: "http://www.mysite.net?print=1&lg=print"
@5up3rman
5up3rman / WebUtil.cs
Last active November 11, 2023 15:06
Web Utility
using HtmlAgilityPack;
using Sitecore.Caching;
using Sitecore.Collections;
using Sitecore.Configuration;
using Sitecore.Data.Fields;
using Sitecore.Data.Items;
using Sitecore.Diagnostics;
using Sitecore.IO;
using Sitecore.Layouts;
using Sitecore.Links;
@5up3rman
5up3rman / GetQueryString.cs
Last active September 12, 2017 23:02
Web Utilities Get Query String Example
// Returns QS or Empty String
var qsWithKey = WebUtil.GetQueryString("key");
// Returns QS or Default Value
var qsWithKeyAndDefaultValue = WebUtil.GetQueryString("key", "master");
// Returns Encoded QS or Empty String
var safeQs = WebUtil.GetSafeQueryString("key");
@5up3rman
5up3rman / OldItemRenamer.cs
Created August 31, 2017 14:55
An old Item Renamer from 2011. Very flawed.
public class EnforceItemName
{
protected void OnItemSaved(object sender, EventArgs args)
{
var currentItem = Sitecore.Events.SitecoreEventArgs.GetItem(args, 0);
if (currentItem != null && currentItem.Name.Contains(" ") && (currentItem.Paths.IsContentItem || currentItem.Paths.IsMediaItem))
{
currentItem.Editing.BeginEdit();
@5up3rman
5up3rman / RegexItemUtilStringUtil.cs
Last active August 30, 2017 16:47
Regex + ItemUtil + StringUtil
static void Main(string[] args)
{
var wildItemName = "<strong class=\"color-me-red\">Name of a Product<sup>™</sup> Version 1!!!!!</strong>";
Console.WriteLine(ToValidItemName(wildItemName));
Console.WriteLine(ToValidItemName(wildItemName, true, true));
Console.ReadKey();
}
public static string ToValidItemName(string str, bool toLower = false, bool replaceSpacesWithDashes = false)
@5up3rman
5up3rman / ProposeValidItemName.cs
Created August 23, 2017 01:18
ProposeValidItemName
static void Main(string[] args)
{
var wildItemName = "<strong>Name of a Product<sup>™</sup> Version 1</strong>";
var notEntirelyFixed = ItemUtil.ProposeValidItemName(wildItemName);
Console.WriteLine(notEntirelyFixed);
Console.ReadKey();
}
// Result: strongName of a Productsupsup Version 1strong
@5up3rman
5up3rman / FlawedItemRenaming1.cs
Last active August 30, 2017 16:48
Flawed Item Renaming - Really Basic Regex
static void Main(string[] args)
{
var wildItemName = "<strong>Name of a Product<sup>™</sup>Version 1</strong>";
var notEntirelyFixed =
Regex.Replace(wildItemName, @"[^0-9a-zA-Z]+", " ").Trim();
Console.WriteLine(notEntirelyFixed);
Console.ReadKey();
// Result: strong Name of a Product sup sup Version 1 strong
}
@5up3rman
5up3rman / DisplayAdditionalItemInformation.cs
Last active July 21, 2017 04:52
Display Additional Item Information
namespace EETK.Foundation.Toolkit.Rules.Actions
{
public class DisplayAdditionalItemInformation<T> : RuleAction<T> where T : CustomSectionsRuleContext
{
public override void Apply(T ruleContext)
{
var editorSection = ruleContext.EditorSection.FirstOrDefault(x => x.DisplayAdditionalItemInformation) ?? new EditorSection();
editorSection.Title = Translate.Text("Additional Item Information");
editorSection.DisplayAdditionalItemInformation = true;