Parcourir la source

Merge branch 'master' of https://github.com/Spuds/playpen

emanuele il y a 13 ans
Parent
commit
63edc63e39
99 fichiers modifiés avec 142 ajouts et 76 suppressions
  1. 5 4
      Sources/Calendar.php
  2. 4 4
      Sources/Load.php
  3. 1 1
      Sources/ManageCalendar.php
  4. 0 2
      Sources/ManagePermissions.php
  5. 0 9
      Sources/Subs-Auth.php
  6. 2 2
      Sources/Subs-Calendar.php
  7. 30 20
      Sources/Who.php
  8. 1 1
      Themes/default/ManageBoards.template.php
  9. 55 9
      Themes/default/Who.template.php
  10. 1 1
      Themes/default/Xml.template.php
  11. 8 2
      Themes/default/css/index.css
  12. BIN
      Themes/default/images/admin/post_moderation_allow.png
  13. BIN
      Themes/default/images/admin/post_moderation_deny.png
  14. BIN
      Themes/default/images/admin/post_moderation_moderate.png
  15. BIN
      Themes/default/images/bbc/smg.png
  16. BIN
      Themes/default/images/buttons/restore_topic.png
  17. BIN
      Themes/default/images/icons/info.png
  18. BIN
      Themes/default/images/icons/quick_lock.png
  19. BIN
      Themes/default/images/icons/quick_sticky_lock.png
  20. BIN
      Themes/default/images/ip.png
  21. BIN
      Themes/default/images/post/recycled.png
  22. BIN
      Themes/default/images/sort_down.png
  23. BIN
      Themes/default/images/sort_up.png
  24. BIN
      Themes/default/images/star.png
  25. BIN
      Themes/default/images/staradmin.png
  26. BIN
      Themes/default/images/stargmod.png
  27. BIN
      Themes/default/images/stats_board.png
  28. BIN
      Themes/default/images/stats_boards.png
  29. BIN
      Themes/default/images/stats_info.png
  30. BIN
      Themes/default/images/stats_pie.png
  31. BIN
      Themes/default/images/stats_views.png
  32. BIN
      Themes/default/images/theme/backdrop.png
  33. BIN
      Themes/default/images/theme/main_block.png
  34. BIN
      Themes/default/images/theme/menu_gfx.png
  35. BIN
      Themes/default/images/theme/quickbuttons.png
  36. BIN
      Themes/default/images/theme/submit_bg.png
  37. BIN
      Themes/default/images/topic/hot_poll.png
  38. BIN
      Themes/default/images/topic/hot_poll_locked.png
  39. BIN
      Themes/default/images/topic/hot_poll_locked_sticky.png
  40. BIN
      Themes/default/images/topic/hot_poll_sticky.png
  41. BIN
      Themes/default/images/topic/hot_post.png
  42. BIN
      Themes/default/images/topic/hot_post_locked.png
  43. BIN
      Themes/default/images/topic/hot_post_locked_sticky.png
  44. BIN
      Themes/default/images/topic/hot_post_sticky.png
  45. BIN
      Themes/default/images/topic/my_hot_poll.png
  46. BIN
      Themes/default/images/topic/my_hot_poll_locked.png
  47. BIN
      Themes/default/images/topic/my_hot_poll_locked_sticky.png
  48. BIN
      Themes/default/images/topic/my_hot_poll_sticky.png
  49. BIN
      Themes/default/images/topic/my_hot_post.png
  50. BIN
      Themes/default/images/topic/my_hot_post_locked.png
  51. BIN
      Themes/default/images/topic/my_hot_post_locked_sticky.png
  52. BIN
      Themes/default/images/topic/my_hot_post_sticky.png
  53. BIN
      Themes/default/images/topic/my_normal_poll.png
  54. BIN
      Themes/default/images/topic/my_normal_poll_locked.png
  55. BIN
      Themes/default/images/topic/my_normal_poll_locked_sticky.png
  56. BIN
      Themes/default/images/topic/my_normal_poll_sticky.png
  57. BIN
      Themes/default/images/topic/my_normal_post.png
  58. BIN
      Themes/default/images/topic/my_normal_post_locked.png
  59. BIN
      Themes/default/images/topic/my_normal_post_locked_sticky.png
  60. BIN
      Themes/default/images/topic/my_normal_post_sticky.png
  61. BIN
      Themes/default/images/topic/my_veryhot_poll.png
  62. BIN
      Themes/default/images/topic/my_veryhot_poll_locked.png
  63. BIN
      Themes/default/images/topic/my_veryhot_poll_locked_sticky.png
  64. BIN
      Themes/default/images/topic/my_veryhot_poll_sticky.png
  65. BIN
      Themes/default/images/topic/my_veryhot_post.png
  66. BIN
      Themes/default/images/topic/my_veryhot_post_locked.png
  67. BIN
      Themes/default/images/topic/my_veryhot_post_locked_sticky.png
  68. BIN
      Themes/default/images/topic/my_veryhot_post_sticky.png
  69. BIN
      Themes/default/images/topic/normal_poll.png
  70. BIN
      Themes/default/images/topic/normal_poll_locked.png
  71. BIN
      Themes/default/images/topic/normal_poll_locked_sticky.png
  72. BIN
      Themes/default/images/topic/normal_poll_sticky.png
  73. BIN
      Themes/default/images/topic/normal_post.png
  74. BIN
      Themes/default/images/topic/normal_post_locked.png
  75. BIN
      Themes/default/images/topic/normal_post_locked_sticky.png
  76. BIN
      Themes/default/images/topic/normal_post_sticky.png
  77. BIN
      Themes/default/images/topic/veryhot_poll.png
  78. BIN
      Themes/default/images/topic/veryhot_poll_locked.png
  79. BIN
      Themes/default/images/topic/veryhot_poll_locked_sticky.png
  80. BIN
      Themes/default/images/topic/veryhot_poll_sticky.png
  81. BIN
      Themes/default/images/topic/veryhot_post.png
  82. BIN
      Themes/default/images/topic/veryhot_post_locked.png
  83. BIN
      Themes/default/images/topic/veryhot_post_locked_sticky.png
  84. BIN
      Themes/default/images/topic/veryhot_post_sticky.png
  85. BIN
      Themes/default/images/useroff.png
  86. BIN
      Themes/default/images/useron.png
  87. 1 4
      Themes/default/index.template.php
  88. 1 1
      Themes/default/languages/Errors.english.php
  89. 2 0
      Themes/default/languages/Help.english.php
  90. 2 2
      Themes/default/languages/ManageBoards.english.php
  91. 1 1
      Themes/default/languages/ManageCalendar.english.php
  92. 1 1
      Themes/default/languages/ManageMaintenance.english.php
  93. 0 2
      Themes/default/languages/ManagePermissions.english.php
  94. 3 1
      Themes/default/languages/Who.english.php
  95. 1 1
      index.php
  96. 3 3
      other/install_2-1_sqlite.sql
  97. 1 1
      other/upgrade_2-1_mysql.sql
  98. 5 2
      other/upgrade_2-1_postgresql.sql
  99. 14 2
      other/upgrade_2-1_sqlite.sql

