Переглянути джерело

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

emanuele 13 роки тому
батько
коміт
63edc63e39
99 змінених файлів з 142 додано та 76 видалено
  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;
 
-	// This requires the export permission
-	isAllowedTo('calendar_export');
+	// You can't export if the calendar export feature is off.
+	if (empty($modSettings['cal_export']))
+		fatal_lang_error('calendar_export_off', false);
 	
 	// Goes without saying that this is required.
 	if (!isset($_REQUEST['eventid']))
@@ -360,7 +361,7 @@ function iCalDownload()
 	$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']);
 
-	// Do we have a mutli day event?
+	// Do we have a event that spans several days?
 	if ($event['span'] > 1)
 	{
 		$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('Accept-Ranges: bytes');
 	header('Connection: close');
-	header('Content-Disposition: attachment; filename=' . $event['title'] . '.ics');
+	header('Content-Disposition: attachment; filename="' . $event['title'] . '.ics"');
 	if (empty($modSettings['enableCompressedOutput']))
 		header('Content-Length: ' . $smcFunc['strlen']($filecontents));
 	

+ 4 - 4
Sources/Load.php

@@ -452,8 +452,7 @@ function loadUserSettings()
 		$user_info['query_see_board'] = '1=1';
 	// Otherwise just the groups in $user_info['groups'].
 	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.
 	// 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();
 	}
 
-	$key = md5($boardurl . filemtime($sourcedir . '/Load.php')) . '-SMF-' . strtr($key, ':', '-');
+	$key = md5($boardurl . filemtime($sourcedir . '/Load.php')) . '-SMF-' . strtr($key, ':/', '-_');
 
 	switch ($cache_accelerator)
 	{
@@ -2698,7 +2697,8 @@ function cache_get_data($key, $ttl = 120)
 			// Otherwise it's SMF data!
 			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))
 				{
 					@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_edit_own'),
 			array('permissions', 'calendar_edit_any'),
-			array('permissions', 'calendar_export'),
 		'',
 			// 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('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_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...
 			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_send' => array(false, 'pm', 'use_pm_system'),
 			'calendar_view' => array(false, 'calendar', 'view_basic_info'),
-			'calendar_export' => array(false, 'calendar', 'view_basic_info'),
 			'calendar_post' => array(false, 'calendar', 'post_calendar'),
 			'calendar_edit' => array(true, 'calendar', 'post_calendar', 'moderate_general'),
 			'admin_forum' => array(false, 'maintenance', 'administrate'),
@@ -1544,7 +1543,6 @@ function loadAllPermissions($loadType = 'classic')
 		$hiddenPermissions[] = 'calendar_view';
 		$hiddenPermissions[] = 'calendar_post';
 		$hiddenPermissions[] = 'calendar_edit';
-		$hiddenPermissions[] = 'calendar_export';
 	}
 	if (!in_array('w', $context['admin_features']))
 		$hiddenPermissions[] = 'issue_warning';

+ 0 - 9
Sources/Subs-Auth.php

@@ -101,19 +101,10 @@ function setLoginCookie($cookie_length, $id, $password = '')
 		session_regenerate_id();
 		$_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;
 	}
 }
 
