Podcast Banner
The PowerScore LSAT Podcast

About the Podcast
PowerScore CEO and LSAT Bible author Dave Killoran and PowerScore VP Jon Denning are two of the world’s foremost experts on the LSAT and law school admissions, and they’ve created the PowerScore LSAT Podcast to share their knowledge and experience with you! Topics range from specific LSAT concepts and strategies, to breaking LSAT news and changes, to law school application advice, and listener-submitted questions.
Breadcrumb
Asset Publisher
An error occurred while processing the template.
The string doesn't match the expected date/time/date-time format. The string to parse was: "November 30, 2024". The expected format was: "EEE, dd MMM yyyy HH:mm:ss Z". The nested reason given follows: Unparseable date: "November 30, 2024" ---- FTL stack trace ("~" means nesting-related): - Failed at: parsedDate = pubDate?datetime("EEE, d... [in template "20096#20121#101427" at line 18, column 33] ----
1<section class="section podcast_episode pt-5 pb-1">
2 <div class="container">
3 <div class="default-heading subtitle_h2">
4 <h2> Episodes </h2>
5 </div>
6
7<#if entries?has_content>
8 <#list entries as curEntry>
9 <#assign
10 entry = curEntry
11 assetRenderer = curEntry.getAssetRenderer()
12 entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))
13 viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent"))
14 />
15 <#assign docXml=saxReaderUtil.read(curEntry.getAssetRenderer().getArticle().getContentByLocale(locale.toString()))
16 title=docXml.valueOf("//dynamic-element[@field-reference='Text62743630' ]/dynamic-content")
17 pubDate=docXml.valueOf("//dynamic-element[@field-reference='Text44181818' ]/dynamic-content")
18 parsedDate = pubDate?datetime("EEE, dd MMM yyyy HH:mm:ss Z")
19 formattedDate = parsedDate?string("EEE, dd MMM yyyy")
20 podcastImage=docXml.valueOf("//dynamic-element[@field-reference='Text64639435' ]/dynamic-content")
21 description=docXml.valueOf("//dynamic-element[@field-reference='RichText94527332' ]/dynamic-content")
22 extractedDescription = description?replace('<[^>]+>','','r')
23 podcastURL=docXml.valueOf("//dynamic-element[@field-reference='Text68555789' ]/dynamic-content")
24 duration=docXml.valueOf("//dynamic-element[@field-reference='Text81553976' ]/dynamic-content")
25 episodeTimestamp=docXml.valueOf("//dynamic-element[@field-reference='RichText24629768' ]/dynamic-content")
26 audioPlayer=docXml.valueOf("//dynamic-element[@field-reference='Text71794597' ]/dynamic-content")
27 applePodcast=docXml.valueOf("//dynamic-element[@field-reference='Text69908893' ]/dynamic-content")
28 spotifyPodcast=docXml.valueOf("//dynamic-element[@field-reference='Text82589801' ]/dynamic-content")
29 padoraPodcast=docXml.valueOf("//dynamic-element[@field-reference='Text51026635' ]/dynamic-content")
30 />
31 <#assign lowerCaseString = title?lower_case>
32 <!--<#assign dynamicURL = lowerCaseString?replace(" ", "-", "r")>-->
33 <#assign dynamicURL = curEntry.getAssetRenderer().getArticle().getUrlTitle(locale)>
34
35 <div class="views-row">
36 <div class="card">
37 <div class="card-body">
38 <div class="row justify-content-between align-items-start">
39 <div class="col-12 col-sm-12 col-lg-12 col-xl-8">
40 <h3>
41 <a href="/lsat/resources/podcast/-/detail/title/${dynamicURL}">${title}</a>
42 </h3>
43 <div class="row justify-content-between align-items-center">
44 <div class="col-12 col-md-2 col-lg-3 col-xl-2 pr-0">
45 <div class="podcast_thumbnail">
46 <img src="/documents/d/powerscore/podcast-social-square-png" alt="thumbnail"/>
47 </div>
48 </div>
49 <div class="col-12 col-md-10 col-lg-9 col-xl-10 pr-xl-5">
50 <div class="audioPlyer">
51 <div class="row justify-content-between align-items-center date_area_episode_lengths">
52 <div class="col-12 col-sm-6 col-md-6 col-xl-auto">
53 <div class="date_area">
54 <i class="web-calendar"></i> Air Date : ${formattedDate}
55 </div>
56 </div>
57 <div class="col-12 col-sm-6 col-md-6 col-xl-auto">
58 <div class="episode_lengths">
59 <i class="web-time"></i> Episode Length : <span class="audioLength">${duration}</span>
60 </div>
61 </div>
62 </div>
63 <div class="row justify-content-start align-items-center player_area">
64 <div class="col-2 col-sm-1 col-md-1 col-lg-1 col-xl-1 pr-1">
65 <button class="play play_icon">
66 <i class="cust-icon web-play-btn"></i>
67 </button>
68 </div>
69 <div class="col-10 col-sm-11 col-md-11 col-lg-11 col-xl-11 pl-sm-4 audio-container">
70 <div class="progress">
71 <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
72 </div>
73 <audio class="audioPlayer myaudio" controls="controls" preload="auto" src="${podcastURL}"> Audio Player example </audio>
74 </div>
75 </div>
76 <div class="row justify-content-between align-items-center next_previous_time">
77 <div class="col-4 col-sm-4 col-md-auto">
78 <button class="btn pc_theme_btn btn-secondary backward">
79 <i class="web-double-arrow-left"></i>30 S<span class="d-none d-sm-inline-block">econds</span></button>
80 </div>
81 <div class="col-4 col-sm-4 col-md-auto"><span class="audio_timing">00:00:00</span></div>
82 <div class="col-4 col-sm-4 col-md-auto">
83 <button class="btn pc_theme_btn btn-secondary forward">30 S<span class="d-none d-sm-inline-block">econds</span><i class="web-double-arrow-right"></i> </button>
84 </div>
85 </div>
86 </div>
87 </div>
88 </div>
89 </div>
90 <div class="col-12 col-sm-12 col-lg-12 col-xl-4 moreAndless">
91 <h4>Episode Description</h4>
92 <div class="paragraph_area">
93 <#assign minititle=(extractedDescription!"")>
94 <#if minititle?length < 280>
95 ${extractedDescription}
96 <#else>
97 ${extractedDescription?substring(0,279)}...
98 </#if>
99 </div>
100 <div class="paragraph_area paraBg active">
101 <a href="/lsat/resources/podcast/-/detail/title/${dynamicURL}" class="btn pc_theme_btn btn-secondary w-100">
102 <span class="expand_des w-100"> View Full Description & Timestamps </span>
103 </a></div>
104 </div>
105 </div>
106 </div>
107 </div>
108 </div>
109 </#list>
110</#if>
111
112 </div>
113</section>
114
115<script type="text/javascript">
116
117
118 //Play-Pause
119 $(".play").on("click", function() {
120 console.log("Play Audio");
121 if (window.HTMLAudioElement) {
122 try {
123 var oAudio = $(this).closest('.audioPlyer').find('.myaudio');
124 if (oAudio[0].paused) {
125 $(this).find('i.cust-icon').removeClass('web-play-btn');
126 $(this).find('i.cust-icon').addClass('web-stop-btn');
127 oAudio[0].play();
128 oAudio.on('timeupdate', (e) => {
129 const { duration, currentTime } = oAudio[0];
130 let progressPercent = (currentTime / duration) * 100;
131 $(this).closest('.audioPlyer').find('.progress-bar').width(progressPercent+"%");
132 $(this).parents('.audioPlyer').find('.audio_timing').html(formatTime(Math.floor(currentTime)));
133 });
134 } else {
135 $(this).find('i.cust-icon').addClass('web-play-btn');
136 $(this).find('i.cust-icon').removeClass('web-stop-btn');
137 oAudio[0].pause();
138 }
139 } catch (e) {
140 if (window.console && console.error("Error:" + e));
141 }
142 }
143 });
144
145 function formatTime(seconds) {
146 const h = Math.floor(seconds / 3600);
147 const m = Math.floor((seconds % 3600) / 60);
148 const s = seconds % 60;
149 const formattedH = h < 10 ? '0' + h : h;
150 const formattedM = m < 10 ? '0' + m : m;
151 const formattedS = s < 10 ? '0' + s : s;
152 return (formattedH+':'+formattedM+':'+formattedS);
153 }
154
155 //Forward
156 $(".forward").on("click", function() {
157 console.log("Forward Calling");
158 if (window.HTMLAudioElement) {
159 try {
160 var oAudio = $(this).closest('.audioPlyer').find('.myaudio');
161 oAudio[0].currentTime += 30.0;
162 } catch (e) {
163 if (window.console && console.error("Error:" + e));
164 }
165 }
166 });
167
168 //Backward
169 $(".backward").on("click", function() {
170 console.log("Backward Calling");
171 if (window.HTMLAudioElement) {
172 try {
173 var oAudio = $(this).closest('.audioPlyer').find('.myaudio');
174 oAudio[0].currentTime -= 30.0;
175 } catch (e) {
176 if (window.console && console.error("Error:" + e));
177 }
178 }
179 });
180
181 function setProgress(e) {
182 var oAudio = e.target.closest('.audio-container').querySelector('.myaudio');
183 var audioFile = $(this).closest('.audioPlyer').find('.myaudio');
184 const width = e.target.clientWidth;
185 console.log("width>>> ", width);
186 const clickX = e.offsetX;
187 console.log("clickX>>> ", clickX);
188 const duration = oAudio.duration;
189 oAudio.currentTime = (clickX / width) * duration;
190 }
191
192 // Get all elements with the class name 'progress' and attach event listeners
193 const progressElements = document.getElementsByClassName('progress');
194 for (let i = 0; i < progressElements.length; i++) {
195 progressElements[i].addEventListener('click', setProgress);
196 }
197 </script>
198<style>
199 .progress {
200 cursor: pointer;
201 }
202 .player_area .play {
203 position: relative;
204 height: 48px;
205 width: 48px;
206 display: block;
207 }
208 .player_area .play i {
209 font-size: 50px;
210 position: absolute;
211 left: 0;
212 top: 50%;
213 transform: translateY(-50%);
214 background: linear-gradient(to right, #235ba8 0%, #1c75d4 100%);
215 -webkit-text-fill-color: transparent;
216 -webkit-background-clip: text;
217 }
218 .player_area .progress .progress-bar {
219 pointer-events: none;
220 }
221/* Pagination Styling */
222.pagination-bar {
223 max-width: 1312px;
224 width: 100%;
225 margin-left: auto;
226 margin-right: auto;
227 padding-left: calc(24px* 0.5);
228 padding-right: calc(24px* 0.5);
229 margin-bottom: 20px;
230}
231.pagination .page-link, .pagination .page-link span, .pagination .lfr-portal-tooltip.page-link {
232 color: #464f57;
233 text-decoration: none;
234 font-weight: 500;
235 font-size: inherit;
236 margin-left: 0;
237 padding: 0;
238 border-radius: 4px;
239 height: auto;
240 line-height: inherit;
241 display: block;
242 background-color: inherit;
243 border: 0;
244}
245.pagination .page-link span.c-inner, .pagination a.page-link, .pagination button.page-link {
246 padding: 10px 15px;
247}
248.pagination .page-item:hover button.page-link span, .pagination .page-item:hover .page-link span.c-inner {
249 background-color: #2a5488;
250 border-color: #2a5488;
251 color: #fff;
252}
253.page-item:last-child .page-link, .page-link-last {
254 border-radius: 0 .25rem .25rem 0 !important;
255}
256</style>
Showing 161 to 163 of 163 entries.