Notes IconHave a read of this help topic to get a basic understanding of what is involved with advanced customization.

Introduction

Meeting Schedule Assistant includes a style which displays the Videoconference Events that were introduced in version 20.2.9. Select Workbook-S-140-PublicTalk-WatchtowerStudy-ServiceTalk-Videoconference from the drop-down list of available styles.

You are free to copy the template and customize it as you see fit and from herein it is assumed that you are already familiar with advanced customization.

Quick Navigation


First Template

Changes have been made to the main for-each loop in first template of the style file. I have added comments to the XSL code to describe what is happening. In summary, we have to determine what type of week we are dealing with and then handle it as needed.

<xsl:for-each select="MeetingWorkBook/Meeting">
       <div class="containerMeeting">
               <xsl:if test="@PageBreak=1">
                       <xsl:attribute name="style">page-break-before: always</xsl:attribute>
               </xsl:if>
               <xsl:if test="@PageBreak=1 or position()=1">
                       <xsl:call-template name="HEADING"/>
               </xsl:if>
               <xsl:if test="@BookmarkId">
                       <a>
                               <xsl:attribute name="name">
                                       <xsl:value-of select="concat('week', @BookmarkId)"/>
                               </xsl:attribute>
                               <![CDATA[ ]]>
                       </a>
               </xsl:if>
               <!-- Normal Midweek Meeting -->
               <!-- A meeting is still held when we have a Regional Convention by Videoconference -->
               <xsl:if test ="count(SpecialEvent/VideoConferenceInfo)=0 or SpecialEvent/VideoConferenceInfo/@RegionalConvention=1">
                       <!-- The WEEK template will conditionally display any Special Event (if appropriate) -->
                       <xsl:call-template name="WEEK"/>
                       <!-- The TFGW | AYFM | LAC elements only exist if there is a valid Midweek Meeting. -->
                       <xsl:apply-templates select="TFGW"/>
                       <xsl:apply-templates select="AYFM"/>
                       <xsl:apply-templates select="LAC"/>
                       <xsl:if test="count(SpecialEvent/VideoConferenceInfo)=0">
                               <!-- Handle the Weekend Meeting like we used to do (for now) -->
                               <!-- PUBLICTALK element only exists if there is a valid Weekend Meeting. -->
                               <xsl:apply-templates select="PUBLICTALK"/>
                               <!-- We need to detect if there is a Memorial at the Weekend. -->
                               <xsl:call-template name="MEMORIAL-WEEKEND"/>
                       </xsl:if>
               </xsl:if>
               <!-- Videoconference Special Event -->
               <xsl:if test="count(SpecialEvent/VideoConferenceInfo) = 1">
                       <!-- We only need to display the date in there was no Midweek Meeting -->
                       <!-- However, if we don't show the date, then we don't show the Chairman - TO BE FIXED -->
                       <xsl:if test="SpecialEvent/VideoConferenceInfo/@RegionalConvention=0">
                               <xsl:call-template name="VideoConferenceWeek"/>
                       </xsl:if>
                       <table class="tableWeekend">
                               <colgroup>
                                       <col class ="columnTime"/>
                                       <col class ="columnPublicTalk"/>
                                       <col class ="columnName"/>
                               </colgroup>
                               <xsl:if test="SpecialEvent/VideoConferenceInfo/@RegionalConvention=0">
                                       <xsl:call-template name="SpecialEventVideoConferenceInfo"/>
                               </xsl:if>
                               <xsl:apply-templates select="PUBLICTALK/Assignments/WatchtowerStudy" mode="SpecialEvent"/>
                       </table>
                       <xsl:apply-templates select="SpecialEvent/VideoConferenceInfo"/>
               </xsl:if>
       </div>
</xsl:for-each>

Videoconference Information

Videoconference information is displayed on the schedule by applying this template. Note that several Classes have been added to make it easier for you adjust the style of the output.

<xsl:template match="VideoConferenceInfo">
       <div class="videoconference-container">
               <p class="videoconference-textbefore">
                       <xsl:value-of select="TextBeforeImage" disable-output-escaping="yes"/>
               </p>
               <img class="videoconference-image">
                       <xsl:attribute name="src">
                               <xsl:value-of select="ImagePath"/>
                       </xsl:attribute>
                       <xsl:attribute name="width">
                               <xsl:value-of select="ImageWidthPercent"/>
                               <xsl:text>%</xsl:text>
                       </xsl:attribute>
                       <xsl:attribute name="alt">
                               <xsl:text>Videoconference Image</xsl:text>
                       </xsl:attribute>
               </img>
               <p class="videoconference-event">
                       <xsl:value-of select="../Event"/>
               </p>
               <p class="videoconference-textafter">
                       <xsl:value-of select="TextAfterImage" disable-output-escaping="yes"/>
               </p>
       </div>
</xsl:template>

Song and Prayer Information

This template displays the two songs that are associated with the Watchtower Study and those who have been assigned with opening and closing with meeting with Prayer.

