Aktivera cachning av blobs i EPiServer

Lägg till följande i web.config för att aktivera cachningen av alla mediafiler som kommer från EPiServer (Blobs).

1
2
3
4
5
6
<configuration>
    <configSections>
        <section name="staticFile" type="EPiServer.Framework.Configuration.StaticFileSection" />
    </configSections>
</configuration>
<staticFile expirationTime="365.0:0:0" />

Nedgradera en SQL 2012 databas till SQL 2005

Jag stötte på ett riktigt krångligt SQL-problem idag. I vår utvecklingsmiljö hade vi använt oss utav SQL 2012 och i live-miljön fanns bara SQL 2005. Eftersom de nya SQL-versionerna inte har någon bakåtkompatibilitet gick det inte använda ”Back-up” och ”Restore” för att kopiera över utvecklingsdatabasen till live-miljön. Tyvärr stöds inte nedgraderingar mellan de olika SQL-versionerna och det finns inga automatiska funktioner för detta heller. Det kändes som att detta skulle bli ett omöjligt uppdrag.

Efter mycket felsökning och Googlande lyckades jag till slut hittade några tips om funktionen ”Generate scripts…”. Med hjälp utav den funktionen kan man skapa ett T-SQL skript för hela databasen och använda den till att generera nya databasen. Tyvärr var databasen så stor att när jag väl försökte läsa in skriptet till SQL 2005 fick jag ett felmeddelande om att minnet var slut.

cannotExecuteScript

Sedan hittade jag en funktion kallat SQLCMD som kan användas vid skriptandet av riktigt stora filer. Med hjälp av denna kunde jag till slut kopiera över databasen till SQL 2005.

Eftersom jag inte lyckades hitta ett ”komplett” tips tänkte jag skriva ner allt här istället. 🙂

I all sin korthet är det detta som måste göras:

  1. 1. Skapa en ny databas i SQL 2005
  2. 2. Generera ett skript på SQL 2012 med ”Generate script…”
  3. 3. Använd SQLCMD för att generera databasen till SQL 2005

Skapa en ny databas i SQL 2005

Inget konstigt här.
Logga in på SQL Server Management Studio för SQL 2005.
Högerklicka på Databases och klicka på New Database…
Ange ett namn för databasen och klicka sedan på OK. Inga fler ändringar behövs (lämna databasen tom).

Generera ett skript på SQL 2012 med ”Generate script…”

generateScripts

Logga in på SQL Server Management Studio för SQL 2012.
Högerklicka på databasen du vill kopiera och välj Tasks => Generate Scripts…

generateScripts1

En wizard startas. Klicka på Next.

generateScripts2

Kontrollera att Script entire database and all database objects är markerat. Klicka sedan på Next

generateScripts3

I det här steget kan du välja var skriptet ska sparas. Klicka på Advanced för att ändra utdataformat.

generateScripts4

Ändra Script for Server Version till SQL Server 2005 och Types of data to script till Scheme and data. Bekräfta med Ok. Klicka sedan på Next för att gå vidare.

generateScripts5

En bekräftelse på inställningarna visas. Klicka på Next för att generera skriptet.

Använd SQLCMD för att generera databasen till SQL 2005

Start kommandoprompten och klistra in följande kodsnutt

1
2
SQLCMD -S servernnamnFörSQL2005 -d databasnamn -i C:\skriptet.sql -E
--t.ex. SQLCMD -S OT1LAP03A95A\SQLEXPRESS -d db_episerver -i C:\script.sql -E
sqlcmd

När skriptet är klart visas Processed XXXX total records och nu borde databasen vara kopierad.

JavaScript error in EPiServer 7 Filemanager

Every time when accessing EPiServer 7 Filemanager I got two Javascript error that stated:

