domenica 2 novembre 2008

Una delle cose che odio di più è il "View All Site Content" di Sharepoint.

view_all_site_content

Uno dei modi per nascondere questo link è inserendo un javascript come il seguente nelle pagine del vostro sito:

<script language="javascript" type="text/javascript">
 
_spBodyOnLoadFunctionNames.push("Hide");
 
function getElementsByClass(searchClass)
{
     var classElements = new Array();
     var node = document;
     var tag = '*';
     var els = node.getElementsByTagName(tag);
     var elsLen = els.length;
     var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
     for (var i = 0, j = 0; i < elsLen; i++) {
          if ( pattern.test(els[i].className) ) {
               classElements[j] = els[i];
               j++;
          }
     }
     return classElements;
}
 
function Hide()
{
  var NavElements = getElementsByClass("ms-quicklaunchheader");
  for (var i=0; i < NavElements.length; i++)
  {
      NavElements[i].style.display = "none";
  }
}
</script>

Ovviamente se vorrete applicare questo codice a tutti i web site presenti nei vostri serve, vi conviene creare una feature del codice sovrastante o pensare ad una soluzione (che posterò a breve) server-side.

Spero vi sia utile.

sabato 1 novembre 2008

Di default se inserite un documento pdf in una lista, questa non associerà alcuna immagine al documento.

Per customizzare questo aspetto delle liste bisognerà modificare il file Docicon.xml di Sharepoint 2007

Per prima cosa ci serve un'immagine da associare ai file pdf.
Io ho recuperato questa:

  1. Aprite la directory:
    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Images\
    e copiate l'immagine (magari prima ridimensionatela 16x16)
  2. Aprite la directory:
    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\XML\Docicon.xml
    e aggiungere un elemento sotto <ByExtension>
    <Mapping Key="pdf" Value="pdf.jpg" />
  3. Aprite una shell di DOS e restartate iis: iisrestart

Ed eccovi il risultato:

Spero sia utile.

 

Tags:

venerdì 31 ottobre 2008

Nel seguente post ci sono 20 buoni motivi per usare e quando usare Sharepoint:

http://hubpages.com/hub/Why-you-need-SharePoint-Training

Tags:

mercoledì 29 ottobre 2008

Un mio amico, ha notato questo problema ad un sito a lui caro:

Untitled_picture

 

Non so che dire... so solo che nei siti porno dove vado io, sti problemi non si verificano mai.

Tags:
 

Per chi non è potuto andare al PDC 2008, potrebbe esser lieto di sapere che alcune sessioni sono già in video, come recita questo post.

I video disponibili sono:

Controllate la sezione video di channel 9 PDC videos sections e delle sessioni del sito ufficiale del PDC 2008.

Buona visione

Tags: |

domenica 26 ottobre 2008

DataContext.Log

Per chi non ne fosse ancora a conoscenza, la classe DataContext mette a disposizione la proprietà Log.

Questa proprietà visualizza come viene tradotta la nostra query in SQL.

Questa proprietà è molto utile per analizare le performance delle nostre query.

Per poter attivare la proprietà Log bisogna associarla a un tipo System.IO.TextWriter come Console.Out.

SQLMetal

SQLMetal permette di specificare un database e generare il file contenente tutte le informazioni per LINQ to SQL.

E' un tool su linea di comando che potete trovare nella directory:

%windir%\Microsoft.NET\Framework\v3.5

SQLMetal ritorna utile quando dovete generare il file XML con la mappatura del vostro db.

 

Tags:

domenica 5 ottobre 2008

Lista a scomparsa.

Ipotizzando che nella nostra pagina ASPX abbiamo una lista di questo tipo:

    <dl id="list">                                                                                  
        <dt>Panino con la milza</dt>                                                                
        <dd>                                                                                        
            Tipica specialità palermitana, il panino con la milza nasce nel periodo ...</dd>        
        <dt>Panino crocché e panelle</dt>                                                           
        <dd>                                                                                        
            Il panino con le crocché di patate e le panelle con farina di ceci è l'unione di due    
            tipici prodotti del palermitano ...</dd>                                                
        <dt>Stigghiola</dt>                                                                         
        <dd>                                                                                        
            Le stigghiola è uno dei "piatti" più grassi palermitani.                                
            Le stigghiola sono il budello di capretto, pulito e condito ...</dd>                    
    </dl>                                                                                           

Per ottenere un effetto hide/show di questa lista tramite jQuery, inseriremo il seguente codice (i numeri servono per la spiegazione):

