Key Stage 2 lesson plans
Before browsing the free lesson plans, find out how each of lesson links with the National Curriculum by downloading the KS2 curriculum map (Word, 292KB).
An error occurred while processing the template.
The following has evaluated to null or missing: ==> dynamicElement.element("dynamic-content") [in template "10108#260730#9946981" at line 126, column 48] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign associatedImgAltTxt = dynamic... [in template "10108#260730#9946981" at line 126, column 17] ----
1<#--
2Application display templates can be used to modify the look of a
3specific application.
4
5Please use the left panel to quickly add commonly used variables.
6Autocomplete is also available and can be invoked by typing "${".
7-->
8<#import "${templatesPath}/MACROGETEDITICON" as mac/>
9<#if entries?has_content>
10
11 <style>
12 .content-list {
13 margin:0;
14 padding: 0;
15 text-indent: 0;
16 list-style-type: none;
17 }
18
19 .content-list li {
20 max-width: 100%;
21 position: relative;
22 }
23
24 .content-item {
25 border-bottom: 1px dotted var(--dark);
26 }
27
28 .content-link {
29 text-decoration: none;
30 }
31
32 .content-link .content-short-description {
33 color: var(--dark, #1F252C);
34 }
35
36 .content-container {
37 margin: 1rem 0;
38 }
39
40 .content-list li:first-child .content-container {
41 margin-top:0;
42 }
43
44 .content-image {
45 width: 100%;
46 }
47
48 .content-title {
49 margin-top: 0.5rem;
50 }
51
52 .content-date {
53 margin-bottom: 0;
54 }
55
56 .pagination {
57 justify-content: space-between;
58 }
59
60 .content-edit-icon .visible-interaction {
61 position: absolute;
62 top: 0;
63 right: 0;
64 }
65
66 @media only screen and (min-width: 768px) {
67 .content-container {
68 display: flex;
69 }
70
71 .content-left {
72 margin-right: 1rem;
73 width: 25%;
74 }
75
76 .content-right {
77 width: 75%;
78 }
79
80 .content-title {
81 margin-top: 0;
82 }
83 }
84 </style>
85
86 <ul class="content-list">
87 <#list entries as curEntry>
88
89 <#assign
90 assetRenderer = curEntry.getAssetRenderer()
91 journalArticle = assetRenderer.getAssetObject()
92 viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry, true)
93
94 document = saxReaderUtil.read(journalArticle.getContent())
95 rootElement = document.getRootElement()
96 dDMStructure = journalArticle.getDDMStructure()
97 structureKey=dDMStructure.getStructureKey()
98 shortName = ""
99 associatedImage = ""
100 />
101 <#assign articleSummary = curEntry.getDescription(locale) />
102 <#assign displayDate = journalArticle.getDisplayDate() />
103 <#assign title = curEntry.getTitle(locale) />
104 <#assign associatedImgAltTxt = "" />
105
106 <#list rootElement.elements() as dynamicElement>
107 <#if "Name" == dynamicElement.attributeValue("name")>
108 <#assign name = dynamicElement.element("dynamic-content").getText() />
109 </#if>
110 <#if "ShortName" == dynamicElement.attributeValue("name")>
111 <#assign shortName = dynamicElement.element("dynamic-content").getText() />
112 </#if>
113 <#if "ShortDescription" == dynamicElement.attributeValue("name")>
114 <#assign shortDescription = dynamicElement.element("dynamic-content").getText() />
115 </#if>
116 <#if "AssociatedImage" == dynamicElement.attributeValue("name")>
117 <#assign associatedImageDemo = dynamicElement.element("dynamic-content").getText() />
118 <#if associatedImageDemo?has_content>
119 <#assign associatedImagehash = associatedImageDemo?eval />
120 <#if associatedImagehash.uuid?has_content && associatedImagehash.groupId?has_content >
121 <#assign associatedImage = "/c/document_library/get_file?uuid="+associatedImagehash.uuid+"&groupId="+associatedImagehash.groupId />
122 </#if>
123 </#if>
124 </#if>
125 <#if "AssociatedImgAltTxt" == dynamicElement.attributeValue("name")>
126 <#assign associatedImgAltTxt = dynamicElement.element("dynamic-content").getText() />
127 </#if>
128 </#list>
129 <#if themeDisplay.getURLCurrent()?starts_with("/web/rspcastaging")>
130 <#assign displayURL = '/web/rspcastaging/-/' + journalArticle.getUrlTitle()>
131 <#else>
132 <#assign displayURL = '/-/' + journalArticle.getUrlTitle()>
133 </#if>
134 <li class="content-item">
135 <div class="content-edit-icon">
136 <@mac.getEditIcon assetRenderer=assetRenderer journalArticle=journalArticle/>
137 </div>
138 <a class="content-link" href="${displayURL}">
139 <div class="content-container">
140 <#if validator.isNotNull(associatedImage)>
141 <div class="content-left">
142 <img class="content-image" src="${associatedImage}" alt="${associatedImgAltTxt}">
143 </div>
144 </#if>
145 <div class="content-right">
146 <#if "NEWS-WEB-CONTENT" != structureKey && name?has_content && name !="">
147 <h3 class="content-title">${name}</h3>
148 <#else>
149 <h3 class="content-title">${title}</h3>
150 </#if>
151 <div class="content-short-description">
152 <#if shortDescription?has_content && shortDescription !="">
153 <p class="shortDescription">${shortDescription}</p>
154 <#else>
155 <p class="articleSummary">${articleSummary}</p>
156 </#if>
157 <#if "NEWS-WEB-CONTENT" == structureKey>
158 <p class="content-date">${displayDate?string('d MMM yyyy')}</p>
159 </#if>
160 </div>
161 </div>
162 </div>
163 </a>
164 </li>
165 </#list>
166 </div>
167</#if>