-
-
 /**
  * Get the domain and path for the cookie
  * - 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>',
 					'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'],
-					'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'],
 				);
 			// 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',
 					'link' => $row['id_topic'] == 0 ? $row['title'] : '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.0">' . $row['title'] . '</a>',
 					'can_edit' => false,
-					'can_export' => false,
+					'can_export' => !empty($modSettings['cal_export']) ? true : false,
 					'topic' => $row['id_topic'],
 					'msg' => $row['id_first_msg'],
 					'poster' => $row['id_member'],

+ 30 - 20
Sources/Who.php

@@ -684,37 +684,37 @@ function Credits($in_admin = false)
 			),
 		),
 	);
-
-	$context['copyrights'] = array(
-		'smf' => sprintf($forum_copyright, $forum_version),
-		'other' => array(
+	
+	// Give credit to any graphic library's, software library's, plugins etc
+	$context['credits_software_graphics'] = 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',
 		),
-		/* 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(
+		'software' => array(
+			'<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>',
+			'<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>',
+			'<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>',
 		),
 	);
-
+	
 	// 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)
 	{
 		$mods = array();
-		$request = $smcFunc['db_query']('', '
+		$request = $smcFunc['db_query']('substring', '
 			SELECT version, name, credits
 			FROM {db_prefix}log_packages
 			WHERE install_state = {int:installed_mods}
 				AND credits != {string:empty}
-				AND SUBSTRING(filename FROM 1 FOR 9) != {string:patch_name}',
+				AND SUBSTRING(filename, 1, 9) != {string:patch_name}',
 			array(
 				'installed_mods' => 1,
 				'patch_name' => 'smf_patch',
 				'empty' => '',
 			)
 		);
+		
 		while ($row = $smcFunc['db_fetch_assoc']($request))
 		{
 			$credit_info = unserialize($row['credits']);
@@ -726,13 +726,26 @@ function Credits($in_admin = false)
 
 			// build this one out and stash it away
 			$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);
 	}
-
-	$context['copyrights']['mods'] += $mods;
-
+	$context['credits_modifications'] = $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)
 	{
 		loadTemplate('Who');
@@ -740,9 +753,6 @@ function Credits($in_admin = false)
 		$context['robot_no_index'] = true;
 		$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']))
 		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 />
 						</dd>';
 	else

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

@@ -193,7 +193,62 @@ function template_credits()
 			<span class="botslice"><span></span></span>
 		</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 '
 		<div class="cat_bar">
 			<h3 class="catbg">', $txt['credits_copyright'], '</h3>
@@ -209,15 +264,6 @@ function template_credits()
 					</dd>
 				</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']))
 	{
 		echo '

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

@@ -168,7 +168,7 @@ function template_stats()
 	echo '<', '?xml version="1.0" encoding="', $context['character_set'], '"?', '>
 <smf>';
 	foreach ($context['yearly'] as $year)
-		foreach ($year['months'] as $month);
+		foreach ($year['months'] as $month)
 		{
 			echo '
 	<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 */
 .post_wrapper
 {
-	float:left;
-	width:100%;
+	float: left;
+	width: 100%;
 }
 .poster
 {
@@ -2001,6 +2001,10 @@ p#whoisviewing
 {
 	width: 100%;
 }
+.poster img
+{
+	vertical-align: middle;
+}
 
 .moderatorbar
 {
@@ -3696,6 +3700,8 @@ span.hidelink
 	}
 }
 
+/* Styles for the tooltips
+------------------------------------------------------- */
 .tooltip
 {
     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>
 <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']) : '',
-	'"',
-	// Style per page.
-	!empty($context['body_id']) ? ' id="' . $context['body_id'] . '"' : '', '>';
-
+	'">';
 }
 
 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_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_export'] = 'Sorry, You cannot export calendar events.';
 $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_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['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_year'] = 'Invalid year 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.';
 $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.';
+$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 />
 	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['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['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.';
 

+ 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['countChildPosts'] = 'Count child\'s posts in parent\'s totals';
 $txt['allow_ignore_boards'] = 'Allow boards to be ignored';
-$txt['deny_boards_access'] = 'Enable the option to deny boards access to a group';
-$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['deny_boards_access'] = 'Enable the option to deny board access based on membergroup';
+$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_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['save_settings'] = 'Save Settings';
 $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_edit_own'] = 'Membergroups allowed to edit their own 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_showbdays'] = 'Show birthdays';
 $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_cal'] = 'In calendar 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['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_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['permissionname_calendar_edit_own'] = 'Own 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['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_forum'] = 'Forum';
 $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_dev'] = 'Developers';
 $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 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';
 	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',
   unapproved_posts smallint NOT NULL default '0',
   unapproved_topics smallint NOT NULL default '0',
-  redirect varchar(255) NOT NULL default ''
-  deny_member_groups varchar(255) NOT NULL default '',
+  redirect 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);

+ 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 ..
 ALTER TABLE {$db_prefix}topics
 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 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 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,
+		),
+	)
+));
+---}
 ---#