+ 5 - 4
Sources/Calendar.php

@@ -331,8 +331,9 @@ function iCalDownload()
 {
 {
 	global $smcFunc, $sourcedir, $forum_version, $context, $modSettings, $webmaster_email, $mbname;
 	global $smcFunc, $sourcedir, $forum_version, $context, $modSettings, $webmaster_email, $mbname;
 
 
-	// This requires the export permission
+	// You can't export if the calendar export feature is off.
-	isAllowedTo('calendar_export');
+	if (empty($modSettings['cal_export']))
+		fatal_lang_error('calendar_export_off', false);
 	
 	
 	// Goes without saying that this is required.
 	// Goes without saying that this is required.
 	if (!isset($_REQUEST['eventid']))
 	if (!isset($_REQUEST['eventid']))
@@ -360,7 +361,7 @@ function iCalDownload()
 	$datestamp = date('Ymd\THis\Z', time());
 	$datestamp = date('Ymd\THis\Z', time());
 	$datestart = $event['year'] . ($event['month'] < 10 ? '0' . $event['month'] : $event['month']) . ($event['day'] < 10 ? '0' . $event['day'] : $event['day']);
 	$datestart = $event['year'] . ($event['month'] < 10 ? '0' . $event['month'] : $event['month']) . ($event['day'] < 10 ? '0' . $event['day'] : $event['day']);
 
 
-	// Do we have a mutli day event?
+	// Do we have a event that spans several days?
 	if ($event['span'] > 1)
 	if ($event['span'] > 1)
 	{
 	{
 		$dateend = strtotime($event['year'] . '-' . ($event['month'] < 10 ? '0' . $event['month'] : $event['month']) . '-' . ($event['day'] < 10 ? '0' . $event['day'] : $event['day']));
 		$dateend = strtotime($event['year'] . '-' . ($event['month'] < 10 ? '0' . $event['month'] : $event['month']) . '-' . ($event['day'] < 10 ? '0' . $event['day'] : $event['day']));
@@ -408,7 +409,7 @@ function iCalDownload()
 	header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()) . 'GMT');
 	header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()) . 'GMT');
 	header('Accept-Ranges: bytes');
 	header('Accept-Ranges: bytes');
 	header('Connection: close');
 	header('Connection: close');
-	header('Content-Disposition: attachment; filename=' . $event['title'] . '.ics');
+	header('Content-Disposition: attachment; filename="' . $event['title'] . '.ics"');
 	if (empty($modSettings['enableCompressedOutput']))
 	if (empty($modSettings['enableCompressedOutput']))
 		header('Content-Length: ' . $smcFunc['strlen']($filecontents));
 		header('Content-Length: ' . $smcFunc['strlen']($filecontents));
 	
 	

+ 4 - 4
Sources/Load.php

@@ -452,8 +452,7 @@ function loadUserSettings()
 		$user_info['query_see_board'] = '1=1';
 		$user_info['query_see_board'] = '1=1';
 	// Otherwise just the groups in $user_info['groups'].
 	// Otherwise just the groups in $user_info['groups'].
 	else
 	else
-		$user_info['query_see_board'] = '((FIND_IN_SET(' . implode(', b.member_groups) != 0 OR FIND_IN_SET(', $user_info['groups']) . ', b.member_groups) != 0' . (!empty($modSettings['deny_boards_access']) ? ') AND (FIND_IN_SET(' . implode(', b.deny_member_groups) = 0 AND FIND_IN_SET(', $user_info['groups']) . ', b.deny_member_groups) = 0)' : '') . (isset($user_info['mod_cache']) ? ' OR ' . $user_info['mod_cache']['mq'] : '') . ')';
+		$user_info['query_see_board'] = '((FIND_IN_SET(' . implode(', b.member_groups) != 0 OR FIND_IN_SET(', $user_info['groups']) . ', b.member_groups) != 0)' . (!empty($modSettings['deny_boards_access']) ? ' AND (FIND_IN_SET(' . implode(', b.deny_member_groups) = 0 AND FIND_IN_SET(', $user_info['groups']) . ', b.deny_member_groups) = 0)' : '') . (isset($user_info['mod_cache']) ? ' OR ' . $user_info['mod_cache']['mq'] : '') . ')';
-
 	// Build the list of boards they WANT to see.
 	// Build the list of boards they WANT to see.
 	// This will take the place of query_see_boards in certain spots, so it better include the boards they can see also
 	// This will take the place of query_see_boards in certain spots, so it better include the boards they can see also
 
 
@@ -2651,7 +2650,7 @@ function cache_get_data($key, $ttl = 120)
 		$st = microtime();
 		$st = microtime();
 	}
 	}
 
 
