report_runeupgrade.php 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679
  1. <!DOCTYPE html>
  2. <html lang='en'>
  3. <head>
  4. <meta content='text/html; charset=utf-8' http-equiv='content-type'/>
  5. <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1'/>
  6. <title><?=$page->title?></title>
  7. <link rel='shortcut icon' href='<?=$page->favicon?>'/>
  8. <!-- CSS files -->
  9. <link rel='stylesheet' type='text/css' href='<?=$path["css"]?>ui.css'/>
  10. <link rel='stylesheet' type='text/css' href='<?=$path["css"]?>report.css'/>
  11. <!-- Script files -->
  12. <script src="<?=$path["js"]?>ui.js"></script>
  13. <!-- Meta tags -->
  14. <link rel='canonical' href='<?=$page->canonical?>'/>
  15. <link rel='author' href='<?=$page->author?>'/>
  16. <link rel='publisher' href='<?=$page->author?>'/>
  17. <meta name='description' content='<?=$page->description?>'/>
  18. <meta property='og:title' content='<?=$page->title?>'/>
  19. <meta property='og:url' content='<?=$page->canonical?>'/>
  20. <meta property='og:description' content='<?=$page->description?>'/>
  21. <meta property='og:image' content='<?=$page->icon?>'/>
  22. <meta property='og:site_name' content='<?=$page->name?>'/>
  23. <meta property='og:type' content='website'/>
  24. <meta property='og:locale' content='en'/>
  25. <meta name='twitter:card' content='summary'/>
  26. <meta name='twitter:title' content='<?=$page->title?>'/>
  27. <meta name='twitter:description' content='<?=$page->description?>'/>
  28. <meta name='twitter:image' content='<?=$page->icon?>'/>
  29. <meta name='twitter:url' content='<?=$page->canonical?>'/>
  30. <meta name='robots' content='index follow'/>
  31. </head>
  32. <body id='body_report_runeupgrade'>
  33. <?php
  34. include __DIR__ . "/inc/header.php";
  35. ?>
  36. <section class='filters'>
  37. <h2>
  38. <span>
  39. Monster filters
  40. </span>
  41. </h2>
  42. <form action='/report/runeupgrade/' method='get'>
  43. <div class='filter' id='filter_stars'>
  44. <span>Min. stars:</span>
  45. <input type='number' name='min_stars' id='filter_stars_min' min='1' max='6' value='<?=$page->filters["min_stars"]?>'/>
  46. <br/>
  47. <span>Max. stars:</span>
  48. <input type='number' name='max_stars' id='filter_stars_max' min='1' max='6' value='<?=$page->filters["max_stars"]?>'/>
  49. </div>
  50. <div class='filter'>
  51. <?php
  52. $checked = "";
  53. if ($page->filters["in_storage"]){
  54. $checked = "checked";
  55. }
  56. ?>
  57. <input type='checkbox' name='in_storage' <?=$checked?>/>
  58. Show monsters in storage
  59. </div>
  60. <div id='filter_apply'>
  61. <input type='submit' value='Apply'/>
  62. </div>
  63. </form>
  64. </section> <!-- #filters -->
  65. <?php
  66. foreach ($page->upgrades as $upgrade){
  67. if ($upgrade["monster"]->monster->awakens_from == "" && $upgrade["monster"]->monster->awakens_to == ""){
  68. // No to, no from, silver monster.
  69. $star_class ="star_silver";
  70. $mon_title = $upgrade["monster"]->monster->element . " " . $upgrade["monster"]->monster->name;
  71. }
  72. elseif ($upgrade["monster"]->monster->awakens_from =! "" && $upgrade["monster"]->monster->awakens_to == ""){
  73. // Already awakened
  74. if ($upgrade["monster"]->monster->base_stars - $upgrade["monster"]->monster->natural_stars == 1){
  75. // Normal awaken.
  76. $star_class ="star_purple";
  77. }
  78. else{
  79. // Second awaken.
  80. $star_class ="star_red";
  81. }
  82. $mon_title = $upgrade["monster"]->monster->name;
  83. }
  84. elseif ($upgrade["monster"]->monster->awakens_to =! ""){
  85. // Awakeable.
  86. $star_class ="star_gold";
  87. $mon_title = $upgrade["monster"]->monster->element . " " . $upgrade["monster"]->monster->name;
  88. }
  89. ?>
  90. <section class='content'>
  91. <h2>
  92. <span>
  93. <?=$mon_title?>
  94. </span>
  95. </h2>
  96. <article>
  97. <div class='monster'>
  98. <div class='profile'>
  99. <div class='monster_panel'>
  100. <span class='stars'>
  101. <?php
  102. for ($i = 0; $i < $upgrade["monster"]->stars; $i ++){
  103. ?>
  104. <img class='star <?=$star_class?>' src='<?=$path["img"]["layout"] . "icon/star.png"?>'/>
  105. <?php
  106. }
  107. ?>
  108. </span>
  109. <img title='<?=$mon_title?>' class='monster border_<?=$upgrade["monster"]->monster->element?>' src='<?=$upgrade["monster"]->monster->get_image()?>'/>
  110. <span class='level'>
  111. Lv. <?=$upgrade["monster"]->level?>
  112. </span>
  113. </div>
  114. </div> <!-- .profile -->
  115. </div>
  116. <div class='monster_runes'>
  117. <?php
  118. foreach ($upgrade["upgrade"] as $rupgrade){
  119. ?>
  120. <table class='rune'>
  121. <tr>
  122. <td class='icon'>
  123. <div class='rune_panel rune_slot_<?=$rupgrade["rune"]->slot?> rune_level_<?=$rupgrade["rune"]->level?> rune_quality_<?=$rupgrade["rune"]->quality?> rune_original_quality_<?=$rupgrade["rune"]->original_quality?>'>
  124. <img class='rune_base' src=<?=$path["img"]["layout"]?>rune/base.png/>
  125. <img class='rune_icon' src='<?=$path["img"]["layout"]?>rune/<?=$rupgrade["rune"]->type?>.png'/>
  126. <span class='rune_stars'>
  127. <?php
  128. for ($i = 0; $i < $rupgrade["rune"]->stars; $i ++){
  129. ?>
  130. <img class='star' src='<?=$path["img"]["layout"] . "icon/star.png"?>'/>
  131. <?php
  132. }
  133. ?>
  134. </span>
  135. <span class='rune_level'>
  136. <?=$rupgrade["rune"]->level?>
  137. </span>
  138. </div> <!-- .rune_panel -->
  139. </td>
  140. <td class='stats'>
  141. <table>
  142. <tr class='main_stat'>
  143. <td class='stat'>
  144. <?php
  145. if (strpos($rupgrade["rune"]->main_stat, "%") !== false){
  146. $stat_name = str_replace("%", "", $rupgrade["rune"]->main_stat);
  147. $stat_value = "+ " . $rupgrade["rune"]->main_stat_value . "%";
  148. }
  149. else{
  150. $stat_name = $rupgrade["rune"]->main_stat;
  151. $stat_value = "+ " . $rupgrade["rune"]->main_stat_value;
  152. }
  153. ?>
  154. <?=$stat_name?>
  155. </td>
  156. <td class='value'>
  157. <?=$stat_value?>
  158. <td>
  159. </tr>
  160. <tr class='innate_stat'>
  161. <td class='stat'>
  162. <?php
  163. if (strlen($rupgrade["rune"]->innate_stat) == 0){
  164. $stat_name = "&nbsp;";
  165. $stat_value = "";
  166. }
  167. elseif (strpos($rupgrade["rune"]->innate_stat, "%") !== false){
  168. $stat_name = str_replace("%", "", $rupgrade["rune"]->innate_stat);
  169. $stat_value = "+ " . $rupgrade["rune"]->innate_stat_value . "%";
  170. }
  171. else{
  172. $stat_name = $rupgrade["rune"]->innate_stat;
  173. $stat_value = "+ " . $rupgrade["rune"]->innate_stat_value;
  174. }
  175. ?>
  176. <?=$stat_name?>
  177. </td>
  178. <td class='value'>
  179. <?=$stat_value?>
  180. <td>
  181. </tr>
  182. <tr class=substat>
  183. <td class='stat'>
  184. <?php
  185. if (strlen($rupgrade["rune"]->substat_1) == 0){
  186. $stat_name = "&nbsp;";
  187. $stat_value = "";
  188. }
  189. elseif (strpos($rupgrade["rune"]->substat_1, "%") !== false){
  190. $stat_name = str_replace("%", "", $rupgrade["rune"]->substat_1);
  191. $stat_value = "+ " . $rupgrade["rune"]->substat_1_value . "%";
  192. }
  193. else{
  194. $stat_name = $rupgrade["rune"]->substat_1;
  195. $stat_value = "+ " . $rupgrade["rune"]->substat_1_value;
  196. }
  197. if ($rupgrade["rune"]->substat_1_craft == 1){
  198. $craft = "craft";
  199. }
  200. else{
  201. $craft = "";
  202. }
  203. ?>
  204. <?=$stat_name?>
  205. </td>
  206. <td class='value <?=$craft?>'>
  207. <?=$stat_value?>
  208. <td>
  209. </tr>
  210. <tr class=substat>
  211. <td class='stat'>
  212. <?php
  213. if (strlen($rupgrade["rune"]->substat_2) == 0){
  214. $stat_name = "&nbsp;";
  215. $stat_value = "";
  216. }
  217. elseif (strpos($rupgrade["rune"]->substat_2, "%") !== false){
  218. $stat_name = str_replace("%", "", $rupgrade["rune"]->substat_2);
  219. $stat_value = "+ " . $rupgrade["rune"]->substat_2_value . "%";
  220. }
  221. else{
  222. $stat_name = $rupgrade["rune"]->substat_2;
  223. $stat_value = "+ " . $rupgrade["rune"]->substat_2_value;
  224. }
  225. if ($rupgrade["rune"]->substat_2_craft == 1){
  226. $craft = "craft";
  227. }
  228. else{
  229. $craft = "";
  230. }
  231. ?>
  232. <?=$stat_name?>
  233. </td>
  234. <td class='value <?=$craft?>'>
  235. <?=$stat_value?>
  236. <td>
  237. </tr>
  238. <tr class=substat>
  239. <td class='stat'>
  240. <?php
  241. if (strlen($rupgrade["rune"]->substat_3) == 0){
  242. $stat_name = "&nbsp;";
  243. $stat_value = "";
  244. }
  245. elseif (strpos($rupgrade["rune"]->substat_3, "%") !== false){
  246. $stat_name = str_replace("%", "", $rupgrade["rune"]->substat_3);
  247. $stat_value = "+ " . $rupgrade["rune"]->substat_3_value . "%";
  248. }
  249. else{
  250. $stat_name = $rupgrade["rune"]->substat_3;
  251. $stat_value = "+ " . $rupgrade["rune"]->substat_3_value;
  252. }
  253. if ($rupgrade["rune"]->substat_3_craft == 1){
  254. $craft = "craft";
  255. }
  256. else{
  257. $craft = "";
  258. }
  259. ?>
  260. <?=$stat_name?>
  261. </td>
  262. <td class='value <?=$craft?>'>
  263. <?=$stat_value?>
  264. <td>
  265. </tr>
  266. <tr class=substat>
  267. <td class='stat'>
  268. <?php
  269. if (strlen($rupgrade["rune"]->substat_4) == 0){
  270. $stat_name = "&nbsp;";
  271. $stat_value = "";
  272. }
  273. elseif (strpos($rupgrade["rune"]->substat_4, "%") !== false){
  274. $stat_name = str_replace("%", "", $rupgrade["rune"]->substat_4);
  275. $stat_value = "+ " . $rupgrade["rune"]->substat_4_value . "%";
  276. }
  277. else{
  278. $stat_name = $rupgrade["rune"]->substat_4;
  279. $stat_value = "+ " . $rupgrade["rune"]->substat_4_value;
  280. }
  281. if ($rupgrade["rune"]->substat_4_craft == 1){
  282. $craft = "craft";
  283. }
  284. else{
  285. $craft = "";
  286. }
  287. ?>
  288. <?=$stat_name?>
  289. </td>
  290. <td class='value <?=$craft?>'>
  291. <?=$stat_value?>
  292. <td>
  293. </tr>
  294. </table>
  295. </td>
  296. <td class='details'>
  297. <?php
  298. switch ($rupgrade["rune"]->quality){
  299. case 0:
  300. $q = "Normal";
  301. break;
  302. case 1:
  303. $q = "Magic";
  304. break;
  305. case 2:
  306. $q = "Rare";
  307. break;
  308. case 3:
  309. $q = "Hero";
  310. break;
  311. case 4:
  312. $q = "Legend";
  313. break;
  314. }
  315. switch ($rupgrade["rune"]->original_quality){
  316. case 0:
  317. $oq = "Normal";
  318. break;
  319. case 1:
  320. $oq = "Magic";
  321. break;
  322. case 2:
  323. $oq = "Rare";
  324. break;
  325. case 3:
  326. $oq = "Hero";
  327. break;
  328. case 4:
  329. $oq = "Legend";
  330. break;
  331. }
  332. ?>
  333. <table class='table_details'>
  334. <tr>
  335. <td class='title'>
  336. Quality:
  337. </td>
  338. <td class='value'>
  339. <span class='quality quality_<?=strtolower($q)?>'>
  340. <?=$q?>
  341. </span>
  342. </td>
  343. </tr>
  344. <tr>
  345. <td class='title'>
  346. Original quality:
  347. </td>
  348. <td class='value'>
  349. <span class='quality quality_<?=strtolower($oq)?>'>
  350. <?=$oq?>
  351. </span>
  352. </td>
  353. </tr>
  354. <tr>
  355. <td class='title'>
  356. Value:
  357. </td>
  358. <td class='value'>
  359. <?=$rupgrade["rune"]->value?>
  360. </td>
  361. </tr>
  362. <tr>
  363. <td class='title'>
  364. Efficiency:
  365. </td>
  366. <td class='value'>
  367. <?=number_format($rupgrade["rune"]->efficiency, 2)?>%
  368. </td>
  369. </tr>
  370. <tr>
  371. <td class='title'>
  372. Max. efficiency:
  373. </td>
  374. <td class='value'>
  375. <?=number_format($rupgrade["rune"]->max_efficiency, 2)?>%
  376. </td>
  377. </tr>
  378. <tr>
  379. <td class='title'>
  380. Reached efficiency:
  381. </td>
  382. <td class='value'>
  383. <?=number_format($rupgrade["rune"]->efficiency * 100 / $rupgrade["rune"]->max_efficiency)?>%
  384. </td>
  385. </tr>
  386. </table>
  387. </td>
  388. </tr>
  389. </table> <!-- .rune -->
  390. <div class='alternatives'>
  391. <?php
  392. foreach ($rupgrade["alternative"] as $alternative){
  393. ?>
  394. <table class='alternative'>
  395. <tr>
  396. <td class='icon'>
  397. <div class='rune_panel rune_slot_<?=$alternative->slot?> rune_level_<?=$alternative->level?> rune_quality_<?=$alternative->quality?> rune_original_quality_<?=$alternative->original_quality?>'>
  398. <img class='rune_base' src=<?=$path["img"]["layout"]?>rune/base.png/>
  399. <img class='rune_icon' src='<?=$path["img"]["layout"]?>rune/<?=$alternative->type?>.png'/>
  400. <span class='rune_stars'>
  401. <?php
  402. for ($i = 0; $i < $alternative->stars; $i ++){
  403. ?>
  404. <img class='star' src='<?=$path["img"]["layout"] . "icon/star.png"?>'/>
  405. <?php
  406. }
  407. ?>
  408. </span>
  409. <span class='rune_level'>
  410. <?=$alternative->level?>
  411. </span>
  412. </div> <!-- .rune_panel -->
  413. </td>
  414. <td class='stats'>
  415. <table>
  416. <tr class='main_stat'>
  417. <td class='stat'>
  418. <?php
  419. if (strpos($alternative->main_stat, "%") !== false){
  420. $stat_name = str_replace("%", "", $alternative->main_stat);
  421. $stat_value = "+ " . $alternative->main_stat_value . "%";
  422. }
  423. else{
  424. $stat_name = $alternative->main_stat;
  425. $stat_value = "+ " . $alternative->main_stat_value;
  426. }
  427. ?>
  428. <?=$stat_name?>
  429. </td>
  430. <td class='value'>
  431. <?=$stat_value?>
  432. <td>
  433. </tr>
  434. <tr class='innate_stat'>
  435. <td class='stat'>
  436. <?php
  437. if (strlen($alternative->innate_stat) == 0){
  438. $stat_name = "&nbsp;";
  439. $stat_value = "";
  440. }
  441. elseif (strpos($alternative->innate_stat, "%") !== false){
  442. $stat_name = str_replace("%", "", $alternative->innate_stat);
  443. $stat_value = "+ " . $alternative->innate_stat_value . "%";
  444. }
  445. else{
  446. $stat_name = $alternative->innate_stat;
  447. $stat_value = "+ " . $alternative->innate_stat_value;
  448. }
  449. ?>
  450. <?=$stat_name?>
  451. </td>
  452. <td class='value'>
  453. <?=$stat_value?>
  454. <td>
  455. </tr>
  456. <tr class=substat>
  457. <td class='stat'>
  458. <?php
  459. if (strlen($alternative->substat_1) == 0){
  460. $stat_name = "&nbsp;";
  461. $stat_value = "";
  462. }
  463. elseif (strpos($alternative->substat_1, "%") !== false){
  464. $stat_name = str_replace("%", "", $alternative->substat_1);
  465. $stat_value = "+ " . $alternative->substat_1_value . "%";
  466. }
  467. else{
  468. $stat_name = $alternative->substat_1;
  469. $stat_value = "+ " . $alternative->substat_1_value;
  470. }
  471. if ($alternative->substat_1_craft == 1){
  472. $craft = "craft";
  473. }
  474. else{
  475. $craft = "";
  476. }
  477. ?>
  478. <?=$stat_name?>
  479. </td>
  480. <td class='value <?=$craft?>'>
  481. <?=$stat_value?>
  482. <td>
  483. </tr>
  484. <tr class=substat>
  485. <td class='stat'>
  486. <?php
  487. if (strlen($alternative->substat_2) == 0){
  488. $stat_name = "&nbsp;";
  489. $stat_value = "";
  490. }
  491. elseif (strpos($alternative->substat_2, "%") !== false){
  492. $stat_name = str_replace("%", "", $alternative->substat_2);
  493. $stat_value = "+ " . $alternative->substat_2_value . "%";
  494. }
  495. else{
  496. $stat_name = $alternative->substat_2;
  497. $stat_value = "+ " . $alternative->substat_2_value;
  498. }
  499. if ($alternative->substat_2_craft == 1){
  500. $craft = "craft";
  501. }
  502. else{
  503. $craft = "";
  504. }
  505. ?>
  506. <?=$stat_name?>
  507. </td>
  508. <td class='value <?=$craft?>'>
  509. <?=$stat_value?>
  510. <td>
  511. </tr>
  512. <tr class=substat>
  513. <td class='stat'>
  514. <?php
  515. if (strlen($alternative->substat_3) == 0){
  516. $stat_name = "&nbsp;";
  517. $stat_value = "";
  518. }
  519. elseif (strpos($alternative->substat_3, "%") !== false){
  520. $stat_name = str_replace("%", "", $alternative->substat_3);
  521. $stat_value = "+ " . $alternative->substat_3_value . "%";
  522. }
  523. else{
  524. $stat_name = $alternative->substat_3;
  525. $stat_value = "+ " . $alternative->substat_3_value;
  526. }
  527. if ($alternative->substat_3_craft == 1){
  528. $craft = "craft";
  529. }
  530. else{
  531. $craft = "";
  532. }
  533. ?>
  534. <?=$stat_name?>
  535. </td>
  536. <td class='value <?=$craft?>'>
  537. <?=$stat_value?>
  538. <td>
  539. </tr>
  540. <tr class=substat>
  541. <td class='stat'>
  542. <?php
  543. if (strlen($alternative->substat_4) == 0){
  544. $stat_name = "&nbsp;";
  545. $stat_value = "";
  546. }
  547. elseif (strpos($alternative->substat_4, "%") !== false){
  548. $stat_name = str_replace("%", "", $alternative->substat_4);
  549. $stat_value = "+ " . $alternative->substat_4_value . "%";
  550. }
  551. else{
  552. $stat_name = $alternative->substat_4;
  553. $stat_value = "+ " . $alternative->substat_4_value;
  554. }
  555. if ($alternative->substat_4_craft == 1){
  556. $craft = "craft";
  557. }
  558. else{
  559. $craft = "";
  560. }
  561. ?>
  562. <?=$stat_name?>
  563. </td>
  564. <td class='value <?=$craft?>'>
  565. <?=$stat_value?>
  566. <td>
  567. </tr>
  568. </table>
  569. </td>
  570. <td class='details'>
  571. <?php
  572. switch ($alternative->quality){
  573. case 0:
  574. $q = "Normal";
  575. break;
  576. case 1:
  577. $q = "Magic";
  578. break;
  579. case 2:
  580. $q = "Rare";
  581. break;
  582. case 3:
  583. $q = "Hero";
  584. break;
  585. case 4:
  586. $q = "Legend";
  587. break;
  588. }
  589. switch ($alternative->original_quality){
  590. case 0:
  591. $oq = "Normal";
  592. break;
  593. case 1:
  594. $oq = "Magic";
  595. break;
  596. case 2:
  597. $oq = "Rare";
  598. break;
  599. case 3:
  600. $oq = "Hero";
  601. break;
  602. case 4:
  603. $oq = "Legend";
  604. break;
  605. }
  606. ?>
  607. <table class='table_details'>
  608. <tr>
  609. <td class='title'>
  610. Quality:
  611. </td>
  612. <td class='value'>
  613. <span class='quality quality_<?=strtolower($q)?>'>
  614. <?=$q?>
  615. </span>
  616. </td>
  617. </tr>
  618. <tr>
  619. <td class='title'>
  620. Original quality:
  621. </td>
  622. <td class='value'>
  623. <span class='quality quality_<?=strtolower($oq)?>'>
  624. <?=$oq?>
  625. </span>
  626. </td>
  627. </tr>
  628. <tr>
  629. <td class='title'>
  630. Value:
  631. </td>
  632. <td class='value'>
  633. <?=$alternative->value?>
  634. </td>
  635. </tr>
  636. <tr>
  637. <td class='title'>
  638. Efficiency:
  639. </td>
  640. <td class='value'>
  641. <?=number_format($alternative->efficiency, 2)?>%
  642. </td>
  643. </tr>
  644. <tr>
  645. <td class='title'>
  646. Max. efficiency:
  647. </td>
  648. <td class='value'>
  649. <?=number_format($alternative->max_efficiency, 2)?>%
  650. </td>
  651. </tr>
  652. <tr>
  653. <td class='title'>
  654. Reached efficiency:
  655. </td>
  656. <td class='value'>
  657. <?=number_format($alternative->efficiency * 100 / $alternative->max_efficiency)?>%
  658. </td>
  659. </tr>
  660. </table>
  661. </td>
  662. </tr>
  663. </table> <!-- .alternative -->
  664. <?php
  665. }
  666. ?>
  667. </div>
  668. <?php
  669. }
  670. ?>
  671. </div> <!-- .monster_runes -->
  672. </article>
  673. </section>
  674. <?php
  675. }
  676. include __DIR__ . "/inc/footer.php";
  677. ?>
  678. </body>
  679. </html>