index.php 11 KB

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