-	$key = md5($boardurl . filemtime($sourcedir . '/Load.php')) . '-SMF-' . strtr($key, ':', '-');
+	$key = md5($boardurl . filemtime($sourcedir . '/Load.php')) . '-SMF-' . strtr($key, ':/', '-_');
 
 
 	switch ($cache_accelerator)
 	switch ($cache_accelerator)
 	{
 	{
@@ -2698,7 +2697,8 @@ function cache_get_data($key, $ttl = 120)
 			// Otherwise it's SMF data!
 			// Otherwise it's SMF data!
 			if (file_exists($cachedir . '/data_' . $key . '.php') && filesize($cachedir . '/data_' . $key . '.php') > 10)
 			if (file_exists($cachedir . '/data_' . $key . '.php') && filesize($cachedir . '/data_' . $key . '.php') > 10)
 			{
 			{
-				require($cachedir . '/data_' . $key . '.php');
+				// php will cache file_exists et all, we can't 100% depend on its results so proceed with caution
+				@include($cachedir . '/data_' . $key . '.php');
 				if (!empty($expired) && isset($value))
 				if (!empty($expired) && isset($value))
 				{
 				{
 					@unlink($cachedir . '/data_' . $key . '.php');
 					@unlink($cachedir . '/data_' . $key . '.php');

+ 1 - 1
Sources/ManageCalendar.php

@@ -314,13 +314,13 @@ function ModifyCalendarSettings($return_config = false)
 			array('permissions', 'calendar_post'),
 			array('permissions', 'calendar_post'),
 			array('permissions', 'calendar_edit_own'),
 			array('permissions', 'calendar_edit_own'),
 			array('permissions', 'calendar_edit_any'),
 			array('permissions', 'calendar_edit_any'),
-			array('permissions', 'calendar_export'),
 		'',
 		'',
 			// How many days to show on board index, and where to display events etc?
 			// How many days to show on board index, and where to display events etc?
 			array('int', 'cal_days_for_index', 6, 'postinput' => $txt['days_word']),
 			array('int', 'cal_days_for_index', 6, 'postinput' => $txt['days_word']),
 			array('select', 'cal_showholidays', array(0 => $txt['setting_cal_show_never'], 1 => $txt['setting_cal_show_cal'], 3 => $txt['setting_cal_show_index'], 2 => $txt['setting_cal_show_all'])),
 			array('select', 'cal_showholidays', array(0 => $txt['setting_cal_show_never'], 1 => $txt['setting_cal_show_cal'], 3 => $txt['setting_cal_show_index'], 2 => $txt['setting_cal_show_all'])),
 			array('select', 'cal_showbdays', array(0 => $txt['setting_cal_show_never'], 1 => $txt['setting_cal_show_cal'], 3 => $txt['setting_cal_show_index'], 2 => $txt['setting_cal_show_all'])),
 			array('select', 'cal_showbdays', array(0 => $txt['setting_cal_show_never'], 1 => $txt['setting_cal_show_cal'], 3 => $txt['setting_cal_show_index'], 2 => $txt['setting_cal_show_all'])),
 			array('select', 'cal_showevents', array(0 => $txt['setting_cal_show_never'], 1 => $txt['setting_cal_show_cal'], 3 => $txt['setting_cal_show_index'], 2 => $txt['setting_cal_show_all'])),
 			array('select', 'cal_showevents', array(0 => $txt['setting_cal_show_never'], 1 => $txt['setting_cal_show_cal'], 3 => $txt['setting_cal_show_index'], 2 => $txt['setting_cal_show_all'])),
+			array('check', 'cal_export'),
 		'',
 		'',
 			// Linking events etc...
 			// Linking events etc...
 			array('select', 'cal_defaultboard', $boards),
 			array('select', 'cal_defaultboard', $boards),

+ 0 - 2
Sources/ManagePermissions.php

@@ -1463,7 +1463,6 @@ function loadAllPermissions($loadType = 'classic')
 			'pm_read' => array(false, 'pm', 'use_pm_system'),
 			'pm_read' => array(false, 'pm', 'use_pm_system'),
 			'pm_send' => array(false, 'pm', 'use_pm_system'),
 			'pm_send' => array(false, 'pm', 'use_pm_system'),
 			'calendar_view' => array(false, 'calendar', 'view_basic_info'),
 			'calendar_view' => array(false, 'calendar', 'view_basic_info'),
-			'calendar_export' => array(false, 'calendar', 'view_basic_info'),
 			'calendar_post' => array(false, 'calendar', 'post_calendar'),
 			'calendar_post' => array(false, 'calendar', 'post_calendar'),
 			'calendar_edit' => array(true, 'calendar', 'post_calendar', 'moderate_general'),
 			'calendar_edit' => array(true, 'calendar', 'post_calendar', 'moderate_general'),
 			'admin_forum' => array(false, 'maintenance', 'administrate'),
 			'admin_forum' => array(false, 'maintenance', 'administrate'),
@@ -1544,7 +1543,6 @@ function loadAllPermissions($loadType = 'classic')
 		$hiddenPermissions[] = 'calendar_view';
 		$hiddenPermissions[] = 'calendar_view';
 		$hiddenPermissions[] = 'calendar_post';
 		$hiddenPermissions[] = 'calendar_post';
 		$hiddenPermissions[] = 'calendar_edit';
 		$hiddenPermissions[] = 'calendar_edit';
-		$hiddenPermissions[] = 'calendar_export';
 	}
 	}
 	if (!in_array('w', $context['admin_features']))
 	if (!in_array('w', $context['admin_features']))
 		$hiddenPermissions[] = 'issue_warning';
 		$hiddenPermissions[] = 'issue_warning';

+ 0 - 9
Sources/Subs-Auth.php

@@ -101,19 +101,10 @@ function setLoginCookie($cookie_length, $id, $password = '')
 		session_regenerate_id();
 		session_regenerate_id();
 		$_SESSION = $oldSessionData;
 		$_SESSION = $oldSessionData;
 
 
-		// Make sure to store the cookie of the new session.
-		if (!isset($_COOKIE[session_name()]) || $_COOKIE[session_name()] != session_id())
-		{
-			$sessionCookieLifetime = ini_get('session.cookie_lifetime');
-			smf_setcookie(session_name(), session_id(), time() + (empty($sessionCookieLifetime) ? $cookie_length : $sessionCookieLifetime), $cookie_url[1], $cookie_url[0], !empty($modSettings['secureCookies']));
-		}
-
 		$_SESSION['login_' . $cookiename] = $data;
 		$_SESSION['login_' . $cookiename] = $data;
 	}
 	}
 }
 }
 
 
-
-
 /**
 /**
  * Get the domain and path for the cookie
  * Get the domain and path for the cookie
  * - normally, local and global should be the localCookies and globalCookies settings, respectively.
  * - normally, local and global should be the localCookies and globalCookies settings, respectively.

+ 2 - 2
Sources/Subs-Calendar.php

@@ -177,7 +177,7 @@ function getEventRange($low_date, $high_date, $use_permissions = true)
 					'link' => $row['id_board'] == 0 ? $row['title'] : '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.0">' . $row['title'] . '</a>',
 					'link' => $row['id_board'] == 0 ? $row['title'] : '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.0">' . $row['title'] . '</a>',
 					'can_edit' => allowedTo('calendar_edit_any') || ($row['id_member'] == $user_info['id'] && allowedTo('calendar_edit_own')),
 					'can_edit' => allowedTo('calendar_edit_any') || ($row['id_member'] == $user_info['id'] && allowedTo('calendar_edit_own')),
 					'modify_href' => $scripturl . '?action=' . ($row['id_board'] == 0 ? 'calendar;sa=post;' : 'post;msg=' . $row['id_first_msg'] . ';topic=' . $row['id_topic'] . '.0;calendar;') . 'eventid=' . $row['id_event'] . ';' . $context['session_var'] . '=' . $context['session_id'],
 					'modify_href' => $scripturl . '?action=' . ($row['id_board'] == 0 ? 'calendar;sa=post;' : 'post;msg=' . $row['id_first_msg'] . ';topic=' . $row['id_topic'] . '.0;calendar;') . 'eventid=' . $row['id_event'] . ';' . $context['session_var'] . '=' . $context['session_id'],
-					'can_export' => allowedTo('calendar_export'),
+					'can_export' => !empty($modSettings['cal_export']) ? true : false,
 					'export_href' => $scripturl . '?action=calendar;sa=ical;eventid=' . $row['id_event'] . ';' . $context['session_var'] . '=' . $context['session_id'],
 					'export_href' => $scripturl . '?action=calendar;sa=ical;eventid=' . $row['id_event'] . ';' . $context['session_var'] . '=' . $context['session_id'],
 				);
 				);
 			// Otherwise, this is going to be cached and the VIEWER'S permissions should apply... just put together some info.
 			// Otherwise, this is going to be cached and the VIEWER'S permissions should apply... just put together some info.
@@ -192,7 +192,7 @@ function getEventRange($low_date, $high_date, $use_permissions = true)
 					'href' => $row['id_topic'] == 0 ? '' : $scripturl . '?topic=' . $row['id_topic'] . '.0',
 					'href' => $row['id_topic'] == 0 ? '' : $scripturl . '?topic=' . $row['id_topic'] . '.0',
 					'link' => $row['id_topic'] == 0 ? $row['title'] : '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.0">' . $row['title'] . '</a>',
 					'link' => $row['id_topic'] == 0 ? $row['title'] : '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.0">' . $row['title'] . '</a>',
 					'can_edit' => false,
 					'can_edit' => false,
-					'can_export' => false,
+					'can_export' => !empty($modSettings['cal_export']) ? true : false,
 					'topic' => $row['id_topic'],
 					'topic' => $row['id_topic'],
 					'msg' => $row['id_first_msg'],
 					'msg' => $row['id_first_msg'],
 					'poster' => $row['id_member'],
 					'poster' => $row['id_member'],

+ 30 - 20
Sources/Who.php

@@ -684,37 +684,37 @@ function Credits($in_admin = false)
 			),
 			),
 		),
 		),
 	);
 	);
-
+	
-	$context['copyrights'] = array(
+	// Give credit to any graphic library's, software library's, plugins etc
-		'smf' => sprintf($forum_copyright, $forum_version),
+	$context['credits_software_graphics'] = array(
-		'other' => array(
+		'graphics' => array(
 			'<a href="http://p.yusukekamiyamane.com/">Fugue Icons</a> | &copy; 2012 Yusuke Kamiyamane | These icons are licensed under a Creative Commons Attribution 3.0 License',
 			'<a href="http://p.yusukekamiyamane.com/">Fugue Icons</a> | &copy; 2012 Yusuke Kamiyamane | These icons are licensed under a Creative Commons Attribution 3.0 License',
 		),
 		),
-		/* Modification Authors:  You may add a copyright statement to this array for your mods.
+		'software' => array(
-			Copyright statements should be in the form of a value only without a array key.  I.E.:
+			'<a href="http://jquery.org/">JQuery</a> | &copy; John Resig | Licensed under <a href="http://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt">The MIT License (MIT)</a>',
-				'Some Mod by Thantos &copy; 2010',
+			'<a href="http://cherne.net/brian/resources/jquery.hoverIntent.html">hoverIntent</a> | &copy; Brian Cherne | Licensed under <a href="http://en.wikipedia.org/wiki/MIT_License">The MIT License (MIT)</a>',
-				$txt['some_mod_copyright'],
+			'<a href="http://users.tpg.com.au/j_birch/plugins/superfish/">Superfish</a> | &copy; Joel Birch | Licensed under <a href="http://en.wikipedia.org/wiki/MIT_License">The MIT License (MIT)</a>',
-		*/
-		'mods' => array(
 		),
 		),
 	);
 	);
