Skip to content

Instantly share code, notes, and snippets.

@tomfulton
tomfulton / gist:1048aec0c4158137b21c
Created January 7, 2015 21:57
URL Picker Property Access
var url = Model.Content.GetPropertyValue<UrlPicker.Umbraco.Models.UrlPicker>("someProperty");
<a href="@url.Url" target="@(url.Meta.NewWindow ? "_blank" : "")">
@Umbraco.Coalesce(url.Meta.Title, "Some default caption")
</a>
@tomfulton
tomfulton / TrackUsages
Created May 22, 2014 13:34
"Auto Relations" for MNTP
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Umbraco.Core.Models;
using Umbraco.Core.Services;
using Umbraco.Web;
namespace Client.Umbraco.Extensions.Events
@tomfulton
tomfulton / gist:11007948
Last active December 31, 2017 23:09
BoxStarter Script
Update-ExecutionPolicy Unrestricted
Set-WindowsExplorerOptions -EnableShowHiddenFilesFoldersDrives -EnableShowProtectedOSFiles -EnableShowFileExtensions -EnableShowFullPathInTitleBar
Disable-UAC
Disable-InternetExplorerESC
cinst TelnetClient -source windowsFeatures
cinst IIS-WebServerRole -source windowsFeatures
cinst UrlRewrite
cinst msdeploy3
@tomfulton
tomfulton / ReplacePropertyData.sql
Created August 22, 2013 04:50
Replace Umbraco Property Data
/*
From: http://our.umbraco.org/forum/developers/api-questions/6327-Search-and-replace-property-value#comment23622
*/
--BEGIN TRAN;
DECLARE @rootNodeId NVARCHAR(50);
SET @rootNodeId = '1050';
DECLARE @search NVARCHAR(50);
SET @search = 'Person A';
@tomfulton
tomfulton / ToolbarButton.cs
Created June 18, 2013 15:33
Add a toolbar icon to an Umbraco page
using System;
using System.Linq;
using System.Web;
using System.Web.UI;
using umbraco.BusinessLogic;
using umbraco.presentation.LiveEditing;
using umbraco.presentation.masterpages;
using umbraco.uicontrols;
namespace YourApp
@tomfulton
tomfulton / FixDeletedNodes.cs
Last active March 18, 2019 16:02
Fix for deleted nodes remaining in the Examine index TODO: Add same for Media
using Examine;
using Examine.Providers;
using Umbraco.Core;
using Umbraco.Web;
using umbraco.BusinessLogic;
using umbraco.businesslogic;
using umbraco.cms.businesslogic.media;
namespace YourSite
{
@tomfulton
tomfulton / gist:4657070
Created January 28, 2013 16:42
Example of Examine GatheringNodeData event
void Search_GatheringNodeData(object sender, IndexingNodeDataEventArgs e)
{
// Create the "munged" field
AddToContentsField(e);
// Add a dummy value so its easy to get all docs
e.Fields.Add("allDocs", "1");
// Replace CSV strings with spaces - easier to search
if (e.Fields.ContainsKey("searchChannels"))
@tomfulton
tomfulton / gist:3519737
Created August 29, 2012 22:30
Widget Dropper XSLT Version
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#x00A0;">
]>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets"
exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets ">
@tomfulton
tomfulton / gist:2493234
Created April 25, 2012 20:46
Umbraco Contour - Manually approve a record
// Record Storage
Umbraco.Forms.Data.Storage.RecordStorage rs = new Umbraco.Forms.Data.Storage.RecordStorage();
Guid formGuidGuid = new Guid("<your form GUID here>");
// Get the record
Umbraco.Forms.Core.Record record = rs.GetRecord(formGuidGuid);
// RecordService
Umbraco.Forms.Core.Services.RecordService s = new Umbraco.Forms.Core.Services.RecordService(record);
@tomfulton
tomfulton / gist:2150553
Created March 21, 2012 18:10
Umbraco - GetMediaByPath
/// <summary>
/// Gets the media item by it's file path
/// </summary>
/// <remarks>
/// Example usage: Use in conjunction with HtmlAgilityPack or WYSIWYG.xslt to parse your RTE for Media Images, grab associated
/// properties from the Media node, and render them in your output (think alt tags, captions, etc).
/// TODO: support non "/media" directory, cleanup & further testing
/// </remarks>
/// <param name="mediaPath">Path to the uploaded file in the media directory</param>
/// <returns>Media node which contains the specified file</returns>