index.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. <?php
  2. session_start();
  3. $http_host = $_SERVER["HTTP_HOST"];
  4. $doc_root = $_SERVER["DOCUMENT_ROOT"];
  5. include $doc_root . "functions.php";
  6. $proto = get_protocol();
  7. $con = start_db();
  8. $server = $proto . $http_host;
  9. $lang = select_language();
  10. $cur_section = "blog";
  11. $cur_entry = "";
  12. ?>
  13. <!DOCTYPE html>
  14. <html>
  15. <head>
  16. <meta content='text/html; charset=utf-8' http-equiv='content-type'/>
  17. <meta charset='utf-8'/>
  18. <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1'/>
  19. <title><?=text($con, "BLOG_TITLE", $lang)?> - I&ntilde;igo Valentin</title>
  20. <link rel='shortcut icon' href='<?=$server?>/img/logo/favicon.ico'/>
  21. <!-- CSS files -->
  22. <style>
  23. <?php
  24. include $doc_root . "css/ui.css";
  25. include $doc_root . "css/blog.css";
  26. ?>
  27. </style>
  28. <!-- CSS for mobile version -->
  29. <style media='(max-width : 990px)'>
  30. <?php
  31. include $doc_root . "css/m/ui.css";
  32. include $doc_root . "css/m/blog.css";
  33. ?>
  34. </style>
  35. <!-- Script files -->
  36. <script type='text/javascript'>
  37. <?php
  38. include $doc_root . "script/ui.js";
  39. include $doc_root . "script/blog.js";
  40. ?>
  41. </script>
  42. <!-- Meta tags -->
  43. <link rel='canonical' href='<?=$server?>/blog/'/>
  44. <link rel='author' href='<?=$server?>'/>
  45. <link rel='publisher' href='<?=$server?>'/>
  46. <meta name='description' content='<?=text($con, "BLOG_DESCRIPTION", $lang)?>'/>
  47. <meta property='og:title' content='<?=text($con, "BLOG_TITLE", $lang)?> - I&ntilde;igo Valentin'/>
  48. <meta property='og:url' content='<?=$server?>/blog/'/>
  49. <meta property='og:description' content='<?=text($con, "BLOG_DESCRIPTION", $lang)?>'/>
  50. <meta property='og:image' content='<?=$server?>/img/logo/favicon.ico'/>
  51. <meta property='og:site_name' content='I&ntilde;igo Valentin'/>
  52. <meta property='og:type' content='website'/>
  53. <meta property='og:locale' content='<?=$lang?>'/>
  54. <meta name='twitter:card' content='summary'/>
  55. <meta name='twitter:title' content='<?=text($con, "BLOG_TITLE", $lang)?> - I&ntilde;igo Valentin'/>
  56. <meta name='twitter:description' content='<?=text($con, "BLOG_DESCRIPTION", $lang)?>'/>
  57. <meta name='twitter:image' content='<?=$server?>/img/logo/favicon.ico'/>
  58. <meta name='twitter:url' content='<?=$server?>/project/'/>
  59. <meta name='robots' content='index follow'/>
  60. </head>
  61. <body>
  62. <?php
  63. include $doc_root . "header.php";
  64. ?>
  65. <div id='content'>
  66. <div id='content_row'>
  67. <div class='content_cell' id='content_cell_main'>
  68. <div id='main_column' class='section'>
  69. <h3 class='section_title'><?=text($con, "BLOG_TITLE", $lang)?></h3>
  70. <?php
  71. $q_blog = mysqli_query($con, "SELECT id, permalink, title, text, DATE_FORMAT(dtime, '%Y-%m-%dT%T') AS isodate, dtime, comments FROM post WHERE visible = 1 ORDER BY dtime DESC;");
  72. while($r_blog = mysqli_fetch_array($q_blog)){
  73. ?>
  74. <div itemscope itemtype='http://schema.org/BlogPosting' class='entry blog_entry'>
  75. <meta itemprop='inLanguage' content='<?=$lang?>'/>
  76. <meta itemprop='datePublished dateModified' content='<?=$r_blog["isodate"]?>'/>
  77. <meta itemprop='headline name' content='<?=text($con, $r_blog["title"], $lang)?>'/>
  78. <meta itemprop='articleBody text' content='<?=text($con, $r_blog["text"], $lang)?>'/>
  79. <meta itemprop='mainEntityOfPage' content='<?=$server?>'/>
  80. <h3 class='entry_title'>
  81. <a itemprop='url' href='<?=$server?>/blog/<?=$r_blog["permalink"]?>'><?=$r_blog["title"]?></a>
  82. </h3>
  83. <?php
  84. $q_image = mysqli_query($con, "SELECT image FROM post_image WHERE post = $r_blog[id] ORDER BY idx LIMIT 1;");
  85. if (mysqli_num_rows($q_image) > 0){
  86. $r_image = mysqli_fetch_array($q_image);
  87. ?>
  88. <div class='post_list_image_container'>
  89. <a href='<?=$server?>/blog/<?=$r_blog["permalink"]?>'>
  90. <meta itemprop='image' content='<?=$server?>/img/blog/view/<?=$r_image["image"]?>'/>
  91. <img class='post_list_image alt='<?=$r_blog["title"]?>' src='<?=$server?>/img/blog/miniature/<?=$r_image["image"]?>'/>
  92. </a>
  93. </div>
  94. <?php
  95. }
  96. ?>
  97. <p><?=cutText($r_blog["text"], 800, text($con, "BLOG_MORE", $lang), "$server/blog/$r_blog[permalink]/")?></p>
  98. <hr/>
  99. <table class='post_footer'>
  100. <tr>
  101. <?php
  102. // Tags (if any), date, and comment counter
  103. $q_tag = mysqli_query($con, "SELECT tag FROM post_tag WHERE post= $r_blog[id];");
  104. if (mysqli_num_rows($q_tag) > 0){
  105. $tag_string = "<span class='tags desktop'>" . text($con, "BLOG_TAGS", $lang);
  106. $tag_raw = "";
  107. while ($r_tag = mysqli_fetch_array($q_tag)){
  108. $tag_string = $tag_string . "<a href='$proto$http_host/blog/search/tag/$r_tag[tag]'> " . text($con, $r_tag["tag"], $lang) . "</a>, ";
  109. $tag_raw = $tag_raw . "$r_tag[tag],";
  110. }
  111. $tag_string = substr($tag_string, 0, strlen($tag_string) - 2);
  112. $tag_string = $tag_string . "</span>";
  113. $tag_raw = substr($tag_raw, 0, strlen($tag_raw) - 1);
  114. ?>
  115. <meta itemprop='keywords' content='<?=$tag_raw?>'/>
  116. <td>
  117. <span class='date'><?=format_date($r_blog["dtime"], $lang, false)?></span>
  118. &nbsp;&nbsp;&nbsp;<?=$tag_string?>
  119. </td>
  120. <?php
  121. }
  122. else{
  123. ?>
  124. <td>
  125. <span class='date'><?=format_date($r_blog['dtime'], $lang, false)?></span>
  126. </td>
  127. <?php
  128. }
  129. #Comment counter
  130. if ($r_blog["comments"] == 1){
  131. $q_comment = mysqli_query($con, "SELECT count(id) AS count FROM post_comment WHERE post = $r_blog[id] AND visible = 1;");
  132. $r_comment = mysqli_fetch_array($q_comment);
  133. ?>
  134. <meta itemprop='commentCount interationCount' content='<?=$r_comment["count"]?>'/>
  135. <td class='r_comment'>
  136. <?php
  137. if ($r_comment['count'] == 1){
  138. ?>
  139. <span class='comment_counter'>1 <?=text($con, "BLOG_COMMENTS_1", $lang)?></span>
  140. <?php
  141. }
  142. else if ($r_comment['count'] == 0){
  143. ?>
  144. <span class='comment_counter'><?=text($con, "BLOG_COMMENTS_0", $lang)?></span>
  145. <?php
  146. }
  147. else{
  148. ?>
  149. <span class='comment_counter'>$<?=r_comment["count"]?> <?=text($con, "BLOG_COMMENTS_X", $lang)?></span>
  150. <?php
  151. }
  152. ?>
  153. </td>
  154. <?php
  155. } // if ($r_blog["comments"] == 1)
  156. ?>
  157. </tr>
  158. </table> <!-- .post_footer -->
  159. </div> <!-- .blog_entry -->
  160. </br>
  161. <?php
  162. } // while($r_blog = mysqli_fetch_array($q_blog))
  163. ?>
  164. </div> <!-- #main_column -->
  165. </div> <!-- #content_cell_main -->
  166. <div class='content_cell' id='content_cell_right'>
  167. <div class='section section_no_title' id='right_column'>
  168. <div class='entry'>
  169. <h4><?=text($con, "BLOG_SEARCH", $lang)?></h4>
  170. <div id='search_panel_inputs'>
  171. <form action='#' onSubmit='event.preventDefault();launchSearch("<?=$lng["search_field_all"]?>");'>
  172. <input id='search_panel_input' class='search_element' type='text' name='query' placeholder='<?=text($con, "BLOG_SEARCH", $lang)?>'/>
  173. <input id='search_panel_submit' class='search_element' type='submit' value='<?=text($con, "BLOG_SEARCH", $lang)?>'/>
  174. </form>
  175. </div>
  176. </div> <!-- .entry -->
  177. <div class='entry'>
  178. <h4><?=text($con, "BLOG_TAG_CLOUD", $lang)?></h4>
  179. <?php
  180. //Get the most used tag
  181. $q_max = mysqli_query($con, "SELECT max(count) AS max FROM (SELECT count(post) AS count FROM post_tag GROUP BY tag) AS t;");
  182. $r_max = mysqli_fetch_array($q_max);
  183. $max = $r_max["max"];
  184. $q_tag = mysqli_query($con, "SELECT tag, count(post) AS count FROM post_tag GROUP BY tag;");
  185. while($r_tag = mysqli_fetch_array($q_tag)){
  186. $size = round(60 + 100 * $r_tag['count'] / $max);
  187. ?>
  188. <a href='<?=$server?>/blog/search/tag/<?=$r_tag["tag"]?>'>
  189. <span style='font-size: <?=$size?>%'><?=text($con, $r_tag["tag"], $lang)?></span>
  190. </a>
  191. <?php
  192. }
  193. ?>
  194. </div> <!-- .entry -->
  195. </div> <!-- #right_column -->
  196. </div> <!-- #content -->
  197. <?php
  198. include $doc_root . "footer.php";
  199. stats($con, $cur_section, $cur_entry);
  200. ?>
  201. </body>
  202. </html>