-
+	
 	// support for mods that use the <credits> tag via the package manager
 	// support for mods that use the <credits> tag via the package manager
+	$context['credits_modifications'] = array();
 	if (($mods = cache_get_data('mods_credits', 86400)) === null)
 	if (($mods = cache_get_data('mods_credits', 86400)) === null)
 	{
 	{
 		$mods = array();
 		$mods = array();
-		$request = $smcFunc['db_query']('', '
+		$request = $smcFunc['db_query']('substring', '
 			SELECT version, name, credits
 			SELECT version, name, credits
 			FROM {db_prefix}log_packages
 			FROM {db_prefix}log_packages
 			WHERE install_state = {int:installed_mods}
 			WHERE install_state = {int:installed_mods}
 				AND credits != {string:empty}
 				AND credits != {string:empty}
-				AND SUBSTRING(filename FROM 1 FOR 9) != {string:patch_name}',
+				AND SUBSTRING(filename, 1, 9) != {string:patch_name}',
 			array(
 			array(
 				'installed_mods' => 1,
 				'installed_mods' => 1,
 				'patch_name' => 'smf_patch',
 				'patch_name' => 'smf_patch',
 				'empty' => '',
 				'empty' => '',
 			)
 			)
 		);
 		);
+		
 		while ($row = $smcFunc['db_fetch_assoc']($request))
 		while ($row = $smcFunc['db_fetch_assoc']($request))
 		{
 		{
 			$credit_info = unserialize($row['credits']);
 			$credit_info = unserialize($row['credits']);
@@ -726,13 +726,26 @@ function Credits($in_admin = false)
 
 
 			// build this one out and stash it away
 			// build this one out and stash it away
 			$mod_name = empty($credit_info['url']) ? $title : '<a href="' . $credit_info['url'] . '">' . $title . '</a>';
 			$mod_name = empty($credit_info['url']) ? $title : '<a href="' . $credit_info['url'] . '">' . $title . '</a>';
-			$mods[] =  $mod_name . (!empty($license) ? ' | ' . $license  : '') . (!empty($copyright) ? ' | ' . $copyright  : '');
+			$mods[] = $mod_name . (!empty($license) ? ' | ' . $license  : '') . (!empty($copyright) ? ' | ' . $copyright  : '');
 		}
 		}
 		cache_put_data('mods_credits', $mods, 86400);
 		cache_put_data('mods_credits', $mods, 86400);
 	}
 	}
-
+	$context['credits_modifications'] = $mods;
-	$context['copyrights']['mods'] += $mods;
+	
-
+	$context['copyrights'] = array(
+		'smf' => sprintf($forum_copyright, $forum_version),
+		/* Modification Authors:  You may add a copyright statement to this array for your mods.
+			Copyright statements should be in the form of a value only without a array key.  I.E.:
+				'Some Mod by Thantos &copy; 2010',
+				$txt['some_mod_copyright'],
+		*/
+		'mods' => array(
+		),
+	);
+	
+	// Support for those that want to use a hook as well
+	call_integration_hook('integrate_credits');
+	
 	if (!$in_admin)
 	if (!$in_admin)
 	{
 	{
 		loadTemplate('Who');
 		loadTemplate('Who');
@@ -740,9 +753,6 @@ function Credits($in_admin = false)
 		$context['robot_no_index'] = true;
 		$context['robot_no_index'] = true;
 		$context['page_title'] = $txt['credits'];
 		$context['page_title'] = $txt['credits'];
 	}
 	}
-
-	// Support for those that want to use a hook as well
-	call_integration_hook('integrate_credits');
 }
 }
 
 
 ?>
 ?>

+ 1 - 1
Themes/default/ManageBoards.template.php

@@ -404,7 +404,7 @@ function template_modify_board()
 
 
 	if (empty($modSettings['deny_boards_access']))
 	if (empty($modSettings['deny_boards_access']))
 		echo '
 		echo '
-							<em>', $txt['check_all'], '</em> <input type="checkbox" class="input_check" onclick="invertAll(this, this.form, \'groups[]\');" /><br />
+							<em>', $txt['check_all'], '</em> <input type="checkbox" class="input_check" onclick="invertAll(this, this.form, \'groups[\');" /><br />
 							<br />
 							<br />
 						</dd>';
 						</dd>';
 	else
 	else

+ 55 - 9
Themes/default/Who.template.php

