Skip to content

Instantly share code, notes, and snippets.

View keyan1603's full-sized avatar

Karthikeyan Manickavasagam keyan1603

View GitHub Profile
@keyan1603
keyan1603 / UpdateFields.ps1
Created September 20, 2023 18:33
Update fields in Sitecore for all items based on a specific Template in all languages using Powershell script – with Progress bar
#Get all Product from the Master index for all languages.
#You can change this to get data from specific language codes
#like 'en', 'fr', etc.
$searchCriteria = @(
@{ Filter = "Equals"; Field = "_language"; Value = "*"; }
@{ Filter = "Equals"; Field = "_templatename"; Value = "Product"; }
)
#This script executes against Sitecore master index
$searchProps = @{
@keyan1603
keyan1603 / blockiframecookiesexample.html
Created September 20, 2023 18:31
Block iFrame cookies
<iframe sandbox="allow-scripts" src="..."></iframe>
@keyan1603
keyan1603 / createssl.ps1
Created September 20, 2023 18:27
Create SSL – Self signed certificate for your localhost website
$dnsname = "mysite.com"
$pwd = ConvertTo-SecureString -String "123456" -Force -AsPlainText
$print = (New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname $dnsname).Thumbprint
$path = "c:\Windows\temp\cert.pfx"
Export-PfxCertificate -cert cert:\localMachine\my\$print -FilePath $path -Password $pwd
@keyan1603
keyan1603 / coveodistancesort.js
Created September 20, 2023 18:26
Coveo distance sort using Javascript framework on static devices with no geolocation data
Coveo.$$(search).on("buildingQuery",
function (e, args) {
var currentLatitude = getCookie("currentlatitude");
var currentLongitude = getCookie("currentlongitude");
var latitudeField = '@@' + CoveoForSitecore.Context.fields.toCoveo('latitude');
var longitudeField = '@@' + CoveoForSitecore.Context.fields.toCoveo('longitude');
var distanceField = CoveoForSitecore.Context.fields.toCoveo('distance');
if (currentLatitude != '' && currentLongitude != '') {
var geoQuery = "$qf(function:'dist(" + latitudeField + "," + longitudeField + "," + currentLatitude + "," + currentLongitude + ")', fieldName: 'distance') ";
if (args && args.queryBuilder) {
@keyan1603
keyan1603 / TopViews.cs
Created September 20, 2023 18:25
Get top visited pages in Sitecore per site with multi-site setup
public IEnumerable<Dictionary<string, object>> TopViewedPages(int topPagesToGet, string siteName, int daysInterval, string language)
{
var provider = (ReportDataProvider)Factory.CreateObject("reporting/dataProvider", true);
var query = new ReportDataQuery(string.Format(@"SELECT TOP {0}
ItemId,
F.LanguageId,
SUM(Views) PageViewsCount,
SUM(Visits) PageVisitsCount
FROM Fact_PageViewsByLanguage F
INNER JOIN SiteNames S ON S.SiteNameId = F.SiteNameId
@keyan1603
keyan1603 / GetIPAddress.cs
Created September 20, 2023 18:24
Get a User’s country in Sitecore using Sitecore GeoIP feature
public string GetCountry()
{
var country = Sitecore.Analytics.Tracker.Current.Interaction.GeoData.Country;
if(string.IsNullOrWhiteSpace(country))
{
return GetCountryByIp();
}
return country;
}
@keyan1603
keyan1603 / GetSitecoreContext.cs
Last active September 20, 2023 18:22
Get Sitecore Context item for a page during AJAX calls
// Get the current URL from the page where the AJAX call has been made
var url = HttpContext.Current.Request.UrlReferrer; // Note the UrlReferrer
// Get the context
var siteContext = SiteContextFactory.GetSiteContext(url.Host, url.PathAndQuery);
if (siteContext?.StartPath == null)
{
throw new Exception(); // log or handle the exception
}
@keyan1603
keyan1603 / FixSitecoreShardDB.sql
Created September 20, 2023 18:17
re-use the Sitecore Shard databases after database restore
# Execute below statement in all the shard DBs
UPDATE [__ShardManagement].[ShardsLocal] SET ServerName ='<new db server name>', DatabaseName = '<restored new shard xDB db name with new prefix>'
# Execute below statement in the ShardMapManager DB against each Shard DB
UPDATE [__ShardManagement].[ShardsGlobal] SET ServerName ='<new db server name>', DatabaseName = '<restored new shard xDB db name with new prefix>' WHERE DatabaseName = '<new shard xDB db1 name with old prefix>'
UPDATE [__ShardManagement].[ShardsGlobal] SET ServerName ='<new db server name>', DatabaseName = '<restored new shard xDB db name with new prefix>' WHERE DatabaseName = '<new shard xDB db2 name with old prefix>'
UPDATE [__ShardManagement].[ShardsGlobal] SET ServerName ='<new db server name>', DatabaseName = '<restored new shard xDB db name with new prefix>' WHERE DatabaseName = '<new shard xDB dbn name with old prefix>'
@keyan1603
keyan1603 / sitecorehelixpowershellbuild.ps1
Created September 20, 2023 18:16
Build Sitecore solution using powershell
RUN Get-ChildItem .\src\Foundation\ –Recurse –Include *.csproj | ForEach-Object { msbuild $_.FullName /p:Configuration=$env:BUILD_CONFIGURATION /p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:PublishUrl=C:\out\website };
RUN Get-ChildItem .\src\Feature\ –Recurse –Include *.csproj | ForEach-Object { msbuild $_.FullName /p:Configuration=$env:BUILD_CONFIGURATION /p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:PublishUrl=C:\out\website };
RUN Get-ChildItem .\src\Project\ –Recurse –Include *.csproj | ForEach-Object { msbuild $_.FullName /p:Configuration=$env:BUILD_CONFIGURATION /p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:PublishUrl=C:\out\website };
#OR
RUN msbuild .\MySitecore.sln /p:Configuration=$env:BUILD_CONFIGURATION /p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:PublishUrl=C:\out\website
@keyan1603
keyan1603 / docker-compose-override.yml
Created September 20, 2023 18:14
Adding modules to your Sitecore containers
cm:
image: ${REGISTRY}${COMPOSE_PROJECT_NAME}-xp1-cm:${VERSION:-latest}
build:
context: ./docker/build/cm
args:
BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-xp1-cm:${SITECORE_VERSION}
SPE_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-spe-assets:${SPE_VERSION}
SXA_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-sxa-xp1-assets:${SXA_VERSION}
TOOLING_IMAGE: ${SITECORE_TOOLS_REGISTRY}sitecore-docker-tools-assets:${TOOLS_VERSION}
BMF_IMAGE: konabos/brightcove-sitecore-media-framework:10.1-1809