actividad.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. <?php
  2. session_start();
  3. $http_host = $_SERVER["HTTP_HOST"];
  4. include("../functions.php");
  5. $con = startdb();
  6. $proto = getProtocol();
  7. $server = "$proto$http_host";
  8. //Language
  9. $lang = selectLanguage();
  10. include("../lang/lang_$lang.php");
  11. $cur_section = $lng["section_activities"];
  12. // Get current activity id. Redirect if inexistent or invisible
  13. $perm = mysqli_real_escape_string($con, $_GET["perm"]);
  14. $q = mysqli_query($con, "SELECT id, permalink, title_$lang AS title, text_$lang AS text, after_$lang AS after, price, inscription, people, max_people, user, date, DATE_FORMAT(date, '%Y-%m-%d %T') AS cdate, DATE_FORMAT(date, '%Y-%m-%d') AS isodate, DATE_FORMAT(date,'%b %d, %Y') as fdate, dtime, comments, city FROM activity WHERE permalink = '$perm' AND visible = 1;");
  15. if (mysqli_num_rows($q) == 0){
  16. header("Location: $server/actividades/");
  17. exit(-1);
  18. }
  19. $r = mysqli_fetch_array($q);
  20. $id = $r["id"];
  21. ?>
  22. <!DOCTYPE html>
  23. <html>
  24. <head>
  25. <meta content="text/html; charset=windows-1252" http-equiv="content-type"/>
  26. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1">
  27. <title><?=$r["title"]?> - Gasteizko Margolariak</title>
  28. <link rel="shortcut icon" href="<?=$server?>/img/logo/favicon.ico">
  29. <!-- CSS files -->
  30. <style>
  31. <?php
  32. include("../css/ui.css");
  33. include("../css/actividades.css");
  34. include("../css/map.css");
  35. ?>
  36. </style>
  37. <!-- CSS for mobile version -->
  38. <style media="(max-width : 990px)">
  39. <?php
  40. include("../css/m/ui.css");
  41. include("../css/m/actividades.css");
  42. include("../css/m/map.css");
  43. ?>
  44. </style>
  45. <!-- Script files -->
  46. <script type="text/javascript">
  47. <?php
  48. include("../script/ui.js");
  49. include("../script/actividades.js");
  50. include("../script/map.js");
  51. ?>
  52. </script>
  53. <script src="<?=$server?>/script/OpenLayers/ol.js"></script>
  54. <!-- Meta tags -->
  55. <link rel="canonical" href="<?=$server?>/actividades/<?=$r["permalink"]?>"/>
  56. <link rel="author" href="<?=$server?>"/>
  57. <link rel="publisher" href="<?=$server?>"/>
  58. <meta name="description" content="<?=strip_tags($r["text"])?>"/>
  59. <meta property="og:title" content="<?=$r["title"]?> - Gasteizko Margolariak"/>
  60. <meta property="og:url" content="<?=$server?>/actividades/<?=$r["permalink"]?>"/>
  61. <meta property="og:description" content="<?=strip_tags($r["text"])?>?>"/>
  62. <?php
  63. $q_i = mysqli_query($con, "SELECT image FROM activity_image WHERE activity = $id ORDER BY idx;");
  64. if (mysqli_num_rows($q_i) == 0){
  65. $img = "$server/img/logo/cover.png";
  66. }
  67. else{
  68. $r_i = mysqli_fetch_array($q_i);
  69. $img = "$server/img/actividades/preview/" . $r_i["image"];
  70. }
  71. ?>
  72. <meta property="og:image" content="<?=$img?>"/>
  73. <meta property="og:site_name" content="Gasteizko Margolariak"/>
  74. <meta property="og:type" content="article"/>
  75. <meta property="og:locale" content="<?=$lang?>"/>
  76. <meta property="article:section" content=""/>
  77. <!-- TODO: Review time format -->
  78. <meta property="article:published-time" content="<?=$r["dtime"]?>"/>
  79. <meta property="article:modified-time" content="<?=$r["dtime"]?>"/>
  80. <meta property="article:author" content="Gasteizko Margolariak"/>
  81. <?php
  82. $res_tag = mysqli_query($con, "SELECT tag FROM activity_tag WHERE activity = $id;");
  83. $tag_string = "vitoria cuadrilla gasteizko margolariak ";
  84. while ($row_tag = mysqli_fetch_array($res_tag)){
  85. $tag_string = $tag_string . " " . $row_tag["tag"];
  86. }
  87. ?>
  88. <meta property="article:tag" content="<?=$tag_string?>"/>
  89. <meta name="twitter:card" content="summary"/>
  90. <meta name="twitter:title" content="<?=$r["title"]?> - Gasteizko Margolariak"/>
  91. <meta name="twitter:description" content="<?=strip_tags($r["text"])?>"/>
  92. <meta name="twitter:image" content="<?=$img?>"/>
  93. <meta name="twitter:url" content="<?=$server?>/actividades/<?=$r["permalink"]?>"/>
  94. <meta name="robots" content="index follow"/>
  95. </head>
  96. <body>
  97. <?php
  98. include("../header.php");
  99. ?>
  100. <div id="content">
  101. <?php
  102. //Check if it's a past activity or upcoming activity.
  103. $c_date = new Datetime();
  104. $a_date = date_create_from_format('Y-m-d H:i:s', $r["cdate"]);
  105. $future = false;
  106. if (date_format($a_date, 'U') > date_format($c_date, 'U')){
  107. $future = true;
  108. }
  109. ?>
  110. <div id="middle_column">
  111. <div class="section">
  112. <h3 class='section_title' id="activity_title"><?=$r["title"]?> - <?=formatDate($r["date"], $lang, false)?></h3>
  113. <div class="entry" itemscope itemtype='http://schema.org/Event'>
  114. <meta itemprop='url' href='<?=$server?>/actividades/<?=$r["permalink"]?>'/>
  115. <meta itemprop='inLanguage' content='$<?=lang?>'/>
  116. <meta itemprop='name' content='<?=$r["title"]?>'/>
  117. <meta itemprop='description' content='<?=$r["text"]?>'/>
  118. <meta itemprop='startDate endDate' content='<?$r["isodate"]?>'/>
  119. <meta itemprop='location' content='<?=$r["city"]?>'/>
  120. <div class='hidden' itemprop='organizer' itemscope itemtype='http://schema.org/Organization'>
  121. <meta itemprop='legalName' content='Asociaci&oacute;n Cultural Recreativa Gasteizko Margolariak'/>
  122. <meta itemprop='name' content='Gasteizko Margolariak'/>
  123. <meta itemprop='logo' content='<?=$server?>/img/logo/logo.png'/>
  124. <meta itemprop='foundingDate' content='03-02-2013'/>
  125. <meta itemprop='telephone' content='+34637140371'/>
  126. <meta itemprop='url' content='<?=$server?>'/>
  127. </div>
  128. <?php
  129. if (mysqli_num_rows($q_i) > 0){
  130. ?>
  131. <meta itemprop='image' content='</=$server?>/img/actividades/<?=$r_i["image"]?>'/>
  132. <div id='activity_image'>
  133. <img src='<?=$server?>/img/actividades/preview/<?=$r_i["image"]?>'/>
  134. </div>
  135. <?php
  136. }
  137. ?>
  138. <div id='activity_description'>
  139. <p>
  140. <?php
  141. if ($future == false && strlen($r["after"]) > 0){
  142. ?>
  143. <?=$r["after"]?>
  144. <?php
  145. }
  146. else{
  147. ?>
  148. <?=$r["text"]?>
  149. <?php
  150. }
  151. ?>
  152. </p>
  153. </div> <!-- .activity_description -->
  154. <br/>
  155. <?php
  156. if ($future){
  157. ?>
  158. <div itemscope itemtype='http://schema.org/Offer' id='activity_details'>
  159. <table id='activity_details'>
  160. <tr>
  161. <td class='field_name'><?=$lng["activities_date"]?></td>
  162. <td><?=formatDate($r["date"], $lang, false)?></td>
  163. </tr>
  164. <tr>
  165. <td class='field_name'><?=$lng["activities_city"]?></td>
  166. <td><?=$r["city"]?></td>
  167. </tr>
  168. <meta itemprop='priceCurrency' content='EUR'/>
  169. <meta itemprop='price' content='<$r["price"]?>'/>
  170. <?php
  171. if ($r["price"] == 0){
  172. ?>
  173. <tr>
  174. <td class='field_name'><?=$lng["activities_price"]?></td>
  175. <td><?=$lng["activities_price_0"]?></td>
  176. </tr>
  177. <?php
  178. }
  179. else{
  180. ?>
  181. <tr>
  182. <td class='field_name'><?=$lng["activities_price"]?></td>
  183. <td><?=$r["price"]?>€</td>
  184. </tr>
  185. <?php
  186. if ($r["max_people"] != 0){
  187. ?>
  188. <tr>
  189. <td class='field_name'><?=$lng["activities_maxpeople"]?></td>
  190. <td><?=$r["max_people"]?></td>
  191. </tr>
  192. <?php
  193. }
  194. }
  195. ?>
  196. </table> <!-- activity_details -->
  197. </div> <!-- activity_details -->
  198. <?php
  199. ?>
  200. </div> <!-- .entry -->
  201. <br/>
  202. <div class='entry'>
  203. <?php
  204. $q_it = mysqli_query($con, "SELECT activity_itinerary.name_$lang AS name, description_$lang AS description, place.name_$lang AS place_name, place.address_$lang AS place_address, place.lat, place.lon, DATE_FORMAT(start, '%H:%i') AS start, DATE_FORMAT(end, '%H:%i') AS end, DATE_FORMAT(start, '%Y-%m-%d') AS isostart, DATE_FORMAT(end, '%Y-%m-%d') AS isoend, route FROM activity_itinerary, place WHERE place.id = activity_itinerary.place AND activity = $r[id] ORDER BY start;");
  205. if (mysqli_num_rows($q_it) > 0){
  206. ?>
  207. <div id='activity_itinerary'>
  208. <!-- TODO: Routes -->
  209. <h3 class='entry_title'><?=$lng["activity_itinerary"]?></h3>
  210. <table id='activity_itinerary'>
  211. <tr class='th'>
  212. <th><?=$lng["activities_when"]?></th>
  213. <th><?=$lng["activities_what"]?></th>
  214. </tr>
  215. <?php
  216. while ($r_it = mysqli_fetch_array($q_it)){
  217. ?>
  218. <tr>
  219. <div class='hidden' itemprop='subEvent' itemscope itemtype='http://schema.org/Event'>
  220. <meta itemprop='inLanguage' content='<?=$lang?>'/>
  221. <meta itemprop='name' content='<?=$r_it["name"]?>'/>
  222. <meta itemprop='description' content='<?=$r_it["description"]?>'/>
  223. <meta itemprop='startDate' content='<?=$r_it["isostart"]?>'/>
  224. <meta itemprop='location' content='<?=$r_it["place_name"]?>'/>
  225. <?php
  226. if (strlen($r_it["end"]) > 0){
  227. ?>
  228. <meta itemprop='endDate' content='<?=$r_it["place_end"]?>'/>
  229. <?php
  230. }
  231. ?>
  232. </div>
  233. <?php
  234. if (strlen($r_it["end"]) > 0){
  235. ?>
  236. <td><?=$r_it["start"]?> - <?=$r_it["end"]?></td>
  237. <?php
  238. }
  239. else{
  240. ?>
  241. <td class='time'><?=$r_it["start"]?></td>
  242. <?php
  243. }
  244. ?>
  245. <td>
  246. <h5><?=$r_it["name"]?></h5>
  247. <p class='description'><?=$r_it["description"]?></p>
  248. <br/>
  249. <?php
  250. if ($r_it["route"] != null && strlen($r_it["route"]) != 0){
  251. ?>
  252. <!-- TODO: Add center coordinates and zoom -->
  253. <span class='fake_a pointer' onClick='showMapRoute(<?=$r_it["route"]?>, "<?=$r_it["name"]?>", <?=$r_it["lat"]?>, <?=$r_it["lon"]?>);'>
  254. <img class='pinpoint' alt=' ' src='<?=$server?>/img/misc/pinpoint-route.png'/>
  255. <span class='desktop route_start'>
  256. <?=$lng["activities_itinerary_start"]?>
  257. </span>
  258. <?php
  259. //If name and address are the same, show only name
  260. if ($r_it["place_name"] == $r_it["place_address"]){
  261. ?>
  262. <?=$r_it["place_name"]?>
  263. <?php
  264. }
  265. else{
  266. ?>
  267. <?=$r_it["place_name"]?>
  268. <span class='address'>- <?=$r_it["place_address"]?></span>
  269. <?php
  270. }
  271. ?>
  272. </span>
  273. <?php
  274. }
  275. else{
  276. ?>
  277. <span class='fake_a pointer' onClick='showMapPoint("<?=$r_it["name"]?>>", <?=$r_it["lat"]?>, <?=$r_it["lon"]?>);'>
  278. <img class='pinpoint' alt=' ' src='<?=$server?>/img/misc/pinpoint.png'/>
  279. <?php
  280. //If name and address are the same, show only name
  281. if ($r_it["place_name"] == $r_it["place_address"]){
  282. ?>
  283. <?=$r_it["place_name"]?>
  284. <?php
  285. }
  286. else{
  287. ?>
  288. <?=$r_it["place_name"]?>
  289. <span class='address'>- <?=$r_it["place_address"]?></span>
  290. <?php
  291. }
  292. ?>
  293. </span>
  294. <?php
  295. }
  296. ?>
  297. </td>
  298. </tr>
  299. <?php
  300. } // while ($r_it = mysqli_fetch_array($q_it))
  301. ?>
  302. </table> <!-- #activity_itinerary -->
  303. </div> <!-- #activity_itinerary -->
  304. <?php
  305. } // if (mysqli_num_rows($q_it) > 0)
  306. ?>
  307. </div> <!-- .entry -->
  308. <?php
  309. } // if ($future)
  310. ?>
  311. </div> <!-- .section -->
  312. </div> <!-- .entry -->
  313. </div> <!-- #middle_column -->
  314. <div id="right_column">
  315. <div id="archive" class="section desktop">
  316. <h3 class="section_title"><?=$lng["activities_archive"] ?></h3>
  317. <div class='entry'>
  318. <?php
  319. $res_year = mysqli_query($con, "SELECT year(date) AS year FROM activity WHERE visible = 1 GROUP BY year(date) ORDER BY year DESC;");
  320. while($row_year = mysqli_fetch_array($res_year)){
  321. ?>
  322. <div class='year pointer' onClick='toggleElement("year_<?=$row_year["year"]?>");'>
  323. <img class='slid' id='slid_year_<?=$row_year["year"]?>' src='<?=$server?>/img/misc/slid-right.png' alt='<?=$row_year["year"]?>'/>
  324. <span class='fake_a'><?=$row_year["year"]?></span>
  325. </div>
  326. <div class='list_year pointer' id='list_year_<?=$row_year["year"]?>'>
  327. <?php
  328. $res_month = mysqli_query($con, "SELECT month(date) AS month FROM activity WHERE visible = 1 AND year(date) = $row_year[year] GROUP BY month(date) ORDER BY month DESC;");
  329. while($row_month = mysqli_fetch_array($res_month)){
  330. ?>
  331. <div class='month pointer' onClick='toggleElement("month_<?=$row_year["year"]?>_<?=$row_month["month"]?>");'>
  332. <img class='slid' id='slid_month_<?=$row_year["year"]?>_<?=$row_month["month"]?>' src='<?=$server?>/img/misc/slid-right.png' alt='<?=$row_year["year"]?>_<?=$row_month["month"]?>'/>
  333. <span class='fake_a'><?=$lng["months"][$row_month["month"] - 1]?></span>
  334. </div>
  335. <ul id='list_month_<?=$row_year["year"]?>_<?=$row_month["month"]?>' class='activity_list'>
  336. <?php
  337. $res_title = mysqli_query($con, "SELECT id, permalink, title_$lang AS title FROM activity WHERE visible = 1 AND year(date) = $row_year[year] AND month(date) = '$row_month[month]' ORDER BY date DESC;");
  338. while($row_title = mysqli_fetch_array($res_title)){
  339. ?>
  340. <li>
  341. <a href='<?=$server?>/actividades/<?=$row_title["permalink"]?>'><?=$row_title["title"]?></a>
  342. </li>
  343. <?php
  344. }
  345. ?>
  346. </ul>
  347. <?php
  348. }
  349. ?>
  350. </div> <!-- #list_year_<?=$row_year["year"]?> -->
  351. <?php
  352. }
  353. ?>
  354. </div> <!-- .entry -->
  355. </div> <!-- #archive -->
  356. </div> <!-- #right_column -->
  357. <div id='map_container'>
  358. <div class='section'>
  359. <h3 class='section_title'>
  360. <span id='map_title'>MAP</span>
  361. <div id='map_close_container'>
  362. <img id='map_close' class='pointer' alt=' ' src='<?=$server?>/img/misc/close.png' onClick='hideMap();'/>
  363. </div>
  364. </h3>
  365. <div id='map' class='entry'>
  366. </div> <!-- map -->
  367. </div> <!-- .section -->
  368. </div> <!-- .map_container -->
  369. </div> <!-- #content -->
  370. <?php
  371. include("../footer.php");
  372. $ad = ad($con, $lang, $lng);
  373. stats($ad, $ad_static, "actividades", "$id");
  374. ?>
  375. </body>
  376. </html>