@@ -193,7 +193,62 @@ function template_credits()
 			<span class="botslice"><span></span></span>
 			<span class="botslice"><span></span></span>
 		</div>';
 		</div>';
 	}
 	}
+	
+	// Other software and graphics
+	if (!empty($context['credits_software_graphics']))
+	{
+		echo '
+		<div class="cat_bar">
+			<h3 class="catbg">', $txt['credits_software_graphics'], '</h3>
+		</div>
+		<div class="windowbg">
+			<span class="topslice"><span></span></span>
+			<div class="content">';
+		
+		if (!empty($context['credits_software_graphics']['graphics']))
+			echo '
+				<dl>
+					<dt><strong>', $txt['credits_graphics'], '</strong></dt>
+					<dd>', implode('</dd><dd>', $context['credits_software_graphics']['graphics']), '</dd>
+				</dl>';
+		
+		if (!empty($context['credits_software_graphics']['software']))
+			echo '
+				<dl>
+					<dt><strong>', $txt['credits_software'], '</strong></dt>
+					<dd>', implode('</dd><dd>', $context['credits_software_graphics']['software']), '</dd>
+				</dl>';
+	
+		echo '
+			</div>
+			<span class="botslice"><span></span></span>
+		</div>';
+	}
+	
+	// How about Modifications, we all love em
+	if (!empty($context['credits_modifications']))
+	{
+		echo '
+		<div class="cat_bar">
+			<h3 class="catbg">', $txt['credits_modifications'], '</h3>
+		</div>
+		<div class="windowbg">
+			<span class="topslice"><span></span></span>
+			<div class="content">';
+				
+		echo '
+				<dl>
+					<dt><strong>', $txt['credits_modifications'], '</strong></dt>
+					<dd>', implode('</dd><dd>', $context['credits_modifications']), '</dd>
+				</dl>';
+		
+		echo '
+			</div>
+			<span class="botslice"><span></span></span>
+		</div>';
+	}
 
 
+	// SMF itself
 	echo '
 	echo '
 		<div class="cat_bar">
 		<div class="cat_bar">
 			<h3 class="catbg">', $txt['credits_copyright'], '</h3>
 			<h3 class="catbg">', $txt['credits_copyright'], '</h3>
@@ -209,15 +264,6 @@ function template_credits()
 					</dd>
 					</dd>
 				</dl>';
 				</dl>';
 				
 				