Timestamp: 2013-05-16 16:41:08
Error: SyntaxError: unterminated string literal
Sourcecodefile: http://local/ui/CMS/admin/FileManagement.aspx
Row: 482, column: 13
Sourcecode: wdoc.write( ’<script type=”text/javascript”>var NREUMQ=NREUMQ||[];NREUMQ

Timestamp: 2013-05-16 16:41:08
Error: ReferenceError: SetupContextMenuHandler is not defined
Sourcecodefile: http://local/ui/CMS/admin/FileManagement.aspx
row: 1016

Also the editmode looks messed up:

EPiServer 7 Filemanager error

EPiServer 7 Filemanager error

After contacting the EPiServer operations I got the solution from them. They asked me to update the file DhtmlSupport.aspx in C:\Program Files (x86)\EPiServer\CMS\6.1.379.0\Application\UI\CMS\Hosting folder with this code

1
2
//Change:
wdoc.write(';');

//To:
wdoc.write(’<bo’+’dy>’);

Loop through children in EPiServer Content Area

This is how to get pagedata from all pages/blocks that are added in a Content Area in EPiServer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (CurrentPage.Unit != null)
{
    //get all content from Content Area
    var units = CurrentPage.Unit.Contents;

    foreach (var content in units)
    {
        //get pagedata
        var unitData = content as UnitDataPage;
        if (unitData != null)
        {
            //do something with the pagedata
        }
    }
}

Ladda upp filer till EPiServers Global-mapp

Här kommer en lite kodsnutt för hur man kan ladda upp filer (Unified file och directory) till filhanteraren i EPiServer.

Framsidan

1
2
<asp:FileUpload ID="FileUpload" runat="server" />
<asp:Button runat="server" ID="File1Button" Text="Ladda upp" />

Codebehind

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
protected string UploadFile(object sender, EventArgs e)
{
    if (FileUpload.HasFile)
    {
        var docDirectory = System.Web.Hosting.HostingEnvironment.VirtualPathProvider.GetDirectory("/Documents/UserFiles/") as UnifiedDirectory;
        if (docDirectory != null)
        {
            docDirectory.BypassAccessCheck = true;
            var fileName = DateTime.Now.Ticks + "-" + FileUpload.FileName;
            var file = docDirectory.CreateFile(fileName);

            // Save the content
            using (var stream = file.Open(FileMode.Create, FileAccess.Write))
            {
                stream.Write(FileUpload.FileBytes, 0, FileUpload.FileBytes.Length);
            }
            return VirtualPathUtilityEx.Combine(docDirectory.VirtualPath, fileName);
        }
    }
    return "";
}

Regex exempel

E-postadress (epostadress@doman.com): @^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}$ Svenskt mobilnummer (070-1234567): @”^[0]{1}[7]{1}[0,2,3,6,9]{1}-[0-9]{7}$” Svenskt personnummer (ååååmmdd-nnnn): @”^[12]{1}[90]{1}[0-9]{6}-[0-9]{4}$”

WordPress klipp och klistra

Nedan finner du några bra snippets för WordPress. 12//Hämta bild url <img src="<?php echo get_template_directory_uri();?>/images/logo.png" alt="Logo">

Komplett metadata?

Jag har försökt saxa ihop en komplett lista på metadata som ska finnas på alla moderna webbplatser. 12345678910111213141516<meta name="description" content="" /> <link rel="author" href="https://plus.google.com/[din kod]/" /> <!– Open Graph metadata –> <meta property="og:title" content="" /> <meta property="og:type" content="[website/article]" /> <meta property="og:image" content="" /> <meta property="og:url" content="" /> <meta property="og:description" content="" /> <!– Twitter –> <meta […]

Aktivera cachning av blobs i EPiServer

Lägg till följande i web.config för att aktivera cachningen av alla mediafiler som kommer från EPiServer (Blobs). 123456<configuration>     <configSections>         <section name="staticFile" type="EPiServer.Framework.Configuration.StaticFileSection" />     </configSections> </configuration> <staticFile expirationTime="365.0:0:0" />

EPiServer 7.5 – Klipp och klistra

Nedan följer några bra klipp och klistra kodsnuttar för EPiServer 7.5. 1234/*  Tvinga användaren att endast kunna välja en viss sidtyp som ContentReference */ [Display(GroupName = SystemTabNames.Content, Order = 400)] [AllowedTypes(typeof(ProducerPage))] public virtual ContentReference ProducerPage { get; set; }