Benjamin Niaulin Presented at: SharePoint Fest Chicago SharePoint Geek Content Query Web Part – Get it all in one place and style it!
Description More than once people have customized or developed a solution or web part to accommodate certain needs. Many times, these needs could have been met with a simple Out-of- the-Box Web Part called the Content Query Web Part. In this session we will explore the possibilities of querying the right content as well as changing the style to display these results.
Who is this guy talking? Benjamin Niaulin Speaker, Trainer, Consultant, SCRUM Master Blog bniaulin.wordpress.com Website share-gate.com TWITTER!:
Agenda Introduction The Content Query Web Part DEMO The XSL Files – What is that? What do they do? DEMO Dynamic Filtering DEMO Advanced CQWP Stuff
INTRODUCTION
Problems we face Showing data from multiple lists/libraries at the same time Change the date format in a list/library Dynamic filtering Changing the look of a list/library Showing specific data from lists/libraries to the relevant audience
CONTENT QUERY Web Part - Overview
Content Query Web Part (CQWP) Requires Site Collection Feature: Publishing Infrastructure* Helps create dynamic views based on what the user is looking at Power User can Edit the Query and the Style Aggregate content from the Site Collection Reusable and customizable styles
Web Part Properties - Query Query Source List Type Content Type Audience Targeting Additional Filters
Web Part Properties - Presentation Presentation Grouping and Sorting Sorting Item Limit Styles Fields to display Feed <-- Don’t underestimate!
Examples labs.steveottenad.com/sharepoint xslt-date-formatting/ By Ben Tedder on NBSPNBSP By Yohan Belval from Sharegate
DEMO
XSL FILES – HUH?
Understanding XSLT XSLT: Extensible Stylesheet Language Transformations Basically transforms XML Ref:
Understanding XSLT Debug itemstyle: P: Learn xslt:
Display RAW Data of Query =
XSL Files used by SharePoint There are 3 files used by the CQWP ContentQueryMain.xsl ItemStyle.xsl Header.xsl Files are located in the Style Library at the Root of your Site Collection \Style Library\XSL Style Sheets\
ContentQueryMain.xsl Contains logic that generates the appropriate calls to the Header and Item templates for each item. Contains functions that help designers modify the Item and Header XSLT transforms. Receives all the content, parses it, and sends appropriate pieces to the ItemStyle and Header templates. Maintains the structure of the Content By Query Web Part. Stores data retrieved when querying content in the path /dsQueryResponse/Rows/Row. MSDN Definition MSDN Definition In short….
ContentQueryMain.xsl Think of it as the big container of the WebPart In charge of what isn’t repeated (header, footer, calling CSS or JS to be used in your itemstyle after) It controls the flow of the content it receives Let’s check it out
Header.xsl Contains templates that define how to display a header and ensure the consistency of group headers. Templates specified in Header.xsl receive the next item row to process, usually the first row in a group unless there are multiple columns. If there are multiple columns, the templates receive the first row of the column. You can retrieve data about the next item row by using directive. You can use the $Group parameter that contains the groupby column name and the $GroupType that represents the column type of the groupby column. MSDN Definition MSDN Definition In short….
Header.xsl When you use the CQWP with a GroupBy option the header.xsl is called.
Itemstyle.xsl Contains templates that define how to display an item. These templates receive and process one row of data at a time, ensuring that the style and data in the item rows is consistent. You can retrieve data about a row by using directive. Basically it’s what gets applied to each “item” or row. Location:
Examples
DEMO
DYNAMIC FILTERING
Dynamic Filters PageFieldValue Specify a field on the Page Layout to act as the filter for the Query PageQueryString Takes the value in the URL and applies it as the filter for the Query
Example on MSDN BLog Ref: MSDN BlogMSDN Blog
More
ADVANCED PROPERTIES
Access the Advanced Properties You can easily access advanced properties of the CQWP Edit Web Part Export into.webpart file Open with an XML editor (notepad, etc.) Modify the file Import.webpart back into your site
More Advanced Stuff CommonViewFields Ask for additional fields By default the CQWP does not return all fields automatically QueryOverride When used, all settings for Query in the UI are greyed out Makes it possible to specify the query portion of a cross-list query in CAML.
Still More Advanced Properties… WebsOverride Determines whether the cross-list query should recurse subsites. ListsOverride Specify which lists/library you want to query ]]>
DEMO Filter by File Extension
Q&A
THANK YOU! KEEP IN TOUCH ON TWITTER Benjamin Niaulin