PageRenderTime 30ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/blocks/calendar_events.php

http://github.com/MightyGorgon/icy_phoenix
PHP | 148 lines | 107 code | 14 blank | 27 comment | 15 complexity | 45ef3f8edb967aae4fd81b4164b1a7ee MD5 | raw file
Possible License(s): AGPL-1.0
  1. <?php
  2. /**
  3. *
  4. * @package Icy Phoenix
  5. * @version $Id$
  6. * @copyright (c) 2008 Icy Phoenix
  7. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  8. *
  9. */
  10. /**
  11. *
  12. * @Extra credits for this file
  13. * masterdavid - Ronald John David
  14. *
  15. */
  16. if (!defined('IN_ICYPHOENIX'))
  17. {
  18. die('Hacking attempt');
  19. }
  20. //define('MINI_CAL_FLAG', true);
  21. if(!function_exists('cms_block_calendar_events'))
  22. {
  23. function cms_block_calendar_events()
  24. {
  25. global $db, $cache, $config, $template, $theme, $user, $lang, $bbcode, $block_id, $cms_config_vars;
  26. $show_end_date = !empty($cms_config_vars['md_events_end'][$block_id]) ? true : false;
  27. $events_number = (int) $cms_config_vars['md_events_num'][$block_id];
  28. $events_number = ($events_number < 2) ? 10 : $events_number;
  29. $allow_forum_id = str_replace(' ', '', $cms_config_vars['md_events_forums_id'][$block_id]);
  30. $allow_forum_id_array = explode(',', $allow_forum_id);
  31. $allowed_forum_ids = build_allowed_forums_list(true);
  32. $allowed_forum_id_array = (!empty($allow_forum_id) ? array_intersect($allowed_forum_ids, $allow_forum_id_array) : $allowed_forum_ids);
  33. if (empty($allowed_forum_id_array))
  34. {
  35. $template->assign_var('NO_EVENTS', true);
  36. }
  37. else
  38. {
  39. $allowed_forum_ids_sql = ' AND t.forum_id IN (' . implode(',', $allowed_forum_id_array) . ') ';
  40. $sql = "SELECT t.*, f.forum_name
  41. FROM " . FORUMS_TABLE . " AS f, " . TOPICS_TABLE . " AS t
  42. WHERE t.topic_status <> 2
  43. " . $allowed_forums_sql . "
  44. AND f.forum_id = t.forum_id
  45. AND t.topic_calendar_time > " . time() . "
  46. ORDER BY t.topic_calendar_time ASC
  47. LIMIT " . $events_number;
  48. $result = $db->sql_query($sql);
  49. $events_number_counter = $db->sql_numrows($result);
  50. if (empty($result) || empty($events_number_counter))
  51. {
  52. $template->assign_var('NO_EVENTS', true);
  53. }
  54. else
  55. {
  56. $template->assign_var('SHOW_END_TIME', $show_end_date);
  57. $i = 0;
  58. $event_rows = $db->sql_fetchrowset($result);
  59. $db->sql_freeresult($result);
  60. $topic_ids = array();
  61. foreach ($event_rows as $event_row)
  62. {
  63. $topic_ids[] = $event_row['topic_id'];
  64. }
  65. if ($user->data['session_logged_in'] && !$user->data['is_bot'])
  66. {
  67. $sql = "SELECT topic_id, registration_status FROM " . REGISTRATION_TABLE . "
  68. WHERE " . $db->sql_in_set('topic_id', $topic_ids) . "
  69. AND registration_user_id = " . $user->data['user_id'];
  70. $result = $db->sql_query($sql);
  71. $reg_rows = $db->sql_fetchrowset($result);
  72. $db->sql_freeresult($result);
  73. $reg_array = array();
  74. foreach ($reg_rows as $reg_row)
  75. {
  76. $reg_array[$reg_row['topic_id']] = $reg_row['registration_status'];
  77. }
  78. }
  79. foreach ($event_rows as $event_row)
  80. {
  81. $event_row['topic_title'] = censor_text($event_row['topic_title']);
  82. $reg_info = '';
  83. if (!empty($event_row['topic_reg']) && $user->data['session_logged_in'] && !$user->data['is_bot'])
  84. {
  85. $reg_info = '&nbsp;<span class="text_orange">&bull;</span>';
  86. if (!empty($reg_array[$event_row['topic_id']]))
  87. {
  88. /*
  89. define('REG_OPTION1', 1);
  90. define('REG_OPTION2', 2);
  91. define('REG_OPTION3', 3);
  92. define('REG_UNREGISTER', 4);
  93. */
  94. if ($reg_array[$event_row['topic_id']] == REG_OPTION1)
  95. {
  96. $reg_info = '&nbsp;<span class="text_green">&bull;</span>';
  97. }
  98. elseif ($reg_array[$event_row['topic_id']] == REG_OPTION2)
  99. {
  100. $reg_info = '&nbsp;<span class="text_blue">&bull;</span>';
  101. }
  102. elseif ($reg_array[$event_row['topic_id']] == REG_OPTION3)
  103. {
  104. $reg_info = '&nbsp;<span class="text_red">&bull;</span>';
  105. }
  106. }
  107. }
  108. $row_class = (!($i % 2)) ? $theme['td_class1'] : $theme['td_class2'];
  109. $template->assign_block_vars('event_row', array(
  110. 'ROW_CLASS' => $row_class,
  111. 'EVENT_START_DATE' => gmdate($lang['DATE_FORMAT_DATE'], $event_row['topic_calendar_time']),
  112. 'EVENT_START_TIME' => gmdate($lang['DATE_FORMAT_TIME'], $event_row['topic_calendar_time']),
  113. 'EVENT_END_DATE' => gmdate($lang['DATE_FORMAT_DATE'], $event_row['topic_calendar_time'] + $event_row['topic_calendar_duration']),
  114. 'EVENT_END_TIME' => gmdate($lang['DATE_FORMAT_TIME'], $event_row['topic_calendar_time'] + $event_row['topic_calendar_duration']),
  115. /*
  116. 'EVENT_START_DATE' => create_date($lang['DATE_FORMAT_DATE'], $event_row['topic_calendar_time'], $config['board_timezone']),
  117. 'EVENT_START_TIME' => create_date($lang['DATE_FORMAT_TIME'], $event_row['topic_calendar_time'], $config['board_timezone']),
  118. 'EVENT_END_DATE' => create_date($lang['DATE_FORMAT_DATE'], $event_row['topic_calendar_time'], $config['board_timezone']),
  119. 'EVENT_END_TIME' => create_date($lang['DATE_FORMAT_TIME'], $event_row['topic_calendar_time'], $config['board_timezone']),
  120. */
  121. 'U_EVENT_FORUM' => append_sid(CMS_PAGE_VIEWFORUM . '?' . POST_FORUM_URL . '=' . $event_row['forum_id']),
  122. 'L_EVENT_FORUM' => $event_row['forum_name'],
  123. 'U_EVENT_TITLE' => append_sid(CMS_PAGE_VIEWTOPIC . '?' . POST_FORUM_URL . '=' . $event_row['forum_id'] . '&amp;' . POST_TOPIC_URL . '=' . $event_row['topic_id']),
  124. 'L_EVENT_TITLE' => $event_row['topic_title'] . $reg_info,
  125. )
  126. );
  127. $i++;
  128. }
  129. }
  130. }
  131. }
  132. }
  133. cms_block_calendar_events();
  134. ?>