Skip to content

Instantly share code, notes, and snippets.

View adamhopkinson's full-sized avatar

Adam Hopkinson adamhopkinson

View GitHub Profile
@adamhopkinson
adamhopkinson / gist:1c5ca5eae193ad72d9dd
Created November 4, 2014 15:51
Accessing Sitecore render parameters
var p = Html.Sitecore().CurrentRendering.Parameters;
bool fullWidth = (p["Full width"] == "1") ? true : false;
string widthClass = (fullWidth) ? "fullwidth" : "indented";
@adamhopkinson
adamhopkinson / gist:2b2421c9eb5ff5ad5514
Last active August 29, 2015 14:14
Using a Sitecore ImageField
ImageField field = context.Fields["Img"];
if (field != null && field.MediaItem != null)
{
var ImgItem = new Sitecore.Data.Items.MediaItem(field.MediaItem);
var ImgUrl = Sitecore.Resources.Media.MediaManager.GetMediaUrl(ImgItem);
var ImgCaption = field.Alt;
}
@adamhopkinson
adamhopkinson / gist:0ef7bfca02678f12a841
Created June 24, 2015 11:13
Breaking a list into chunks
// define how many items we want per chunk
var itemsPerChunk = 3;
// break the list of items into chunks
var chunks = items.Select((s, i) => new { Value = s, Index = i }).GroupBy(item => item.Index / itemsPerChunk, item => item.Value);
// iterate through each chunk
foreach (var chunk in chunks)
{
<div class="row">
@adamhopkinson
adamhopkinson / gist:82b3fec9583946cb5e2d
Created November 16, 2015 14:45
Outputting a table of contents to the console
$('#article-content').find('h1,h2,h3,h4,h5,h6').each(function(i,el) {console.log(i + "\t" + el.tagName + "\t" + $(el).text())})
@adamhopkinson
adamhopkinson / gist:7791592
Created December 4, 2013 17:19
Defaulting a sitecore query to a blank list
List<Item> items = (Sitecore.Context.Item.Axes.SelectItems(query) ?? new Item[] { }).ToList();
@adamhopkinson
adamhopkinson / gist:7792041
Created December 4, 2013 17:40
Quick c# list foreach
ids.ForEach(id => {
itineraries.Add(Sitecore.Context.Database.GetItem(id));
});
@adamhopkinson
adamhopkinson / gist:8026627
Last active December 31, 2015 18:28
Getting a Sitecore item url in a C# repeater
<ul>
<asp:Repeater ID="rpFooterDestinations" runat="server">
<ItemTemplate>
<li>
<a href="<%# Sitecore.Links.LinkManager.GetItemUrl(
(Sitecore.Data.Items.Item) Container.DataItem
) %>"><%# Eval("DisplayName") %></a>
</li>
</ItemTemplate>
</asp:Repeater>
@adamhopkinson
adamhopkinson / link.cshtml
Created January 12, 2016 14:54
Using a sitecore General Link field
@adamhopkinson
adamhopkinson / gist:8036875
Last active August 10, 2017 12:43
C# Globablisation - getting the market instance from the visitors' origin country (via GeoIP)
var market = MarketInfo.Markets.SingleOrDefault(m => m.Code == Visitor.CountryCode);
if (market == null)
market = Visitor.Market;
@adamhopkinson
adamhopkinson / apply_timezone_to_timestamp.sql
Created February 20, 2019 10:11
BigQuery Standard SQL UDF to apply a timezone offset to a timestamp
-- Takes a timestamp (in seconds) and a timezone offset (eg +0730) and returns a timestamp
CREATE TEMPORARY FUNCTION applyTZOffsetToUnixTimestamp(ts INT64, tzOffset STRING)
RETURNS INT64 AS (
CASE
WHEN SUBSTR(tzOffset, 1, 1) = '+' THEN ts + (CAST(SUBSTR(tzOffset, 2, 2) AS INT64) * 60 * 60) + (CAST(SUBSTR(tzOffset, 4, 2) AS INT64) * 60)
WHEN SUBSTR(tzOffset, 1, 1) = '-' THEN ts - (CAST(SUBSTR(tzOffset, 2, 2) AS INT64) * 60 * 60) - (CAST(SUBSTR(tzOffset, 4, 2) AS INT64) * 60)
ELSE NULL
END
);