Skip to content

Instantly share code, notes, and snippets.

View adnanzameer's full-sized avatar

Adnan Zameer adnanzameer

View GitHub Profile
@adnanzameer
adnanzameer / XhtmlExtensions.cs
Last active January 22, 2024 10:08
Improving Alt Text for Images in TinyMCE and Optimizley CMS
using Alloy.Models.Media;
using EPiServer.Core;
using EPiServer.Core.Html.StringParsing;
using EPiServer.ServiceLocation;
using EPiServer.Web;
using HtmlAgilityPack;
public static class XhtmlExtensions
{
public static XhtmlString AdjustAltText(this XhtmlString xhtmlString)
@adnanzameer
adnanzameer / Singleton.cs
Last active November 13, 2020 12:28
Singleton pagetypes and blocktypes. An Attribute and InitializableModule that limits page and block types to be created only once (single instance).
public class Singleton : Attribute
{
}
@adnanzameer
adnanzameer / ChildActionHandler.cs
Last active December 21, 2020 16:42
Get HTML String from PageData in Episerver
using System;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.UI;
/// <summary>
/// Shamelessly "inspired" by classes in System.Web.Mvc assembly
/// It appears that only a System.Web.UI.Page can be executed
/// as a child request. If you try to execute an MvcHandler
@adnanzameer
adnanzameer / GetUserRoles.cs
Created November 12, 2019 15:21
Get Episerver User & User Roles
public IList<string> UserRoles()
{
IList<string> roles;
using (UserStore<ApplicationUser> store = new UserStore<ApplicationUser>(new ApplicationDbContext<ApplicationUser>("EPiServerDB")))
{
ApplicationUser user = store.FindByNameAsync(PrincipalInfo.CurrentPrincipal.Identity.Name).GetAwaiter().GetResult();
roles = GetUserToRoles(store, user);
}
return roles;
}
@adnanzameer
adnanzameer / AZDeleteUnpublishedContent.sql
Last active May 1, 2019 21:36
SQL script to delete unpublished single version content from Episerver
DECLARE @pkid int
DECLARE db_cursor CURSOR FOR select distinct fkPageID from tblWorkpage where HasBeenPublished= 0 Group by fkpageid having count(fkPageID) = 1
declare @isLeafNode int
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @pkid
WHILE @@FETCH_STATUS = 0
BEGIN
@adnanzameer
adnanzameer / AZCleanupEpiserverContentVersions.sql
Last active April 30, 2019 09:51
SQL script to cleanup Episerver old content versions
Declare @VersionsToKeep int = 4
Declare @PublishedVersions int = 1
declare @fkPageID int;
declare db_cursor CURSOR FOR select fkPageID from tblWorkpage where HasBeenPublished= @PublishedVersions Group by fkpageid having count(fkPageID) > @PublishedVersions order by count(fkPageID) desc
open db_cursor
fetch next from db_cursor into @fkPageID
while @@FETCH_STATUS = 0
@adnanzameer
adnanzameer / AZEmptyTrash.sql
Last active May 25, 2022 13:59
SQL script to empty Episerver trash/recycle bin
DECLARE @pkid int
DECLARE db_cursor CURSOR FOR SELECT pkid FROM tblContent tbl where deleted = 1
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @pkid
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC [dbo].editDeletePage @PageID = @pkid, @ForceDelete = 1
@adnanzameer
adnanzameer / AZChangePageBranchMasterLanguage.sql
Last active April 30, 2019 09:53
SQL script to change page branch master language in Episerver
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[AZChangePageBranchMasterLanguage]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[AZChangePageBranchMasterLanguage]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[AZChangePageBranchMasterLanguage]
@adnanzameer
adnanzameer / TinyMCE.cs
Last active July 8, 2021 05:02
Allow valid HTML elements to TinyMCE 2.+ in Episerver 11
using System.Collections.Generic;
using EPiServer.Cms.TinyMce.Core;
using EPiServer.Framework;
using EPiServer.Framework.Initialization;
using EPiServer.ServiceLocation;
namespace MySite.Business.Initialization
{
[ModuleDependency(typeof(TinyMceInitialization))]
public class ExtendedTinyMceInitialization : IConfigurableModule
@adnanzameer
adnanzameer / AZSwitchLanguageBranch.sql
Last active April 30, 2019 09:53
SQL script to switch language branch or change master language branch in Episerver
USE [epicms]
GO
IF OBJECT_ID ( 'AZSwitchLanguageBranch', 'P' ) IS NOT NULL
DROP PROCEDURE AZSwitchLanguageBranch;
GO
CREATE PROCEDURE AZSwitchLanguageBranch
@toLanguageBranch varchar(10),
@fromLanguageBranch varchar(10)
AS