none
Web Part Page Template ?!?!

    Domanda

  • Ho la necessità di aggiungere una serie di custom template per creare Web Part Page in WSS 3.0. Ho trovato in giro soluzioni che fanno uso di una pagina aspx derivante da WSS 2.0, ma la cosa non mi soddisfa, vorrei qualcosa di più compatibile. Ho provato a duplicare la pagina spcf.aspx per poi modificare il contenuto del tag SELECT, ma quando creo la pagina con il template indicato la dll invocata va in errore dicendomi che ho inviato un parametro errato. Mi è venuto il dubbio che i template siano registrati in un file XML ma non ne ho trovato nessuno che li menzioni, tranne un ONET.XML.

    Qualche suggerimento?
    giovedì 1 ottobre 2009 13:28

Risposte

  • Ok, sono riuscito a far funzionare la pagina in stile WSS 2.0. Alla fine la terrò così, il tempo è sempre tiranno. Una nota (forse la scoperta dell'acqua calda): nell'articolo indicato da Patrizia si dice:

    Copy all your customized page templates into the following directory:

    Local_drive :\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\TEMPLATE\1033\STS \DOCTEMP\SMARTPGS\.

    Quanto riportato è vero se lancio la pagina all'interno di un sito che usa la site definition STS (Team Site, Blank Site etc.) ma se si vogliono aggiungere i propri template di pagina ad un custom site definition bisogna creare nella cartella 1033 o 1040 una cartella con il nome della propria site definition e aggiungere le altre due sottocartelle. In questo modo la pagina custspcf.aspx funziona, altrimenti va in errore perchè non trova i template delle webpart page.


    ing. Daniele Guarneri blog - http://dguarneri.blogspot.com
    mercoledì 7 ottobre 2009 22:00

Tutte le risposte

  • Ciao Daniele,
    non dovresti mai toccare o duplicare spcf.aspx; c'è una pagina creata a questo scopo, da cui partire: Custspcf.aspx.
    Qui http://msdn.microsoft.com/en-us/library/dd583147(office.11).aspx trovi tutte le indicazioni per creare dei custom templates per pagine web part.

    Ciao

    Pat (Microsoft Office Project MVP) -- http://patitaly0.spaces.live.com
    giovedì 1 ottobre 2009 19:30
  • Ciao Patrizia, grazie per la risposta, ho già letto e provato quella soluzione, ed era appunto la soluzione che non mi soddisfaceva. Infatti la pagina in qustione seppur funzionante è una pagina di WSS 2.0 e non di WSS 3.0.

    Volevo evitare di riscrivermi da capo una pagina in stile WSS 3.0 con la stessa master page per poi recuperare il codice della pagina indicata da te, ma sembra essere l'unica soluzione. :(
    giovedì 1 ottobre 2009 20:03
  • Ciao Patrizia, grazie per la risposta, ho già letto e provato quella soluzione, ed era appunto la soluzione che non mi soddisfava. Infatti la pagina in qustioe seppurt funzionante è una pagina di WSS 2.0 e non di WSS 3.0.

    Volevo evitare di riscrivermi da capo una pagina in stile WSS 3.0 con la stessa master page per poi recuperare il codice della pagina indicata da te, ma sembra essere l'unica soluzione. :(

    Ciao Davide,
    si, credo sia l'unica soluzione... sicuramente l'unica che io conosco!

    Pat (Microsoft Office Project MVP) -- http://patitaly0.spaces.live.com
    giovedì 1 ottobre 2009 20:11
  • Ciao Daniele :-)

    La soluzione adottata e documentata in WSS2 rimane valida, al di là del branding.
    Come facevi notare anche tu, quindi, non puoi (almeno non dovresti!!) prendere il codice as-is ma adattare il tutto a WSS3.

    Una sola nota, rispetto all'articolo segnalato per WSS2: *non* cambiare il codice di create.aspx!!!
    Ti suggerisco piuttosto di utilizzare un content type per "agganciare" la tua custom app page in fase di creazione delle pagine:

    1. Crei un content type figlio di WebPartPage
    2. Gli imposti il template all'url di custspcf.aspx
    3. Associ il content type alla doclib che conterrà le tue pagine e lo imposti come default

    Che dici?

    A prestissimo

    .c
    Claudio Brotto MVP - SharePoint Services http://blogs.devleap.com/devlizard
    martedì 6 ottobre 2009 04:52
  • Grazie Claudio,
    per il momento ho semplicemente creato una Custom Action che mi lancia la pagina custspcf.aspx presa dall'articolo. NON ho cambiato la create.aspx (me ne guardo bene :-) ).

    Con una feature nella mia site definition ho creato a livello di web una lista che utilizzo per contenere le webpart page custom. Peccato che la pagina vada in errore, forse perchè la lista non usa il content type WebPartPage? Provo e vi faccio sapere.

    Ciao

    ing. Daniele Guarneri blog - http://dguarneri.blogspot.com
    mercoledì 7 ottobre 2009 07:05
  • Grazie Claudio,
    per il momento ho semplicemente creato una Custom Action che mi lancia la pagina custspcf.aspx presa dall'articolo. NON ho cambiato la create.aspx (me ne guardo bene :-) ).

    Con una feature nella mia site definition ho creato a livello di web una lista che utilizzo per contenere le webpart page custom. Peccato che la pagina vada in errore, forse perchè la lista non usa il content type WebPartPage? Provo e vi faccio sapere.

    Ciao

    ing. Daniele Guarneri blog - http://dguarneri.blogspot.com

    Ops non era quello, forse ho modificato qualcosa nella pagina custspcf.aspx. Devo indagare.

    Sono sempre più dell'idea di riscrivermene una in stile WSS 3.0 recuperando il codice della pagina custspcf.aspx e sistemandolo un po', vediamo se mi danno il tempo di farlo. Vi terrò aggiornati...

    ing. Daniele Guarneri blog - http://dguarneri.blogspot.com
    mercoledì 7 ottobre 2009 07:35
  • Ok, sono riuscito a far funzionare la pagina in stile WSS 2.0. Alla fine la terrò così, il tempo è sempre tiranno. Una nota (forse la scoperta dell'acqua calda): nell'articolo indicato da Patrizia si dice:

    Copy all your customized page templates into the following directory:

    Local_drive :\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\TEMPLATE\1033\STS \DOCTEMP\SMARTPGS\.

    Quanto riportato è vero se lancio la pagina all'interno di un sito che usa la site definition STS (Team Site, Blank Site etc.) ma se si vogliono aggiungere i propri template di pagina ad un custom site definition bisogna creare nella cartella 1033 o 1040 una cartella con il nome della propria site definition e aggiungere le altre due sottocartelle. In questo modo la pagina custspcf.aspx funziona, altrimenti va in errore perchè non trova i template delle webpart page.


    ing. Daniele Guarneri blog - http://dguarneri.blogspot.com
    mercoledì 7 ottobre 2009 22:00
  • Non ho mai provato, sinceramente, ma chissà se funziona anche con la logica della "GLOBAL" site definition...

    Cioè: creando una folder ...\1033\GLOBAL\DOCTEMP\SMARTPGS, verrà risolto?

    Daniele, fai una prova magari, se hai tempo e voglia :-)
    Claudio Brotto MVP - SharePoint Services http://blogs.devleap.com/devlizard
    giovedì 8 ottobre 2009 18:30
  • Ho provato, non funziona.
    Il motivo sta tutto nel codice della pagina:

    // Prepare the source file, assuming the Web Part Page templates live in <Installation Path>\Template\<LCID>\<web template>\doctemp\smartpgs
    string sourceFilePath = SPUtility.GetGenericSetupPath("Template\\") + spWeb.Language.ToString() + "\\" + spWeb.WebTemplate + "\\doctemp\\smartpgs\\";


    Volendo si potrebbe modificare la logica della pagina intanto non c'è nulla di compilato. Ma per economia di tempo per ora aspetto che ci pensi qualche altro sviluppatore ;-)



    ing. Daniele Guarneri blog - http://dguarneri.blogspot.com
    giovedì 8 ottobre 2009 20:21