1 -- jQuery(document).ready(function() {                     
2 --     $("#list dd").hide();                               
3 --     $("#list dt").click(function()                      
4 --     {                                                   
5 --         $(this).next("dd:visible").slideUp("slow");     
6 --         $(this).next("dd:hidden").slideDown("slow");    
7 --     });                                                 
8 -- });                                                     

La riga di codice 1 serve per far partire l'effetto solamente dopo che tutto il DOM è stato caricato.
La riga specifica che tutti gli elementi dd dell'elemento identificato come list devono essere nascosti.
Con la riga specifichiamo un evento di tipo click su tutti gli elementi di tipo dt dell'elemento list. Quando l'evento si verificherà, tutti gli elementi dd sotto l'elemento dt appena cliccato verranno controllati.
Se l'elemento dd è visibile, dd:visible, allora lo nasconderemo con slideUp con velocità slow, viceversa se sarà nascosto, dd:hidden, allora lo mostreremo con slideDown.

Enjoy

Tags:

sabato 4 ottobre 2008

Quello che sto per iniziare a scrivere non è nulla che non possiate trovare nei tutorial su jQuery o in giro in rete; solo che questi li ho usati per scopi personali :-)

Primo esempio: Tabella con righe colorate in maniera alternata.

Createvi una tabella di questo tipo:

    <table id="operators" class="contentTable">                
        <thead>                                                
            <tr>                                               
                <th><b>Begins With</b></th>                    
                <th><b>Begins with a Given Text Value</b></th> 
            </tr>                                              
        </thead>                                               
        <tbody>                                                
            <tr>                                               
                <td><b>Contains</b></td>                       
                <td>Contains a given text value</td>           
            </tr>                                              
            <tr>                                               
                <td><b>Eq</b></td>                             
                <td>Equal to</td>                              
            </tr>                                              
            <tr>                                               
                <td><b>Geq</b></td>                            
                <td>Greater than or equal to</td>              
            </tr>                                              
            <tr>                                               
                <td><b>Gt</b></td>                             
                <td>Greater than</td>                          
            </tr>                                              

aggiungete uno script jQuery di questo tipo:

jQuery(document).ready(function() {          
   $("#operators tbody tr").hover(function() 
    {                                        
        $(this).addClass("trhighlight")      
    },function()                             
    {                                        
        $(this).removeClass("trhighlight")   
    }).filter(":even").addClass("even");     
});                                          

createvi anche un css così:

.trhighlight                  
{ background-color: Yellow; color: Black; }
.even                          
{                              
    background-color: #0066CC; 
}                              

Cosa otterrete?
Quanto segue in stato normale:

operators_alternate

Se provate a passar sopra con il cursore:

operators_alternate_highlight

Avete creato una tabella con le righe alternate e con un effetto highlight quando si passa sopra con il mouse.

Cosa fa jQuery?

Con questa riga jQuery attende che tutta la struttura DOM venga carica

jQuery(document).ready(function()

Mentre con le seguenti righe:

  $("#operators tbody tr").hover(function()  
    {                                        
        $(this).addClass("trhighlight")      
    },function()                             
    {                                        
        $(this).removeClass("trhighlight")   
    })                                       

jQuery parserà la struttura DOM, troverà l'elemento con l'identificativo #operators e applicherà l'effetto hover.
Questo effetto accetta due funzioni, la prima da applicare quando il cursore è sopra l'elemento e la seconda funzione per quando il cursore non sarà più sopra l'elemento.

Per concludere diciamo a jQuery tramite riga:

.filter(":even").addClass("even");     

. -> l'oggetto trovato in precedenza
filter -> prendi solamente gli oggetti pari
addClass -> e setta la classe css even all'oggetto

così facendo riusciamo ad ottenere una riga colorata ed una no nella nostra tabella.
I tipi di effetti ottenibili sono migliaia.

Vi rimando alla pagina di jQuery che li tratta in maniera ottima.

La tabella dove vorrete lavorare potrebbe essere una GridView o un altro componente di ASP.NET, così facendo potreste riscontrare problemi con l'id che ASP.NET associa al controllo se utilizzate MasterPage o WebUserControl etc.

Se, ad esempio, ho una GridView che si chiama gvResult e si trova dentro una pagina che utilizza una MasterPage, l'id risultante potrebbe essere qualcosa simile a: ctl00_nomeContent_gvResult

Tags:

lunedì 29 settembre 2008

Oggi tramite un post di ScottGu se fatto un gran parlare di jQuery.

Ho guardando un pò in giro e letto un pò di tutorial.
Non sono un grande fan di JavaScript ma jQuery sembra realmente interessante e facile da usare.

Penso che lo userò in un prossimo progetto.

Ecco gli articoli che ho letto oggi:

Tags:

sabato 20 settembre 2008