2023-24 Football Statistics - Saginaw Valley
Yds
324.5
Rush
164.5
Pass
160.0
Pts/game
25.7
Yds allowed
298.3
Rush allowed
115.2
Pass allowed
183.1
Pts allowed/game
23.9
Schedule Summary | |
---|---|
Overall (Pct.) | 6-5 (.545) |
Conference (Pct.) | 3-3 (.500) |
Streak | Won 2 |
Home | 4-2 |
Away | 2-3 |
Neutral | 0-0 |
Full Scores and Schedule » |
Recent Games | ||
---|---|---|
Oct 7 | at Ferris State | L, 38-17 |
Oct 14 | at St. Xavier (Ill.) | W, 32-10 |
Oct 21 | Wayne State | W, 17-10 |
Oct 28 | at Davenport | L, 24-21 |
Nov 4 | Northern Michigan | W, 62-17 |
Nov 11 | at Michigan Tech | W, 38-21 |
Statistics category | Overall | Conf | ||
---|---|---|---|---|
Games | 11 | 6 | ||
Scoring | 283 | 169 | ||
Points per game | 25.7 | 28.2 | ||
Total offense | 3569 | 1871 | ||
Yards per game | 324.5 | 311.8 | ||
Passing yards | 1760 | 1007 | ||
Comp-Att-Int | 166-268-9 | 98-151-5 | ||
Passing yards per game | 160.0 | 167.8 | ||
Passing yards per attempt | 6.6 | 6.7 | ||
Passing yards per completion | 10.6 | 10.3 | ||
Passing touchdowns | 11 | 7 | ||
Rushing yards | 1809 | 864 | ||
Rushing attempts | 457 | 235 | ||
Rushing yards per game | 164.5 | 144.0 | ||
Yards per rush | 4.0 | 3.7 | ||
Rushing touchdowns | 19 | 10 | ||
1st downs | 191 | 103 | ||
Rushing 1st downs | 101 | 53 | ||
Passing 1st downs | 72 | 39 | ||
Penalty 1st downs | 18 | 11 | ||
1st downs per game | 17.4 | 17.2 | ||
3rd-down conversions | 56-158 | 29-82 | ||
3rd down % | 35% | 35% | ||
4th-down conversions | 11-19 | 4-7 | ||
4th down % | 58% | 57% | ||
Kick returns (No.-Yards) | 26-428 | 13-250 | ||
Kick return average | 16.5 | 19.2 | ||
Punt returns (No.-Yards) | 14-105 | 4-19 | ||
Punt return average | 7.5 | 4.8 | ||
Field goals | 10-14 | 5-7 | ||
Field goal % | 71.4% | 71.4% | ||
PATs | 35-35 | 22-22 | ||
PAT % | 100.0% | 100.0% | ||
Punts (No.-Yards) | 57-2247 | 31-1171 | ||
Average per punt | 39.4 | 37.8 | ||
Red zone scores | 30-37 | 15-16 | ||
Red zone % | 81% | 94% | ||
Red zone touchdowns | 21-37 | 11-16 | ||
Red zone touchdown % | 57% | 69% | ||
Fumbles-lost | 13-8 | 8-5 | ||
Fumbles recovered | 3 | 2 | ||
Defensive INTs | 15 | 10 | ||
Interception returns (No.-Yds) | 15-251 | 10-205 | ||
Interception return average | 16.7 | 20.5 | ||
Defensive TDs | 5 | 5 | ||
Tackles | 690 | 397 | ||
Sacks | 27 | 9 | ||
Penalties | 84 | 40 | ||
Penalty yards | 753 | 347 | ||
Time of possession per game | 29:37 | 29:02 | ||
Home Attendance | 14,583 | 8,164 | ||
Home Attendance average | 2,431 | 2,722 |
Passing
No. | Name | Yr | Pos | gp | comp | att | pct | yds | y/g | y/a | td | int | lg | effic |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | Mike O'Horo | So. | QB | 11 | 98 | 154 | 63.6% | 1064 | 96.7 | 6.9 | 8 | 3 | 36 | 134.9 |
7 | Willie Taylor | Jr. | QB | 7 | 21 | 37 | 56.8% | 311 | 44.4 | 8.4 | 2 | 3 | 53 | 129.0 |
5 | Jairus Grissom | Sr. | WR | 7 | 22 | 40 | 55.0% | 217 | 31.0 | 5.4 | 1 | 1 | 21 | 103.8 |
17 | Mason McKenzie | Fr. | QB | 3 | 24 | 35 | 68.6% | 161 | 53.7 | 4.6 | 0 | 2 | 18 | 95.8 |
4 | Nick Patterson | Fr. | QB | 1 | 1 | 2 | 50.0% | 7 | 7.0 | 3.5 | 0 | 0 | 7 | 79.4 |
Totals | 11 | 166 | 268 | 61.9% | 1760 | 160.0 | 6.6 | 11 | 9 | 53 | 123.9 | |||
Opponent | 11 | 146 | 275 | 53.1% | 2014 | 183.1 | 7.3 | 21 | 15 | 70 | 128.9 |
Rushing
No. | Name | Yr | Pos | gp | rush | yds | y/g | avg | td | lg | fum | lost |
---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | Terrance Brown | R-Fr. | RB | 11 | 136 | 733 | 66.6 | 5.4 | 6 | 67 | 3 | 2 |
2 | Mike O'Horo | So. | QB | 11 | 94 | 299 | 27.2 | 3.2 | 6 | 47 | 2 | 1 |
23 | Tyler Amos | Jr. | RB | 10 | 62 | 220 | 22.0 | 3.5 | 2 | 14 | 1 | 1 |
24 | Nick Johnson | Jr. | RB | 10 | 47 | 153 | 15.3 | 3.3 | 2 | 9 | - | - |
5 | Jairus Grissom | Sr. | WR | 7 | 23 | 82 | 11.7 | 3.6 | 0 | 47 | 3 | 2 |
17 | Mason McKenzie | Fr. | QB | 3 | 20 | 69 | 23.0 | 3.5 | 2 | 43 | - | - |
34 | Austin Bills | So. | RB | 8 | 10 | 56 | 7.0 | 5.6 | 1 | 16 | - | - |
1 | Derrick Hinton Jr. | Sr. | WR | 11 | 12 | 47 | 4.3 | 3.9 | 0 | 14 | 3 | 1 |
4 | Nick Patterson | Fr. | QB | 1 | 2 | 44 | 44.0 | 22.0 | 0 | 39 | - | - |
6 | Arron Foulkes | Jr. | WR | 11 | 17 | 38 | 3.5 | 2.2 | 0 | 16 | - | - |
7 | Willie Taylor | Jr. | QB | 7 | 17 | 31 | 4.4 | 1.8 | 0 | 12 | - | - |
30 | Jaquon Howard | R-Fr. | RB | 6 | 3 | 21 | 3.5 | 7.0 | 0 | 19 | - | - |
9 | Derek Bryant | So. | SL | 9 | 3 | 9 | 1.0 | 3.0 | 0 | 10 | - | - |
6D | Micah Cretsinger | Jr. | LB | 11 | 1 | 9 | 0.8 | 9.0 | 0 | 9 | - | - |
16 | Eric Craft | So. | WR | 11 | 1 | 5 | 0.5 | 5.0 | 0 | 5 | 1 | 1 |
25 | Sam Dersa | So. | SL | 11 | 2 | 5 | 0.5 | 2.5 | 0 | 3 | - | - |
2D | Christian Ellison | R-Fr. | DB | 9 | 1 | 0 | 0.0 | 0.0 | 0 | 0 | - | - |
1R | Ryan Cornelius | So. | RB | 1 | 1 | -3 | -3.0 | -3.0 | 0 | 0 | - | - |
Totals | 11 | 457 | 1809 | 164.5 | 4.0 | 19 | 67 | 13 | 8 | |||
Opponent | 11 | 423 | 1267 | 115.2 | 3.0 | 9 | 87 | 10 | 3 |
Receiving
No. | Name | Yr | Pos | gp | rec | rec/g | yds | y/g | avg | td | lg |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | Derrick Hinton Jr. | Sr. | WR | 11 | 52 | 4.7 | 595 | 54.1 | 11.4 | 4 | 53 |
6 | Arron Foulkes | Jr. | WR | 11 | 25 | 2.3 | 287 | 26.1 | 11.5 | 2 | 32 |
16 | Eric Craft | So. | WR | 11 | 21 | 1.9 | 232 | 21.1 | 11.0 | 2 | 31 |
3 | Terrance Brown | R-Fr. | RB | 11 | 17 | 1.5 | 172 | 15.6 | 10.1 | 2 | 34 |
25 | Sam Dersa | So. | SL | 11 | 10 | 0.9 | 98 | 8.9 | 9.8 | 0 | 19 |
23 | Tyler Amos | Jr. | RB | 10 | 9 | 0.9 | 46 | 4.6 | 5.1 | 0 | 16 |
9 | Derek Bryant | So. | SL | 9 | 6 | 0.7 | 44 | 4.9 | 7.3 | 0 | 18 |
89 | Mitchell DeBrincat | So. | TE | 10 | 5 | 0.5 | 32 | 3.2 | 6.4 | 0 | 11 |
19 | Jalen Williams | So. | TE | 4 | 4 | 1.0 | 75 | 18.8 | 18.8 | 0 | 29 |
10 | Kevin Swift | Jr. | WR | 1 | 3 | 3.0 | 33 | 33.0 | 11.0 | 0 | 16 |
5 | Jairus Grissom | Sr. | WR | 7 | 2 | 0.3 | 18 | 2.6 | 9.0 | 0 | 9 |
24 | Nick Johnson | Jr. | RB | 10 | 2 | 0.2 | 3 | 0.3 | 1.5 | 0 | 3 |
86 | Tylor McCoon | So. | TE | 5 | 2 | 0.4 | 16 | 3.2 | 8.0 | 0 | 9 |
34 | Austin Bills | So. | RB | 8 | 1 | 0.1 | 9 | 1.1 | 9.0 | 0 | 9 |
6D | Micah Cretsinger | Jr. | LB | 11 | 1 | 0.1 | 11 | 1.0 | 11.0 | 0 | 11 |
0R | Jamari Thomas | Fr. | WR | 1 | 1 | 1.0 | 7 | 7.0 | 7.0 | 0 | 7 |
84 | Raid Zerki | R-Fr. | WR | 2 | 1 | 0.5 | 38 | 19.0 | 38.0 | 0 | 38 |
Totals | 11 | 165 | - | 1754 | 159.5 | 10.6 | 11 | 53 | |||
Opponent | 11 | 146 | - | 2014 | 183.1 | 13.8 | 21 | 70 |
Kicking
No. | Name | Yr | Pos | gp | fgm | fga | pct | lg | xpm | xpa | pct | pts |
---|---|---|---|---|---|---|---|---|---|---|---|---|
47 | Ryan Heicher | Jr. | K | 11 | 10 | 14 | 71% | 44 | 35 | 35 | 100% | 65 |
Totals | 11 | 10 | 14 | 71% | 44 | 35 | 35 | 100% | 65 | |||
Opponent | 11 | 8 | 13 | 62% | 45 | 31 | 32 | 97% | 55 |
Punting
No. | Name | Yr | Pos | gp | punt | yds | avg | lg | in20 | fc | tb | blk |
---|---|---|---|---|---|---|---|---|---|---|---|---|
47 | Ryan Heicher | Jr. | K | 11 | 47 | 1898 | 40.4 | 69 | 21 | 9 | 2 | 0 |
40 | Branden Fischer | So. | K | 4 | 5 | 189 | 37.8 | 48 | 0 | 0 | 0 | 0 |
86 | Tylor McCoon | So. | TE | 5 | 5 | 160 | 32.0 | 57 | 1 | 0 | 0 | 0 |
Totals | 11 | 57 | 2247 | 39.4 | 69 | 22 | 9 | 2 | 0 | |||
Opponent | 11 | 63 | 2284 | 36.3 | 51 | 10 | 21 | 2 | 2 |
Returns
No. | Name | Yr | Pos | kr | yds | avg | td | lg | pr | yds | avg | td | lg |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
30 | Jaquon Howard | R-Fr. | RB | 11 | 224 | 20.4 | 0 | 33 | - | - | - | - | - |
11 | Andrew Holston | Jr. | DB | 3 | 55 | 18.3 | 0 | 27 | - | - | - | - | - |
9 | Derek Bryant | So. | SL | 3 | 43 | 14.3 | 0 | 25 | - | - | - | - | - |
25 | Sam Dersa | So. | SL | 2 | 43 | 21.5 | 0 | 30 | - | - | - | - | - |
6 | Arron Foulkes | Jr. | WR | 2 | 27 | 13.5 | 0 | 19 | - | - | - | - | - |
26 | Carrington Pryor | Fr. | DB | 1 | 20 | 20.0 | 0 | 20 | - | - | - | - | - |
6D | Micah Cretsinger | Jr. | LB | 1 | 15 | 15.0 | 0 | 15 | - | - | - | - | - |
34 | Austin Bills | So. | RB | 1 | 1 | 1.0 | 0 | 1 | - | - | - | - | - |
7D | Jasper Beeler | R-Fr. | DB | 1 | 0 | 0.0 | 0 | 0 | - | - | - | - | - |
20 | Elijah Gordon | So. | DB | 1 | 0 | 0.0 | 0 | 0 | 2 | 37 | 18.5 | 0 | 0 |
1 | Derrick Hinton Jr. | Sr. | WR | - | - | - | - | - | 10 | 66 | 6.6 | 0 | 15 |
28 | Derek Thomason | Jr. | LB | - | - | - | - | - | 1 | 2 | 2.0 | 0 | 2 |
Totals | 26 | 428 | 16.5 | 0 | 33 | 14 | 105 | 7.5 | 0 | 15 | |||
Opponent | 44 | 966 | 22.0 | 2 | 94 | 19 | 177 | 9.3 | 1 | 57 |
All-Purpose
No. | Name | Yr | Pos | gp | rush | rcv | pr | kr | yds | ypg |
---|---|---|---|---|---|---|---|---|---|---|
3 | Terrance Brown | R-Fr. | RB | 11 | 733 | 172 | - | - | 905 | 82.3 |
1 | Derrick Hinton Jr. | Sr. | WR | 11 | 47 | 595 | 66 | - | 708 | 64.4 |
4 | Nick Patterson | Fr. | QB | 1 | 44 | - | - | - | 44 | 44.0 |
30 | Jaquon Howard | R-Fr. | RB | 6 | 21 | - | - | 224 | 245 | 40.8 |
10 | Kevin Swift | Jr. | WR | 1 | - | 33 | - | - | 33 | 33.0 |
6 | Arron Foulkes | Jr. | WR | 11 | 38 | 287 | - | 27 | 352 | 32.0 |
2 | Mike O'Horo | So. | QB | 11 | 299 | - | - | - | 299 | 27.2 |
23 | Tyler Amos | Jr. | RB | 10 | 220 | 46 | - | - | 266 | 26.6 |
17 | Mason McKenzie | Fr. | QB | 3 | 69 | - | - | - | 69 | 23.0 |
16 | Eric Craft | So. | WR | 11 | 5 | 232 | - | - | 237 | 21.5 |
84 | Raid Zerki | R-Fr. | WR | 2 | - | 38 | - | - | 38 | 19.0 |
19 | Jalen Williams | So. | TE | 4 | - | 75 | - | - | 75 | 18.8 |
24 | Nick Johnson | Jr. | RB | 10 | 153 | 3 | - | - | 156 | 15.6 |
5 | Jairus Grissom | Sr. | WR | 7 | 82 | 18 | - | - | 100 | 14.3 |
25 | Sam Dersa | So. | SL | 11 | 5 | 98 | - | 43 | 146 | 13.3 |
9 | Derek Bryant | So. | SL | 9 | 9 | 44 | - | 43 | 96 | 10.7 |
26 | Carrington Pryor | Fr. | DB | 2 | - | - | - | 20 | 20 | 10.0 |
11 | Andrew Holston | Jr. | DB | 6 | - | - | - | 55 | 55 | 9.2 |
34 | Austin Bills | So. | RB | 8 | 56 | 9 | - | 1 | 66 | 8.3 |
0R | Jamari Thomas | Fr. | WR | 1 | - | 7 | - | - | 7 | 7.0 |
7 | Willie Taylor | Jr. | QB | 7 | 31 | - | - | - | 31 | 4.4 |
20 | Elijah Gordon | So. | DB | 11 | - | - | 37 | 0 | 37 | 3.4 |
89 | Mitchell DeBrincat | So. | TE | 10 | - | 32 | - | - | 32 | 3.2 |
86 | Tylor McCoon | So. | TE | 5 | - | 16 | - | - | 16 | 3.2 |
6D | Micah Cretsinger | Jr. | LB | 11 | 9 | 11 | - | 15 | 35 | 3.2 |
28 | Derek Thomason | Jr. | LB | 10 | - | - | 2 | - | 2 | .2 |
Totals | 11 | 1809 | 1754 | 105 | 428 | 4096 | 372.4 | |||
Opponent | 11 | 1267 | 2014 | 177 | 966 | 4424 | 402.2 |
Scoring
No. | Name | Yr | Pos | pts | pts/g | rush | rec | kr | pr | int | fum | xpm | fgm | 2pt | misc |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
47 | Ryan Heicher | Jr. | K | 65 | 5.9 | - | - | - | - | - | - | 35 | 10 | 0 | 0 |
3 | Terrance Brown | R-Fr. | RB | 48 | 4.4 | 6 | 2 | - | - | - | - | - | - | 0 | 0 |
2 | Mike O'Horo | So. | QB | 36 | 3.3 | 6 | - | - | - | - | - | - | - | 0 | 0 |
6D | Micah Cretsinger | Jr. | LB | 24 | 2.2 | 0 | 0 | 0 | - | 4 | - | - | - | 0 | 0 |
1 | Derrick Hinton Jr. | Sr. | WR | 24 | 2.2 | 0 | 4 | - | 0 | - | - | - | - | 0 | 0 |
23 | Tyler Amos | Jr. | RB | 12 | 1.2 | 2 | 0 | - | - | - | - | - | - | 0 | 0 |
16 | Eric Craft | So. | WR | 12 | 1.1 | 0 | 2 | - | - | - | - | - | - | 0 | 0 |
6 | Arron Foulkes | Jr. | WR | 12 | 1.1 | 0 | 2 | 0 | - | - | - | - | - | 0 | 0 |
24 | Nick Johnson | Jr. | RB | 12 | 1.2 | 2 | 0 | - | - | - | - | - | - | 0 | 0 |
17 | Mason McKenzie | Fr. | QB | 12 | 4.0 | 2 | - | - | - | - | - | - | - | 0 | 0 |
34 | Austin Bills | So. | RB | 6 | 0.8 | 1 | 0 | 0 | - | - | - | - | - | 0 | 0 |
2D | Christian Ellison | R-Fr. | DB | 6 | 0.7 | 0 | - | - | - | 1 | - | - | - | 0 | 0 |
Totals | 283 | 25.7 | 19 | 11 | 0 | 0 | 5 | 0 | 35 | 10 | 0 | 0 | |||
Opponent | 263 | 23.9 | 9 | 21 | 2 | 1 | 1 | 0 | 31 | 8 | 2 | 0 |
Defense
No. | Name | Yr | Pos | gp | tkl | ast | tot | tkl/g | sck | yds | tfl | yds | ff | fr | yds | int | yds | brup | blk |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
6D | Micah Cretsinger | Jr. | LB | 11 | 59 | 41 | 100.0 | 9.1 | 3.5 | 21 | 15.0 | 54 | 3 | 0 | 0 | 8 | 167 | 4 | 0 |
5D | Alfred Dailey Jr. | Jr. | LB | 10 | 40 | 31 | 71.0 | 7.1 | 1.0 | 11 | 6.0 | 29 | 1 | 0 | 0 | 0 | 0 | 2 | 1 |
4D | Brandon Rawls | So. | LB | 11 | 44 | 21 | 65.0 | 5.9 | 1.0 | 10 | 15.5 | 52 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
20 | Elijah Gordon | So. | DB | 11 | 31 | 13 | 44.0 | 4.0 | 0.0 | 0 | 2.5 | 30 | 0 | 0 | 0 | 2 | 0 | 3 | 2 |
90 | Adom LeDuc | R-Fr. | DL | 11 | 20 | 16 | 36.0 | 3.3 | 6.5 | 34 | 8.5 | 36 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
22 | Mikey Woolridge | Sr. | DB | 9 | 23 | 12 | 35.0 | 3.9 | 0.0 | 0 | 1.0 | 2 | 0 | 1 | 0 | 0 | 0 | 4 | 0 |
1D | Leonard Henry IV | Jr. | DL | 11 | 14 | 17 | 31.0 | 2.8 | 4.5 | 29 | 6.5 | 33 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
45 | Harold Irby III | Jr. | DL | 11 | 17 | 14 | 31.0 | 2.8 | 1.0 | 4 | 4.0 | 9 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
8 | Dante Barthwell | Jr. | DB | 11 | 19 | 7 | 26.0 | 2.4 | 2.0 | 10 | 7.5 | 19 | 0 | 0 | 0 | 1 | 7 | 3 | 0 |
99 | Jemarrlowe Sykes | Jr. | DL | 11 | 14 | 12 | 26.0 | 2.4 | 2.5 | 20 | 6.0 | 25 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
7D | Jasper Beeler | R-Fr. | DB | 11 | 14 | 11 | 25.0 | 2.3 | 0.0 | 0 | 2.5 | 4 | 0 | 0 | 0 | 1 | 13 | 0 | 1 |
43 | Brady Devereaux | Jr. | LB | 11 | 10 | 13 | 23.0 | 2.1 | 1.0 | 4 | 2.5 | 10 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
52 | Carson Berenyi | Jr. | DL | 11 | 13 | 9 | 22.0 | 2.0 | 0.5 | 2 | 1.5 | 4 | 0 | 0 | 0 | 0 | 0 | 2 | 0 |
2D | Christian Ellison | R-Fr. | DB | 9 | 20 | 2 | 22.0 | 2.4 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 1 | 47 | 5 | 0 |
56 | Brannen Goodman | Sr. | DL | 7 | 7 | 5 | 12.0 | 1.7 | 1.5 | 12 | 1.5 | 12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3D | Jacoby Sanders | So. | DB | 10 | 9 | 3 | 12.0 | 1.2 | 0.0 | 0 | 0.5 | 1 | 0 | 0 | 0 | 1 | 0 | 3 | 0 |
28 | Derek Thomason | Jr. | LB | 10 | 6 | 5 | 11.0 | 1.1 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
96 | Jacob Spencer | Jr. | DL | 10 | 5 | 5 | 10.0 | 1.0 | 1.0 | 6 | 2.0 | 7 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
94 | Timothy Alonzo Jr. | So. | DL | 8 | 4 | 5 | 9.0 | 1.1 | 0.0 | 0 | 1.0 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
27 | Jaden Bevier | R-Fr. | LB | 9 | 7 | 1 | 8.0 | .9 | 1.0 | 7 | 1.0 | 7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
54 | Xavier Chasen | R-Fr. | DL | 4 | 4 | 3 | 7.0 | 1.8 | 0.0 | 0 | 0.5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
25 | Sam Dersa | So. | SL | 11 | 5 | 0 | 5.0 | .5 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
13 | DJ Voltz | R-Fr. | DB | 9 | 4 | 1 | 5.0 | .6 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 |
18 | Kameron Davenport | R-Fr. | DB | 4 | 3 | 1 | 4.0 | 1.0 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
11 | Andrew Holston | Jr. | DB | 6 | 3 | 1 | 4.0 | .7 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
33 | Colin Kraatz | R-Fr. | LB | 4 | 3 | 1 | 4.0 | 1.0 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
41 | Josh Rau | R-Fr. | LB | 2 | 4 | 0 | 4.0 | 2.0 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
42 | Isaiah Robinson | Jr. | LB | 8 | 2 | 2 | 4.0 | .5 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
29 | Josh Brown | R-Fr. | DB | 6 | 3 | 0 | 3.0 | .5 | 0.0 | 0 | 1.0 | 3 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
32 | Basil Hampton Jr. | R-Fr. | DB | 5 | 2 | 1 | 3.0 | .6 | 0.0 | 0 | 1.0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
38 | Ryan Wennerstrom | Sr. | LS | 11 | 2 | 1 | 3.0 | .3 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
89 | Mitchell DeBrincat | So. | TE | 10 | 2 | 0 | 2.0 | .2 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
47 | Ryan Heicher | Jr. | K | 11 | 2 | 0 | 2.0 | .2 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
58 | James McDonald | Fr. | LB | 3 | 1 | 1 | 2.0 | .7 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
97 | Brogan Wiler | R-Fr. | DL | 3 | 2 | 0 | 2.0 | .7 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
77 | Connor Cracchiolo | Jr. | OL | 11 | 1 | 0 | 1.0 | .1 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
40 | Branden Fischer | So. | K | 4 | 1 | 0 | 1.0 | .3 | - | - | 0.0 | - | - | - | - | - | - | - | - |
59 | Logan Hekkema | So. | DL | 3 | 1 | 0 | 1.0 | .3 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
24 | Nick Johnson | Jr. | RB | 10 | 1 | 0 | 1.0 | .1 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
21 | Danny Mason | Jr. | DB | 1 | 1 | 0 | 1.0 | 1.0 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
92 | Jesse Powell | So. | DL | 1 | 1 | 0 | 1.0 | 1.0 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
93 | Kadyn Warner | R-Fr. | DL | 3 | 0 | 1 | 1.0 | .3 | - | - | 0.5 | 1 | - | - | - | - | - | - | - |
53 | Ryan Whitely | So. | OL | 11 | 1 | 0 | 1.0 | .1 | 0.0 | 0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Totals | 11 | 432 | 258 | 690.0 | 62.7 | 27.0 | 170 | 88.0 | 343 | 5 | 3 | 0 | 15 | 251 | 35 | 6 | |||
Opponent | 11 | 427 | 286 | 713.0 | 64.8 | 21.0 | 139 | 69.0 | 251 | 6 | 8 | 17 | 9 | 124 | 27 | 0 |
Passing
There was a problem with a Velocity script | |
Page | /httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template |
Error | Invocation of method 'getTeamIDs' in class com.prestosports.render.storage.database.DatabasePage threw exception java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 33,822 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. at /httpd/prestosports/site-public/WEB-INF/themes/generic/stats-bios-template[line 30, 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: #set ($showconf = true) 7: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide")) 8: #set ($showconf = false) 9: #end 10: #set ($paginate = false) 11: #if ($options.get("stats_individual_pagination") and $options.get("stats_individual_pagination").equalsIgnoreCase("yes")) 12: #set ($paginate = true) 13: #end 14: #set ($limit = $options.get("stats_individual_limit")) 15: 16: #set ($isSharedMeets = true) 17: #if ($sport and $sport.statistics == true) 18: #set ($isSharedMeets = false) 19: #end 20: 21: #set ($isIncluded = $website.isIncluded()) 22: 23: #set ($isAjax = false) 24: #if ($request.getParameter('ajax').length() > 0) 25: #set ($isAjax = true) 26: #end 27: 28: #set ($idLength = 0) 29: #set ($idLength = $formatter.escapeXml($request.getParameter("id")).length()) 30: #set ($teamCount = $page.getTeamIDs().size()) 31: 32: #set ($teamId = '') 33: #if ($request.getParameter("teamId").length() > 0) 34: #set ($teamId = $request.getParameter("teamId")) 35: #end 36: 37: #set ($isSingleTeam = false) 38: #if ($teamId.length() != 0 or $teamCount == 1) 39: #set ($isSingleTeam = true) 40: #end 41: 42: #if ($teamCount == 1 and (not $isIncluded) and $idLength == 0 and not $isSharedMeets) 43: $website.decorate("") 44: #set ($targetURL = "${page.url}/../teams?view=lineup") 45: $response.sendRedirect($targetURL) 46: #stop 47: #end 48: 49: #set ($pos = "") 50: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 51: 52: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets) 53: $website.decorate("") 54: #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition) 55: #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition)) 56: #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition)) 57: #end 58: #if($paginate) 59: #set ($targetURL = $targetURL + "&page=1") 60: #end 61: #if($limit) 62: #set ($targetURL = $targetURL + "&limit=" + $limit) 63: #end 64: $response.sendRedirect($targetURL) 65: #stop 66: #end 67: 68: ## We want to leave this undefined so we can test for that 69: #set ($minEsc = $formatter.escapeXml($request.getParameter("min"))) 70: #if ($minEsc.length() > 0) 71: #set ($min = $minEsc) 72: #end 73: 74: #set ($cansort = $formatter.escapeXml($request.getParameter("cs"))) 75: 76: ## #set ($labels = $labels.get($positions.get($pos))) 77: 78: #set ($url = $request.requestURI) 79: #set ($paginationParameters = "") 80: #if($paginate and $!request.getParameter("page")) 81: #set ($paginationParameters = $paginationParameters + "&page=1") 82: #end 83: #if($limit and $!request.getParameter("limit")) 84: #set ($paginationParameters = $paginationParameters + "&limit=" + $limit) 85: #end 86: 87: #set ($view = "") 88: #set ($view = $formatter.escapeXml($!request.getParameter("view"))) 89: 90: #set ($restriction = "0") 91: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r"))) 92: #if ($restrictionEsc.length() > 0) 93: #set ($restriction = $restrictionEsc) 94: #end 95: 96: $website.include("standings?tmpl=stats-standings-abbr-template") 97: #set ($teamAbbr = $request.getAttribute("teamAbbr")) 98: 99: #* 100: <!-- 101: Debug 102: URL: $url 103: isIncluded: $isIncluded 104: View: ${view} 105: Position: $pos 106: Sort: $sort 107: isAjax: $isAjax 108: isSharedMeets = $isSharedMeets 109: page.getTeamIDs.size() = $page.getTeamIDs().size() 110: teamId = $teamId 111: page.teams.entrySet() = $page.teams.entrySet().size() 112: isSingleTeam = $isSingleTeam 113: --> 114: *# 115: 116: #if ($locale == "en_us") 117: #set ($defLabel = "Defense") 118: #elseif ($locale == "en_gb") 119: #set ($defLabel = "Defence") 120: #end 121: 122: #macro(printBriefsCategories $r) 123: #set ($ariaLabel = "Overall Stats") 124: #if ($r == "1") 125: #set ($ariaLabel = "Conference Stats") 126: #end 127: #set ($briefsCategories = []) 128: #if ($teamId.length() == 0 && $briefsCategoriesLabels) 129: <div class="tab-container secondary clearfix" data-module="stats/tabs" data-type="secondary"> 130: <div class="tab-nav" data-module="jscroll" data-momentum="false"> 131: <div> 132: <ul class="clearfix"> 133: 134: #if($briefsCategoriesLabels.containsKey("Game")) 135: 136: ## So we need to print Season, Games and Minutes (for some sports) tabs 137: 138: #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season")) 139: #set($briefsCategoriesGame = $briefsCategoriesLabels.get("Game")) 140: #set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes")) 141: ## Iterate over the brief categories labels 142: 143: #set ($isFirstCategory = true) 144: #foreach($briefsCat in $briefsCategoriesSeason.entrySet()) 145: #set($briefsCatKey = $briefsCat.key) 146: #set($briefsCatLabel = $briefsCat.value) 147: 148: <li class="tabs-category" data-skip="true"><span>$briefsCatLabel:</span></li> 149: #foreach($briefsCatGame in $briefsCategoriesGame.entrySet()) 150: #if($briefsCatGame.value == $briefsCatLabel) 151: #set($gamePos = $briefsCatGame.key) 152: #end 153: #end 154: 155: ## Print the Game stuff 156: #set($gameDefaultSorting = $briefsDefaultSorting.get($gamePos)) 157: <li #if ($pos == $gamePos) class="active" #end> 158: <a href="${url}?sort=$gameDefaultSorting&view=${view}&pos=${gamePos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: game">Game</a> 159: </li> 160: 161: ## Print the Season stuff 162: #set($seasonDefaultSorting = $briefsDefaultSorting.get($briefsCatKey)) 163: #if ($pos.length() == 0 || $pos == $briefsCatKey)<li class="active">#else <li> #end 164: <a href="${url}?sort=$seasonDefaultSorting&view=${view}&pos=${briefsCatKey}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: season">Season</a> 165: </li> 166: 167: #if ($briefsCategories.add({ "pos" : $gamePos}))#end 168: #if ($briefsCategories.add({ "pos" : $briefsCatKey, "isFirstCategory" : $isFirstCategory}))#end 169: 170: #if ($isFirstCategory) 171: #set ($isFirstCategory = false) 172: #end 173: 174: #if ($briefsCategoriesMinutes) 175: #foreach($briefsCatMinutes in $briefsCategoriesMinutes.entrySet()) 176: #if($briefsCatMinutes.value == $briefsCatLabel) 177: #set($minutesPos = $briefsCatMinutes.key) 178: #end 179: #end 180: 181: ## Print the minutes stuff 182: #set($minutesDefaultSorting = $briefsDefaultSorting.get($minutesPos)) 183: <li #if ($pos == $minutesPos) class="active" #end> 184: <a href="${url}?sort=$minutesDefaultSorting&view=${view}&pos=${minutesPos}&r=${r}${paginationParameters}" role="button" aria-label="${ariaLabel}: ${briefsCatLabel}: minutes">Minutes</a> 185: </li> 186: 187: #if ($briefsCategories.add({ "pos" : $minutesPos}))#end 188: 189: #end 190: #end 191: #else 192: 193: ## So there are no Games or minutes subgroup for this sport so just print the categories 194: #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season")) 195: #foreach($briefCat in $briefsCategoriesSeason.entrySet()) 196: #set($categoryLabel = $briefCat.value) 197: #set($briefCatKey = $briefCat.key) 198: 199: #if($locale == "en_gb") 200: #if($categoryLabel == "Defense") 201: #set($categoryLabel = "Defence") 202: #end 203: 204: #if($categoryLabel == "Defensemen") 205: #set($categoryLabel = "Defencemen") 206: #end 207: #end 208: 209: #set($categorySort = $briefsDefaultSorting.get($briefCatKey)) 210: 211: ## Check if the current position category can set a sorting that comes 212: ## from antoher tabs category or maybe from a stat alphabet-filter-column 213: 214: #if($briefKeepPreviousSorting) 215: #if($briefKeepPreviousSorting.contains($pos) && $briefKeepPreviousSorting.contains($briefCatKey)) 216: #set($categorySort = $sort) 217: #end 218: #end 219: 220: <li #if ($pos == ${briefCatKey}) class="active" #end> 221: <a href="${url}?sort=$!categorySort&view=$!view&pos=$!briefCatKey&r=$!r${paginationParameters}" role="button" aria-label="${ariaLabel}: ${categoryLabel}">$categoryLabel</a> 222: </li> 223: 224: #if ($briefsCategories.add({ "pos" : $briefCatKey }))#end 225: 226: #end 227: #end 228: 229: </ul> 230: </div> 231: </div> ## tab-nav 232: 233: <div class="tab-panels clearfix"> 234: #foreach ($category in $briefsCategories) 235: #set ($isActive = false) 236: 237: #* 238: <br><br><br> 239: $briefsCategories <br > 240: DEBUG <br> 241: r = $r <br> 242: restriction = $restriction <br> 243: pos = $pos <br> 244: category.pos = $category.pos <br> 245: isFirstCategory = $isFirstCategory 246: <br><br><br> 247: *# 248: 249: #if ($r == $restriction && ($pos == $category.pos || (!$pos && $isFirstCategory) || $briefsCategories.size() == 1)) 250: #set ($isActive = true) 251: #end 252: 253: #if ($isActive) 254: <div class="tab-panel active"> 255: #printPlayers($category.pos, $r) 256: </div> 257: #else 258: <div class="tab-panel tab-panel-ondemand"></div> 259: #end 260: #end 261: </div> 262: 263: </div> ## tab-container 264: 265: #else 266: #printPlayers($pos, $r) 267: #end 268: #end ## printBriefsCategories 269: 270: #macro(printPlayerName $isIncluded $individual) 271: #if ($isIncluded) 272: ${individual.firstName} 273: #elseif ($individual.firstName.length() > 0) 274: ${individual.firstName.substring(0, 1)} 275: #end 276: ${individual.lastName} 277: #end 278: 279: #macro(printPlayers $p $r) 280: #set ($briefs = $briefs.get($positions.get($p))) 281: <div class="stats-wrap clearfix"> 282: <div class="stats-box stats-box-alternate full clearfix"> 283: <div class="scrollable"> 284: <div> 285: <table> 286: <tr class="thead accent-bg"> 287: #if ($isIncluded) 288: <th class="text">No.</th> 289: #elseif ($sort != 'name' && ! $isSharedMeets) 290: <th class="text">Rk</th> 291: #end 292: 293: <th class="text pinned-col" title="Name"> 294: #if ($cansort == 'n' || $isSharedMeets) 295: Name 296: #else 297: <button value="${url}?sort=name&view=${view}&pos=${p}&r=${r}${paginationParameters}" 298: class="sortable" 299: aria-label="sort table using name"> 300: Name 301: </button> 302: #end 303: </th> 304: 305: #if ($isIncluded) 306: <th>Yr</th> 307: <th>Pos</th> 308: #elseif ($isSharedMeets) 309: <th>Yr</th> 310: #else 311: <th> </th> 312: #end 313: 314: ## Hack for now 315: #set ($pos = "") 316: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 317: #set ($labels = $labels.get($pos)) 318: 319: #foreach ($key in $briefs.keySet()) 320: #if ($cansort == 'n') 321: <th>${briefs.get($key)}</th> 322: #else 323: <th> 324: <button value="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}${paginationParameters}" 325: title="$!{labels.get($key)}" 326: class="sortable" 327: aria-label="sort table using ${briefs.get($key)}" 328: > 329: ${briefs.get($key)} 330: </button> 331: </th> 332: #end 333: #end 334: </tr> 335: 336: #set ($showCount = 0) 337: #set ($rankValue = "abb") 338: #set ($counter = 0) 339: 340: #foreach ($individual in $individuals) 341: #if ($restriction == "1") 342: #set ($stats = $individual.statsConference) 343: #else 344: #set ($stats = $individual.stats) 345: #end 346: 347: #set ($individualPosition = "") 348: #set ($individualPosition = $individual.position) 349: #set ($posVec = $individualPosition.split("/")) 350: #set ($individualPosition = $posVec[0]) 351: 352: #set ($show = "") 353: 354: #set ($showAllPlayers = $options.get("stats_show_all_players")) 355: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 356: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 357: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 358: #if ($showPosition) 359: #set ($indPositionsList = $lineupShowPosition.get($p)) 360: #foreach ($indPos in $indPositionsList) 361: #if ($individualPosition.equalsIgnoreCase($indPos)) 362: #set ($show = "y") 363: #end 364: #end 365: #end 366: 367: #if ($showStat) 368: #set ($statsList = $lineupShowStat.get($p)) 369: #foreach ($statElem in $statsList) 370: #if ($stats.get($statElem) > 0) 371: #set ($show = "y") 372: #end 373: #end 374: #end 375: 376: #if ($min) 377: #set ($test = 0) 378: #set ($test = $stats.get($min)) 379: #if ($test > 0) 380: #set ($show = "y") 381: #end 382: #end 383: #else 384: #set ($show = "y") 385: #end 386: 387: #if ($show.length() > 0) 388: #set ($showCount = $showCount + 1) 389: <tr> 390: #if ($isIncluded) 391: <td class="text">${individual.uniform}</td> 392: #elseif ($sort != 'name' && ! $isSharedMeets) 393: <td class="text"> 394: ## Need to figure out what value is 395: #set ($value = ${stats.get($sort)}) 396: #if (!($value == $rankValue)) 397: ##This is a new rank value... let's update our ranking 398: #set ($rank = $showCount) 399: #set ($rankValue = $value) 400: #end 401: #if($request.getParameter("page")) 402: ${individual.getRank()} 403: #else 404: ${rank} 405: #end 406: </td> 407: #end 408: 409: <td class="text pinned-col"> 410: #if ($isSharedMeets) 411: ${individual.firstName} ${individual.lastName} 412: #else 413: #if ($page.contentType == "tournament/bios") 414: <a href="players/${individual.pageName}"> 415: #printPlayerName($isIncluded, $individual) 416: </a> 417: #else 418: <a href="${page.url}/${individual.pageName}"> 419: #printPlayerName($isIncluded, $individual) 420: </a> 421: #end 422: #end 423: </td> 424: 425: #if ($isIncluded) 426: <td>$!{individual.year}</td> 427: <td> 428: #if($individual.positionAbbreviation) 429: $!individual.positionAbbreviation 430: #else 431: $!individual.position 432: #end 433: </td> 434: #elseif ($isSharedMeets) 435: <td>$!{individual.year}</td> 436: #else 437: #set ($teamname = "") 438: #set ($teamname = $individual.team) 439: #set ($teamname = $teamAbbr.get($individual.teamId)) 440: #set ($teamname = $teamAbbr.get($individual.team)) 441: <td class="text"> 442: #if ($teamname.length() > 0) 443: <a href="teams?id=$!{individual.teamId}">${teamname}</a> 444: #end 445: </td> 446: #end 447: 448: #foreach ($key in $briefs.keySet()) 449: #set ($value = "-") 450: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 451: <td #if ($key == $sort) class="sort" #end> 452: #if ($value.length() > 0) 453: $value 454: #else 455: - 456: #end 457: </td> 458: #end 459: </tr> 460: #end ## showing 461: #end ## foreach individual 462: 463: #if ($isIncluded) 464: #set ($teamStats = $request.getAttribute("teamStats")) 465: <tr class="totals"> 466: <td> </td> 467: <td class="text pinned-col">Totals</td> 468: <td> </td> ## YR 469: <td> </td> ## POS 470: #foreach ($key in $briefs.keySet()) 471: #set ($value = "-") 472: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 473: <td #if ($key == $sort) class="sort" #end> 474: #if ($value.length() > 0) 475: $value 476: #else 477: - 478: #end 479: </td> 480: #end 481: </tr> 482: 483: <tr class="totals"> 484: <td> </td> 485: <td class="text pinned-col">Opponent</td> 486: <td> </td> ## YR 487: <td> </td> ## POS 488: #foreach ($key in $briefs.keySet()) 489: #set ($keyopp = "${key}opp") 490: #set ($value = "-") 491: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 492: <td #if ($key == $sort) class="sort" #end> 493: #if ($value.length() > 0) 494: $value 495: #else 496: - 497: #end 498: </td> 499: #end 500: </tr> 501: #end 502: 503: #if ($individuals.size() == 0) 504: <tr class="totals"> 505: <td colspan="5"> 506: #if ($isSharedMeets) 507: This team's roster is empty 508: #elseif ($hasBiosBeforeFilter) 509: No players meet the minimum 510: #else 511: No stats are available at this time 512: #end 513: </td> 514: </tr> 515: #end 516: #if($totals) 517: <tfoot> 518: <tr class="font-weight-bold"> 519: <td colspan="3" class="text-center">TOTALS</td> 520: #foreach ($key in $briefs.keySet()) 521: #set ($value = "-") 522: #set ($value = $formatter.formatNumber(${totals.get($key)}, $!formats.get($key))) 523: <td class="text-right text-nowrap" #if($key == $sort) #end> 524: #if ($value.length() > 0) 525: $value 526: #else 527: - 528: #end 529: </td> 530: #end 531: </tr> 532: </tfoot> 533: #end 534: </table> 535: #if($request.getParameter("page")) 536: Page ${request.getParameter("page")}/${totalPages} - Showing: ${showCount}, Total: ${individualsTotalLength} Players 537: #end 538: </div> 539: </div> ## scrollable 540: </div> ## stats-box 541: </div> ## stats-wrap 542: #end ## printPlayers 543: 544: ### END MACROS ### 545: 546: ## TEAMS LAYOUTS FOR SHARED MEETS 547: #if ($isSharedMeets && !$isSingleTeam) 548: 549: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 550: #set ($teamsThreshold = 20) 551: 552: #if ($page.title.length() > 0) 553: <h1>$page.title</h1> 554: #else 555: <h1>Teams</h1> 556: #end 557: 558: #if ($teams.size() > $teamsThreshold) 559: 560: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 561: 562: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 563: <div class="alphabet-filter-chars"> 564: <span class="alphabet-filter-border"> | </span> 565: #foreach ($alphabet in $alphabets.split("")) 566: #if ($alphabet.length() > 0) 567: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 568: <span class="alphabet-filter-border"> | </span> 569: #end 570: #end 571: </div> ## alphabet-filter-char 572: 573: <div class="alphabet-filter-list"> 574: <div class="alphabet-filter-column"> 575: #set ($lastAlphabet = "") 576: #set ($counter = 0) 577: 578: #foreach ($team in $teams) 579: #set ($teamName = $team.value) 580: 581: #if ($teamName.charAt(0) != $lastAlphabet) 582: #set ($counter = $counter + 1) 583: #if ($counter > 1) 584: </div> ## alphabet-filter-section 585: #end 586: #if ($counter == 8 || $counter == 15) 587: </div> ## alphabet-filter-column 588: <div class="alphabet-filter-column"> 589: #end 590: #set ($lastAlphabet = $teamName.charAt(0)) 591: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 592: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 593: #end 594: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 595: #end 596: </div> ## alphabet-filter-section 597: </div> ## alphabet-filter-column 598: </div> ## alphabet-filter-list 599: </div> ## alphabet-filter 600: 601: #else ## plain list 602: 603: <div class="stats-wrap clearfix"> 604: <div class="stats-box full clearfix"> 605: <table> 606: #foreach ($team in $teams) 607: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 608: #end 609: #if ($teams.size() == 0) 610: <tr><td>There are no teams that match this criteria</td></tr> 611: #end 612: </table> 613: </div> 614: </div> 615: 616: #end ## teams threshold 617: 618: ## TEAMINFO ROSTER LAYOUT 619: #elseif ($isIncluded && $view == 'roster') 620: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 621: <div class="stats-wrap clearfix"> 622: <div class="stats-box stats-box-alternate full clearfix"> 623: <div class="scrollable"> 624: <div> 625: <table> 626: <tr class="thead accent-bg"> 627: <th class="text">No.</th> 628: <th class="text pinned-col">Name</th> 629: <th>Position</th> 630: <th>Year</th> 631: <th>Player Status</th> 632: #if ($baseball) 633: <th>Height</th> 634: <th>Weight</th> 635: <th>Bats</th> 636: <th>Throws</th> 637: <th>DOB</th> 638: <th>Hometown</th> 639: #end 640: </tr> 641: #foreach ($individual in $individuals) 642: <tr data-additional-roster-status="$additionalRosterStatus" data-player-status="$individual.playerStatus" data-active="$individual.active" #if($additionalRosterStatus && $individual.playerStatus == "Inactive") class="table-warning #if(!$wiki.valid()) d-none #end" #end> 643: <td class="text"> 644: ${individual.uniform} 645: </td> 646: <td class="text pinned-col"> 647: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 648: </td> 649: <td> 650: #if ($individual.positionAbbreviation) 651: $!individual.positionAbbreviation 652: #else 653: $!individual.position 654: #end 655: </td> 656: <td>$!{individual.year}</td> 657: <td> 658: #if($additionalRosterStatus) 659: $individual.playerStatus 660: #elseif ($individual.active) 661: Active 662: #else 663: Inactive 664: #end 665: </td> 666: #if ($baseball) 667: <td>$!{individual.dataMap["height"]}</td> 668: <td>$!{individual.dataMap["weight"]}</td> 669: <td>$!{individual.dataMap["bats"]}</td> 670: <td>$!{individual.dataMap["throws"]}</td> 671: <td>$!{individual.dataMap["born"]}</td> 672: <td>$!{individual.dataMap["hometown"]}</td> 673: #end 674: </tr> 675: #end 676: </table> 677: </div> 678: </div> 679: </div> 680: </div> 681: 682: ## SHARED MEETS PLAYERS 683: #elseif ($isSharedMeets) 684: 685: #if ($teamId) 686: #set ($playersPageTitle = $page.title) 687: #foreach($team in $page.teams.entrySet()) 688: #if ($teamId == $team.key) 689: #set ($playersPageTitle = $team.value) 690: #end 691: #end 692: <h1>$playersPageTitle</h1> 693: #end 694: 695: #printPlayers($pos, $restriction) 696: 697: ## PLAYERS / LINEUP 698: #else 699: 700: ## do not show these options on the lineup page 701: #if (not $isIncluded) 702: 703: #if ($isAjax) 704: $website.decorate('') 705: #printPlayers($pos $restriction) 706: #stop 707: #end 708: 709: #if ($page.contentType == "stat/bios") 710: ## ARCHIVES 711: <div class="align-right">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 712: #end 713: 714: #if ($page.title.length() > 0 && !$isSharedMeets) 715: <h1>$page.title</h1> 716: #end 717: 718: #if ($minimum.length() > 0) 719: <div class="clearfix align-right">$!minimum</div> 720: #end 721: 722: #if ($showconf && !$isSharedMeets) 723: <div class="tab-container primary clearfix" data-module="stats/tabs" data-type="primary"> 724: <div class="tab-nav" data-module="jscroll" data-momentum="false"> 725: <div> 726: <ul class="clearfix"> 727: <li #if ($restriction == "0")class="active"#end> 728: <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0${paginationParameters}">Overall</a> 729: </li> 730: <li #if ($restriction == "1")class="active"#end> 731: <a href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1${paginationParameters}">Conference</a> 732: </li> 733: </ul> 734: </div> 735: </div> 736: 737: <div class="tab-panels clearfix"> 738: <div class="tab-panel 739: #if ($restriction.equals("0")) 740: active 741: #else 742: #if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end 743: #end"> 744: #printBriefsCategories(0) 745: </div> 746: <div class="tab-panel 747: #if ($restriction.equals("1")) 748: active 749: #else 750: #if ($teamId.length() != 0 || !$briefsCategoriesLabels) tab-panel-ondemand #else tab-panel-primary-ondemand #end 751: #end"> 752: #printBriefsCategories(1) 753: </div> 754: </div> 755: </div> ## tab-container overall/conf 756: #else 757: #printBriefsCategories($restriction) 758: #end 759: 760: #else 761: #printBriefsCategories($restriction) 762: #end ## not isIncluded 763: #end ## LAYOUTS 764: 765: $wiki.su |
Rushing
No. | Name | Yr | Pos | gp | rush | yds | y/g | avg | td | lg | fum | lost |
---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | Terrance Brown | R-Fr. | RB | 6 | 71 | 374 | 62.3 | 5.3 | 4 | 56 | 3 | 2 |
2 | Mike O'Horo | So. | QB | 6 | 46 | 133 | 22.2 | 2.9 | 2 | 18 | 2 | 1 |
23 | Tyler Amos | Jr. | RB | 5 | 26 | 87 | 17.4 | 3.3 | 1 | 9 | - | - |
24 | Nick Johnson | Jr. | RB | 5 | 27 | 83 | 16.6 | 3.1 | 1 | 9 | - | - |
17 | Mason McKenzie | Fr. | QB | 2 | 19 | 54 | 27.0 | 2.8 | 1 | 43 | - | - |
34 | Austin Bills | So. | RB | 5 | 7 | 44 | 8.8 | 6.3 | 1 | 16 | - | - |
4 | Nick Patterson | Fr. | QB | 1 | 2 | 44 | 44.0 | 22.0 | 0 | 39 | - | - |
30 | Jaquon Howard | R-Fr. | RB | 4 | 3 | 21 | 5.3 | 7.0 | 0 | 19 | - | - |
7 | Willie Taylor | Jr. | QB | 3 | 7 | 18 | 6.0 | 2.6 | 0 | 8 | - | - |
6 | Arron Foulkes | Jr. | WR | 6 | 9 | 11 | 1.8 | 1.2 | 0 | 11 | - | - |
1 | Derrick Hinton Jr. | Sr. | WR | 6 | 4 | 10 | 1.7 | 2.5 | 0 | 14 | 2 | 1 |
6D | Micah Cretsinger | Jr. | LB | 6 | 1 | 9 | 1.5 | 9.0 | 0 | 9 | - | - |
16 | Eric Craft | So. | WR | 6 | 1 | 5 | 0.8 | 5.0 | 0 | 5 | 1 | 1 |
9 | Derek Bryant | So. | SL | 5 | 1 | 1 | 0.2 | 1.0 | 0 | 1 | - | - |
1R | Ryan Cornelius | So. | RB | 1 | 1 | -3 | -3.0 | -3.0 | 0 | 0 | - | - |
5 | Jairus Grissom | Sr. | WR | 3 | 6 | -19 | -6.3 | -3.2 | 0 | 4 | - | - |
Totals | 6 | 235 | 864 | 144.0 | 3.7 | 10 | 56 | 8 | 5 | |||
Opponent | 6 | 247 | 931 | 155.2 | 3.8 | 6 | 87 | 5 | 2 |
Receiving
No. | Name | Yr | Pos | gp | rec | rec/g | yds | y/g | avg | td | lg |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | Derrick Hinton Jr. | Sr. | WR | 6 | 37 | 6.2 | 416 | 69.3 | 11.2 | 3 | 53 |
3 | Terrance Brown | R-Fr. | RB | 6 | 15 | 2.5 | 146 | 24.3 | 9.7 | 2 | 34 |
16 | Eric Craft | So. | WR | 6 | 13 | 2.2 | 145 | 24.2 | 11.2 | 1 | 20 |
6 | Arron Foulkes | Jr. | WR | 6 | 13 | 2.2 | 104 | 17.3 | 8.0 | 1 | 22 |
23 | Tyler Amos | Jr. | RB | 5 | 3 | 0.6 | 2 | 0.4 | 0.7 | 0 | 2 |
10 | Kevin Swift | Jr. | WR | 1 | 3 | 3.0 | 33 | 33.0 | 11.0 | 0 | 16 |
9 | Derek Bryant | So. | SL | 5 | 2 | 0.4 | 10 | 2.0 | 5.0 | 0 | 7 |
89 | Mitchell DeBrincat | So. | TE | 5 | 2 | 0.4 | 21 | 4.2 | 10.5 | 0 | 11 |
86 | Tylor McCoon | So. | TE | 4 | 2 | 0.5 | 16 | 4.0 | 8.0 | 0 | 9 |
19 | Jalen Williams | So. | TE | 2 | 2 | 1.0 | 34 | 17.0 | 17.0 | 0 | 29 |
34 | Austin Bills | So. | RB | 5 | 1 | 0.2 | 9 | 1.8 | 9.0 | 0 | 9 |
6D | Micah Cretsinger | Jr. | LB | 6 | 1 | 0.2 | 11 | 1.8 | 11.0 | 0 | 11 |
25 | Sam Dersa | So. | SL | 6 | 1 | 0.2 | 6 | 1.0 | 6.0 | 0 | 6 |
5 | Jairus Grissom | Sr. | WR | 3 | 1 | 0.3 | 9 | 3.0 | 9.0 | 0 | 9 |
0R | Jamari Thomas | Fr. | WR | 1 | 1 | 1.0 | 7 | 7.0 | 7.0 | 0 | 7 |
84 | Raid Zerki | R-Fr. | WR | 1 | 1 | 1.0 | 38 | 38.0 | 38.0 | 0 | 38 |
Totals | 6 | 98 | - | 1007 | 167.8 | 10.3 | 7 | 53 | |||
Opponent | 6 | 76 | - | 1037 | 172.8 | 13.6 | 11 | 58 |
Kicking
No. | Name | Yr | Pos | gp | fgm | fga | pct | lg | xpm | xpa | pct | pts |
---|---|---|---|---|---|---|---|---|---|---|---|---|
47 | Ryan Heicher | Jr. | K | 6 | 5 | 7 | 71% | 44 | 22 | 22 | 100% | 37 |
Totals | 6 | 5 | 7 | 71% | 44 | 22 | 22 | 100% | 37 | |||
Opponent | 6 | 6 | 9 | 67% | 41 | 19 | 20 | 95% | 37 |
Punting
No. | Name | Yr | Pos | gp | punt | yds | avg | lg | in20 | fc | tb | blk |
---|---|---|---|---|---|---|---|---|---|---|---|---|
47 | Ryan Heicher | Jr. | K | 6 | 26 | 1011 | 38.9 | 56 | 12 | 6 | 0 | 0 |
86 | Tylor McCoon | So. | TE | 4 | 5 | 160 | 32.0 | 57 | 1 | 0 | 0 | 0 |
Totals | 6 | 31 | 1171 | 37.8 | 57 | 13 | 6 | 0 | 0 | |||
Opponent | 6 | 28 | 1073 | 38.3 | 51 | 6 | 7 | 1 | 0 |
Returns
No. | Name | Yr | Pos | kr | yds | avg | td | lg | pr | yds | avg | td | lg |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
30 | Jaquon Howard | R-Fr. | RB | 7 | 173 | 24.7 | 0 | 33 | - | - | - | - | - |
9 | Derek Bryant | So. | SL | 2 | 31 | 15.5 | 0 | 25 | - | - | - | - | - |
25 | Sam Dersa | So. | SL | 1 | 30 | 30.0 | 0 | 30 | - | - | - | - | - |
6D | Micah Cretsinger | Jr. | LB | 1 | 15 | 15.0 | 0 | 15 | - | - | - | - | - |
34 | Austin Bills | So. | RB | 1 | 1 | 1.0 | 0 | 1 | - | - | - | - | - |
7D | Jasper Beeler | R-Fr. | DB | 1 | 0 | 0.0 | 0 | 0 | - | - | - | - | - |
1 | Derrick Hinton Jr. | Sr. | WR | - | - | - | - | - | 4 | 19 | 4.8 | 0 | 12 |
Totals | 13 | 250 | 19.2 | 0 | 33 | 4 | 19 | 4.8 | 0 | 12 | |||
Opponent | 26 | 648 | 24.9 | 2 | 94 | 8 | 95 | 11.9 | 1 | 57 |
All-Purpose
Scoring
Defense
Date | Opponent | Score | yds | pass | c-a | comp % | rush | r | y/r | int | fum | tack | sac | pen yds | top |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Aug 31 | Winona St. | W, 34-24 | 496 | 90 | 6-11 | 55% | 406 | 56 | 7.3 | 2 | 1 | 57.0 | 1 | 110 | 30:40 |
Sep 9 | Northwood | W, 31-8 | 394 | 164 | 12-16 | 75% | 230 | 53 | 4.3 | 0 | 0 | 55.0 | 7 | 75 | 33:27 |
Sep 16 | at Truman | L, 21-7 | 230 | 149 | 13-21 | 62% | 81 | 26 | 3.1 | 1 | 0 | 74.0 | 1 | 87 | 22:59 |
Sep 23 | Indianapolis | L, 35-10 | 273 | 196 | 20-38 | 53% | 77 | 39 | 2.0 | 2 | 0 | 52.0 | 2 | 80 | 32:41 |
Sep 30 | Grand Valley State | L, 55-14 | 142 | 108 | 14-30 | 47% | 34 | 40 | 0.8 | 1 | 0 | 58.0 | 2 | 51 | 29:41 |
Oct 7 | at Ferris State | L, 38-17 | 256 | 107 | 12-17 | 71% | 149 | 40 | 3.7 | 0 | 1 | 70.0 | 2 | 58 | 27:34 |
Oct 14 | at St. Xavier (Ill.) | W, 32-10 | 305 | 154 | 17-31 | 55% | 151 | 48 | 3.1 | - | - | 55.0 | 7 | 54 | 31:47 |
Oct 21 | Wayne State | W, 17-10 | 194 | 81 | 10-18 | 56% | 113 | 29 | 3.9 | 1 | 2 | 89.0 | 2 | 55 | 18:03 |
Oct 28 | at Davenport | L, 24-21 | 352 | 164 | 23-33 | 70% | 188 | 40 | 4.7 | 1 | 0 | 62.0 | 2 | 95 | 32:33 |
Nov 4 | Northern Michigan | W, 62-17 | 458 | 247 | 15-23 | 65% | 211 | 40 | 5.3 | 5 | 1 | 64.0 | 0 | 33 | 28:44 |
Nov 11 | at Michigan Tech | W, 38-21 | 469 | 300 | 24-30 | 80% | 169 | 46 | 3.7 | 2 | 0 | 54.0 | 1 | 55 | 37:36 |
Apr 19 | 2024 Red Feather Classic Spring Game | - | - | - | - | - | - | - | - | - | - | - | - | - |
gp | td | fg | xpt | 2pc | dxp | saf | pts | ppg | |
---|---|---|---|---|---|---|---|---|---|
Total | 11 | 36 | 10 | 35 | 0 | 0 | 1 | 283 | 25.7 |
Conference | 6 | 22 | 5 | 22 | 0 | 0 | 0 | 169 | 28.2 |
Exhibition | - | - | - | - | - | - | - | - | - |
- |
|||||||||
Home | 6 | 21 | 7 | 21 | 0 | 0 | 0 | 168 | 28.0 |
Away | 5 | 15 | 3 | 14 | 0 | 0 | 1 | 115 | 23.0 |
Neutral | - | - | - | - | - | - | - | - | - |
- |
|||||||||
Wins | 6 | 27 | 8 | 26 | 0 | 0 | 1 | 214 | 35.7 |
Losses | 5 | 9 | 2 | 9 | 0 | 0 | 0 | 69 | 13.8 |
- |
|||||||||
August | 1 | 4 | 2 | 4 | 0 | 0 | 0 | 34 | 34.0 |
September | 4 | 8 | 2 | 8 | 0 | 0 | 0 | 62 | 15.5 |
October | 4 | 11 | 3 | 10 | 0 | 0 | 1 | 87 | 21.8 |
November | 2 | 13 | 3 | 13 | 0 | 0 | 0 | 100 | 50.0 |
gp | ppg | pts | yd/g | pass y/g | rush y/g | tkl/g | int | fum rec | sack | td | |
---|---|---|---|---|---|---|---|---|---|---|---|
Total | 11 | 23.9 | 263 | 298.3 | 183.1 | 115.2 | 62.7 | 15 | 3 | 27 | 5 |
Conference | 6 | 27.5 | 165 | 328.0 | 172.8 | 155.2 | 66.2 | 10 | 2 | 9 | 5 |
Exhibition | - | - | - | - | - | - | - | - | - | - | - |
- |
|||||||||||
Home | 6 | 24.8 | 149 | 288.7 | 159.2 | 129.5 | 62.5 | 11 | 3 | 14 | 3 |
Away | 5 | 22.8 | 114 | 309.8 | 211.8 | 98.0 | 63.0 | 4 | 0 | 13 | 2 |
Neutral | - | - | - | - | - | - | - | - | - | - | - |
- |
|||||||||||
Wins | 6 | 15.0 | 90 | 212.8 | 136.0 | 76.8 | 62.3 | 10 | 3 | 18 | 3 |
Losses | 5 | 34.6 | 173 | 400.8 | 239.6 | 161.2 | 63.2 | 5 | 0 | 9 | 2 |
- |
|||||||||||
August | 1 | 24.0 | 24 | 239.0 | 182.0 | 57.0 | 57.0 | 2 | 0 | 1 | 0 |
September | 4 | 29.8 | 119 | 342.0 | 212.8 | 129.3 | 59.8 | 4 | 1 | 12 | 1 |
October | 4 | 20.5 | 82 | 316.3 | 187.0 | 129.3 | 69.0 | 2 | 1 | 13 | 1 |
November | 2 | 19.0 | 38 | 204.5 | 116.5 | 88.0 | 59.0 | 7 | 1 | 1 | 3 |
Date | Opponent | Score | Attend |
---|---|---|---|
Aug 31 | Winona St. | W, 34-24 | 1,414 |
Sep 9 | Northwood | W, 31-8 | 2,689 |
Sep 16 | at Truman | L, 21-7 | 4,126 |
Sep 23 | Indianapolis | L, 35-10 | 2,316 |
Sep 30 | Grand Valley State | L, 55-14 | 5,085 |
Oct 7 | at Ferris State | L, 38-17 | 3,124 |
Oct 14 | at St. Xavier (Ill.) | W, 32-10 | 400 |
Oct 21 | Wayne State | W, 17-10 | 3,079 |
Oct 28 | at Davenport | L, 24-21 | 1,112 |
Nov 4 | Northern Michigan | W, 62-17 | 0 |
Nov 11 | at Michigan Tech | W, 38-21 | 1,191 |
Apr 19 | 2024 Red Feather Classic Spring Game | - |