post.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <?php
  2. $http_host = $_SERVER["HTTP_HOST"];
  3. include("../functions.php");
  4. $con = startdb();
  5. $proto = getProtocol();
  6. $server = "$proto$http_host";
  7. //Language
  8. $lang = selectLanguage();
  9. include("../lang/lang_$lang.php");
  10. $cur_section = $lng["section_blog"];
  11. // Get current post id. Redirect if inexistent or invisible
  12. $perm = mysqli_real_escape_string($con, $_GET["perm"]);
  13. $q = mysqli_query($con, "SELECT id, permalink, title_$lang AS title, text_$lang AS text, DATE_FORMAT(dtime, '%Y-%m-%dT%T') AS isodate, DATE_FORMAT(dtime,'%b %d, %Y T%T') as dtime, comments FROM post WHERE permalink = '$perm' AND visible = 1;");
  14. if (mysqli_num_rows($q) == 0){
  15. header("Location: $server/blog/");
  16. exit(-1);
  17. }
  18. $r = mysqli_fetch_array($q);
  19. $id = $r["id"];
  20. ?>
  21. <!DOCTYPE html>
  22. <html>
  23. <head>
  24. <meta content="text/html; charset=windows-1252" http-equiv="content-type"/>
  25. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1">
  26. <title><?=$r["title"]?> - Gasteizko Margolariak</title>
  27. <link rel="shortcut icon" href="<?=$server?>/img/logo/favicon.ico">
  28. <!-- CSS files -->
  29. <style>
  30. <?php
  31. include("../css/ui.css");
  32. include("../css/blog.css");
  33. ?>
  34. </style>
  35. <!-- CSS for mobile version -->
  36. <style media="(max-width : 990px)">
  37. <?php
  38. include("../css/m/ui.css");
  39. include("../css/m/blog.css");
  40. ?>
  41. </style>
  42. <!-- Script files -->
  43. <script type="text/javascript">
  44. <?php
  45. include("../script/ui.js");
  46. include("../script/blog.js");
  47. ?>
  48. </script>
  49. <!-- Meta tags -->
  50. <link rel="canonical" href="<?=$server?>/blog/<?=$r["permalink"]?>"/>
  51. <link rel="author" href="<?=$server?>"/>
  52. <link rel="publisher" href="<?=$server?>"/>
  53. <meta name="description" content="<?=strip_tags($r["text"])?>"/>
  54. <meta property="og:title" content="<?=$r["title"]?> - Gasteizko Margolariak"/>
  55. <meta property="og:url" content="<?=$server?>/blog/<?=$r["permalink"]?>"/>
  56. <meta property="og:description" content="<?=strip_tags($r["text_$lang"])?>"/>
  57. <?php
  58. $q_image = mysqli_query($con, "SELECT image FROM post_image WHERE post = $id ORDER BY idx;");
  59. if (mysqli_num_rows($q_image) == 0)
  60. $img = "$server/img/logo/cover.png";
  61. else{
  62. $r_image = mysqli_fetch_array($q_image);
  63. $img = "$server/img/blog/preview/" . $r_image["image"];
  64. }
  65. ?>
  66. <meta property="og:image" content="<?=$img?>"/>
  67. <meta property="og:site_name" content="Gasteizko Margolariak"/>
  68. <meta property="og:type" content="article"/>
  69. <meta property="og:locale" content="<?=$lang?>"/>
  70. <meta property="article:section" content="Blog"/>
  71. <meta property="article:published-time" content="<?=$r["time"]?>"/>
  72. <meta property="article:modified-time" content="<?=$r["time"]?>"/>
  73. <meta property="article:author" content="Gasteizko Margolariak"/>
  74. <?php
  75. $q_tag = mysqli_query($con, "SELECT tag FROM post_tag WHERE post = $id;");
  76. $tag_string = "vitoria cuadrilla gasteizko margolariak ";
  77. while ($r_tag = mysqli_fetch_array($q_tag))
  78. $tag_string = $tag_string . " " . $r_tag["tag"]
  79. ?>
  80. <meta property="article:tag" content="<?=$tag_string?>"/>
  81. <meta name="twitter:card" content="summary"/>
  82. <meta name="twitter:title" content="<?=$r["title"]?> - Gasteizko Margolariak"/>
  83. <meta name="twitter:description" content="<?=strip_tags($r["text_$lang"])?>"/>
  84. <meta name="twitter:image" content="<?=$img?>"/>
  85. <meta name="twitter:url" content="<?=$server?>/blog/<?=$r["permalink"]?>"/>
  86. <meta name="robots" content="index follow"/>
  87. </head>
  88. <body>
  89. <?php
  90. include("../header.php");
  91. ?>
  92. <div id="content">
  93. <?php
  94. include("common/leftpanel.php");
  95. ?>
  96. <div id="middle_column">
  97. <div itemscope itemtype='http://schema.org/BlogPosting' class='section blog_entry'>
  98. <meta itemprop='inLanguage' content='<?=$lang?>'/>
  99. <meta itemprop='datePublished dateModified' content='<?=$r["isodate"]?>'/>
  100. <meta itemprop='headline name' content='<?=$r["title"]?>'/>
  101. <meta itemprop='mainEntityOfPage' content='<?=$server?>'/>
  102. <div class='hidden' itemprop='author publisher' itemscope itemtype='http://schema.org/Organization'>
  103. <meta itemprop='legalName' content='Asociaci&oacute;n Cultural Recreativa Gasteizko Margolariak'/>
  104. <meta itemprop='name' content='Gasteizko Margolariak'/>
  105. <meta itemprop='logo' content='<?=$server?>/img/logo/logo.png'/>
  106. <meta itemprop='foundingDate' content='03-02-2013'/>
  107. <meta itemprop='telephone' content='+34637140371'/>
  108. <meta itemprop='url' content='<?=$server?>'/>
  109. </div>
  110. <h3 class='section_title'><?=$r["title"]?></h3>
  111. <div class='entry'>
  112. <?php
  113. if ($r_image != null){
  114. ?>
  115. <div class='image_container'>
  116. <meta itemprop='image' content='<?=$server?>/img/blog/<?=$r_image["image"]?>'/>
  117. <img class='post_image post_image_large' alt='<?=$r["title"]?>' src='/img/blog/preview/<?=$r_image["image"]?>'/>\n";
  118. </div>
  119. <?php
  120. }
  121. ?>
  122. <p itemprop='text articleBody'><?=$r["text"]?></p>
  123. <?php
  124. //Other images
  125. if ($r_image != null){
  126. ?>
  127. <table id='secondary_images'>
  128. <tr>
  129. <?php
  130. while ($r_image = mysqli_fetch_array($q_image)){
  131. ?>
  132. <meta itemprop='image' content='<?=$server?>/img/blog/<?=$r_image["image"]?>'/>
  133. <td>
  134. <img src='<?=$server?>/img/blog/preview/<?=$r_image["image"]?>'/>
  135. </td>
  136. <?php
  137. }
  138. ?>
  139. </tr>
  140. </table>
  141. <?php
  142. }
  143. ?>
  144. <hr>
  145. <table class='post_footer'>
  146. <tr>
  147. <?php
  148. # Tags (if any) and date
  149. $q_tag = mysqli_query($con, "SELECT tag FROM post_tag WHERE post= $id;");
  150. if (mysqli_num_rows($q_tag) > 0){
  151. $tag_string = "<span id='tags' class='desktop'>Tags: ";
  152. $tag_raw = "";
  153. while ($r_tag = mysqli_fetch_array($q_tag)){
  154. $tag_string = $tag_string . "<a href='$server/blog/buscar/tag/$r_tag[tag]'>$r_tag[tag]</a>, ";
  155. $tag_raw = $tag_raw . "$r_tag[tag],";
  156. }
  157. $tag_string = substr($tag_string, 0, strlen($tag_string) - 2);
  158. $tag_string = $tag_string . "</span>";
  159. $tag_raw = substr($tag_raw, 0, strlen($tag_raw) - 1);
  160. ?>
  161. <meta itemprop='keywords' content='<?=$tag_raw?>'/>
  162. <td>
  163. <span class='date'><?=formatDate($r["dtime"], $lang)?></span>
  164. <br/><br class='mobile'/>
  165. <?=$tag_string?>
  166. </td>
  167. <?php
  168. }
  169. else{
  170. ?>
  171. <td>
  172. <span class='date'>
  173. <span class='hidden'><?=formatDate($r["dtime"], $lang)?>
  174. </span>
  175. </td>
  176. <?php
  177. }
  178. #Share
  179. ?>
  180. <td class='r_share'>
  181. <span class='share'>
  182. <span class='desktop'>$lng[blog_share]</span>
  183. <?php
  184. $title = urlencode("$r[title] - $http_host");
  185. $url_f = htmlspecialchars("https://www.facebook.com/sharer/sharer.php?u=$server$_SERVER[REQUEST_URI]");
  186. $url_t = htmlspecialchars("https://twitter.com/share?url=$server$_SERVER[REQUEST_URI]&text=$title");
  187. $url_g = htmlspecialchars("https://plus.google.com/share?url=$server$_SERVER[REQUEST_URI]");
  188. ?>
  189. <a href='$url_f' target='_blank'><img class='share_icon' alt='Facebook' src='$server/img/social/facebook.gif'/></a>\n";
  190. <a href='$url_t' target='_blank'><img class='share_icon' alt='Twitter' src='$server/img/social/twitter.gif'/></a>\n";
  191. <a href='$url_g' target='_blank'><img class='share_icon' src='$server/img/social/googleplus.gif' alt='Google+'/></a>\n";
  192. </span>
  193. </td>
  194. </tr>
  195. </table> <!-- .post_footer -->
  196. <?php
  197. #Comments
  198. if ($r["comments"] == 1){
  199. $q_comment = mysqli_query($con, "SELECT id, post, DATE_FORMAT(dtime, '%Y-%m-%dT%T') AS isodate, dtime, user, username, lang, text FROM post_comment WHERE post = $id AND approved = 1 ORDER BY dtime;");
  200. $count = mysqli_num_rows($q_comment);
  201. ?>
  202. <hr/>
  203. <meta itemprop='commentCount interactionCount' content='<?=$count?>'/>
  204. <?php
  205. switch ($count){
  206. case 0:
  207. $comment_count = "<h4><meta itemprop='interactionCount' content='0'/></meta>$lng[blog_comments_0]</h4>";
  208. break;
  209. case 1:
  210. $comment_count = "<h4><span itemprop='interactionCount'>1</span> $lng[blog_comments_1]</h4>";
  211. break;
  212. default:
  213. $comment_count = "<h4><span itemprop='interactionCount'>$count</span> $lng[blog_comments_multiple]</h4>";
  214. }
  215. ?>
  216. <?=$comment_count?>
  217. <div id='comment_list'>
  218. <?php
  219. //WARNING: If changes are done here, do the same in comment.php
  220. while ($r_comment = mysqli_fetch_array($q_comment)){
  221. ?>
  222. <div itemprop='comment' itemscope itemtype='http://schema.org/UserComments' id='comment_<?=$r_comment["id"]?>' class='comment'>
  223. <span itemprop='creator' class='comment_user'><?=$r_comment["username"]?></span>
  224. <span class='comment_date date'>
  225. <meta itemprop='commentTime' content='<?=$r_comment["isodate"]?>'/>
  226. <?=formatDate($r_comment["dtime"], $lang)?>
  227. </span>
  228. <p itemprop='commentText' class='comment_text'><?=$r_comment["text"]?></p>
  229. <hr class='comment_line'/>
  230. </div>
  231. <?php
  232. }
  233. ?>
  234. </div> <!-- #comment_list -->
  235. <div class='comment' id='comment_new'>
  236. <form id='comment_form' method='post' action='/' onsubmit='event.preventDefault();postComment(<?=$id?>, "<?=$lang?>");'>
  237. <textarea id='new_comment_text' name='text' maxlength='1800' onChange='defaultInputBorder(this);' onKeyDown='defaultInputBorder(this);' placeholder='<?=$lng["blog_placeholder_text"]?>'></textarea>
  238. <input type='hidden' name='id' value='<?=$id?>'>
  239. <div id='identification_form'>
  240. <br>
  241. <input id='new_comment_user' name='user' maxlength='50' type='text' placeholder='<?=$lng["blog_placeholder_name"]?>' onChange='defaultInputBorder(this);' onKeyDown='defaultInputBorder(this);'/>
  242. <input type='submit' value='<?=$lng["blog_send"]?>'/>
  243. </div>
  244. </form>
  245. </div> <!-- .comment_new -->
  246. <?php
  247. }
  248. else{
  249. ?>
  250. <h4><?=$lng["blog_comments_closed"]?></h4>
  251. <?php
  252. }
  253. ?>
  254. </div> <!-- .entry -->
  255. </div> <!-- #middle_column -->
  256. <?php
  257. include("common/rightpanel.php");
  258. ?>
  259. </div> <!-- .content -->
  260. <?php
  261. include("../footer.php");
  262. $ad = ad($con, $lang, $lng);
  263. stats($ad, $ad_static, "blog", "$id");
  264. ?>
  265. </body>
  266. </html>