Compartilhar via


Como a: Personalizar a raiz variação patamar lógica

Quando você configurar uma coleção site no Microsoft Office do SharePoint Server 2007 e configurar as variações, O Office SharePoint Server 2007 faz o seguinte:

  • Cria uma página no nomeado site doméstica variação VariationRoot usando o arquivo layout da página VariationRootPageLayout.aspx na página mestra e Page Layouts Gallery.

  • Substitui a página VariationRoot o usar como padrão página Bem-vindo do site doméstica variação.

Se você procurar para o site doméstica variação, O Office SharePoint Server 2007 procura o WelcomePage WelcomePage propriedade do site e executa a página VariationRoot. Como essa página é baseada em VariationRootPageLayout.aspx, ele executa o arquivo layout página. Layout de página VariationRootPageLayout contém uma referência a um arquivo chamado VariationsRootLanding.ascx e um controle usuário que está definido no arquivo de VariationsRootLanding.ascx. O layout de página executa a lógica no arquivo VariationsRootLanding.ascx e redireciona o usuário para um site variação.

A lógica usar como padrão usada no arquivo de VariationsRootLanding.ascx é redirecionar o usuário para o site variação que corresponda ao aceitar accept lang, ou matriz de códigos linguagem na qual o atual documento está disponível. The VariationsRootLanding.ascx file is defined in the path \<Program Files>\Common Files\Microsoft Shared Debug\Web Server Extensions\12\Template\ControlTemplates.

Se você desejar a usar como padrão variação raiz patamar página lógica para redirecionar o usuário para um site variação que não é baseado em aceitar o accept lang, você pode fazer isso de uma destas três maneiras. Cada opção tem suas próprias vantagens e desvantagens, e você deve considerá-las cuidadosamente antes de decidir qual abordagem usar.

  • Diretamente editar o arquivo VariationsRootLanding.ascx.

    Essa é a maneira mais rápida para editar a lógica. Basta editar a lógica no arquivo VariationsRootLanding.ascx quando necessário diretamente sobre o sistema de arquivos servidor Web de front-end.

    Dica

    Você deve atualização o arquivo VariationsRootLanding.ascx em cada um dos computadores de servidor Web de front-end.Todas as coleções site no farm de servidor são ligadas para o personalizado raiz variação pouso lógica que você especificar.

  • Copie o conteúdo do arquivo de VariationsRootLanding.ascx para o layout de página na página mestra e layouts de galeria de páginas.

    Para obter detalhes sobre como implementar esta abordagem, consulte o primeiro procedimento, para copiar o conteúdo do arquivo de VariationsRootLanding.ascx para o Page Layout . Como a abordagem anterior, essa abordagem também fornece personalização fácil e rápida a direcionar edição, sem problemas compilação e implantação DLL. Além disso, como cada coleção site usa seu próprio conjunto de página layouts, essa abordagem permite personalização da raiz variação pouso lógica em uma coleção site nível. Para completo esse processo, você também deve atualização o web.config arquivo em cada um dos computadores de servidor Web de front-end.

    Aviso

    Use cuidado quando configuração o AllowCompilation sinalizador sobre o arquivo VariationRootPageLayout.aspx.Usar codificar interno significa que alguém poderia mal-intencionado inserção codificar para a página.

  • Criar um pré-compilado assembly.

    Para obter detalhes sobre como implementar esta abordagem, consulte o segundo procedimento, para criar um pré-compilado assembly . Essa abordagem apresenta há risco de segurança relacionado à abertura uma página mestra e Page Layouts Gallery item para execução codificar interno. Como a abordagem anterior, personalização é feita em uma coleção site nível. No entanto, cada tempo você precisa alteração a raiz variação pouso lógica, é necessário recompilar o assembly. Essa abordagem oferece, portanto, um ciclo implantar alteração - testar - menos rápido. Você deve implantar o assembly em todos os computadores sistema de arquivos servidor Web de front-end.

