SharePoint 2013: Content Query Webpart quebra o layout

No SharePoint 2013, se criar uma nova web part Content Query (CQWP) e não editar as suas propriedades, ou se a web part não retornar nenhum resultado, a estructura HTML da sua página será alterada e isso poderá ou não danificar o seu design.

No meu caso isso aconteceu. Com algumas web parts numa página, ao adicionar uma nova CQWP, os meus estilos deixaram de funcionar correctamente:

A margem a seguir à primeira webpart desapareceu
A margem a seguir à primeira webpart desapareceu

Ao inspeccionar o código da página apercebi-me que a primeira web part (Content Query [5]) estava a envolver todas as outras webparts que aparecem a seguir.

Como podem ver na imagem em baixo, todas as divs com id MSOZoneCell_WebPartWPQxx, que deveriam estar todas ao mesmo nível, estão agora debaixo da primeira (a CQWP).

Para corrigir este problema é necessário usar uma versão personalizada do ficheiro ContentQueryMain.xsl ou editar o original (como com qualquer alteração aos ficheiro default do SharePoint, faça-o a seu próprio risco).

Caso não saiba onde encontrar este ficheiro: ao nível da site collection, clique no botão de settings na Ribbon e depois na opção ‘Site contents’. Vá para a Style Library e depois para a pasta XSL Style Sheets. O ficheiro estará ai.

Agora o que precisa fazer é actualizar o template OuterTemplate.Empty para que consiga lidar com o modo display da página.

Substitua o template original por este:

<xsl:template name="OuterTemplate.Empty">
  <xsl:param name="EditMode" />
  <xsl:choose>
    <xsl:when test="$EditMode = 'True' and string-length($cbq_errortext) = 0">
      <div class="wp-content description">
        <xsl:value-of disable-output-escaping="yes" select="$cbq_viewemptytext" />
      </div>
    </xsl:when>
    <xsl:otherwise>
      <div style="display:none">No Results</div>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

E agora os estilos funcionam correctamente:

Agora todas as margens estão correctas
Agora todas as margens estão correctas

Referências

When a CQWP returns no results, zones are shifted

Dércia Silva
Publicado por Dércia Silva em 07 agosto, 2013

Artigos relacionados