<xsl:template match="SongMiddle | SongEnd" mode="SpecialEvent">
       <tr>
               <td class="cellTime">
                       <xsl:value-of select="@StartTime24"/>
               </td>
               <td style="padding-left: 3mm">
                       <div class="floatRight">
                               <xsl:value-of select="//Labels/Prayer"/>
                       </div>
                       <span class="textSongLabel">
                               <xsl:value-of select="//Labels/Song"/>
                       </span>
                       <span class="textSongNumber">
                               <xsl:value-of select="."/>
                       </span>
                       <span class="textSongTitle">
                               <xsl:value-of select="@Title"/>
                       </span>
               </td>
               <td class="cellName">
                       <xsl:choose>
                               <!-- Middle song -->
                               <xsl:when test="self::SongMiddle">
                                       <xsl:value-of select="../../Assignments/PrayerOpen"/>
                               </xsl:when>
                               <!--  Closing song -->
                               <xsl:otherwise>
                                       <xsl:value-of select="../../Assignments/PrayerClose"/>
                               </xsl:otherwise>
                       </xsl:choose>
               </td>
       </tr>
</xsl:template>

Watchtower Study and Host Information

This template displays the rest of the details for the meeting and caters for both the Circuit Assembly and Regional Convention scenarios. It displays:

  • Weekend meeting Chairman.
  • Brothers assigned as Host / Co-host.
  • Theme of  the Watchtower Study.
  • Watchtower Study Conductor.

<xsl:template match="WatchtowerStudy" mode="SpecialEvent">
       <!--Heading-->
       <tr>
               <xsl:choose>
                       <!-- Include the Chairman for Regional Conventions -->
                       <xsl:when test="../../../SpecialEvent/VideoConferenceInfo/@RegionalConvention=1">
                               <td style="padding-left: 1mm;" colspan="2">
                                       <div class="floatRight">
                                               <xsl:value-of select="//Labels/Chairman"/>
                                       </div>
                                       <div class="WTHeading">
                                               <xsl:value-of select="//Labels/PTS_WTStudy"/>
                                       </div>
                               </td>
                               <td class="cellName">
                                       <xsl:choose>
                                               <xsl:when test="Chairman/@Duplicate=1">
                                                       <span class="textDuplicate">
                                                               <xsl:value-of select="../Chairman"/>
                                                       </span>
                                               </xsl:when>
                                               <xsl:otherwise>
                                                       <xsl:value-of select="../Chairman"/>
                                               </xsl:otherwise>
                                       </xsl:choose>
                               </td>
                       </xsl:when>
                       <!-- Only show the heading -->
                       <xsl:otherwise>
                               <td style="padding-left: 1mm;" colspan="3">
                                       <div class="WTHeading">
                                               <xsl:value-of select="//Labels/PTS_WTStudy"/>
                                       </div>
                               </td>
                       </xsl:otherwise>
               </xsl:choose>
       </tr>
       <!-- Show the Host / Co-host for Regional Conventions -->
       <xsl:if test="../../../SpecialEvent/VideoConferenceInfo/@RegionalConvention=1">
               <xsl:call-template name="SpecialEventVideoConferenceInfoRegionalConvention"/>
       </xsl:if>
       <!-- Optional: Display the opening song for the Watchtower Study -->
       <!-- Comment this line out if you do not want to display it -->
       <xsl:apply-templates select="../../SongInfo/SongMiddle" mode="SpecialEvent" />
       <tr>
               <xsl:apply-templates select="Time" mode="Start"/>
               <td class="cellWEEKENDText">
                       <div class="floatRight">
                               <xsl:value-of select="//Labels/PTS_WTConductor"/>
                               <xsl:text>:</xsl:text>
                       </div>
                       <span class="textPTSValue">
                               <xsl:value-of select="Theme"/>
                       </span>
               </td>
               <td class="cellName">
                       <xsl:value-of select="../Conductor"/>
               </td>
       </tr>
       <!-- Optional: Display the closing song for the Watchtower Study -->
       <!-- Comment this line out if you do not want to display it -->
       <xsl:apply-templates select="../../SongInfo/SongEnd" mode="SpecialEvent" />
</xsl:template>

The above template displays the Host / Co-host details by calling this template:

<xsl:template name="SpecialEventVideoConferenceInfoRegionalConvention">
       <xsl:if test="../VideoConferenceHost != '' and ../VideoConferenceCohost != ''">
               <tr>
                       <td class ="cellWEEKEND" colspan="2">
                               <div class="floatRight">
                                       <xsl:value-of select="//Labels/VideoConferenceHost"/>
                                       <br/>
                                       <xsl:value-of select="//Labels/VideoConferenceCohost"/>
                               </div>
                       </td>
                       <td class="cellName">
                               <xsl:apply-templates select="../VideoConferenceHost"/>
                               <br/>
                               <xsl:apply-templates select="../VideoConferenceCohost"/>
                       </td>
               </tr>
       </xsl:if>
</xsl:template>

Stylesheet Classes

As previously stated, we have added some new classes for customizing how the information is displayed. These can be found towards the end of the stylesheet:

/* Videoconference Events */
.videoconference-container {
    text-align: center;
}

.videoconference-textbefore {
}

.videoconference-textafter {
}

.videoconference-event {
    font-weight: bold;
}

.videoconference-image {
}