Há um cenário adicional que você pode endereço modificando codificar no arquivo VariationsRootLanding.ascx. Se você usar um trabalho implantação escopo para implantar um site variações e o trabalho não implantar variação todas as etiquetas na hierarquia de variação de origem de implantação, os usuários que normalmente redirecionar para esses rótulos recebe um erro 404 quando estiver navegando para a raiz variação no destino de implantação. De exemplo, se você tiver um rotular na hierarquia de variação que destinos uma localidade em alemão e que rotular não está incluído na sua implantação do escopo, navegadores defina para preferir localidades em alemão encontrar um erro 404 quando estiver navegando para a raiz variação no computador de destino. A raiz pouso lógica, Por padrão, não verificar a validade do URL ele escolhe o redirecionamento.

Uma maneira para endereço este emitir é para modificar a raiz pouso lógica para detecção quando não houver um site funcionando presente de destino Redirecionar URL. Para saber como fazer isso, consulte o procedimento Terceiro, para modificar a raiz pouso lógica para detecção quando uma Web em funcionamento está presente .

Para copiar o conteúdo do arquivo VariationsRootLanding.ascx para o Page Layout

  1. Copiar a codificar do arquivo VariationsRootLanding.ascx e incorporá-lo na VariationRootPageLayout.aspx na página mestra e layouts de galeria de páginas.

  2. Faça as alterações que necessárias.

  3. Remova a referência para o VariationsRootLanding.ascx e seu controle de usuário a partir de VariationRootPageLayout.aspx.

  4. Para permitir a execução codificar interno do VariationRootPageLayout.aspx, modifique o arquivo web.config em cada cliente da Web da seguinte maneira.

      <SharePoint>
        <SafeMode ... >
          <!-- marks VariationRootPageLayout.aspx for ASP.NET compilation -->
          <PageParserPath VirtualPath= "/_catalogs/masterpage/VariationRootPageLayout.aspx" 
            CompilationMode="Always"  
            AllowServerSideScript="False"
            AllowUnsafeControls="False" 
            IncludeSubFolders="True"/>
          </PageParserPaths>
        </SafeMode>
      </SharePoint>
    

Para criar um pré-compilado assembly

  1. Copie a codificar do arquivo VariationsRootLanding.ascx para criar seu próprio controle no seu próprio assembly DLL.

  2. Faça as alterações necessárias no controle.

  3. Adicione uma referência para o controle para VariationRootPageLayout.aspx na página mestra e layouts de galeria de páginas.

  4. Remova a referência para sua controle de usuário a partir de VariationRootPageLayout.aspx e VariationsRootLanding.ascx.

Para modificar a raiz pouso lógica para detecção quando um site funcionando estiver presente

  1. Abra o arquivo VariationsRootLanding.ascx.

  2. No GetRedirectUrl() GetRedirectUrl() seção, localizar esta linha de codificar.

    return (string.IsNullOrEmpty(matchedUrl) ? sourceLabelUrl : matchedUrl);
    
  3. Substituir a linha de codificar em Step 2 com o seguinte codificar.

    // Customization for handling matchedUrl not valid 
    // (e.g., Content Deployed target Site Collection, 
    // without source Hierarchy)
    matchedUrl = (string.IsNullOrEmpty(matchedUrl) ? sourceLabelUrl : matchedUrl);                           
    using (SPSite site = new SPSite(matchedUrl))
    using (SPWeb web = site.OpenWeb())
         {
         // If matchedUrl is the same as the URL of the Web
         // you just opened, then matchedUrl is valid
         if (string.Compare(matchedUrl, web.Url, StringComparison.OrdinalIgnoreCase) == 0 && web.DoesUserHavePermissions(SPBasePermissions.Open))
           {
          //Target URL was valid; return it
            return matchedUrl;
            }
            else
            {
          //Target URL was NOT valid; the variation label is missing.
          //Perform logic here to redirect the user appropriately.
          //If nothing is done here, then this function returns null
          //and the landing behavior reverts to the
          //VariationsRootLandingRunTime control.
          //This control displays a simple error message that
          //indicates it could not find an appropriate subsite to 
          //redirect to.
            }
       }
    

Consulte também

Outros recursos

Variações e vários sites idiomas
Como a: Personalizar o lógico de controle de etiqueta variações