Olá Amigos,
Importante dizer que o código abaixo, funcionará somente no Sharepoint.
Tanto versão 2007 quanto 2010.
Problema:
Formatar data no seguinte formato: "28 de Janeiro de 2011"
Solução:
<xsl:value-of select="ddwrt:FormatDateTime(string(@DataPublicacao),1046,'dd')"/>
de
<xsl:value-of select="ddwrt:FormatDateTime(string(@DataPublicacao),1046,'MMMM')"/>
de
<xsl:value-of select="ddwrt:FormatDateTime(string(@DataPublicacao),1046,'yyyy')"/>
Mostrando postagens com marcador Sharepoint. Mostrar todas as postagens
Mostrando postagens com marcador Sharepoint. Mostrar todas as postagens
sexta-feira, 23 de setembro de 2011
sexta-feira, 22 de agosto de 2008
Lendo dados de uma View (SPView) (Exibição)
Olá PessoALL,
Faz tempão que não posto e ainda por cima vou aparecer hoje por aqui para dar uma dicazinha bem simples =]
Criar views (exibições) em listas do SharePoint é uma tarefa muito simples e bem poderosa. Conseguimos fazer diversas funcionalidades (agrupamento, ordenação, limitar itens) usando apenas o mouse.
Então por que ao criarmos uma WebPart precisamos fazer tudo de novo? Na verdade não precisamos ^^
Podemos ler itens diretamente de uma View (Exibição)
Bem, chega de chalálá e vamos ao código:
SPListItemCollection coll = spWeb.Lists["ListName"].GetItems(spWebInstance.Lists["ListName"].Views["ViewName"]);
Toda malandragem envolvida neste código, está em passar a view por parâmetro para o método GetItems, se não pudéssemos fazer isso, seria necessário escrever um baita CAML para alcançar as funcionalidades (agrupamento, ordenação, limitar itens) desejadas
Maca espera ter sido útil =]
Abraços,
Leonardo Macanudo
Faz tempão que não posto e ainda por cima vou aparecer hoje por aqui para dar uma dicazinha bem simples =]
Criar views (exibições) em listas do SharePoint é uma tarefa muito simples e bem poderosa. Conseguimos fazer diversas funcionalidades (agrupamento, ordenação, limitar itens) usando apenas o mouse.
Então por que ao criarmos uma WebPart precisamos fazer tudo de novo? Na verdade não precisamos ^^
Podemos ler itens diretamente de uma View (Exibição)
Bem, chega de chalálá e vamos ao código:
SPListItemCollection coll = spWeb.Lists["ListName"].GetItems(spWebInstance.Lists["ListName"].Views["ViewName"]);
Toda malandragem envolvida neste código, está em passar a view por parâmetro para o método GetItems, se não pudéssemos fazer isso, seria necessário escrever um baita CAML para alcançar as funcionalidades (agrupamento, ordenação, limitar itens) desejadas
Maca espera ter sido útil =]
Abraços,
Leonardo Macanudo
Marcadores:
MOSS 2007,
Sharepoint,
SPList,
SPListItem,
SPView,
WSS 3.0
sexta-feira, 23 de maio de 2008
SharePoint Data View Permissão de Usuários
Olá Amigos,
Para verificar o nível de permissão de um usuário quando estamos dentro de um XSL, devemos utilizar a função "ddwrt:IfHasRights(codigoDaPermissao)".
Exemplo (Exclusão de itens):
<xsl:if test="ddwrt:IfHasRights(8)">
...
</xsl:if>
Abaixo as permissões e seus respectivos "códigos"
ViewListItems - 1
AddListItems - 2
EditListItems - 4
DeleteListItems - 8
ApproveItems - 16
OpenItems - 32
ViewVersions - 64
DeleteVersions - 128
CancelCheckout - 256
PersonalViews - 512
ManageLists - 2048
ViewFormPages - 4096
Open - 65536
ViewPages - 131072
AddAndCustomizePages - 262144
ApplyThemeAndBorder - 524288
ApplyStyleSheets - 1048576
ViewUsageData - 2097152
CreateSSCSite - 4194314
ManageSubwebs - 8388608
CreateGroups - 16777216
ManagePermissions - 33554432
BrowseDirectories - 67108864
BrowseUserInfo - 134217728
AddDelPrivateWebParts - 268435456
UpdatePersonalWebParts - 536870912
ManageWeb - 1073741824
UseRemoteAPIs - 137438953472
ManageAlerts - 274877906944
CreateAlerts - 549755813888
EditMyUserInfo - 1099511627776
EnumeratePermissions - 4611686018427387904
FullMask - 9223372036854775807
É um script curto, porém esta função ainda vai salvar sua vida.
Abraços,
Leonardo
Para verificar o nível de permissão de um usuário quando estamos dentro de um XSL, devemos utilizar a função "ddwrt:IfHasRights(codigoDaPermissao)".
Exemplo (Exclusão de itens):
<xsl:if test="ddwrt:IfHasRights(8)">
...
</xsl:if>
Abaixo as permissões e seus respectivos "códigos"
ViewListItems - 1
AddListItems - 2
EditListItems - 4
DeleteListItems - 8
ApproveItems - 16
OpenItems - 32
ViewVersions - 64
DeleteVersions - 128
CancelCheckout - 256
PersonalViews - 512
ManageLists - 2048
ViewFormPages - 4096
Open - 65536
ViewPages - 131072
AddAndCustomizePages - 262144
ApplyThemeAndBorder - 524288
ApplyStyleSheets - 1048576
ViewUsageData - 2097152
CreateSSCSite - 4194314
ManageSubwebs - 8388608
CreateGroups - 16777216
ManagePermissions - 33554432
BrowseDirectories - 67108864
BrowseUserInfo - 134217728
AddDelPrivateWebParts - 268435456
UpdatePersonalWebParts - 536870912
ManageWeb - 1073741824
UseRemoteAPIs - 137438953472
ManageAlerts - 274877906944
CreateAlerts - 549755813888
EditMyUserInfo - 1099511627776
EnumeratePermissions - 4611686018427387904
FullMask - 9223372036854775807
É um script curto, porém esta função ainda vai salvar sua vida.
Abraços,
Leonardo
Marcadores:
MOSS 2007,
Sharepoint,
WSS 3.0,
XSL
segunda-feira, 19 de maio de 2008
XSL formatar data no formato DD/MM
Olá Amigos,
Corrigindo este POST =]
Abaixo vocês vão ver toda uma choradeira de minha parte e uma baita gambiarra.
Porém existe um forma elegante sim de resolver este problema.
É essa:
<xsl:value-of select="ddwrt:FormatDateTime(string(@Data),1046,'dd/MM')"/>
Abaixo uma pequena gambiarra criada por mim para exibir a data no formato DD/MM, tive que fazer isto, pois a função nativa do SharePoint (ddwrt:FormatDate) não oferece este formato.
Abraços,
Leonardo
<xsl:choose>
<xsl:when test="number(substring-before(@_DCDateCreated,'/')) <= 9">0<xsl:value-of select="substring-before(@_DCDateCreated,'/')"/></xsl:when>
<xsl:otherwise><xsl:value-of select="substring-before(@_DCDateCreated,'/')"/></xsl:otherwise>
</xsl:choose>
/
<xsl:choose>
<xsl:when test="number(substring-before(substring-after(@_DCDateCreated,'/'),'/')) <= 9">0<xsl:value-of select="substring-before(substring-after(@_DCDateCreated,'/'),'/')"/></xsl:when>
<xsl:otherwise><xsl:value-of select="substring-before(substring-after(@_DCDateCreated,'/'),'/')"/></xsl:otherwise>
</xsl:choose>
Corrigindo este POST =]
Abaixo vocês vão ver toda uma choradeira de minha parte e uma baita gambiarra.
Porém existe um forma elegante sim de resolver este problema.
É essa:
<xsl:value-of select="ddwrt:FormatDateTime(string(@Data),1046,'dd/MM')"/>
Abaixo uma pequena gambiarra criada por mim para exibir a data no formato DD/MM, tive que fazer isto, pois a função nativa do SharePoint (ddwrt:FormatDate) não oferece este formato.
Abraços,
Leonardo
<xsl:choose>
<xsl:when test="number(substring-before(@_DCDateCreated,'/')) <= 9">0<xsl:value-of select="substring-before(@_DCDateCreated,'/')"/></xsl:when>
<xsl:otherwise><xsl:value-of select="substring-before(@_DCDateCreated,'/')"/></xsl:otherwise>
</xsl:choose>
/
<xsl:choose>
<xsl:when test="number(substring-before(substring-after(@_DCDateCreated,'/'),'/')) <= 9">0<xsl:value-of select="substring-before(substring-after(@_DCDateCreated,'/'),'/')"/></xsl:when>
<xsl:otherwise><xsl:value-of select="substring-before(substring-after(@_DCDateCreated,'/'),'/')"/></xsl:otherwise>
</xsl:choose>
Marcadores:
MOSS 2007,
Sharepoint,
WSS 3.0,
XSL
quinta-feira, 13 de março de 2008
CALLSTACK, CUSTOMERRORS & DEBUG MODE
Olá Amigos,
Hoje vou postar uma importante dica =]
Encontrei essa pérola no blog[1] do Hélio Sá Moreira.
As vezes (rs) obtemos mensagens de erro nada informativas ou claras durante a utilização (ou tentativa de utilização) de alguns recursos do Sharepoint. Um caso clássico, que obtive em um ambiente que trabalhei esta semana, foi: Unknown Error Occurred OU An unspecified error has occured.
Para desativa-las temos que executar o seguinte procedimento =]
São basicamente 3 itens de configuração - que podem ser utilizados em conjunto ou separadamente para um processo de troubleshoot detalhado.
01 - CUSTOMERRORS
Essa configuração - que por padrão apresenta o valor "ON" - redireciona o tratamento de erros para um módulo de tratamento de erros do Sharepoint. Este módulo é muito importante, mas quando o mesmo não consegue classificar o erro as mensagens 'genéricas' são apresentadas.
Para desabilitar este redirecionamento - retornando ao modelo padrão do ASP.Net 2.0 - podemos mudar o valor desta configuração para "OFF".
No Web.Config, essa configuração pode ser encontrada no seguinte path: Configuration \ System.web \ CustomErrors.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
...
<system.web>
...
<customerrors mode="On">
...
Com isso, voltamos as telas de erro do ASP.Net! Vale lembrar que esta configuração deve ser realizada somente no processo de verificação de um erro - e o seu valor padrão deve ser re-configurado para que mensagens informativas aos usuários possam ser apresentadas de uma forma gerenciável e "não-agressiva"!
Esta mudança já deve ajudar bastante na identificação das possíveis razões do problema ....
02 - CALLSTACK
Esta configuração é relacionada ao nível de informações e detalhes apresentados sob o erro quando o mesmo ocorre. Voltando ao cenário de troubleshoot, quando mais informações relacionadas ao problema melhor - incluindo inclusive todos os métodos envolvidos e a hierarquia de execução! ;-)
Por padrão esta configuração possui o valor "FALSE" - e pode ser encontrada na seguinte estrutura: Configuration \ SharePoint \ SafeMode. Para habilitar este modo, devemos configurar o CallStack com o valor "TRUE".
<configuration>
...
<sharepoint>
<safemode callstack="false">
...
Esta configuração é relacionada ao nível de informações e detalhes apresentados sob o erro quando o mesmo ocorre. Voltando ao cenário.
02 - DEBUG MODE
Este item esta relacionado ao modelo de compilação utilizado pelo .Net Framework 2.0 (JIT - Just-in-time compilation). O valor padrão para o DEBUG é false. Mas, em um cenário de Troubleshoot o DEBUG="TRUE" aumenta o nível de detalhamento das informações repassadas ao Stack Trace e consequentemente aumenta as informações repassadas às nossas telas de erro!
Este item pode ser encontrado na seguinte estrutura: Configuration \ System.Web \ Compilation.
<configuration>
...
<system.web>
...
<compilation debug="false" batch="false">
...
Abraços,
Maca
blog
[1] http://www.sharepointbrasil.net/default.aspx
Hoje vou postar uma importante dica =]
Encontrei essa pérola no blog[1] do Hélio Sá Moreira.
As vezes (rs) obtemos mensagens de erro nada informativas ou claras durante a utilização (ou tentativa de utilização) de alguns recursos do Sharepoint. Um caso clássico, que obtive em um ambiente que trabalhei esta semana, foi: Unknown Error Occurred OU An unspecified error has occured.
Para desativa-las temos que executar o seguinte procedimento =]
São basicamente 3 itens de configuração - que podem ser utilizados em conjunto ou separadamente para um processo de troubleshoot detalhado.
01 - CUSTOMERRORS
Essa configuração - que por padrão apresenta o valor "ON" - redireciona o tratamento de erros para um módulo de tratamento de erros do Sharepoint. Este módulo é muito importante, mas quando o mesmo não consegue classificar o erro as mensagens 'genéricas' são apresentadas.
Para desabilitar este redirecionamento - retornando ao modelo padrão do ASP.Net 2.0 - podemos mudar o valor desta configuração para "OFF".
No Web.Config, essa configuração pode ser encontrada no seguinte path: Configuration \ System.web \ CustomErrors.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
...
<system.web>
...
<customerrors mode="On">
...
Com isso, voltamos as telas de erro do ASP.Net! Vale lembrar que esta configuração deve ser realizada somente no processo de verificação de um erro - e o seu valor padrão deve ser re-configurado para que mensagens informativas aos usuários possam ser apresentadas de uma forma gerenciável e "não-agressiva"!
Esta mudança já deve ajudar bastante na identificação das possíveis razões do problema ....
02 - CALLSTACK
Esta configuração é relacionada ao nível de informações e detalhes apresentados sob o erro quando o mesmo ocorre. Voltando ao cenário de troubleshoot, quando mais informações relacionadas ao problema melhor - incluindo inclusive todos os métodos envolvidos e a hierarquia de execução! ;-)
Por padrão esta configuração possui o valor "FALSE" - e pode ser encontrada na seguinte estrutura: Configuration \ SharePoint \ SafeMode. Para habilitar este modo, devemos configurar o CallStack com o valor "TRUE".
<configuration>
...
<sharepoint>
<safemode callstack="false">
...
Esta configuração é relacionada ao nível de informações e detalhes apresentados sob o erro quando o mesmo ocorre. Voltando ao cenário.
02 - DEBUG MODE
Este item esta relacionado ao modelo de compilação utilizado pelo .Net Framework 2.0 (JIT - Just-in-time compilation). O valor padrão para o DEBUG é false. Mas, em um cenário de Troubleshoot o DEBUG="TRUE" aumenta o nível de detalhamento das informações repassadas ao Stack Trace e consequentemente aumenta as informações repassadas às nossas telas de erro!
Este item pode ser encontrado na seguinte estrutura: Configuration \ System.Web \ Compilation.
<configuration>
...
<system.web>
...
<compilation debug="false" batch="false">
...
Abraços,
Maca
blog
[1] http://www.sharepointbrasil.net/default.aspx
Marcadores:
Customization with Visual Studio,
MOSS 2007,
Sharepoint,
WSS 3.0
quarta-feira, 7 de novembro de 2007
Configurar email no Sharepoint
Olá Amigos,
Hoje vou dar uma de administrador e mostrar como configurar email no sharepoint =]
É uma operação bastante simples, não requer prática nem habilidade.
Basta executar uma linha de comando.
stsadm.exe -o email -outsmtpserver -fromaddress -replytoaddress -codepage [-url ]
Por exemplo, vamos utilizar o servidor de smtp "SMTPServer", e vamos utilizar a conta de email someone@example.com como from e a mesma conta como reply-to.
O código fica como no exemplo abaixo:
stsadm.exe -o email -outsmtpserver SMTPServer -fromaddress someone@example.com -replytoaddress someone@example.com -codepage 65001 -url http://server_name
Note que no último parametro configurei a url que vai utilizar esta confiuração de envio de email =]
Como os amigos podem ver é bem mumuzinho =]
Abraços,
Leonardo
Hoje vou dar uma de administrador e mostrar como configurar email no sharepoint =]
É uma operação bastante simples, não requer prática nem habilidade.
Basta executar uma linha de comando.
stsadm.exe -o email -outsmtpserver
Por exemplo, vamos utilizar o servidor de smtp "SMTPServer", e vamos utilizar a conta de email someone@example.com como from e a mesma conta como reply-to.
O código fica como no exemplo abaixo:
stsadm.exe -o email -outsmtpserver SMTPServer -fromaddress someone@example.com -replytoaddress someone@example.com -codepage 65001 -url http://server_name
Note que no último parametro configurei a url que vai utilizar esta confiuração de envio de email =]
Como os amigos podem ver é bem mumuzinho =]
Abraços,
Leonardo
segunda-feira, 8 de outubro de 2007
Passeio pelo Object Modelo Sharepoint - Part I
Olá Amigos,
Apartir de hoje escreverei uma serie de posts sobre o Object Model do sharepoint.
Mas afinal, oque é object model?
É a Arquitetura de programação do WSS, através dele conseguimos programaticamente manipular totalmente a estrutura do sharepoint.
SPFarm
Está no topo da hierarquia do object model.
Cada objeto SPFarm tem uma coleção de servidores associados a ele representados pelo objeto SPServerCollection object.
Você pode usar uma estrutura de repetição para iterar em cada servidor através do objeto SPServerCollection.
SPFarm myFarm = SPFarm.Local;
SPServerCollection myServerCollection = myFarm.Servers;
foreach (SPServer myServer in myServerCollection){
//adiciona o código para executar a ação
}
SPWebApplication
Representa um IIS load-balanced Web application.
No WSS, aplicações web são representadas pela classe SPWebApplication.
Cada objeto SPWebApplication tem uma coleção de coleções de site associadas a ele e que são representados pelo objeto SPSiteCollection.
Você pode usar uma estrutura de repetição para interar com cada coleção de site no objeto SPSiteCollection.
Coleções de site individuais são representadas pelos objetos SPSite.
SPSite mySiteCollection = new SPSite("site_collection_URL");
SPWebApplication myWebApp = mySiteCollection.WebApplication;SPSiteCollection mySiteCollections = myWebApp.Sites;
foreach (SPSite siteCollection in mySiteCollections){
//executa a ação na coleção de sites
}
Por hora é isso =]
Abraços,
Leonardo
Apartir de hoje escreverei uma serie de posts sobre o Object Model do sharepoint.
Mas afinal, oque é object model?
É a Arquitetura de programação do WSS, através dele conseguimos programaticamente manipular totalmente a estrutura do sharepoint.
SPFarm
Está no topo da hierarquia do object model.
Cada objeto SPFarm tem uma coleção de servidores associados a ele representados pelo objeto SPServerCollection object.
Você pode usar uma estrutura de repetição para iterar em cada servidor através do objeto SPServerCollection.
SPFarm myFarm = SPFarm.Local;
SPServerCollection myServerCollection = myFarm.Servers;
foreach (SPServer myServer in myServerCollection){
//adiciona o código para executar a ação
}
SPWebApplication
Representa um IIS load-balanced Web application.
No WSS, aplicações web são representadas pela classe SPWebApplication.
Cada objeto SPWebApplication tem uma coleção de coleções de site associadas a ele e que são representados pelo objeto SPSiteCollection.
Você pode usar uma estrutura de repetição para interar com cada coleção de site no objeto SPSiteCollection.
Coleções de site individuais são representadas pelos objetos SPSite.
SPSite mySiteCollection = new SPSite("site_collection_URL");
SPWebApplication myWebApp = mySiteCollection.WebApplication;SPSiteCollection mySiteCollections = myWebApp.Sites;
foreach (SPSite siteCollection in mySiteCollections){
//executa a ação na coleção de sites
}
Por hora é isso =]
Abraços,
Leonardo
Marcadores:
Object Model,
Sharepoint,
SPfarm,
WSS
Assinar:
Postagens (Atom)