There was a problem with a Velocity script | |
Page | /httpd/prestosports/site-public/WEB-INF/themes/generic-bootstrap/bio-network-template |
Error | Invocation of method 'includeAgain' in class com.prestosports.render.ContentEngineInvoker threw exception javax.servlet.ServletException: javax.servlet.ServletException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 41,526 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. at /httpd/prestosports/site-public/WEB-INF/themes/generic-bootstrap/bio-network-template[line 74, column 26] |
Page source: |
1: ## PICK UP OPTIONS 2: $website.include("options") 3: #set ($options = $request.getAttribute("options")) 4: #set ($locale = "en_us") 5: #set ($locale = $options.get("locale")) 6: 7: #set ($showconf = true) 8: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide")) 9: #set ($showconf = false) 10: #end 11: 12: #set ($showCareer = $wiki.valid() && $seasons) 13: #if ("yes" == $options.get("stats_show_career") && $seasons) 14: #set ($showCareer = "yes") 15: #end 16: 17: #if ($locale == "en_us") 18: #set ($defLabel = "Defense") 19: #elseif ($locale == "en_gb") 20: #set ($defLabel = "Defence") 21: #end 22: 23: #set ($pos = "") 24: #if($attributes.get("position_stat")) 25: #set ($pos = $attributes.get("position_stat")) 26: #else 27: #set ($pos = $attributes.get("position")) 28: #set ($pos = $statPosition) 29: #set ($posVec = $pos.split("/")) 30: #set ($pos = $posVec[0]) 31: #end 32: #set ($pos = $pos.toLowerCase()) 33: #set ($statPos = $positions.get($pos)) 34: #set ($paramPos = $request.getParameter("pos")) 35: 36: #set ($highlights = $highlights.get($statPos)) 37: 38: #set ($url = ${page.url}) 39: #set ($playerId = $attributes.get("playerId")) 40: #set ($stats = $splits.overall) 41: 42: #set ($hasEvents = $events.size() > 0) 43: #set ($hasSynopsis = $synopsis.length() > 1 && $synopsis.indexOf("<center>") == -1) 44: #set ($htmlStatsURL = "${page.url}-stats") 45: #set ($hasHTMLStats = $website.exists($htmlStatsURL)) 46: #set ($bioBriefURL = "${page.url}-brief") 47: #set ($hasBioBrief = $website.exists("$bioBriefURL")) 48: 49: $request.setAttribute("careerTotals", $career) 50: ## We track a map of the careers to see if we are missing any seasons 51: #if(!$rosterTransactions) 52: #set ($careerMap = {}) 53: $request.setAttribute("careerMap", $careerMap) 54: #foreach ($season in $seasons) 55: ## We need to include this season stats 56: #set ($pagePathFolders = $page.url.split("/")) 57: #set ($sportPath = ${pagePathFolders[2]}) 58: #set ($path = "") 59: #set ($fixedSportPath = "/sports/${sportPath}/${season.seasonPath}") 60: #if ($pagePathFolders.size() > 6) ## Default path for players page /sports/sportPath/seasonPath/players/playerPageName 61: #set ($midPath = "/") 62: ## Use custom path and custom players page name 63: #foreach ($folder in $pagePathFolders) 64: #if ($foreach.index > 3 && $foreach.index < $pagePathFolders.size() - 1) 65: #set ($midPath = "${midPath}${folder}/") 66: #end 67: #end 68: #set ($path = "${fixedSportPath}${midPath}${season.bioPageName}?tmpl=bio-career-template&name=${season.seasonName}&pos=${statPos}&print=no") 69: #end 70: #if (!$website.exists($path)) 71: ## Use default path 72: #set ($path = "${fixedSportPath}/players/${season.bioPageName}?tmpl=bio-career-template&name=${season.seasonName}&pos=${statPos}&print=no") 73: #end 74: $website.includeAgain($path) 75: #end 76: #end 77: #set ($view = "profile") 78: #if ($request.getParameter("view")) 79: #set ($view = $request.getParameter("view")) 80: #end 81: 82: #################################### MACROS #################################################### 83: #macro (printTableHeader $label $class) 84: <th class="text-uppercase $class">$label</th> 85: #end 86: 87: #macro (printCellClass) 88: class="text-nowrap text-center" 89: #end 90: 91: #macro (printTab $viewParam $label) 92: #set ($classAttr = "nav-link text-nowrap") 93: #if ($viewParam == $view) 94: #set ($classAttr = "${classAttr} active") 95: #end 96: <li class="nav-item"> 97: <a href="${page.url}?view=${viewParam}" class="$classAttr" role="tab" data-toggle="tab" data-target="#${viewParam}" aria-selected="true" aria-controls="$viewParam">$label</a> 98: </li> 99: #end 100: 101: #macro (printPaneAttrs $viewParam) 102: #set ($classAttr = "tab-pane") 103: #if ($viewParam == $view) 104: #set ($classAttr = "tab-pane active") 105: #else 106: #set ($classAttr = "${classAttr} fade") 107: #end 108: 109: class="$classAttr" role="tabpanel" id="$viewParam" 110: #end 111: 112: #macro (printResultAriaLabel $event) 113: #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}") 114: #if ($event.neutralSite.length() > 0 || $event.home) 115: #set ($ariaLabel = "${ariaLabel} vs.") 116: #else 117: #set ($ariaLabel = "${ariaLabel} at") 118: #end 119: #set ($ariaLabel = "${ariaLabel} ${event.opponent.name}:") 120: #if ($event.neutralSite.length() > 0) 121: #set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:") 122: #end 123: #set ($ariaLabel = "${ariaLabel} Box Score") 124: aria-label="$ariaLabel" 125: #end 126: 127: #macro (printHighlights) 128: #if ($highlights) 129: <div class="d-flex flex-wrap mb-3 bg-light"> 130: #foreach ($highlight in $highlights.keySet()) 131: #set ($value = "-") 132: #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight))) 133: #set ($classAttr = "flex-fill border p-2 text-center") 134: #if ($velocityCount > 1) 135: ## #set ($classAttr = "nav-item border-left") 136: #end 137: <div class="$classAttr" style="min-width:100px"> 138: <div class="text-uppercase">$!highlights.get($highlight)</div> 139: <div class="h5 m-0">$!value</div> 140: </div> 141: #end 142: </div> 143: #end 144: #end ## macro printHighlights 145: 146: #macro (splitBioNetwork $statPosBriefs $label $stats) 147: <tr> 148: <th class="text-nowrap text-end text-right font-weight-bold">${label}</th> 149: #if($rosterTransactions && $stats.class.simpleName == "JSONObject") 150: #set($keys = $stats.names()) 151: #set($array = $keys.toString().replace('"','').split(",")) 152: #foreach ($brief in $statPosBriefs.keySet()) 153: #set ($value = "-") 154: #if($array.contains($brief)) 155: #set ($value = $!formatter.formatNumber($tool.math.toDouble($stats.get($brief)), $formats.get($brief))) 156: #end 157: <td>#if ($value.length() > 0) $value #else - #end</td> 158: #end 159: #else 160: #foreach ($brief in $statPosBriefs.keySet()) 161: #set ($value = "-") 162: #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief))) 163: <td #printCellClass>#if ($value.length() > 0) $value #else - #end</td> 164: #end 165: #end 166: </tr> 167: #end ## marco split 168: 169: #macro (printCategories $briefCategoryLabels $viewParam) 170: #printSubTabs($briefCategoryLabels.entrySet(), $viewParam) 171: 172: <div class="tab-content"> 173: #foreach ($briefCat in $briefCategoryLabels.entrySet()) 174: #set ($briefCatLabel = $briefCat.value) 175: #set ($class = "tab-pane") 176: #if ($briefCat.key == $activePos) 177: #set ($class = "tab-pane active") 178: #end 179: <div id="${viewParam}-${briefCat.key}" class="$class" role="tabpanel"> 180: <div class="stats-wrap clearfix"> 181: #if ($viewParam == "splits") 182: #splitsBioNetworkData($briefCat.key) 183: #elseif ($viewParam == "career") 184: #careerData($briefCat.key) 185: #end 186: </div> 187: </div> 188: #end 189: </div> 190: #end ## macro printCategories 191: 192: #macro (splitsBioNetworkData $p) 193: #set ($p = $positions.get($p)) 194: #set ($statPosBriefs = $briefs.get($p)) 195: #set ($colspan = $statPosBriefs.size() + 1) 196: 197: <div class="stats-container table-responsive"> 198: <table class="table table-hover table-sm"> 199: <thead class="thead-dark"> 200: <tr> 201: <td> </td> 202: #foreach ($brief in $statPosBriefs) 203: #printTableHeader($brief, "text-center") 204: #end 205: </tr> 206: </thead> 207: #splitBioNetwork($statPosBriefs, "Total", $splits.overall) 208: #if ($showconf) 209: #splitBioNetwork($statPosBriefs, "Conference", $splits.conference) 210: #end 211: #splitBioNetwork($statPosBriefs, "Exhibition", $splits.exhibition) 212: 213: <tr> 214: <td colspan="$colspan" class="text-center">-</td> 215: </tr> 216: 217: #splitBioNetwork($statPosBriefs, "Home", $splits.home) 218: #splitBioNetwork($statPosBriefs, "Away", $splits.away) 219: #splitBioNetwork($statPosBriefs, "Neutral", $splits.neutral) 220: 221: <tr> 222: <td colspan="$colspan" class="text-center">-</td> 223: </tr> 224: 225: #foreach($gameResult in $gamesResults.entrySet()) 226: #if ($gameResult.key == "wins") 227: #set ($splitGameResult = $splits.inWins) 228: #elseif ($gameResult.key == "losses") 229: #set ($splitGameResult = $splits.inLosses) 230: #elseif ($gameResult.key == "ties") 231: #set ($splitGameResult = $splits.inTies) 232: #end 233: 234: #splitBioNetwork($statPosBriefs, $gameResult.value, $splitGameResult) 235: #end 236: 237: <tr> 238: <td colspan="$colspan" class="text-center">-</td> 239: </tr> 240: 241: #if ($monthsPlayed and $monthsPlayed.size() > 0) 242: #foreach($month in $monthsPlayed) 243: #if ($month == 'January') 244: #set ($splitMonth = $splits.january) 245: #elseif ($month == 'February') 246: #set ($splitMonth = $splits.february) 247: #elseif ($month == 'March') 248: #set($splitMonth = $splits.march) 249: #elseif ($month == 'April') 250: #set($splitMonth = $splits.april) 251: #elseif ($month == 'May') 252: #set ($splitMonth = $splits.may) 253: #elseif ($month == 'June') 254: #set ($splitMonth = $splits.june) 255: #elseif ($month == 'July') 256: #set($splitMonth = $splits.july) 257: #elseif ($month == 'August') 258: #set ($splitMonth = $splits.august) 259: #elseif ($month == 'September') 260: #set($splitMonth = $splits.september) 261: #elseif ($month == 'October') 262: #set($splitMonth = $splits.october) 263: #elseif ($month == 'November') 264: #set ($splitMonth = $splits.november) 265: #elseif ($month == 'December') 266: #set($splitMonth = $splits.december) 267: #end 268: #splitBioNetwork($statPosBriefs, $month, $splitMonth) 269: #end 270: #end 271: </table> 272: </div> 273: #end ## macro splitsBioNetworkData 274: 275: #macro (printRecentGames) 276: <div class="stats-container table-responsive"> 277: <table class="table table-hover"> 278: <thead class="thead-dark"> 279: <tr> 280: <th class="text-uppercase w-1">Date</th> 281: <th class="text-uppercase text-start text-left">Opponent/Event</th> 282: <th scope="col" class="text-center text-uppercase">Result</th> 283: </tr> 284: </thead> 285: 286: #set ($eventEnd = -1) 287: #foreach ($event in $events) 288: #if ($event.event.result.resolved) 289: #set ($eventEnd = $velocityCount) 290: #end 291: #end 292: 293: #set ($eventStart = $eventEnd - 5) 294: #if ($eventStart < 0) #set ($eventStart = 0) #end 295: 296: #foreach ($event in $events) 297: #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd) 298: <tr> 299: <td class="text-nowrap text-start text-left">$formatter.formatDate($event.event.date, "MMM d")</td> 300: <td class="text-nowrap text-start text-left"> 301: #if ($event.event.neutralSite.length() > 0) vs. 302: #elseif (!$event.event.home) at 303: #end 304: $event.event.opponent.name 305: </td> 306: <td class="text-nowrap text-center"> 307: #if ($event.event.statusCode >= 0) 308: #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0) 309: <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a> 310: #else 311: ${event.event.APResult} 312: #end 313: #end 314: </td> 315: </tr> 316: #end 317: #end 318: </table> 319: </div> 320: #end ## macro printRecentGames 321: 322: #macro (gamelogData $p) 323: #set ($p = $positions.get($p)) 324: #set ($gamelogs = $gamelogs.get($p)) 325: #set ($atLeastOneNotOverall = false) 326: 327: <div class="stats-container table-responsive"> 328: <table class="table table-hover"> 329: <thead class="thead-dark"> 330: <tr> 331: #printTableHeader("Date", "w-1") 332: #printTableHeader("Opponent", "") 333: #printTableHeader("Score", "text-center") 334: 335: #set ($colspan = 3) 336: #if ($p == 'goalie' && ($sport.enumCode == 9 || $sport.enumCode == 3)) ## field hockey: 9 soccer:3 337: #printTableHeader("Dec", "text-center") 338: #end 339: #foreach ($gamelog in $gamelogs) 340: #printTableHeader($gamelog, "text-center") 341: #end 342: </tr> 343: </thead> 344: #foreach ($event in $events) 345: <tr> 346: <td class="text-nowrap">$formatter.formatDate($event.event.date, "MMM d") #if (!$event.event.overall) #set ($atLeastOneNotOverall = true) # #end</</td> 347: <td class="text-nowrap"> 348: #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end 349: $event.event.opponent.name 350: </td> 351: <td #printCellClass> 352: #if ($event.event.statusCode >= 0) 353: #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0) 354: <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a> 355: #else 356: ${event.event.APResult} 357: #end 358: #else #end 359: </td> 360: #if ($p == 'goalie' && ($sport.enumCode == 9 || $sport.enumCode == 3)) ## field hockey: 9 soccer:3 361: <td #printCellClass> 362: #if ($event.stats.get('gow') == 1) 363: W 364: #elseif ($event.stats.get('gol') == 1) 365: L 366: #elseif ($event.stats.get('got') == 1) 367: T< 368: #else 369: - 370: #end 371: </td> 372: #end 373: #foreach ($gamelog in $gamelogs.keySet()) 374: #set ($value = "-") 375: #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog))) 376: <td #printCellClass>$value</td> 377: #end 378: </tr> 379: #end 380: </table> 381: 382: #if ($atLeastOneNotOverall) 383: <p class="my-3"># Stats don't count towards season totals</p> 384: #end 385: </div> 386: #end ## macro gamelogData 387: 388: #macro (careerData $p) 389: #set ($p = $positions.get($p)) 390: #set ($statPosBriefs = $briefs.get($p)) 391: 392: <div class="stats-container table-responsive"> 393: <table class="table table-hover table-sm"> 394: <thead class="thead-dark"> 395: <tr> 396: <th class=""> </th> 397: #foreach ($brief in $statPosBriefs) 398: #printTableHeader($brief, "text-center") 399: #end 400: </tr> 401: </thead> 402: #if($rosterTransactions) 403: #set ($seasonLength = $career.seasons.length()) 404: #foreach ($index in [0..$tool.math.sub($seasonLength, 1)]) 405: #set($season = $career.seasons[$index]) 406: #if($season.seasonStatsURL != "null") 407: #set ($label = "<a href='${season.seasonStatsURL}?view=profile'>$season.seasonName.replaceAll('^[^0-9-]*','') - $season.team.teamName</a>") 408: #else 409: #set ($label = "$season.seasonName.replaceAll('^[^0-9-]*','') - $season.team.teamName") 410: #end 411: #splitBioNetwork($statPosBriefs, $label, $season.player.stats) 412: #end 413: #splitBioNetwork($statPosBriefs, "Total", $career.totals) 414: 415: #else 416: #foreach ($season in $seasons) 417: #if ($careerMap.get($season.seasonName)) 418: #set ($label = "<a href='${season.path}?view=profile'>$season.seasonName</a>") 419: #splitBioNetwork($statPosBriefs, $label, $careerMap[$season.seasonName]) 420: #elseif ($wiki.valid()) 421: <tr> 422: <td class="text-nowrap text-end text-right text-muted fst-italic italic ">${season.seasonName}</td> 423: <td class="text-nowrap text-center text-muted fst-italic italic" colspan="${statPosBriefs.size()}">We could not find the "players" page in the ${season.seasonName} section.</td> 424: </tr> 425: #end 426: #end 427: #splitBioNetwork($statPosBriefs, "Total", $request.getAttribute("careerTotals").overall) 428: #end 429: 430: 431: </table> 432: </div> 433: #end ## macro careerData 434: 435: #macro (printTabs) 436: <div class="tab-nav"> 437: <ul class="nav nav-tabs nav-tabs-responsive flex-nowrap" role="tablist"> 438: #printTab("profile", "Player Profile") 439: #printTab("gamelog", "Game Log") 440: #if ($showCareer) 441: #printTab("career", "Career Stats") 442: #end 443: #printTab("splits", "Split Stats") 444: </ul> 445: </div> 446: #end ## printTabs 447: 448: #macro (printLabel $label) 449: #if ($locale == "en_gb" && $label == "Defense") 450: Defence 451: #else 452: $label 453: #end 454: #end 455: 456: #macro (printSubTabs $entries $viewParam) 457: #set ($activeLabel = "") 458: #foreach ($entry in $entries) 459: #if ($entry.key == $activePos) 460: #set ($activeLabel = $entry.value) 461: #end 462: #end 463: 464: <ul class="nav nav-tabs nav-tabs-responsive mb-3" role="tablist" id="${viewParam}-subtabs"> 465: #foreach($entry in $entries) 466: #set ($class = "nav-link") 467: #if ($entry.value == $activeLabel) 468: #set ($class = "${class} active") 469: #end 470: <li class="nav-item"> 471: <a href="#${viewParam}-${entry.key}" class="${class}" id="${viewParam}-${entry.key}-tab" role="tab" data-toggle="tab">#printLabel($entry.value)</a> 472: </li> 473: #end 474: </ul> 475: #end 476: ################################################## END MACROS ############################################################# 477: 478: <head> 479: <title> 480: $!attributes.get("first_name") $!attributes.get("last_name") | #if ($attributes.get("number"))#$!attributes.get("number") | #end #if($attributes.get("position_abbr") && !$attributes.get("position_abbr").empty)$!attributes.get("position_abbr") | #elseif ($attributes.get("position"))$!attributes.get("position") | #end $attributes.get("team") 481: </title> 482: </head> 483: 484: $request.setAttribute("icl-responsive-tabs-script", true) 485: 486: <div class="page-content player-stats"> 487: 488: 489: <div class="d-flex justify-content-between"> 490: <h1> 491: #if (!$attributes.get("number").empty)<span class="small text-muted">#$!attributes.get("number")</span>#end 492: $!attributes.get("first_name") $!attributes.get("last_name") 493: 494: #if($attributes.get("position_abbr") && !$attributes.get("position_abbr").empty) 495: <span class="small">($!attributes.get("position_abbr"))</span> 496: #elseif ($attributes.get("position")) 497: <span class="small">($!attributes.get("position"))</span> 498: #end 499: - 500: <small class="text-muted"> 501: <a href="../teams?id=$!{attributes.get("teamId")}" aria-label="Team Stats - ${attributes.get("team")}">$attributes.get("team")</a> 502: </small> 503: </h1> 504: 505: #set ($teamId = $attributes.get("teamId")) 506: #if ($teamId.length() > 0) 507: <span class="pl-2"> 508: <img class="img-mw-4" src="${website.teamLogo($teamId)}" alt="" /> 509: </span> 510: #end 511: </div> 512: 513: #printHighlights 514: 515: <div class="tabs-container my-3"> 516: 517: #printTabs 518: 519: <div class="tab-content p-3 border border-top-0"> 520: 521: ## PROFILE 522: <div #printPaneAttrs("profile")> 523: <div class="row"> 524: <div class="col-lg"> 525: <h5>Player Stats</h5> 526: $website.include("${page.sectionPage.url}/players?tmpl=stats-bios-rank-template&rank=${playerId}&pos=${statPos}") 527: </div> 528: <div class="mt-3 col-lg mt-lg-0"> 529: <h5>Recent Results</h5> 530: #printRecentGames 531: </div> 532: </div> 533: 534: #if ($hasSynopsis) 535: <div class="my-3">$!synopsis</div> 536: #end 537: 538: #if ($hasBioBrief) 539: <div class="my-3">$website.include($bioBriefURL)</div> 540: #end 541: 542: #if ($htmlStatsURL) 543: <div class="my-3">$website.include($htmlStatsURL)</div> 544: #end 545: </div> ## PROFILE 546: 547: ## GAMELOG 548: #set ($activePos = $statPos) 549: #if ($view == "gamelog" && $paramPos.length() > 0) 550: #if ($positions.get($paramPos).length() > 0) 551: #set ($activePos = $positions.get($paramPos)) 552: #end 553: #end 554: 555: <div #printPaneAttrs("gamelog")> 556: #if ($gamelogsCategoriesLabels.size() > 0) 557: #printSubTabs($gamelogsCategoriesLabels.entrySet(), "gamelog") 558: 559: <div class="tab-content"> 560: #foreach($entry in $gamelogsCategoriesLabels.entrySet()) 561: #set ($class = "tab-pane") 562: #if ($entry.key == $activePos) 563: #set ($class = "tab-pane active") 564: #end 565: <div class="${class}" role="tabpanel" id="gamelog-${entry.key}"> 566: #gamelogData($entry.key) 567: </div> 568: #end 569: </div> 570: #else 571: #gamelogData($pos) 572: #end 573: </div> ## tab-pane 574: ## GAMELOG 575: 576: ## CAREER 577: #if ($showCareer) 578: #set ($activePos = $statPos) 579: #if ($view == "career" && $paramPos.length() > 0) 580: #if ($positions.get($paramPos).length() > 0) 581: #set ($activePos = $positions.get($paramPos)) 582: #end 583: #end 584: <div #printPaneAttrs("career")> 585: #if ($briefsCategoriesLabels) 586: #printCategories($briefsCategoriesLabels "career") 587: #else 588: #careerData($activePos) 589: #end 590: </div> 591: #end 592: ## CAREER 593: 594: ## SPLITS 595: #set ($activePos = $statPos) 596: #if ($view == "splits" && $paramPos.length() > 0) 597: #if ($positions.get($paramPos).length() > 0) 598: #set ($activePos = $positions.get($paramPos)) 599: #end 600: #end 601: 602: <div #printPaneAttrs("splits")> 603: #if ($briefsCategoriesLabels) 604: #printCategories($briefsCategoriesLabels "splits") 605: #else 606: #splitsBioNetworkData($pos) 607: #end 608: </div> 609: ## SPLITS 610: 611: </div> ## tab-content 612: </div> ## tabs-container 613: </div> ## bio-wrapper 614: $wiki.su |
NEWS AROUND CAMPUS