-	if (!empty($context['copyrights']['other']))
-	{
-		echo '
-				<dl>
-					<dt><strong>', $txt['credits_other'], '</strong></dt>
-					<dd>', implode('</dd><dd>', $context['copyrights']['other']), '</dd>
-				</dl>';
-	}
-
 	if (!empty($context['copyrights']['mods']))
 	if (!empty($context['copyrights']['mods']))
 	{
 	{
 		echo '
 		echo '

+ 1 - 1
Themes/default/Xml.template.php

@@ -168,7 +168,7 @@ function template_stats()
 	echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
 	echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
 <smf>';
 <smf>';
 	foreach ($context['yearly'] as $year)
 	foreach ($context['yearly'] as $year)
-		foreach ($year['months'] as $month);
+		foreach ($year['months'] as $month)
 		{
 		{
 			echo '
 			echo '
 	<month id="', $month['date']['year'], $month['date']['month'], '">';
 	<month id="', $month['date']['year'], $month['date']['month'], '">';

+ 8 - 2
Themes/default/css/index.css

@@ -1985,8 +1985,8 @@ p#whoisviewing
 /* poster and postarea + moderation area underneath */
 /* poster and postarea + moderation area underneath */
 .post_wrapper
 .post_wrapper
 {
 {
-	float:left;
+	float: left;
-	width:100%;
+	width: 100%;
 }
 }
 .poster
 .poster
 {
 {
@@ -2001,6 +2001,10 @@ p#whoisviewing
 {
 {
 	width: 100%;
 	width: 100%;
 }
 }
+.poster img
+{
+	vertical-align: middle;
+}
 
 
 .moderatorbar
 .moderatorbar
 {
 {
@@ -3696,6 +3700,8 @@ span.hidelink
 	}
 	}
 }
 }
 
 
+/* Styles for the tooltips
+------------------------------------------------------- */
 .tooltip
 .tooltip
 {
 {
     position: absolute;
     position: absolute;

BIN
Themes/default/images/admin/post_moderation_allow.png


BIN
Themes/default/images/admin/post_moderation_deny.png


BIN
Themes/default/images/admin/post_moderation_moderate.png


BIN
Themes/default/images/bbc/smg.png


BIN
Themes/default/images/buttons/restore_topic.png


BIN
Themes/default/images/icons/info.png


BIN
Themes/default/images/icons/quick_lock.png


BIN
Themes/default/images/icons/quick_sticky_lock.png


BIN
Themes/default/images/ip.png


BIN
Themes/default/images/post/recycled.png


BIN
Themes/default/images/sort_down.png


BIN
Themes/default/images/sort_up.png


BIN
Themes/default/images/star.png


BIN
Themes/default/images/staradmin.png


BIN
Themes/default/images/stargmod.png


BIN
Themes/default/images/stats_board.png


BIN
Themes/default/images/stats_boards.png


BIN
Themes/default/images/stats_info.png


BIN
Themes/default/images/stats_pie.png


BIN
Themes/default/images/stats_views.png


BIN
Themes/default/images/theme/backdrop.png


BIN
Themes/default/images/theme/main_block.png


BIN
Themes/default/images/theme/menu_gfx.png


BIN
Themes/default/images/theme/quickbuttons.png


BIN
Themes/default/images/theme/submit_bg.png


BIN
Themes/default/images/topic/hot_poll.png


BIN
Themes/default/images/topic/hot_poll_locked.png


BIN
Themes/default/images/topic/hot_poll_locked_sticky.png


BIN
Themes/default/images/topic/hot_poll_sticky.png


BIN
Themes/default/images/topic/hot_post.png


BIN
Themes/default/images/topic/hot_post_locked.png


BIN
Themes/default/images/topic/hot_post_locked_sticky.png


BIN
Themes/default/images/topic/hot_post_sticky.png


BIN
Themes/default/images/topic/my_hot_poll.png


BIN
Themes/default/images/topic/my_hot_poll_locked.png


BIN
Themes/default/images/topic/my_hot_poll_locked_sticky.png


BIN
Themes/default/images/topic/my_hot_poll_sticky.png


BIN
Themes/default/images/topic/my_hot_post.png


BIN
Themes/default/images/topic/my_hot_post_locked.png


BIN
Themes/default/images/topic/my_hot_post_locked_sticky.png


BIN
Themes/default/images/topic/my_hot_post_sticky.png


BIN
Themes/default/images/topic/my_normal_poll.png


BIN
Themes/default/images/topic/my_normal_poll_locked.png


BIN
Themes/default/images/topic/my_normal_poll_locked_sticky.png


BIN
Themes/default/images/topic/my_normal_poll_sticky.png


BIN
Themes/default/images/topic/my_normal_post.png


BIN
Themes/default/images/topic/my_normal_post_locked.png


BIN
Themes/default/images/topic/my_normal_post_locked_sticky.png


BIN
Themes/default/images/topic/my_normal_post_sticky.png


BIN
Themes/default/images/topic/my_veryhot_poll.png


BIN
Themes/default/images/topic/my_veryhot_poll_locked.png


BIN
Themes/default/images/topic/my_veryhot_poll_locked_sticky.png


BIN
Themes/default/images/topic/my_veryhot_poll_sticky.png


BIN
Themes/default/images/topic/my_veryhot_post.png


BIN
Themes/default/images/topic/my_veryhot_post_locked.png


BIN
Themes/default/images/topic/my_veryhot_post_locked_sticky.png


BIN
Themes/default/images/topic/my_veryhot_post_sticky.png


BIN
Themes/default/images/topic/normal_poll.png


BIN
Themes/default/images/topic/normal_poll_locked.png


BIN
Themes/default/images/topic/normal_poll_locked_sticky.png


BIN
Themes/default/images/topic/normal_poll_sticky.png


BIN
Themes/default/images/topic/normal_post.png


BIN
Themes/default/images/topic/normal_post_locked.png


BIN
Themes/default/images/topic/normal_post_locked_sticky.png


BIN
Themes/default/images/topic/normal_post_sticky.png


BIN
Themes/default/images/topic/veryhot_poll.png


BIN
Themes/default/images/topic/veryhot_poll_locked.png


BIN
Themes/default/images/topic/veryhot_poll_locked_sticky.png


BIN
Themes/default/images/topic/veryhot_poll_sticky.png


BIN
Themes/default/images/topic/veryhot_post.png


BIN
Themes/default/images/topic/veryhot_post_locked.png


BIN
Themes/default/images/topic/veryhot_post_locked_sticky.png


BIN
Themes/default/images/topic/veryhot_post_sticky.png


BIN
Themes/default/images/useroff.png


BIN
Themes/default/images/useron.png


+ 1 - 4
Themes/default/index.template.php

@@ -201,10 +201,7 @@ function template_html_above()
 </head>
 </head>
 <body id="', $context['browser_body_id'], '" class="action_', !empty($context['current_action']) ? htmlspecialchars($context['current_action']) : (!empty($context['current_board']) ? 'messageindex' : (!empty($context['current_topic']) ? 'display' : 'home')),
 <body id="', $context['browser_body_id'], '" class="action_', !empty($context['current_action']) ? htmlspecialchars($context['current_action']) : (!empty($context['current_board']) ? 'messageindex' : (!empty($context['current_topic']) ? 'display' : 'home')),
 	!empty($context['current_board']) ? ' board_' . htmlspecialchars($context['current_board']) : '',
 	!empty($context['current_board']) ? ' board_' . htmlspecialchars($context['current_board']) : '',
-	'"',
+	'">';
-	// Style per page.
-	!empty($context['body_id']) ? ' id="' . $context['body_id'] . '"' : '', '>';
-
 }
 }
 
 
 function template_body_above()
 function template_body_above()

+ 1 - 1
Themes/default/languages/Errors.english.php

@@ -64,7 +64,6 @@ $txt['cannot_post_unapproved_replies_own'] = 'You do not have permission to post
 $txt['cannot_post_unapproved_replies_any'] = 'You do not have permission to post unapproved replies to other users\' topics.';
 $txt['cannot_post_unapproved_replies_any'] = 'You do not have permission to post unapproved replies to other users\' topics.';
 $txt['cannot_calendar_edit_any'] = 'You cannot edit calendar events.';
 $txt['cannot_calendar_edit_any'] = 'You cannot edit calendar events.';
 $txt['cannot_calendar_edit_own'] = 'You don\'t have the privileges necessary to edit your own events.';
 $txt['cannot_calendar_edit_own'] = 'You don\'t have the privileges necessary to edit your own events.';
-$txt['cannot_calendar_export'] = 'Sorry, You cannot export calendar events.';
 $txt['cannot_calendar_post'] = 'Event posting isn\'t allowed - sorry.';
 $txt['cannot_calendar_post'] = 'Event posting isn\'t allowed - sorry.';
 $txt['cannot_calendar_view'] = 'Sorry, but you are not allowed to view the calendar.';
 $txt['cannot_calendar_view'] = 'Sorry, but you are not allowed to view the calendar.';
 $txt['cannot_remove_any'] = 'Sorry, but you don\'t have the privilege to remove just any topic.  Check to make sure this topic wasn\'t just moved to another board.';
 $txt['cannot_remove_any'] = 'Sorry, but you don\'t have the privilege to remove just any topic.  Check to make sure this topic wasn\'t just moved to another board.';
@@ -149,6 +148,7 @@ $txt['parent_not_found'] = 'Board structure corrupt: unable to find parent board
 $txt['modify_post_time_passed'] = 'You may not modify this post as the time limit for edits has passed.';
 $txt['modify_post_time_passed'] = 'You may not modify this post as the time limit for edits has passed.';
 
 
 $txt['calendar_off'] = 'You cannot access the calendar right now because it is disabled.';
 $txt['calendar_off'] = 'You cannot access the calendar right now because it is disabled.';
+$txt['calendar_export_off'] = 'You cannot export calendar events because that feature is currently disabled.';
 $txt['invalid_month'] = 'Invalid month value.';
 $txt['invalid_month'] = 'Invalid month value.';
 $txt['invalid_year'] = 'Invalid year value.';
 $txt['invalid_year'] = 'Invalid year value.';
 $txt['invalid_day'] = 'Invalid day value.';
 $txt['invalid_day'] = 'Invalid day value.';

+ 2 - 0
Themes/default/languages/Help.english.php

@@ -218,6 +218,7 @@ $helptxt['smileys'] = '<strong>Smiley Center</strong><br />
 	You are also able to edit message icons from here, if you have them enabled on the settings page.';
 	You are also able to edit message icons from here, if you have them enabled on the settings page.';
 $helptxt['calendar'] = '<strong>Manage Calendar</strong><br />
 $helptxt['calendar'] = '<strong>Manage Calendar</strong><br />
 	Here you can modify the current calendar settings as well as add and remove holidays that appear on the calendar.';
 	Here you can modify the current calendar settings as well as add and remove holidays that appear on the calendar.';
+$helptxt['cal_export'] = 'Exports a text file in the iCal format for importing in to other calendar applications';
 
 
 $helptxt['serversettings'] = '<strong>Server Settings</strong><br />
 $helptxt['serversettings'] = '<strong>Server Settings</strong><br />
 	Here you can perform the core configuration for your forum. This section includes the database and url settings, as well as other
 	Here you can perform the core configuration for your forum. This section includes the database and url settings, as well as other
@@ -416,6 +417,7 @@ $helptxt['queryless_urls'] = 'This changes the format of URLs a little so search
 $helptxt['countChildPosts'] = 'Checking this option will mean that posts and topics in a board\'s child board will count toward its totals on the index page.<br /><br />This will make things notably slower, but means that a parent with no posts in it won\'t show \'0\'.';
 $helptxt['countChildPosts'] = 'Checking this option will mean that posts and topics in a board\'s child board will count toward its totals on the index page.<br /><br />This will make things notably slower, but means that a parent with no posts in it won\'t show \'0\'.';
 $helptxt['fixLongWords'] = 'This option breaks words longer than a certain length into pieces so they don\'t disturb the forum\'s layout. (as much...)  This option should not be set to a value under 40. This option will not work with forums using UTF-8. This ' .  (empty($GLOBALS['context']['utf8']) ? 'WILL' : 'WILL NOT') . ' work on your server';
 $helptxt['fixLongWords'] = 'This option breaks words longer than a certain length into pieces so they don\'t disturb the forum\'s layout. (as much...)  This option should not be set to a value under 40. This option will not work with forums using UTF-8. This ' .  (empty($GLOBALS['context']['utf8']) ? 'WILL' : 'WILL NOT') . ' work on your server';
 $helptxt['allow_ignore_boards'] = 'Checking this option will allow users to select boards they wish to ignore.';
 $helptxt['allow_ignore_boards'] = 'Checking this option will allow users to select boards they wish to ignore.';
+$helptxt['deny_boards_access'] = 'Checking this option will allow you to deny access to certain boards based on membergroup access';
 
 
 $helptxt['who_enabled'] = 'This option allows you to turn on or off the ability for users to see who is browsing the forum and what they are doing.';
 $helptxt['who_enabled'] = 'This option allows you to turn on or off the ability for users to see who is browsing the forum and what they are doing.';
 
 

+ 2 - 2
Themes/default/languages/ManageBoards.english.php

@@ -88,8 +88,8 @@ $txt['recycle_board'] = 'Board for recycled topics';
 $txt['recycle_board_unselected_notice'] = 'You have enabled the recycling of topics without specifying a board to place them in.  This feature will not be enabled until you specify a board to place recycled topics into.';
 $txt['recycle_board_unselected_notice'] = 'You have enabled the recycling of topics without specifying a board to place them in.  This feature will not be enabled until you specify a board to place recycled topics into.';
 $txt['countChildPosts'] = 'Count child\'s posts in parent\'s totals';
 $txt['countChildPosts'] = 'Count child\'s posts in parent\'s totals';
 $txt['allow_ignore_boards'] = 'Allow boards to be ignored';
 $txt['allow_ignore_boards'] = 'Allow boards to be ignored';
-$txt['deny_boards_access'] = 'Enable the option to deny boards access to a group';
+$txt['deny_boards_access'] = 'Enable the option to deny board access based on membergroup';
-$txt['boardsaccess_option_desc'] = 'For each permission you can pick either \'Allow\' (A), \'Ignore\' (X), or <span class="alert">\'Deny\' (D)</span>.<br /><br />Remember that if you deny access, any member - whether moderator or otherwise - that is in that group will be denied that as well.<br />For this reason, you should use deny carefully, only when <strong>necessary</strong>. Ignore, on the other hand, denies unless otherwise granted.';
+$txt['boardsaccess_option_desc'] = 'For each permission you can choose \'Allow\' (A), \'Ignore\' (X), or <span class="alert">\'Deny\' (D)</span>.<br /><br />If you deny access, any member - (including moderators) - in that group will be denied access.<br />For this reason, you should set deny carefully, only when <strong>necessary</strong>. Ignore, on the other hand, denies unless otherwise granted.';
 
 
 $txt['mboards_select_destination'] = 'Select destination for board \'<strong>%1$s</strong>\'';
 $txt['mboards_select_destination'] = 'Select destination for board \'<strong>%1$s</strong>\'';
 $txt['mboards_cancel_moving'] = 'Cancel moving';
 $txt['mboards_cancel_moving'] = 'Cancel moving';

+ 1 - 1
Themes/default/languages/ManageCalendar.english.php

@@ -7,7 +7,6 @@ $txt['calendar_desc'] = 'From here you can modify all aspects of the calendar.';
 $txt['calendar_settings_desc'] = 'Here you can enable the calendar, and determine the settings that it should use.';
 $txt['calendar_settings_desc'] = 'Here you can enable the calendar, and determine the settings that it should use.';
 $txt['save_settings'] = 'Save Settings';
 $txt['save_settings'] = 'Save Settings';
 $txt['groups_calendar_view'] = 'Membergroups allowed to view the calendar';
 $txt['groups_calendar_view'] = 'Membergroups allowed to view the calendar';
-$txt['groups_calendar_export'] = 'Membergroups allowed to export calendar events';
 $txt['groups_calendar_post'] = 'Membergroups allowed to create events';
 $txt['groups_calendar_post'] = 'Membergroups allowed to create events';
 $txt['groups_calendar_edit_own'] = 'Membergroups allowed to edit their own events';
 $txt['groups_calendar_edit_own'] = 'Membergroups allowed to edit their own events';
 $txt['groups_calendar_edit_any'] = 'Membergroups allowed to edit any events';
 $txt['groups_calendar_edit_any'] = 'Membergroups allowed to edit any events';
@@ -17,6 +16,7 @@ $txt['setting_cal_days_for_index'] = 'Max days in advance on board index';
 $txt['setting_cal_showholidays'] = 'Show holidays';
 $txt['setting_cal_showholidays'] = 'Show holidays';
 $txt['setting_cal_showbdays'] = 'Show birthdays';
 $txt['setting_cal_showbdays'] = 'Show birthdays';
 $txt['setting_cal_showevents'] = 'Show events';
 $txt['setting_cal_showevents'] = 'Show events';
+$txt['setting_cal_export'] = 'Allow events to be exported in Ical format';
 $txt['setting_cal_show_never'] = 'Never';
 $txt['setting_cal_show_never'] = 'Never';
 $txt['setting_cal_show_cal'] = 'In calendar only';
 $txt['setting_cal_show_cal'] = 'In calendar only';
 $txt['setting_cal_show_index'] = 'On board index only';
 $txt['setting_cal_show_index'] = 'On board index only';

+ 1 - 1
Themes/default/languages/ManageMaintenance.english.php

@@ -221,6 +221,6 @@ $txt['use_external_tool'] = 'Please consider using an external tool to backup yo
 $txt['zipped_file'] = 'If you want you can create a compressed (zipped) backup.';
 $txt['zipped_file'] = 'If you want you can create a compressed (zipped) backup.';
 $txt['plain_text'] = 'The best method to backup your database is to create a plain text file, a compressed package may not be completely reliable.';
 $txt['plain_text'] = 'The best method to backup your database is to create a plain text file, a compressed package may not be completely reliable.';
 $txt['enable_maintenance1'] = 'Due to the size of your forum, it is recommended to place your forum in "maintenance mode" before you start the backup.';
 $txt['enable_maintenance1'] = 'Due to the size of your forum, it is recommended to place your forum in "maintenance mode" before you start the backup.';
-$txt['enable_maintenance2'] = 'To proceed, due to the size of your forum, please place your fourm in "maintenance mode".';
+$txt['enable_maintenance2'] = 'To proceed, due to the size of your forum, please place your forum in "maintenance mode".';
 
 
 ?>
 ?>

+ 0 - 2
Themes/default/languages/ManagePermissions.english.php

@@ -104,8 +104,6 @@ $txt['permissionname_calendar_edit'] = 'Edit events in the calendar';
 $txt['permissionhelp_calendar_edit'] = 'An Event is a topic linked to a certain date or date range. The event can be edited by clicking the red asterisk (*) next to the event in the calendar view. In order to be able to edit an event, a user must have sufficient permissions to edit the first message of the topic that is linked to the event.';
 $txt['permissionhelp_calendar_edit'] = 'An Event is a topic linked to a certain date or date range. The event can be edited by clicking the red asterisk (*) next to the event in the calendar view. In order to be able to edit an event, a user must have sufficient permissions to edit the first message of the topic that is linked to the event.';
 $txt['permissionname_calendar_edit_own'] = 'Own events';
 $txt['permissionname_calendar_edit_own'] = 'Own events';
 $txt['permissionname_calendar_edit_any'] = 'Any events';
 $txt['permissionname_calendar_edit_any'] = 'Any events';
-$txt['permissionname_calendar_export'] = 'Export events from the calendar';
-$txt['permissionhelp_calendar_export'] = 'Exports a text file in the iCal format for importing in to other calendar applications';
 
 
 $txt['permissiongroup_maintenance'] = 'Forum administration';
 $txt['permissiongroup_maintenance'] = 'Forum administration';
 $txt['permissionname_admin_forum'] = 'Administrate forum and database';
 $txt['permissionname_admin_forum'] = 'Administrate forum and database';

+ 3 - 1
Themes/default/languages/Who.english.php

@@ -135,7 +135,9 @@ $txt['credits_anyone'] = 'And for anyone we may have missed, thank you!';
 $txt['credits_copyright'] = 'Copyrights';
 $txt['credits_copyright'] = 'Copyrights';
 $txt['credits_forum'] = 'Forum';
 $txt['credits_forum'] = 'Forum';
 $txt['credits_modifications'] = 'Modifications';
 $txt['credits_modifications'] = 'Modifications';
-$txt['credits_other'] = 'Software/Graphics';
+$txt['credits_software_graphics'] = 'Software/Graphics';
+$txt['credits_software'] = 'Software';
+$txt['credits_graphics'] = 'Graphics';
 $txt['credits_groups_ps'] = 'Project Support';
 $txt['credits_groups_ps'] = 'Project Support';
 $txt['credits_groups_dev'] = 'Developers';
 $txt['credits_groups_dev'] = 'Developers';
 $txt['credits_groups_support'] = 'Support Specialists';
 $txt['credits_groups_support'] = 'Support Specialists';

+ 1 - 1
index.php

@@ -89,7 +89,7 @@ if (isset($_GET['scheduled']))
 if (!empty($modSettings['enableCompressedOutput']) && !headers_sent())
 if (!empty($modSettings['enableCompressedOutput']) && !headers_sent())
 {
 {
 	// If zlib is being used, turn off output compression.
 	// If zlib is being used, turn off output compression.
-	if (ini_get('zlib.output_compression') == '1' || ini_get('output_handler') == 'ob_gzhandler')
+	if (ini_get('zlib.output_compression') >=  1 || ini_get('output_handler') == 'ob_gzhandler')
 		$modSettings['enableCompressedOutput'] = '0';
 		$modSettings['enableCompressedOutput'] = '0';
 	else
 	else
 	{
 	{

+ 3 - 3
other/install_2-1_sqlite.sql

@@ -506,12 +506,12 @@ CREATE TABLE {$db_prefix}boards (
   override_theme smallint NOT NULL default '0',
   override_theme smallint NOT NULL default '0',
   unapproved_posts smallint NOT NULL default '0',
   unapproved_posts smallint NOT NULL default '0',
   unapproved_topics smallint NOT NULL default '0',
   unapproved_topics smallint NOT NULL default '0',
-  redirect varchar(255) NOT NULL default ''
+  redirect varchar(255) NOT NULL default '',
-  deny_member_groups varchar(255) NOT NULL default '',
+  deny_member_groups varchar(255) NOT NULL default ''
 );
 );
 
 
 #
 #
-# Indexes for table `ban_items`
+# Indexes for table `boards`
 #
 #
 
 
 CREATE UNIQUE INDEX {$db_prefix}boards_categories ON {$db_prefix}boards (id_cat, id_board);
 CREATE UNIQUE INDEX {$db_prefix}boards_categories ON {$db_prefix}boards (id_cat, id_board);

+ 1 - 1
other/upgrade_2-1_mysql.sql

@@ -150,7 +150,7 @@ CHANGE `session_id` `session_id` char(64) NOT NULL;
 ---# Adding new columns to topics ..
 ---# Adding new columns to topics ..
 ALTER TABLE {$db_prefix}topics
 ALTER TABLE {$db_prefix}topics
 ADD COLUMN redirect_expires int(10) unsigned NOT NULL default '0',
 ADD COLUMN redirect_expires int(10) unsigned NOT NULL default '0',
-ADD COLUMN id_redirect_topic mediumint(8) unsigned NOT NULL default '0',
+ADD COLUMN id_redirect_topic mediumint(8) unsigned NOT NULL default '0';
 ---#
 ---#
 
 
 /******************************************************************************/
 /******************************************************************************/

+ 5 - 2
other/upgrade_2-1_postgresql.sql

@@ -225,7 +225,10 @@ VALUES
 --- Adding support for deny boards access
 --- Adding support for deny boards access
 /******************************************************************************/
 /******************************************************************************/
 ---# Adding new columns to boards...
 ---# Adding new columns to boards...
-ALTER TABLE {$db_prefix}boards
+---{
-ADD COLUMN deny_member_groups varchar(255) NOT NULL DEFAULT '';
+upgrade_query("
+	ALTER TABLE {$db_prefix}boards
+	ADD COLUMN deny_member_groups varchar(255) NOT NULL DEFAULT ''");
+---}
 ---#
 ---#
 
 

+ 14 - 2
other/upgrade_2-1_sqlite.sql

@@ -192,6 +192,18 @@ VALUES
 --- Adding support for deny boards access
 --- Adding support for deny boards access
 /******************************************************************************/
 /******************************************************************************/
 ---# Adding new columns to boards...
 ---# Adding new columns to boards...
-ALTER TABLE {$db_prefix}boards
+---{
-ADD COLUMN deny_member_groups varchar(255) NOT NULL DEFAULT '';
+$smcFunc['db_alter_table']('{db_prefix}boards', array(
+	'add' => array(
+		'deny_member_groups' => array(
+			'name' => 'deny_member_groups',
+			'null' => false,
+			'default' => '',
+			'type' => varchar,
+			'size' => 255,
+			'auto' => false,
+		),
+	)
+));
+---}
 ---#
 ---#