diff options
Diffstat (limited to 'phpBB')
61 files changed, 1611 insertions, 379 deletions
| diff --git a/phpBB/adm/images/corners_left.gif b/phpBB/adm/images/corners_left.gifBinary files differ deleted file mode 100644 index bacd276495..0000000000 --- a/phpBB/adm/images/corners_left.gif +++ /dev/null diff --git a/phpBB/adm/images/corners_left2.gif b/phpBB/adm/images/corners_left2.gifBinary files differ deleted file mode 100644 index 206e50368d..0000000000 --- a/phpBB/adm/images/corners_left2.gif +++ /dev/null diff --git a/phpBB/adm/images/corners_right.gif b/phpBB/adm/images/corners_right.gifBinary files differ deleted file mode 100644 index bcb5bd7d14..0000000000 --- a/phpBB/adm/images/corners_right.gif +++ /dev/null diff --git a/phpBB/adm/images/corners_right2.gif b/phpBB/adm/images/corners_right2.gifBinary files differ deleted file mode 100644 index 0ba66d50b2..0000000000 --- a/phpBB/adm/images/corners_right2.gif +++ /dev/null diff --git a/phpBB/adm/images/toggle.gif b/phpBB/adm/images/toggle.gifBinary files differ deleted file mode 100644 index 8af6861bd1..0000000000 --- a/phpBB/adm/images/toggle.gif +++ /dev/null diff --git a/phpBB/adm/style/acp_avatar_options_local.html b/phpBB/adm/style/acp_avatar_options_local.html index 148efd051b..0cdb3644d7 100644 --- a/phpBB/adm/style/acp_avatar_options_local.html +++ b/phpBB/adm/style/acp_avatar_options_local.html @@ -8,18 +8,14 @@  	</select> <input type="submit" value="{L_GO}" name="avatar_local_go" class="button2" /></dd>  </dl>  	<!-- IF AVATAR_LOCAL_SHOW --> -	<table> +	<ul id="gallery">  	<!-- BEGIN avatar_local_row --> -	<tr> -		<!-- BEGIN avatar_local_col --> -			<td class="row1" style="text-align: center;"><img src="{avatar_local_row.avatar_local_col.AVATAR_IMAGE}" alt="{avatar_local_row.avatar_local_col.AVATAR_NAME}" title="{avatar_local_row.avatar_local_col.AVATAR_NAME}"/></td> -		<!-- END avatar_local_col --> -	</tr> -	<tr> -		<!-- BEGIN avatar_local_option --> -			<td class="row2" style="text-align: center;"><input type="radio" name="avatar_local_file" id="av-{avatar_local_row.S_ROW_COUNT}-{avatar_local_row.avatar_local_option.S_ROW_COUNT}" value="{avatar_local_row.avatar_local_option.AVATAR_FILE}" /></td> -		<!-- END avatar_local_option --> -	</tr> +	<!-- BEGIN avatar_local_col --> +		<li> +			<label for="av-{avatar_local_row.S_ROW_COUNT}-{avatar_local_row.avatar_local_col.S_ROW_COUNT}"><img src="{avatar_local_row.avatar_local_col.AVATAR_IMAGE}" alt="" /><br /> +			<input type="radio" name="avatar_local_file" id="av-{avatar_local_row.S_ROW_COUNT}-{avatar_local_row.avatar_local_col.S_ROW_COUNT}" value="{avatar_local_row.avatar_local_col.AVATAR_FILE}" /></label> +		</li> +	<!-- END avatar_local_col -->  	<!-- END avatar_local_row --> -	</table> +	</ul>  	<!-- ENDIF --> diff --git a/phpBB/adm/style/acp_forums.html b/phpBB/adm/style/acp_forums.html index 7b1466cfbd..3fd2f18d67 100644 --- a/phpBB/adm/style/acp_forums.html +++ b/phpBB/adm/style/acp_forums.html @@ -440,19 +440,19 @@  	<p><strong>{NAVIGATION}<!-- IF S_NO_FORUMS --> [<a href="{U_EDIT}">{L_EDIT}</a> | <a href="{U_DELETE}">{L_DELETE}</a><!-- IF not S_LINK --> | <a href="{U_SYNC}">{L_RESYNC}</a><!-- ENDIF -->]<!-- ENDIF --></strong></p>  	<!-- IF .forums --> -		<table cellspacing="1"> +		<table cellspacing="1" class="forums">  			<col class="row1" /><col class="row1" /><col class="row2" />  		<tbody>  		<!-- BEGIN forums -->  			<tr data-down="{forums.U_MOVE_DOWN}" data-up="{forums.U_MOVE_UP}"> -				<td style="width: 5%; text-align: center;">{forums.FOLDER_IMAGE}</td> -				<td> +				<td class="folder">{forums.FOLDER_IMAGE}</td> +				<td class="forum-desc">  					<!-- IF forums.FORUM_IMAGE --><div style="float: {S_CONTENT_FLOW_BEGIN}; margin-right: 5px;">{forums.FORUM_IMAGE}</div><!-- ENDIF -->  					<strong><!-- IF forums.S_FORUM_LINK -->{forums.FORUM_NAME}<!-- ELSE --><a href="{forums.U_FORUM}">{forums.FORUM_NAME}</a><!-- ENDIF --></strong>  					<!-- IF forums.FORUM_DESCRIPTION --><br /><span>{forums.FORUM_DESCRIPTION}</span><!-- ENDIF -->  					<!-- IF forums.S_FORUM_POST --><br /><br /><span>{L_TOPICS}{L_COLON} <strong>{forums.FORUM_TOPICS}</strong> / {L_POSTS}{L_COLON} <strong>{forums.FORUM_POSTS}</strong></span><!-- ENDIF -->  				</td> -				<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;"> +				<td class="actions">  					<!-- IF forums.S_FIRST_ROW && not forums.S_LAST_ROW -->  						<span class="up">{ICON_MOVE_UP_DISABLED}</span>  						<span class="down"><a href="{forums.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span> diff --git a/phpBB/adm/style/acp_groups_position.html b/phpBB/adm/style/acp_groups_position.html index cf1a7be427..7aa894945a 100644 --- a/phpBB/adm/style/acp_groups_position.html +++ b/phpBB/adm/style/acp_groups_position.html @@ -41,7 +41,7 @@  		<tr data-down="{legend.U_MOVE_DOWN}" data-up="{legend.U_MOVE_UP}">  			<td><strong<!-- IF legend.GROUP_COLOUR --> style="color: {legend.GROUP_COLOUR}"<!-- ENDIF -->>{legend.GROUP_NAME}</strong></td>  			<td style="text-align: center;">{legend.GROUP_TYPE}</td> -			<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;"> +			<td class="actions">  				<!-- IF legend.S_FIRST_ROW && not legend.S_LAST_ROW -->  					<span class="up">{ICON_MOVE_UP_DISABLED}</span>  					<span class="down"><a href="{legend.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span> @@ -136,7 +136,7 @@  			</td>  			<td style="text-align: center;"><!-- IF teampage.GROUP_TYPE -->{teampage.GROUP_TYPE}<!-- ELSE -->-<!-- ENDIF -->  			</td></td> -			<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;"> +			<td class="actions">  				<!-- IF teampage.S_FIRST_ROW && not teampage.S_LAST_ROW -->  					<span class="up">{ICON_MOVE_UP_DISABLED}</span>  					<span class="down"><a href="{teampage.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span> diff --git a/phpBB/adm/style/acp_main.html b/phpBB/adm/style/acp_main.html index d9e7fb7eeb..b6d520130a 100644 --- a/phpBB/adm/style/acp_main.html +++ b/phpBB/adm/style/acp_main.html @@ -78,7 +78,7 @@  	<!-- EVENT acp_main_notice_after --> -	<table cellspacing="1"> +	<table cellspacing="1" class="two-columns no-header" data-no-responsive-header="true">  		<caption>{L_FORUM_STATS}</caption>  		<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />  	<thead> diff --git a/phpBB/adm/style/acp_permission_roles.html b/phpBB/adm/style/acp_permission_roles.html index d654c320ca..d4f7bbdf36 100644 --- a/phpBB/adm/style/acp_permission_roles.html +++ b/phpBB/adm/style/acp_permission_roles.html @@ -90,9 +90,8 @@  			</div>  			<!-- BEGIN auth -->  			<div class="permissions-panel" id="options00{auth.S_ROW_COUNT}"<!-- IF auth.S_FIRST_ROW --><!-- ELSE --> style="display: none;"<!-- ENDIF -->> -				<span class="corners-top"><span></span></span>  				<div class="tablewrap"> -					<table id="table00{auth.S_ROW_COUNT}" cellspacing="1"> +					<table id="table00{auth.S_ROW_COUNT}" cellspacing="1" class="not-responsive">  					<colgroup>  						<col class="permissions-name" />  						<col class="permissions-yes" /> @@ -120,7 +119,6 @@  					</tbody>  					</table>  				</div> -				<span class="corners-bottom"><span></span></span>  			</div>  			<!-- END auth -->  		</div> diff --git a/phpBB/adm/style/acp_permissions.html b/phpBB/adm/style/acp_permissions.html index 88a82532a1..6dc9dca2e7 100644 --- a/phpBB/adm/style/acp_permissions.html +++ b/phpBB/adm/style/acp_permissions.html @@ -110,7 +110,7 @@  		<!-- ELSEIF S_SELECT_USERGROUP --> -		<div style="float: {S_CONTENT_FLOW_BEGIN}; width: 48%;"> +		<div class="column1">  		<!-- IF S_CAN_SELECT_USER --> @@ -155,7 +155,7 @@  		</div> -		<div style="float: {S_CONTENT_FLOW_END}; width: 48%"> +		<div class="column2">  		<!-- IF S_CAN_SELECT_GROUP --> @@ -200,7 +200,7 @@  	<!-- ELSEIF S_SELECT_USERGROUP_VIEW --> -		<div style="float: {S_CONTENT_FLOW_BEGIN}; width: 48%;"> +		<div class="column1">  			<h1>{L_USERS}</h1> @@ -241,7 +241,7 @@  		</div> -		<div style="float: {S_CONTENT_FLOW_END}; width: 48%"> +		<div class="column2">  			<h1>{L_USERGROUPS}</h1> @@ -324,7 +324,7 @@  		</form>  	<!-- ENDIF --> -	<br /><br /> +	<br class="responsive-hide" /><br class="responsive-hide" />  	<!-- include tooltip file -->  	<script type="text/javascript" src="style/tooltip.js"></script> @@ -340,7 +340,7 @@  	<!-- INCLUDE permission_mask.html --> -	<br /><br /> +	<br class="responsive-hide" /><br class="responsive-hide" />  	<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">  		<input class="button1" type="submit" name="action[apply_all_permissions]" value="{L_APPLY_ALL_PERMISSIONS}" /> @@ -348,7 +348,7 @@  		{S_FORM_TOKEN}  	</fieldset> -	<br /><br /> +	<br class="responsive-hide" /><br class="responsive-hide" />  	</form> diff --git a/phpBB/adm/style/acp_styles.html b/phpBB/adm/style/acp_styles.html index 3dc4c2d616..55904253a9 100644 --- a/phpBB/adm/style/acp_styles.html +++ b/phpBB/adm/style/acp_styles.html @@ -79,7 +79,7 @@  <!-- ENDIF -->  <!-- IF .styles_list --> -	<table cellspacing="1"> +	<table cellspacing="1" class="styles">  	<thead>  	<tr>  		<th>{L_STYLE_NAME}</th> @@ -97,9 +97,9 @@  		<!-- ELSE -->  			<!-- IF $ROW_CLASS == 'row2a' --><!-- DEFINE $ROW_CLASS = 'row2b' --><!-- ELSE --><!-- DEFINE $ROW_CLASS = 'row2a' --><!-- ENDIF -->  		<!-- ENDIF --> -		<td class="{$ROW_CLASS}" style="padding-left: {styles_list.PADDING}px;"> +		<td class="{$ROW_CLASS}" style="padding-{S_CONTENT_FLOW_BEGIN}: {styles_list.PADDING}px;">  			<!-- IF styles_list.STYLE_ID and styles_list.COMMENT == '' and styles_list.STYLE_ACTIVE --> -				<div class="default-style" style="display: none; float: right;"> +				<div class="default-style" style="display: none; float: {S_CONTENT_FLOW_END};">  					<input class="radio" type="radio" name="default" value="{styles_list.STYLE_ID}"<!-- IF styles_list.DEFAULT --> checked="checked"<!-- ELSE --><!-- DEFINE $S_DEFAULT = 1 --><!-- ENDIF --> title="{L_STYLE_DEFAULT}" />  				</div>  			<!-- ENDIF --> @@ -117,9 +117,9 @@  			<!-- ENDIF -->  		</td>  		<!-- IF not STYLES_LIST_HIDE_COUNT --> -			<td class="{$ROW_CLASS}" style="text-align: center;">{styles_list.USERS}</td> +			<td class="{$ROW_CLASS} users">{styles_list.USERS}</td>  		<!-- ENDIF --> -		<td class="{$ROW_CLASS}" style="text-align: center;"> +		<td class="{$ROW_CLASS} actions">  			<!-- BEGIN actions -->  				<!-- IF styles_list.actions.S_ROW_COUNT > 0 --> | <!-- ENDIF -->  				<!-- IF styles_list.actions.U_ACTION --> @@ -129,7 +129,7 @@  			<!-- END actions -->  		</td>  		{styles_list.EXTRA} -		<td class="{$ROW_CLASS}" width="20" style="text-align: center;"> +		<td class="{$ROW_CLASS} mark" width="20">  			<!-- IF styles_list.STYLE_ID -->  				<input class="checkbox" type="checkbox" name="ids[]" value="{styles_list.STYLE_ID}" />  			<!-- ELSE --> diff --git a/phpBB/adm/style/admin.css b/phpBB/adm/style/admin.css index ca15338133..0cbdc2e9f8 100644 --- a/phpBB/adm/style/admin.css +++ b/phpBB/adm/style/admin.css @@ -18,11 +18,11 @@ body, div, p, th, td, li, dd {  	font-size: x-small;  	voice-family: "\"}\"";  	voice-family: inherit; -	font-size: small +	font-size: small;  }  html>body, html>div, html>p, html>th, html>td, html>li, html>dd { -	font-size: small +	font-size: small;  }  html { @@ -31,6 +31,7 @@ html {  	/* Always show a scrollbar for short pages - stops the jump when the scrollbar appears. non-ie browsers */  	height: 100%;  	margin-bottom: 1px; +	word-wrap: break-word;  }  body { @@ -105,6 +106,23 @@ hr {  	display: none;  } +@media only screen and (max-width: 800px), only screen and (max-device-width: 800px) +{ +	body { +		margin: 5px 5px 0; +	} +} + +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	html, body { +		height: auto; +		margin: 0; +		padding: 0; +	} +} + +  /* General links  */  a:link, a:visited {  	color: #105289; @@ -136,6 +154,7 @@ li {  	list-style-type: inherit;  } +  /* Main blocks  ---------------------------------------- */  #wrap { @@ -174,7 +193,7 @@ li {  #page-body {  	clear: both; -	min-width: 700px; +	min-width: 650px;  }  #page-footer { @@ -195,19 +214,23 @@ li {  }  #main { -	float: left; -	width: 76%; -	margin: 0 0 0 3%; -	min-height: 350px; +	float: right; +	width: 100%; +	margin: 0 0 0 -210px;  }  .rtl #main {  	float: right; -	margin: 0 3% 0 0; +	margin: 0 -210px 0 0; +} + +.main { +	margin-left: 210px;  } -* html #main { -	height: 350px; +.rtl .main { +	margin-left: 0; +	margin-right: 210px;  }  #page-body.simple-page-body { @@ -216,17 +239,81 @@ li {  	min-width: 0;  } +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	#wrap, #page-body, #page-body.simple-page-body { +		padding: 0; +		min-width: 300px; +	} + +	#page-header { +		margin: 5px; +		padding-left: 160px; +		height: auto; +		min-height: 54px; +		overflow: hidden; +	} + +	.rtl #page-header { +		padding-right: 160px; +		padding-left: 0; +	} + +	#page-header h1 { +		font-size: 1.2em; +		white-space: nowrap; +		overflow: hidden; +		text-overflow: ellipsis; +	} + +	#page-header fieldset { +		margin-top: 5px; +	} + +	#main, .rtl #main, .main, .rtl .main { +		float: none; +		width: auto; +		margin: 0; +	} + +	#content { +		background: #F3F3F3 url("../images/innerbox_bg.gif") repeat-x top; +		padding: 5px; +	} + +	#page-footer { +		padding: 0 5px 5px; +	} +} + +@media only screen and (max-width: 400px), only screen and (max-device-width: 400px) +{ +	#page-header { +		background-size: 76px 26.5px; +		padding-left: 80px; +		min-height: 30px; +	} + +	.rtl #page-header { +		padding-right: 80px; +	} + +	#page-header h1 { +		padding-top: 0; +		font-size: 1.1em; +	} +} + +  /* Tabbed menu  	Based on: http://www.alistapart.com/articles/slidingdoors2/  ----------------------------------------*/  #tabs {  	line-height: normal; -	margin: 0 0 -6px 7px; +	margin: 0 7px;  	min-width: 600px; -} - -.rtl #tabs { -	margin: 0 7px -6px 0; +	position: relative; +	z-index: 2;  }  #tabs ul { @@ -235,14 +322,27 @@ li {  	list-style: none;  } +#tabs ul:after { +	content: ''; +	display: block; +	clear: both; +} +  #tabs li { -	display: inline; +	display: block; +	float: left;  	margin: 0;  	padding: 0;  	font-size: 0.85em;  	font-weight: bold;  } +#tabs li:after { +	content: ''; +	display: block; +	clear: both; +} +  #tabs a {  	float: left;  	background:url("../images/bg_tabs1.gif") no-repeat 0% -34px; @@ -261,6 +361,7 @@ li {  	display: block;  	background: url("../images/bg_tabs2.gif") no-repeat 100% -34px;  	padding: 7px 10px 4px 4px; +	min-height: 14px;  	color: #767676;  	white-space: nowrap;  	font-family: Arial, Helvetica, sans-serif; @@ -280,12 +381,12 @@ li {  	color: #BC2A4D;  } -#tabs #activetab a { +#tabs .activetab a {  	background-position: 0 0;  	border-bottom: 1px solid #DCDEE2;  } -#tabs #activetab a span { +#tabs .activetab a span {  	background-position: 100% 0;  	padding-bottom: 5px;  	color: #23649F; @@ -299,103 +400,135 @@ li {  	background-position: 100% -69px;  } -#tabs #activetab a:hover span { +#tabs .activetab a:hover span {  	color: #115098;  } +.responsive-tab { +	position: relative; +} -/* Main Panel ----------------------------------------- */ -#acp { -	margin: 4px 0; -	padding: 3px 1px; -	min-width: 550px; -	background-color: #FFFFFF; -	border: 1px #999999 solid; +.responsive-tab .responsive-tab-link span { +	display: inline-block; +	font-size: 16px; +	position: relative; +	width: 16px; +	line-height: 14px; +	text-decoration: none;  } -.panel { -	background: #F3F3F3 url("../images/innerbox_bg.gif") repeat-x top; -	padding: 0; +.responsive-tab .responsive-tab-link span:before { +	content: ''; +	position: absolute; +	left: 5px; +	top: 8px; +	height: .125em; +	width: 14px; +	border-bottom: 0.125em solid #767676; +	border-top: 0.375em double #767676;  } -span.corners-top, span.corners-bottom, -span.corners-top span, span.corners-bottom span { -	font-size: 1px; -	line-height: 1px; -	display: block; -	height: 5px; -	background-repeat: no-repeat; +.responsive-tab .responsive-tab-link:hover span:before { +	border-color: #BC2A4D;  } -span.corners-top { -	background-image: url("../images/corners_left.gif"); -	background-position: 0 0; -	margin: -4px -2px 0; +.responsive-tab.activetab .responsive-tab-link span:before { +	border-color: #23649F;  } -span.corners-top span { -	background-image: url("../images/corners_right.gif"); -	background-position: 100% 0; +.responsive-tab.activetab .responsive-tab-link:hover span:before { +	border-color: #115098;  } -span.corners-bottom { -	background-image: url("../images/corners_left.gif"); -	background-position: 0 100%; -	margin: 0 -2px -4px; -	clear: both; +#tabs .dropdown { +	top: 18px; +	margin-right: -1px;  } -span.corners-bottom span { -	background-image: url("../images/corners_right.gif"); -	background-position: 100% 100%; +#tabs .dropdown-right .dropdown { +	margin-left: -2px;  } -/* WinIE tweaks \*/ -* html span.corners-top, * html span.corners-bottom { background-image: url("../images/corners_left.gif"); } -* html span.corners-top span, * html span.corners-bottom span { background-image: url("../images/corners_right.gif"); } -/* End tweaks */ +#tabs .dropdown li { +	display: block !important; +	float: none; +	background: transparent none; +	padding: 0; +} -/* Sub-navigation Menu ----------------------------------------- */ +#tabs .dropdown a, #tabs .dropdown a span { +	background: transparent; +	display: block; +	border-width: 0; +	float: none; +	margin: 0; +	padding: 0; +	text-align: right; +} -/* Toggle */ -#toggle { -	padding: 5px; -	width: 5%; -	height: 100px; -	position: absolute; -	left: 15%; -	top: 28px; -	margin-left: 2px; +#tabs .dropdown a span { +	padding: 4px 8px; +	color: inherit !important;  } -.rtl #toggle { -	left: 75%; -	margin-right: 0; -	margin-left: 6px; +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	#tabs { +		min-width: 0; +	}  } -#toggle-handle { -	display: block; -	width: 18px; -	height: 19px; -	float: right; -	background-image: url(../images/toggle.gif); +/* Main Panel +---------------------------------------- */ +#acp { +	clear: both; +	position: relative; +	top: -2px; +	margin: 0 0 2px; +	padding: 3px 1px; +	min-width: 550px; +	background: #F3F3F3 url("../images/innerbox_bg.gif") repeat-x top; +	border: 1px #999999 solid; +	border-radius: 5px; +	box-shadow: #FFF 0 0 0 1px inset; +} + +#acp:first-child { +	top: 0; +} + +.panel { +	background: #F3F3F3 url("../images/innerbox_bg.gif") repeat-x top; +	padding: 5px 0; +	border-radius: 5px; +	overflow: hidden;  } -.rtl #toggle-handle { -	background-image: url(../images/toggle.gif); -	background-position: 100% 50%; +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	#acp { +		min-width: 0; +		min-height: 0; +		border-radius: 0; +		border-width: 1px 0; +		background: #fff; +		padding: 1px 0; +		box-shadow: none; +	}  } +/* Sub-navigation Menu +---------------------------------------- */ +  /* Menu */  #menu {  	float: left; -	width: 20%; +	width: 200px;  	font-size: 1.00em;  	padding: 0;  	border-right: 1px solid #CCCFD3; +	position: relative; +	z-index: 1;  }  .rtl #menu { @@ -412,15 +545,16 @@ span.corners-bottom span {  	list-style: none;  	margin: 0;  	padding: 0; +	word-wrap: normal;  }  /* Default list state */ -#menu li { +#menu li, #menu .header {  	padding: 0;  	margin: 0;  	font-size: 0.85em;  	font-weight: bold; -	display: inline; +	display: block;  }  /* Link styles for the sub-section links */ @@ -437,6 +571,12 @@ span.corners-bottom span {  	padding: 3px 8px 3px 3px;  } +#menu li span, #menu .header { +	white-space: nowrap; +	overflow: hidden; +	text-overflow: ellipsis; +} +  #menu li a:hover, #menu li a:hover span {  	text-decoration: none;  	background-color: #FFFFFF; @@ -485,7 +625,7 @@ span.corners-bottom span {  	background: url("../images/arrow_down.gif") 99% 50% no-repeat;  } -#menu li.header { +#menu .header {  	font-family: Tahoma, Helvetica, sans-serif;  	display: block;  	font-weight: bold; @@ -495,8 +635,71 @@ span.corners-bottom span {  	margin-top: 15px;  	text-transform: uppercase;  	font-size: 0.75em; +	text-decoration: none; +	cursor: inherit; +	outline-style: none;  } +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	#menu, .rtl #menu { +		float: none; +		width: auto; +		border-width: 0; +		max-width: 200px; +		margin: 0 auto 10px; +	} + +	#menu p { +		text-align: center; +	} + +	#menu .menu-block.active { +		margin: 0 -5px; +		padding: 0 5px 3px; +		background: rgba(255, 255, 255, .5); +		border-radius: 5px; +	} + +	#menu .menu-block.no-header.active { +		padding-top: 3px; +	} + +	#menu .menu-block .header { +		margin-top: 5px; +		cursor: pointer; +		border-bottom-width: 0; +		position: relative; +		text-decoration: underline; +	} + +	#menu .menu-block .header:focus, #menu .menu-block.active .header { +		color: #D31141; +		text-decoration: none; +	} + +	#menu .menu-block ul { +		display: none; +	} + +	.nojs #menu .menu-block:hover ul, #menu .menu-block.active ul, #menu .menu-block.no-header ul { +		display: block; +	} + +	#menu .menu-block li:last-child { +		border-bottom: 1px solid #327AA5; +	} + +	#menu .menu-block:last-child li:last-child, #menu .menu-block.active li:last-child { +		border-bottom-width: 0; +	} + +	#menu .menu-block li a span { +		border-radius: 2px; +	} +} + +  /* Table styles  ---------------------------------------- */ @@ -653,6 +856,161 @@ td.name {  	color: #BC2A4D;  } +/* Specific tables */ +table.forums td.folder { +	width: 27px; +	text-align: center; +} + +table td.actions { +	vertical-align: middle; +	width: 100px; +	text-align: center; +	white-space: nowrap; +} + +table.styles td.users, table td.mark { +	text-align: center; +} + +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	table.responsive, table.responsive tbody, table.responsive tr, table.responsive td { +		display: block; +	} + +	table.responsive thead, table.responsive th, table.responsive colgroup { +		display: none; +	} + +	table.responsive.show-header thead, table.responsive.show-header th:first-child, table.responsive caption { +		display: block; +		width: auto !important; +		text-align: left !important; +		margin: 0; +	} + +	table.responsive { +		background: transparent none; +		border-width: 0; +		padding: 0; +	} + +	table.responsive caption { +		padding: 3px 4px; +		color: #FFFFFF; +		background: #70AED3 url("../images/gradient2b.gif") bottom left repeat-x; +		border-top: 1px solid #6DACD2; +		border-bottom: 1px solid #327AA5; +		text-align: left; +		font-size: 0.75em; +		font-weight: bold; +		text-transform: uppercase; +	} + +	table.responsive.show-header th:first-child span.rank-img, table.responsive.no-caption caption, table.responsive.no-header thead { +		display: none; +	} + +	table.responsive tr { +		margin: 2px 0; +		border: 1px solid #CCCFD3; +		background-color: #FFFFFF; +		padding: 1px 1px 0; +		overflow: hidden; +	} + +	table.responsive tr.row1 td { background-color: #F9F9F9; } +	table.responsive tr.row2 td { background-color: #DCEBFE; } +	table.responsive tr.row3 td { background-color: #DBDFE2; } +	table.responsive tr.row4 td { background-color: #E4E8EB; } +	table.responsive tr.col1 td { background-color: #DCEBFE; } +	table.responsive tr.col2 td { background-color: #F9F9F9; } +	table.responsive tr.row1a td { background-color: #F9F9F9; } +	table.responsive tr.row1b td { background-color: #F6F6F6; } +	table.responsive tr.row2a td { background-color: #E7EEF4; } +	table.responsive tr.row2b td { background-color: #E3EBF2; } + +	table.responsive td { +		width: auto !important; +		text-align: left !important; +		padding: 4px; +		margin-bottom: 1px; +	} + +	table.responsive td.empty { +		display: none !important; +	} + +	table.responsive td > dfn { +		display: inline-block !important; +	} + +	table.responsive td > dfn:after { +		content: ':'; +		padding-right: 5px; +	} + +	table.responsive.two-columns td { +		width: 50% !important; +		float: left; +		-moz-box-sizing: border-box; +		box-sizing: border-box; +	} + +	table.responsive.two-columns td:nth-child(2n+1) { +		clear: left; +	} + +	table.responsive span.rank-img { +		float: none; +		padding-right: 5px; +	} + +	table.responsive#memberlist td:first-child input[type="checkbox"] { +		float: right; +	} + +	/* Specific tables */ +	table.responsive.forums td.folder { +		float: left; +		width: 27px; +		background: transparent; +	} +	.rtl table.responsive.forums td.folder { +		float: right; +	} + +	table.responsive.forums td.forum-desc { +		margin-left: 35px; +		min-height: 27px; +		background: transparent; +	} + +	.rtl table.responsive.forums td.forum-desc { +		margin-left: 0; +		margin-right: 35px; +	} + +	table.responsive td.actions { +		clear: both; +		text-align: right !important; +	} + +	.rtl table.responsive td.actions { +		text-align: left !important; +	} + +	table.responsive.styles tr.responsive-style-row td:first-child { +		padding-left: 4px !important; +		padding-right: 4px !important; +	} + +	table.responsive.styles td:first-child > dfn, table.responsive td.actions > dfn { +		display: none !important; +	} +} +  /* General form styles  ----------------------------------------*/  fieldset { @@ -664,6 +1022,7 @@ fieldset {  	border-left: 1px solid #D7D7D7;  	background-color: #FFFFFF;  	position: relative; +	border-radius: 3px;  }  .rtl fieldset { @@ -673,10 +1032,6 @@ fieldset {  	border-left: 1px solid #CCCCCC;  } -* html fieldset { -	padding: 0 10px 5px 10px; -} -  fieldset p {  	font-size: 0.85em;  } @@ -695,23 +1050,10 @@ legend {  	vertical-align: middle;  } -* html legend { -	margin: 0 0 -10px -7px; -	line-height: 1em; -	font-size: .85em; -} - -/* Holly hack, .rtl comes after html */ -* html .rtl legend { -	margin: 0; -	margin-right: -7px; -} -  input, textarea {  	font-family: Verdana, Helvetica, Arial, sans-serif;  	font-size: 0.90em;  	font-weight: normal; -	cursor: text;  	vertical-align: middle;  	padding: 2px;  	color: #111111; @@ -873,6 +1215,22 @@ select#full_folder_action {  	width: 95%;  } +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	fieldset { +		padding: 5px; +	} + +	fieldset.quick, p.quick { +		float: none !important; +		text-align: center; +	} + +	fieldset.display-options { +		clear: both; +	} +} +  /* Definition list layout for forms  	Other general def. list properties defined in prosilver_main.css  ---------------------------------------- */ @@ -1004,6 +1362,51 @@ input:focus, textarea:focus {  	outline-style: none;  } +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	fieldset dl { +		margin-bottom: 5px; +		padding-bottom: 5px; +		border-bottom: 1px solid #e8e8e8; +	} + +	fieldset > dl:last-child, fieldset > form:last-child > dl:last-child { +		border-bottom-width: 0; +		margin-bottom: 0; +	} + +	fieldset dt, .rtl fieldset dt, fieldset dd, .rtl fieldset dd { +		border-width: 0; +		margin-left: 0; +		margin-right: 0; +		float: none; +		width: auto; +	} + +	.ltr fieldset dd { +		padding-left: 20px; +	} + +	.rtl fieldset dd { +		padding-right: 20px; +	} + +	select, dd select, dd input { +		max-width: 300px; +	} + +	input[type="number"], dd input[type="number"] { +		max-width: 70px; +	} +} + +@media only screen and (max-width: 400px), only screen and (max-device-width: 400px) +{ +	select, dd select, dd input { +		max-width: 240px; +	}	 +} +  /* Submit button fieldset or paragraph  ---------------------------------------- */  fieldset.submit-buttons { @@ -1030,6 +1433,13 @@ fieldset.submit-buttons legend {  	display: none;  } +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	p.submit-buttons { +		margin-top: 0; +	} +} +  /* Input field styles  ---------------------------------------- */ @@ -1045,7 +1455,6 @@ textarea.full {  	width: 99%;  } -* html input.full, * html textarea.full { width: 95%;}  input.medium { width: 50%;}  input.narrow { width: 25%;}  input.tiny { width: 10%;} @@ -1109,8 +1518,10 @@ input.button1:focus, input.button2:focus, input.button3:focus {  	position: fixed;  	display: none;  	top: 150px; -	left: 25%; -	width: 50%; +	left: 0; +	right: 0; +	max-width: 600px; +	margin: 0 auto;  	z-index: 50;  	padding: 25px;  	padding: 0 25px 20px 25px; @@ -1164,6 +1575,22 @@ input.button1:focus, input.button2:focus, input.button3:focus {  	height: 100%;  	background-color: #000000;  	opacity: 0.5; +	z-index: 45; +} + +@media only screen and (max-height: 500px), only screen and (max-device-width: 500px) +{ +	.phpbb_alert { +		top: 25px; +	} +} + +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	.phpbb_alert { +		max-width: none; +		margin: 0 25px; +	}  }  /* Pagination @@ -1247,6 +1674,20 @@ li.pagination ul {  	border-color: #B4BAC0;  } +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	.pagination, .rtl .pagination { +		float: none; +		text-align: center; +		margin: 5px 0; +	} + +	.pagination li a, .pagination li span { +		display: inline-block; +		min-width: 10px; +	} +} +  /* Action Highlighting  ---------------------------------------- */  .successbox, .errorbox { @@ -1272,8 +1713,6 @@ li.pagination ul {  	background-color: #BC2A4D;  } -* html .errorbox, * html .successbox { height: 1%; } /* Pixel shift fix for IE */ -  .successbox h3, .errorbox h3 {  	color: #FFFFFF;  	margin: 0 0 0.5em; @@ -1367,7 +1806,7 @@ li.pagination ul {  	visibility: hidden;  }*/ -.clearfix, #tabs, .row, #content, fieldset dl, #page-body { +.clearfix, .row, #content, fieldset dl, #page-body {  	height: 1%;  	overflow: hidden;  } @@ -1422,6 +1861,15 @@ li.pagination ul {  /* Permission interface  ---------------------------------------- */ +.column1, .column2 { +	width: 48%; +	float: left; +} + +.ltr .column2, .rtl .column1 { +	float: right; +} +  fieldset.permissions legend {  	text-transform: none;  } @@ -1619,60 +2067,15 @@ fieldset.permissions .padding {  	float: left;  	background-color: #CADCEB;  	width: 100%; +	border-radius: 5px; +	overflow: hidden; +	padding: 5px 0;  }  .rtl .permissions-panel {  	float: right;  } -.permissions-panel span.corners-top { -	background-image: url("../images/corners_left2.gif"); -} - -.permissions-panel span.corners-top span { -	background-image: url("../images/corners_right2.gif"); -} - -.permissions-panel span.corners-bottom { -	background-image: url("../images/corners_left2.gif"); -} - -.permissions-panel span.corners-bottom span { -	background-image: url("../images/corners_right2.gif"); -} - -.permissions-panel span.corners-top, .permissions-panel span.corners-bottom, -.permissions-panel span.corners-top span, .permissions-panel span.corners-bottom span { -	font-size: 1px; -	line-height: 1px; -	display: block; -	height: 5px; -	background-repeat: no-repeat; -} - -.permissions-panel span.corners-top { -	background-image: url("../images/corners_left2.gif"); -	background-position: 0 0; -	margin: 0 0; -} - -.permissions-panel span.corners-top span { -	background-image: url("../images/corners_right2.gif"); -	background-position: 100% 0; -} - -.permissions-panel span.corners-bottom { -	background-image: url("../images/corners_left2.gif"); -	background-position: 0 100%; -	margin: 0 0; -	clear: both; -} - -.permissions-panel span.corners-bottom span { -	background-image: url("../images/corners_right2.gif"); -	background-position: 100% 100%; -} -  /* Permission table  ---------------------------------------- */  .permissions-panel .tablewrap { @@ -1755,6 +2158,205 @@ fieldset.permissions .padding {  	padding: 0;  } +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	.column1, .column2 { +		float: none !important; +		width: auto; +	} + +	.permissions-simple { +		clear: both; +	} + +	.permissions-simple td, .permissions-simple dd { +		width: auto !important; +		margin-left: 0 !important; +		margin-right: 0 !important; +	} + +	.permissions-simple dd { +		margin-top: 5px; +	} + +	.permissions-panel .tablewrap { +		margin: 0 5px; +	} + +	.permissions-category { +		min-width: 0; +		margin: 0 !important; +	} + +	.permissions-category a, .permissions-category a span.tabbg { +		display: block; +		float: none !important; +		background: transparent none; +	} + +	.permissions-category a { +		background: #d9e5ee; +		margin: 5px 0; +		padding: 0 !important; +		border-radius: 3px; +		text-decoration: underline; +	} + +	.permissions-category .activetab a { +		background-color: #dd6900; +		color: #fff; +	} + +	.permissions-category a span.tabbg { +		color: inherit !important; +		padding-top: 6px !important; +		padding-bottom: 6px !important; +	} + +	.permissions-category .activetab span.colour { +		border-color: #fff; +	} +} + +/* Avatars gallery +---------------------------------------- */ +#gallery { +	display: block; +	margin: 0 -5px; +	padding: 0; +	overflow: hidden; +} + +#gallery li { +	display: block; +	float: left; +	border: 1px solid #ccc; +	border-radius: 2px; +	background: #fff; +	padding: 5px; +	margin: 5px; +} + +#gallery li:hover { +	background-color: #eee; +} + +#gallery li label { +	display: block; +	text-align: center; +	padding: 0; +} + +/* Dropdown menu +----------------------------------------*/ +.dropdown { +	position: absolute; +	left: 0; +	top: 22px; +	z-index: 2; +	border: 1px solid transparent; +	border-radius: 5px; +	padding: 9px 0 0; +} + +.dropdown-up .dropdown { +	top: auto; +	bottom: 18px; +	padding: 0 0 9px; +} + +.dropdown-left .dropdown { +	left: auto; +	right: 0; +} + +.dropdown .pointer, .dropdown .pointer-inner { +	position: absolute; +	width: 0; +	height: 0; +	border-top-width: 0; +	border-bottom: 10px solid transparent; +	border-left: 10px dashed transparent; +	border-right: 10px dashed transparent; +	-webkit-transform: rotate(360deg); /* better anti-aliasing in webkit */ +	display: block; +} + +.dropdown-up .pointer, .dropdown-up .pointer-inner { +	border-bottom-width: 0; +	border-top: 10px solid transparent; +} + +.dropdown .pointer { +	right: auto; +	left: 10px; +	top: 0; +	z-index: 3; +} + +.dropdown-up .pointer { +	bottom: 0; +	top: auto; +} + +.dropdown-left .dropdown .pointer { +	left: auto; +	right: 10px; +} + +.dropdown .pointer-inner { +	top: auto; +	bottom: -11px; +	left: -10px; +} + +.dropdown-up .pointer-inner { +	bottom: auto; +	top: -11px; +} + +.dropdown .pointer { +	border-color: #B9B9B9 transparent; +} + +.dropdown .pointer-inner { +	border-color: #FFF transparent; +} + +.dropdown .dropdown-contents { +	z-index: 2; +	overflow: hidden; +	background: #fff; +	border: 1px solid #b9b9b9; +	border-radius: 5px; +	padding: 5px; +	position: relative; +	box-shadow: 1px 3px 5px rgba(0, 0, 0, 0.2); +	-webkit-box-sizing: border-box; +	-moz-box-sizing: border-box; +	box-sizing: border-box; +} + +.dropdown-up .dropdown-contents { +	box-shadow: 1px 0 5px rgba(0, 0, 0, 0.2); +} + +.dropdown li { +	float: none; +	margin: 0; +	white-space: nowrap; +	text-align: left; +} + +.wrap .dropdown li, .dropdown.wrap li { +	white-space: normal; +} + +.dropdown li:before, .dropdown li:after { +	display: none !important; +} + +  /* Classes for additional tasks  ---------------------------------------- */ @@ -1777,3 +2379,11 @@ fieldset.permissions .padding {  	color: #FFFFFF;  	font-size: 1.4em;  } + +@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) +{ +	.responsive-hide { display: none !important; } +	.responsive-show { display: block !important; } +	.responsive-show-inline { display: inline !important; } +	.responsive-show-inline-block { display: inline-block !important; } +} diff --git a/phpBB/adm/style/admin.js b/phpBB/adm/style/admin.js new file mode 100644 index 0000000000..e9f0f1e512 --- /dev/null +++ b/phpBB/adm/style/admin.js @@ -0,0 +1,243 @@ +/** +* phpBB3 ACP functions +*/ + +/** +* Parse document block +*/ +function parse_document(container)  +{ +	var test = document.createElement('div'), +		oldBrowser = (typeof test.style.borderRadius == 'undefined'); + +	delete test; + +	/** +	* Navigation +	*/ +	container.find('#menu').each(function() { +		var menu = $(this), +			blocks = menu.children('.menu-block'); + +		if (!blocks.length) { +			return; +		} + +		// Set onclick event +		blocks.children('a.header').click(function() { +			var parent = $(this).parent(); +			if (!parent.hasClass('active')) { +				parent.siblings().removeClass('active'); +			} +			parent.toggleClass('active'); +		}); + +		// Set active menu +		menu.find('#activemenu').parents('.menu-block').addClass('active'); + +		// Check if there is active menu +		if (!blocks.filter('.active').length) { +			blocks.filter(':first').addClass('active'); +		} +	}); + +	/** +	* Responsive tables +	*/ +	container.find('table').not('.not-responsive').each(function() { +		var $this = $(this), +			th = $this.find('thead > tr > th'), +			columns = th.length, +			headers = [], +			totalHeaders = 0, +			i, headersLength; + +		// Find columns +		$this.find('colgroup:first').children().each(function(i) { +			var column = $(this); +			$this.find('td:nth-child(' + (i + 1) + ')').addClass(column.prop('className')); +		}); + +		// Styles table +		if ($this.hasClass('styles')) { +			$this.find('td:first-child[style]').each(function() { +				var style = $(this).attr('style'); +				if (style.length) { +					$(this).parent('tr').attr('style', style.toLowerCase().replace('padding', 'margin')).addClass('responsive-style-row'); +				} +			}); +		} + +		// Find each header +		if (!$this.data('no-responsive-header')) +		{ +			th.each(function(column) { +				var cell = $(this), +					colspan = parseInt(cell.attr('colspan')), +					dfn = cell.attr('data-dfn'), +					text = dfn ? dfn : cell.text().trim(); + +				if (text == ' ') text = ''; +				colspan = isNaN(colspan) || colspan < 1 ? 1 : colspan; + +				for (i=0; i<colspan; i++) { +					headers.push(text); +				} +				totalHeaders ++; + +				if (dfn && !column) { +					$this.addClass('show-header'); +				} +			}); +		} +		 +		headersLength = headers.length; + +		// Add header text to each cell as <dfn> +		$this.addClass('responsive'); + +		if (totalHeaders < 2) { +			$this.addClass('show-header'); +			return; +		} + +		$this.find('tbody > tr').each(function() { +			var row = $(this), +				cells = row.children('td'), +				column = 0; + +			if (cells.length == 1) { +				row.addClass('big-column'); +				return; +			} + +			cells.each(function() { +				var cell = $(this), +					colspan = parseInt(cell.attr('colspan')), +					text = cell.text().trim(); + +				if (headersLength <= column) { +					return; +				} + +				if ((text.length && text !== '-') || cell.children().length) { +					if (headers[column] != '') { +						cell.prepend('<dfn style="display: none;">' + headers[column] + '</dfn>'); +					} +				} +				else { +					cell.addClass('empty'); +				} + +				colspan = isNaN(colspan) || colspan < 1 ? 1 : colspan; +				column += colspan; +			}); +		}); +	}); + +	/** +	* Hide empty responsive tables +	*/ +	container.find('table.responsive > tbody').each(function() { +		var items = $(this).children('tr'); +		if (items.length == 0) +		{ +			$(this).parent('table:first').addClass('responsive-hide'); +		} +	}); + +	/** +	* Fieldsets with empty <span> +	*/ +	container.find('fieldset dt > span:last-child').each(function() { +		var $this = $(this); +		if ($this.html() == ' ') { +			$this.addClass('responsive-hide'); +		} +		 +	}); + +	/** +	* Responsive tabs +	*/ +	container.find('#tabs').not('[data-skip-responsive]').each(function() { +		var $this = $(this), +			$body = $('body'), +			ul = $this.children(), +			tabs = ul.children().not('[data-skip-responsive]'), +			links = tabs.children('a'), +			item = ul.append('<li class="responsive-tab" style="display:none;"><a href="javascript:void(0);" class="responsive-tab-link"><span> </span></a><div class="dropdown tab-dropdown" style="display: none;"><div class="pointer"><div class="pointer-inner" /></div><ul class="dropdown-contents" /></div></li>').find('li.responsive-tab'), +			menu = item.find('.dropdown-contents'), +			maxHeight = 0, +			lastWidth = false, +			responsive = false; + +		links.each(function() { +			var link = $(this); +			maxHeight = Math.max(maxHeight, Math.max(link.outerHeight(true), link.parent().outerHeight(true))); +		}) + +		function check() { +			var width = $body.width(), +				height = $this.height(); + +			if (arguments.length == 0 && (!responsive || width <= lastWidth) && height <= maxHeight) { +				return; +			} + +			tabs.show(); +			item.hide(); + +			lastWidth = width; +			height = $this.height(); +			if (height <= maxHeight) { +				responsive = false; +				if (item.hasClass('dropdown-visible')) { +					phpbb.toggleDropdown.call(item.find('a.responsive-tab-link').get(0)); +				} +				return; +			} + +			responsive = true; +			item.show(); +			menu.html(''); + +			var availableTabs = tabs.filter(':not(.activetab, .responsive-tab)'), +				total = availableTabs.length, +				i, tab; + +			for (i = total - 1; i >= 0; i --) { +				tab = availableTabs.eq(i); +				menu.prepend(tab.clone(true)); +				tab.hide(); +				if ($this.height() <= maxHeight) { +					menu.find('a').click(function() { check(true); }); +					return; +				} +			} +			menu.find('a').click(function() { check(true); }); +		} + +		phpbb.registerDropdown(item.find('a.responsive-tab-link'), item.find('.dropdown'), {visibleClass: 'activetab', verticalDirection: 'down'}); + +		check(true); +		$(window).resize(check); +	}); +} + +/** +* Run onload functions +*/ +(function($) { +	$(document).ready(function() { +		// Swap .nojs and .hasjs +		$('body.nojs').toggleClass('nojs hasjs'); + +		// Focus forms +		$('form[data-focus]:first').each(function() { +			$('#' + this.getAttribute('data-focus')).focus(); +		}); + +		parse_document($('body')); +	}); +})(jQuery); diff --git a/phpBB/adm/style/install_footer.html b/phpBB/adm/style/install_footer.html index f7d62d7c7e..c5356e7b9d 100644 --- a/phpBB/adm/style/install_footer.html +++ b/phpBB/adm/style/install_footer.html @@ -1,10 +1,7 @@ - -					</div> +						</div> +					</div><!-- /#main -->  				</div> -			<span class="corners-bottom"><span></span></span> -			<div class="clear"></div> -		</div> -		</div> +		</div><!-- /#acp -->  	</div>  	<div id="page-footer"> @@ -14,6 +11,8 @@  <script type="text/javascript" src="{T_JQUERY_LINK}"></script>  <!-- IF S_ALLOW_CDN --><script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="{T_ASSETS_PATH}/javascript/jquery.js" type="text/javascript"%3E%3C/script%3E'));</script><!-- ENDIF --> +<!-- INCLUDEJS admin.js --> +{$SCRIPTS}  </body>  </html> diff --git a/phpBB/adm/style/install_header.html b/phpBB/adm/style/install_header.html index 5631b83e17..560bf501e9 100644 --- a/phpBB/adm/style/install_header.html +++ b/phpBB/adm/style/install_header.html @@ -2,6 +2,7 @@  <html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">  <head>  <meta charset="utf-8"> +<meta name="viewport" content="width=device-width" />  <!-- IF META -->{META}<!-- ENDIF -->  <title>{PAGE_TITLE}</title> @@ -34,7 +35,7 @@ function dE(n, s, type)  </head> -<body class="{S_CONTENT_DIRECTION}"> +<body class="{S_CONTENT_DIRECTION} nojs">  <div id="wrap">  	<div id="page-header">  		<h1>{L_INSTALL_PANEL}</h1> @@ -54,16 +55,15 @@ function dE(n, s, type)  		<div id="tabs">  			<ul>  			<!-- BEGIN t_block1 --> -				<li<!-- IF t_block1.S_SELECTED --> id="activetab"<!-- ENDIF -->><a href="{t_block1.U_TITLE}"><span>{t_block1.L_TITLE}</span></a></li> +				<li<!-- IF t_block1.S_SELECTED --> class="activetab"<!-- ENDIF -->><a href="{t_block1.U_TITLE}"><span>{t_block1.L_TITLE}</span></a></li>  			<!-- END t_block1 -->  			</ul>  		</div>  		<div id="acp"> -		<div class="panel"> -			<span class="corners-top"><span></span></span>  				<div id="content">  					<div id="menu"> +						<div class="menu-block no-header">  						<ul>  						<!-- BEGIN l_block1 -->  							<li<!-- IF l_block1.S_SELECTED --> id="activemenu"<!-- ENDIF -->><a href="{l_block1.U_TITLE}"><span>{l_block1.L_TITLE}</span></a></li> @@ -72,6 +72,8 @@ function dE(n, s, type)  							<li<!-- IF l_block2.S_SELECTED --> id="activemenu"<!-- ENDIF -->><span<!-- IF l_block2.S_COMPLETE --> class="completed"<!-- ENDIF -->>{l_block2.L_TITLE}</span></li>  						<!-- END l_block2 -->  						</ul> +						</div>  					</div>  					<div id="main" class="install-body"> +						<div class="main"> diff --git a/phpBB/adm/style/install_update_diff.html b/phpBB/adm/style/install_update_diff.html index 1f30fe4d13..c27304a425 100644 --- a/phpBB/adm/style/install_update_diff.html +++ b/phpBB/adm/style/install_update_diff.html @@ -2,6 +2,7 @@  <html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">  <head>  <meta charset="utf-8"> +<meta name="viewport" content="width=device-width" />  <!-- IF META -->{META}<!-- ENDIF -->  <title>{PAGE_TITLE}</title> @@ -33,7 +34,7 @@ window.onresize = resize_panel;  <style type="text/css">  /* <![CDATA[ */ -#main { +#main, .rtl #main {  	font-size: 1em;  	line-height: 0.7em;  	margin: 0; @@ -43,6 +44,7 @@ window.onresize = resize_panel;  #diff_content {  	padding: 30px 10px 10px; +	overflow: hidden;  }  <!-- IF DIFF_MODE neq 'side_by_side' and DIFF_MODE neq 'raw' --> @@ -238,15 +240,13 @@ table.hrdiff caption span {  	<div id="page-body">  		<div id="acp"> -		<div class="panel" id="codepanel"> -			<span class="corners-top"><span></span></span> +			<div id="codepanel">  				<div id="diff_content">  					<div id="main">  						{DIFF_CONTENT}  					</div>  				</div> -			<span class="corners-bottom"><span></span></span> -		</div> +			</div>  		</div>  	</div> diff --git a/phpBB/adm/style/overall_footer.html b/phpBB/adm/style/overall_footer.html index 145ad18709..3c291842dc 100644 --- a/phpBB/adm/style/overall_footer.html +++ b/phpBB/adm/style/overall_footer.html @@ -1,10 +1,7 @@ - -					</div> +						</div> +					</div><!-- /#main -->  				</div> -			<span class="corners-bottom"><span></span></span> -			<div class="clear"></div> -		</div> -		</div> +		</div><!-- /#acp -->  	</div>  	<div id="page-footer"> @@ -38,6 +35,7 @@  <!-- IF S_ALLOW_CDN --><script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="{T_ASSETS_PATH}/javascript/jquery.js?assets_version={T_ASSETS_VERSION}" type="text/javascript"%3E%3C/script%3E'));</script><!-- ENDIF -->  <script type="text/javascript" src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>  <!-- INCLUDEJS ajax.js --> +<!-- INCLUDEJS admin.js -->  {$SCRIPTS}  <!-- EVENT acp_overall_footer_after --> diff --git a/phpBB/adm/style/overall_header.html b/phpBB/adm/style/overall_header.html index 3a9b6db2a3..455446f8e3 100644 --- a/phpBB/adm/style/overall_header.html +++ b/phpBB/adm/style/overall_header.html @@ -2,6 +2,7 @@  <html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">  <head>  <meta charset="utf-8"> +<meta name="viewport" content="width=device-width" />  <!-- IF META -->{META}<!-- ENDIF -->  <title>{PAGE_TITLE}</title> @@ -14,9 +15,6 @@ var on_page = '{ON_PAGE}';  var per_page = '{PER_PAGE}';  var base_url = '{BASE_URL|e('js')}'; -var menu_state = 'shown'; - -  /**  * Jump to page  */ @@ -103,62 +101,12 @@ function popup(url, width, height, name)  	return false;  } -/** -* Hiding/Showing the side menu -*/ -function switch_menu() -{ -	var menu = document.getElementById('menu'); -	var main = document.getElementById('main'); -	var toggle = document.getElementById('toggle'); -	var handle = document.getElementById('toggle-handle'); - -	switch (menu_state) -	{ -		// hide -		case 'shown': -			main.style.width = '93%'; -			menu_state = 'hidden'; -			menu.style.display = 'none'; -			toggle.style.width = '20px'; -			handle.style.backgroundImage = 'url(images/toggle.gif)'; -			handle.style.backgroundRepeat = 'no-repeat'; - -			<!-- IF S_CONTENT_DIRECTION eq 'rtl' --> -				handle.style.backgroundPosition = '0% 50%'; -				toggle.style.left = '96%'; -			<!-- ELSE --> -				handle.style.backgroundPosition = '100% 50%'; -				toggle.style.left = '0'; -			<!-- ENDIF --> -		break; - -		// show -		case 'hidden': -			main.style.width = '76%'; -			menu_state = 'shown'; -			menu.style.display = 'block'; -			toggle.style.width = '5%'; -			handle.style.backgroundImage = 'url(images/toggle.gif)'; -			handle.style.backgroundRepeat = 'no-repeat'; - -			<!-- IF S_CONTENT_DIRECTION eq 'rtl' --> -				handle.style.backgroundPosition = '100% 50%'; -				toggle.style.left = '75%'; -			<!-- ELSE --> -				handle.style.backgroundPosition = '0% 50%'; -				toggle.style.left = '15%'; -			<!-- ENDIF --> -		break; -	} -} -  // ]]>  </script>  <!-- EVENT acp_overall_header_head_append -->  </head> -<body class="{S_CONTENT_DIRECTION}"> +<body class="{S_CONTENT_DIRECTION} nojs">  <div id="wrap">  	<div id="page-header"> @@ -171,29 +119,25 @@ function switch_menu()  		<div id="tabs">  			<ul>  			<!-- BEGIN t_block1 --> -				<li<!-- IF t_block1.S_SELECTED --> id="activetab"<!-- ENDIF -->><a href="{t_block1.U_TITLE}"><span>{t_block1.L_TITLE}</span></a></li> +				<li<!-- IF t_block1.S_SELECTED --> class="activetab"<!-- ENDIF -->><a href="{t_block1.U_TITLE}"><span>{t_block1.L_TITLE}</span></a></li>  			<!-- END t_block1 -->  			</ul>  		</div>  		<div id="acp"> -		<div class="panel"> -			<span class="corners-top"><span></span></span>  				<div id="content"> -					<!-- IF not S_USER_NOTICE -->  -					<div id="toggle"> -						<a id="toggle-handle" accesskey="m" title="{L_MENU_TOGGLE}" onclick="switch_menu(); return false;" href="#"></a></div> -					<!-- ENDIF -->  					<div id="menu">  						<p>{L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [ <a href="{U_LOGOUT}">{L_LOGOUT}</a> ][ <a href="{U_ADM_LOGOUT}">{L_ADM_LOGOUT}</a> ]     </p> -						<ul>  						<!-- DEFINE $LI_USED = 0 -->  						<!-- BEGIN l_block1 -->  							<!-- IF l_block1.S_SELECTED -->  						<!-- BEGIN l_block2 -->  							<!-- IF .l_block1.l_block2.l_block3 --> -							<li class="header">{l_block1.l_block2.L_TITLE}</li> +							<!-- IF $LI_USED --></ul></div><!-- ENDIF --> +							<div class="menu-block"> +								<a class="header" href="javascript:void(0);">{l_block1.l_block2.L_TITLE}</a> +								<ul>  							<!-- DEFINE $LI_USED = 1 -->  							<!-- ENDIF --> @@ -205,10 +149,12 @@ function switch_menu()  							<!-- ENDIF -->  						<!-- END l_block1 --> -						<!-- IF not $LI_USED --> -							<li></li> +						<!-- IF $LI_USED --> +								</ul> +							</div>  						<!-- ENDIF -->  						</ul>  					</div>  					<div id="main"> +						<div class="main"> diff --git a/phpBB/adm/style/permission_mask.html b/phpBB/adm/style/permission_mask.html index 4d52b901c3..003e8369ca 100644 --- a/phpBB/adm/style/permission_mask.html +++ b/phpBB/adm/style/permission_mask.html @@ -75,9 +75,8 @@  	<!-- BEGIN category -->  		<div class="permissions-panel" id="options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}" <!-- IF p_mask.S_FIRST_ROW and p_mask.f_mask.S_FIRST_ROW and p_mask.f_mask.category.S_FIRST_ROW --><!-- ELSE --> style="display: none;"<!-- ENDIF -->> -			<span class="corners-top"><span></span></span>  			<div class="tablewrap"> -				<table id="table{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}" cellspacing="1"> +				<table id="table{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}" cellspacing="1" class="not-responsive">  				<colgroup>  					<col class="permissions-name" />  					<col class="permissions-yes" /> @@ -128,7 +127,6 @@  			<!-- ENDIF --> -			<span class="corners-bottom"><span></span></span>  		</div>  	<!-- END category -->  			<div class="clearfix"></div> diff --git a/phpBB/composer.json b/phpBB/composer.json index 455ad49aac..ddb264de17 100644 --- a/phpBB/composer.json +++ b/phpBB/composer.json @@ -14,6 +14,7 @@  		"fabpot/goutte": "1.0.*",  		"phpunit/dbunit": "1.2.*",  		"phpunit/phpunit": "3.7.*", -		"phing/phing": "2.4.*" +		"phing/phing": "2.4.*", +		"squizlabs/php_codesniffer": "1.*"  	}  } diff --git a/phpBB/composer.lock b/phpBB/composer.lock index eb57ddb4d9..5d1ba4efe1 100644 --- a/phpBB/composer.lock +++ b/phpBB/composer.lock @@ -3,7 +3,7 @@          "This file locks the dependencies of your project to a known state",          "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"      ], -    "hash": "0bc0fd0d784720629ae0ba6d4be6a577", +    "hash": "7bcfe8f8ce4fa46cb53c276cf93dcd3e",      "packages": [          {              "name": "lusitanian/oauth", @@ -302,7 +302,7 @@                      "Symfony\\Component\\EventDispatcher\\": ""                  }              }, -            "notification-url": "http://packagist.org/downloads/", +            "notification-url": "https://packagist.org/downloads/",              "license": [                  "MIT"              ], @@ -1376,6 +1376,76 @@              "time": "2013-01-13 10:24:48"          },          { +            "name": "squizlabs/php_codesniffer", +            "version": "1.5.0RC4", +            "source": { +                "type": "git", +                "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", +                "reference": "146a9b54e4adeaca0a3ae073e0a8a03570d6cc43" +            }, +            "dist": { +                "type": "zip", +                "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/146a9b54e4adeaca0a3ae073e0a8a03570d6cc43", +                "reference": "146a9b54e4adeaca0a3ae073e0a8a03570d6cc43", +                "shasum": "" +            }, +            "require": { +                "ext-tokenizer": "*", +                "php": ">=5.1.2" +            }, +            "suggest": { +                "phpunit/php-timer": "dev-master" +            }, +            "bin": [ +                "scripts/phpcs" +            ], +            "type": "library", +            "autoload": { +                "classmap": [ +                    "CodeSniffer.php", +                    "CodeSniffer/CLI.php", +                    "CodeSniffer/Exception.php", +                    "CodeSniffer/File.php", +                    "CodeSniffer/Report.php", +                    "CodeSniffer/Reporting.php", +                    "CodeSniffer/Sniff.php", +                    "CodeSniffer/Tokens.php", +                    "CodeSniffer/Reports/", +                    "CodeSniffer/CommentParser/", +                    "CodeSniffer/Tokenizers/", +                    "CodeSniffer/DocGenerators/", +                    "CodeSniffer/Standards/AbstractPatternSniff.php", +                    "CodeSniffer/Standards/AbstractScopeSniff.php", +                    "CodeSniffer/Standards/AbstractVariableSniff.php", +                    "CodeSniffer/Standards/IncorrectPatternException.php", +                    "CodeSniffer/Standards/Generic/Sniffs/", +                    "CodeSniffer/Standards/MySource/Sniffs/", +                    "CodeSniffer/Standards/PEAR/Sniffs/", +                    "CodeSniffer/Standards/PSR1/Sniffs/", +                    "CodeSniffer/Standards/PSR2/Sniffs/", +                    "CodeSniffer/Standards/Squiz/Sniffs/", +                    "CodeSniffer/Standards/Zend/Sniffs/" +                ] +            }, +            "notification-url": "https://packagist.org/downloads/", +            "license": [ +                "BSD-3-Clause" +            ], +            "authors": [ +                { +                    "name": "Greg Sherwood", +                    "role": "lead" +                } +            ], +            "description": "PHP_CodeSniffer tokenises PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", +            "homepage": "http://www.squizlabs.com/php-codesniffer", +            "keywords": [ +                "phpcs", +                "standards" +            ], +            "time": "2013-09-26 00:14:02" +        }, +        {              "name": "symfony/browser-kit",              "version": "v2.3.4",              "target-dir": "Symfony/Component/BrowserKit", diff --git a/phpBB/config/services.yml b/phpBB/config/services.yml index c6490a21d7..7e3202d86b 100644 --- a/phpBB/config/services.yml +++ b/phpBB/config/services.yml @@ -22,7 +22,6 @@ services:          arguments:              - @config              - @avatar.driver_collection -            - @service_container      cache:          class: phpbb\cache\service diff --git a/phpBB/develop/export_events_for_wiki.php b/phpBB/develop/export_events_for_wiki.php new file mode 100644 index 0000000000..b276b4c5fa --- /dev/null +++ b/phpBB/develop/export_events_for_wiki.php @@ -0,0 +1,307 @@ +<?php +/** +* +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +if (php_sapi_name() != 'cli') +{ +	die("This program must be run from the command line.\n"); +} + +$phpEx = substr(strrchr(__FILE__, '.'), 1); +$phpbb_root_path = __DIR__ . '/../'; + +function usage() +{ +	echo "Usage: export_events_for_wiki.php COMMAND\n"; +	echo "\n"; +	echo "acp:\n"; +	echo "    Export all events for files in the acp style.\n"; +	echo "\n"; +	echo "styles:\n"; +	echo "    Export all events for files in the prosilver and subsilver2 styles.\n"; +	echo "\n"; +	echo "php:\n"; +	echo "    Export all events for php-files.\n"; +	exit(2); +} + +function export_from_eventsmd($phpbb_root_path, $filter) +{ +	$file_content = file_get_contents($phpbb_root_path . 'docs/events.md'); + +	$events = explode("\n\n", $file_content); +	foreach ($events as $event) +	{ +		// Last row of the file +		if (strpos($event, "\n===\n") === false) continue; + +		list($event_name, $details) = explode("\n===\n", $event); + +		if ($filter == 'acp' && strpos($event_name, 'acp_') !== 0) continue; +		if ($filter == 'styles' && strpos($event_name, 'acp_') === 0) continue; + +		list($file_details, $details) = explode("\n* Since: ", $details); +		list($version, $explanition) = explode("\n* Purpose: ", $details); + +		echo "|- id=\"{$event_name}\"\n"; +		echo "| [[#{$event_name}|{$event_name}]] || "; + +		if (strpos($file_details, "* Locations:\n    + ") === 0) +		{ +			$file_details = substr($file_details, strlen("* Locations:\n    + ")); +			$files = explode("\n    + ", $file_details); +			$prosilver = $subsilver2 = array(); +			foreach ($files as $file) +			{ +				if (strpos($file, 'styles/prosilver/template/') === 0) +				{ +					$prosilver[] = substr($file, strlen('styles/prosilver/template/')); +				} +				if (strpos($file, 'styles/subsilver2/template/') === 0) +				{ +					$subsilver2[] = substr($file, strlen('styles/subsilver2/template/')); +				} +			} +			echo implode(', ', $prosilver) . ' || ' . implode(', ', $subsilver2); +		} +		else if ($filter == 'acp') +		{ +			echo substr($file_details, strlen("* Location: adm/style/")); +		} +		echo " || {$version} || " . str_replace("\n", ' ', $explanition) . "\n"; + +	} +} + +function export_from_php($phpbb_root_path) +{ +	$files = get_file_list($phpbb_root_path); +	$events = array(); +	foreach ($files as $file) +	{ +		$file_events = check_for_events($phpbb_root_path, $file); +		if (!empty($file_events)) +		{ +			$events = array_merge($events, $file_events); +		} +	} + +	ksort($events); + +	foreach ($events as $event) +	{ +		echo '|- id="' . $event['event'] . '"' . "\n"; +		echo '| [[#' . $event['event'] . '|' . $event['event'] . ']] || ' . $event['file'] . ' || ' . implode(', ', $event['arguments']) . ' || ' . $event['since'] . ' || ' . $event['description'] . "\n"; +	} +} + +function check_for_events($phpbb_root_path, $file) +{ +	$events = array(); +	$content = file_get_contents($phpbb_root_path . $file); + +	if (strpos($content, "phpbb_dispatcher->trigger_event('") || strpos($content, "phpbb_dispatcher->dispatch('")) +	{ +		$lines = explode("\n", $content); +		for ($i = 0, $num_lines = sizeof($lines); $i < $num_lines; $i++) +		{ +			$event_line = 0; +			if ($found_trigger_event = strpos($lines[$i], "phpbb_dispatcher->trigger_event('")) +			{ +				$event_line = $i; +				$event_name = $lines[$event_line]; +				$event_name = substr($event_name, $found_trigger_event + strlen("phpbb_dispatcher->trigger_event('")); +				$event_name = substr($event_name, 0, strpos($event_name, "'")); + +				// Find $vars array lines +				$find_varsarray_line = 1; +				while (strpos($lines[$event_line - $find_varsarray_line], "vars = array('") === false) +				{ +					$find_varsarray_line++; + +					if ($find_varsarray_line > min(50, $event_line)) +					{ +						throw new LogicException('Can not find "$vars = array()"-line for event "' . $event_name . '" in file "' . $file . '"'); +					} +				} +				$varsarray = substr(trim($lines[$event_line - $find_varsarray_line]), strlen("\$vars = array('"), -3); +				$arguments = explode("', '", $varsarray); + +				// Validate $vars array with @var +				$find_vars_line = 3; +				$doc_vars = array(); +				while (strpos(trim($lines[$event_line - $find_vars_line]), '*') === 0) +				{ +					$var_line = trim($lines[$event_line - $find_vars_line]); +					$var_line = preg_replace('!\s+!', ' ', $var_line); +					if (strpos($var_line, '* @var ') === 0) +					{ +						$doc_line = explode(' ', $var_line); +						if (isset($doc_line[3])) +						{ +							$doc_vars[] = $doc_line[3]; +						} +					} +					$find_vars_line++; +				} +				if (sizeof($arguments) !== sizeof($doc_vars) && array_intersect($arguments, $doc_vars)) +				{ +					throw new LogicException('$vars array does not match the list of @var tags for event "' . $event_name . '" in file "' . $file . '"'); +				} +			} +			else if ($found_trigger_event = strpos($lines[$i], "phpbb_dispatcher->dispatch('")) +			{ +				$event_line = $i; +				$event_name = $lines[$event_line]; +				$event_name = substr($event_name, $found_trigger_event + strlen("phpbb_dispatcher->dispatch('")); +				$event_name = substr($event_name, 0, strpos($event_name, "'")); +				$arguments = array(); +			} + +			if ($event_line) +			{ +				// Validate @event name +				$find_event_line = 1; +				while (strpos($lines[$event_line - $find_event_line], '* @event ') === false) +				{ +					$find_event_line++; + +					if ($find_event_line > min(50, $event_line)) +					{ +						throw new LogicException('Can not find @event tag for event "' . $event_name . '" in file "' . $file . '"'); +					} +				} +				$event_name_tag = substr(trim($lines[$event_line - $find_event_line]), strlen('* @event ')); +				if ($event_name_tag !== $event_name) +				{ +					throw new LogicException('Event name does not match @event tag for event "' . $event_name . '" in file "' . $file . '"'); +				} + +				// Find @since +				$find_since_line = 1; +				while (strpos($lines[$event_line - $find_since_line], '* @since ') === false) +				{ +					$find_since_line++; + +					if ($find_since_line > min(50, $event_line)) +					{ +						throw new LogicException('Can not find @since tag for event "' . $event_name . '" in file "' . $file . '"'); +					} +				} +				$since = substr(trim($lines[$event_line - $find_since_line]), strlen('* @since ')); +				$since = ($since == '3.1-A1') ? '3.1.0-a1' : $since; + +				// Find event description line +				$find_description_line = 3; +				while (strpos(trim($lines[$event_line - $find_description_line]), '*') === 0) +				{ +					$find_description_line++; + +					if ($find_description_line > min(50, $event_line)) +					{ +						throw new LogicException('Can not find description-line for event "' . $event_name . '" in file "' . $file . '"'); +					} +				} +				$description = substr(trim($lines[$event_line - $find_description_line + 1]), strlen('* ')); + +				$events[$event_name] = array( +					'event'			=> $event_name, +					'file'			=> $file, +					'arguments'		=> $arguments, +					'since'			=> $since, +					'description'	=> $description, +				); +			} +		} +	} + +	return $events; +} + +/** +* Returns a list of files in that directory +* +* Works recursive with any depth +* +* @param	string	$dir	Directory to go through +* @return	array	List of files (including directories from within $dir +*/ +function get_file_list($dir, $path = '') +{ +	try +	{ +		$iterator = new \DirectoryIterator($dir); +	} +	catch (Exception $e) +	{ +		return array(); +	} + +	$files = array(); +	foreach ($iterator as $file_info) +	{ +		if ($file_info->isDot()) +		{ +			continue; +		} + +		// Do not scan some directories +		if ($file_info->isDir() && ( +			($path == '' && in_array($file_info->getFilename(), array('cache', 'develop', 'ext', 'files', 'language', 'store', 'vendor'))) +			|| ($path == '/includes' && in_array($file_info->getFilename(), array('utf'))) +			|| ($path == '/phpbb/db/migration' && in_array($file_info->getFilename(), array('data'))) +			|| ($path == '/phpbb' && in_array($file_info->getFilename(), array('event'))) +		)) +		{ +			continue; +		} +		else if ($file_info->isDir()) +		{ +			$sub_dir = get_file_list($file_info->getPath() . '/' . $file_info->getFilename(), $path . '/' . $file_info->getFilename()); +			foreach ($sub_dir as $file) +			{ +				$files[] = $file_info->getFilename() . '/' . $file; +			} +		} +		else if ($file_info->getExtension() == 'php') +		{ +			$files[] = $file_info->getFilename(); +		} +	} + +	return $files; +} + +function validate_argument_count($arguments, $count) +{ +	if ($arguments <= $count) +	{ +		usage(); +	} +} + +validate_argument_count($argc, 1); + +$action = $argv[1]; + +switch ($action) +{ +	case 'acp': +		export_from_eventsmd($phpbb_root_path, 'acp'); +		break; + +	case 'styles': +		export_from_eventsmd($phpbb_root_path, 'styles'); +		break; + +	case 'php': +		export_from_php($phpbb_root_path); +		break; + +	default: +		usage(); +} diff --git a/phpBB/docs/events.md b/phpBB/docs/events.md index bef4727149..49804a57bc 100644 --- a/phpBB/docs/events.md +++ b/phpBB/docs/events.md @@ -1,41 +1,49 @@  acp_forums_normal_settings_append  ===  * Location: adm/style/acp_forums.html +* Since: 3.1.0-a1  * Purpose: Add settings to forums  acp_main_actions_append  ===  * Location: adm/style/acp_main.html +* Since: 3.1.0-a1  * Purpose: Add actions to the ACP main page below the cache purge action  acp_main_notice_after  ===  * Location: adm/style/acp_main.html +* Since: 3.1.0-a1  * Purpose: Add notices or other blocks in the ACP below other configuration notices  acp_overall_footer_after  ===  * Location: adm/style/overall_footer.html +* Since: 3.1.0-a1  * Purpose: Add content below the footer in the ACP  acp_overall_header_head_append  ===  * Location: adm/style/overall_header.html -* Add assets within the `<head>` tags in the ACP +* Since: 3.1.0-a1 +* Purpose: Add assets within the `<head>` tags in the ACP  acp_simple_footer_after  ===  * Location: adm/style/simple_footer.html +* Since: 3.1.0-a1  * Purpose: Add content below the simple footer in the ACP  acp_simple_header_head_append  ===  * Location: adm/style/overall_header.html -* Add assets within the `<head>` tags in the simple header of the ACP +* Since: 3.1.0-a1 +* Purpose: Add assets within the `<head>` tags in the simple header of the ACP  acp_users_overview_options_append  ===  * Location: adm/style/acp_users.html +* Since: 3.1.0-a1  * Purpose: Add options and settings on user overview page  forumlist_body_last_post_title_prepend @@ -43,6 +51,7 @@ forumlist_body_last_post_title_prepend  * Locations:      + styles/prosilver/template/forumlist_body.html      + styles/subsilver2/template/forumlist_body.html +* Since: 3.1.0-a1  * Purpose: Add content before the post title of the latest post in a forum on the forum list.  index_body_stat_blocks_before @@ -50,6 +59,7 @@ index_body_stat_blocks_before  * Locations:      + styles/prosilver/template/index_body.html      + styles/subsilver2/template/index_body.html +* Since: 3.1.0-a1  * Purpose: Add new statistic blocks above the Who Is Online and Board Statistics blocks  memberlist_body_username_append @@ -57,6 +67,7 @@ memberlist_body_username_append  * Locations:      + styles/prosilver/template/memberlist_body.html      + styles/subsilver2/template/memberlist_body.html +* Since: 3.1.0-a1  * Purpose: Add information after every username in the memberlist. Works in  all display modes (leader, group and normal memberlist). @@ -65,6 +76,7 @@ memberlist_body_username_prepend  * Locations:      + styles/prosilver/template/memberlist_body.html      + styles/subsilver2/template/memberlist_body.html +* Since: 3.1.0-a1  * Purpose: Add information before every username in the memberlist. Works in  all display modes (leader, group and normal memberlist). @@ -73,6 +85,7 @@ memberlist_view_user_statistics_after  * Locations:      + styles/prosilver/template/memberlist_view.html      + styles/subsilver2/template/memberlist_view.html +* Since: 3.1.0-a1  * Purpose: Add entries after the user statistics part of any user profile  memberlist_view_user_statistics_before @@ -80,6 +93,7 @@ memberlist_view_user_statistics_before  * Locations:      + styles/prosilver/template/memberlist_view.html      + styles/subsilver2/template/memberlist_view.html +* Since: 3.1.0-a1  * Purpose: Add entries before the user statistics part of any user profile  overall_footer_after @@ -87,11 +101,14 @@ overall_footer_after  * Locations:      + styles/prosilver/template/overall_footer.html      + styles/subsilver2/template/overall_footer.html +* Since: 3.1.0-a1  * Purpose: Add content at the end of the file, directly prior to the `</body>` tag  overall_footer_breadcrumb_append  === -* Location: styles/prosilver/template/overall_footer.html +* Locations: +    + styles/prosilver/template/overall_footer.html +* Since: 3.1.0-a1  * Purpose: Add links to the list of breadcrumbs in the footer  overall_footer_copyright_append @@ -99,6 +116,7 @@ overall_footer_copyright_append  * Locations:      + styles/prosilver/template/overall_footer.html      + styles/subsilver2/template/overall_footer.html +* Since: 3.1.0-a1  * Purpose: Add content after the copyright line (no new line by default), before the ACP link  overall_footer_copyright_prepend @@ -106,6 +124,7 @@ overall_footer_copyright_prepend  * Locations:      + styles/prosilver/template/overall_footer.html      + styles/subsilver2/template/overall_footer.html +* Since: 3.1.0-a1  * Purpose: Add content before the copyright line  overall_header_breadcrumb_append @@ -113,6 +132,7 @@ overall_header_breadcrumb_append  * Locations:      + styles/prosilver/template/overall_header.html      + styles/subsilver2/template/breadcrumbs.html +* Since: 3.1.0-a1  * Purpose: Add links to the list of breadcrumbs in the header  overall_header_head_append @@ -120,16 +140,21 @@ overall_header_head_append  * Locations:      + styles/prosilver/template/overall_header.html      + styles/subsilver2/template/overall_header.html +* Since: 3.1.0-a1  * Purpose: Add asset calls directly before the `</head>` tag  overall_header_navigation_append  === -* Location: styles/prosilver/template/overall_header.html +* Locations: +    + styles/prosilver/template/overall_header.html +* Since: 3.1.0-a1  * Purpose: Add links after the navigation links in the header  overall_header_navigation_prepend  === -* Location: styles/prosilver/template/overall_header.html +* Locations: +    + styles/prosilver/template/overall_header.html +* Since: 3.1.0-a1  * Purpose: Add links before the navigation links in the header  posting_editor_options_prepend @@ -137,11 +162,14 @@ posting_editor_options_prepend  * Locations:      + styles/prosilver/template/posting_editor.html      + styles/prosilver/template/posting_body.html +* Since: 3.1.0-a1  * Purpose: Add posting options on the posting screen  simple_footer_after  === -* Location: styles/prosilver/template/simple_footer.html +* Locations: +    + styles/prosilver/template/simple_footer.html +* Since: 3.1.0-a1  * Purpose: Add content directly prior to the `</body>` tag of the simple footer  topiclist_row_prepend @@ -151,6 +179,7 @@ topiclist_row_prepend      + styles/prosilver/template/viewforum_body.html      + styles/subsilver2/template/search_results.html      + styles/subsilver2/template/viewforum_body.html +* Since: 3.1.0-a1  * Purpose: Add content into topic rows (inside the elements containing topic titles)  topiclist_row_append @@ -160,23 +189,30 @@ topiclist_row_append      + styles/prosilver/template/viewforum_body.html      + styles/subsilver2/template/search_results.html      + styles/subsilver2/template/viewforum_body.html +* Since: 3.1.0-a1  * Purpose: Add content into topic rows (inside the elements containing topic titles)  ucp_pm_viewmessage_custom_fields_after  === -* Location: styles/prosilver/template/ucp_pm_viewmessage.html +* Locations: +    + styles/prosilver/template/ucp_pm_viewmessage.html +* Since: 3.1.0-a1  * Purpose: Add data after the custom fields on the user profile when viewing  a private message  ucp_pm_viewmessage_custom_fields_before  === -* Location: styles/prosilver/template/ucp_pm_viewmessage.html +* Locations: +    + styles/prosilver/template/ucp_pm_viewmessage.html +* Since: 3.1.0-a1  * Purpose: Add data before the custom fields on the user profile when viewing  a private message  ucp_pm_viewmessage_print_head_append  === -* Location: styles/prosilver/template/ucp_pm_viewmessage_print.html +* Locations: +    + styles/prosilver/template/ucp_pm_viewmessage_print.html +* Since: 3.1.0-a1  * Purpose: Add asset calls directly before the `</head>` tag of the Print PM screen  ucp_prefs_personal_prepend @@ -184,6 +220,7 @@ ucp_prefs_personal_prepend  * Locations:      + styles/prosilver/template/ucp_prefs_personal.html      + styles/subsilver2/template/ucp_prefs_personal.html +* Since: 3.1.0-a1  * Purpose: Add user options to the top of the Edit Global Settings block  ucp_prefs_personal_append @@ -191,6 +228,7 @@ ucp_prefs_personal_append  * Locations:      + styles/prosilver/template/ucp_prefs_personal.html      + styles/subsilver2/template/ucp_prefs_personal.html +* Since: 3.1.0-a1  * Purpose: Add user options to the bottom of the Edit Global Settings block  ucp_prefs_post_prepend @@ -198,6 +236,7 @@ ucp_prefs_post_prepend  * Locations:      + styles/prosilver/template/ucp_prefs_post.html      + styles/subsilver2/template/ucp_prefs_post.html +* Since: 3.1.0-a1  * Purpose: Add user options to the top of the Edit Posting Defaults block  ucp_prefs_post_append @@ -205,6 +244,7 @@ ucp_prefs_post_append  * Locations:      + styles/prosilver/template/ucp_prefs_post.html      + styles/subsilver2/template/ucp_prefs_post.html +* Since: 3.1.0-a1  * Purpose: Add user options to the bottom of the Edit Posting Defaults block  ucp_prefs_view_radio_buttons_prepend @@ -212,6 +252,7 @@ ucp_prefs_view_radio_buttons_prepend  * Locations:      + styles/prosilver/template/ucp_prefs_view.html      + styles/subsilver2/template/ucp_prefs_view.html +* Since: 3.1.0-a1  * Purpose: Add options to the top of the radio buttons block of the Edit   Display Options screen @@ -220,6 +261,7 @@ ucp_prefs_view_radio_buttons_append  * Locations:      + styles/prosilver/template/ucp_prefs_view.html      + styles/subsilver2/template/ucp_prefs_view.html +* Since: 3.1.0-a1  * Purpose: Add options to the bottom of the radio buttons block of the Edit   Display Options screen @@ -228,6 +270,7 @@ ucp_prefs_view_select_menu_prepend  * Locations:      + styles/prosilver/template/ucp_prefs_view.html      + styles/subsilver2/template/ucp_prefs_view.html +* Since: 3.1.0-a1  * Purpose: Add options to the top of the drop-down lists block of the Edit   Display Options screen @@ -236,12 +279,15 @@ ucp_prefs_view_select_menu_append  * Locations:      + styles/prosilver/template/ucp_prefs_view.html      + styles/subsilver2/template/ucp_prefs_view.html +* Since: 3.1.0-a1  * Purpose: Add options to the bottom of the drop-down lists block of the Edit   Display Options screen  viewtopic_print_head_append  === -* Location: styles/prosilver/template/viewtopic_print.html +* Locations: +    + styles/prosilver/template/viewtopic_print.html +* Since: 3.1.0-a1  * Purpose: Add asset calls directly before the `</head>` tag of the Print Topic screen  viewtopic_body_footer_before @@ -249,6 +295,7 @@ viewtopic_body_footer_before  * Locations:      + styles/prosilver/template/viewtopic_body.html      + styles/subsilver2/template/viewtopic_body.html +* Since: 3.1.0-a1  * Purpose: Add content to the bottom of the View topic screen below the posts  and quick reply, directly before the jumpbox in Prosilver, breadcrumbs in  Subsilver2. @@ -258,6 +305,7 @@ viewtopic_body_post_buttons_after  * Locations:      + styles/prosilver/template/viewtopic_body.html      + styles/subsilver2/template/viewtopic_body.html +* Since: 3.1.0-a1  * Purpose: Add post button to posts (next to edit, quote etc), at the end of  the list. @@ -266,6 +314,7 @@ viewtopic_body_post_buttons_before  * Locations:      + styles/prosilver/template/viewtopic_body.html      + styles/subsilver2/template/viewtopic_body.html +* Since: 3.1.0-a1  * Purpose: Add post button to posts (next to edit, quote etc), at the start of  the list. @@ -274,6 +323,7 @@ viewtopic_body_postrow_custom_fields_after  * Locations:      + styles/prosilver/template/viewtopic_body.html      + styles/subsilver2/template/viewtopic_body.html +* Since: 3.1.0-a1  * Purpose: Add data after the custom fields on the user profile when viewing  a post @@ -282,6 +332,7 @@ viewtopic_body_postrow_custom_fields_before  * Locations:      + styles/prosilver/template/viewtopic_body.html      + styles/subsilver2/template/viewtopic_body.html +* Since: 3.1.0-a1  * Purpose: Add data before the custom fields on the user profile when viewing  a post @@ -290,4 +341,5 @@ viewtopic_topic_title_prepend  * Locations:      + styles/prosilver/template/viewtopic_body.html      + styles/subsilver2/template/viewtopic_body.html +* Since: 3.1.0-a1  * Purpose: Add content directly before the topic title link on the View topic screen diff --git a/phpBB/download/file.php b/phpBB/download/file.php index 04d68f6a48..7d39ee4821 100644 --- a/phpBB/download/file.php +++ b/phpBB/download/file.php @@ -181,7 +181,7 @@ else  	trigger_error('NO_ATTACHMENT_SELECTED');  } -$sql = 'SELECT attach_id, post_msg_id, topic_id, in_message, is_orphan, physical_filename, real_filename, extension, mimetype, filesize, filetime +$sql = 'SELECT attach_id, post_msg_id, topic_id, in_message, poster_id, is_orphan, physical_filename, real_filename, extension, mimetype, filesize, filetime  	FROM ' . ATTACHMENTS_TABLE . "  	WHERE $sql_where";  $result = $db->sql_query($sql); diff --git a/phpBB/includes/acp/acp_database.php b/phpBB/includes/acp/acp_database.php index fc08a5fb94..86879de816 100644 --- a/phpBB/includes/acp/acp_database.php +++ b/phpBB/includes/acp/acp_database.php @@ -94,29 +94,29 @@ class acp_database  							case 'mysqli':  							case 'mysql4':  							case 'mysql': -								$extractor = new mysql_extractor($download, $store, $format, $filename, $time); +								$extractor = new mysql_extractor($format, $filename, $time, $download, $store);  							break;  							case 'sqlite': -								$extractor = new sqlite_extractor($download, $store, $format, $filename, $time); +								$extractor = new sqlite_extractor($format, $filename, $time, $download, $store);  							break;  							case 'postgres': -								$extractor = new postgres_extractor($download, $store, $format, $filename, $time); +								$extractor = new postgres_extractor($format, $filename, $time, $download, $store);  							break;  							case 'oracle': -								$extractor = new oracle_extractor($download, $store, $format, $filename, $time); +								$extractor = new oracle_extractor($format, $filename, $time, $download, $store);  							break;  							case 'mssql':  							case 'mssql_odbc':  							case 'mssqlnative': -								$extractor = new mssql_extractor($download, $store, $format, $filename, $time); +								$extractor = new mssql_extractor($format, $filename, $time, $download, $store);  							break;  							case 'firebird': -								$extractor = new firebird_extractor($download, $store, $format, $filename, $time); +								$extractor = new firebird_extractor($format, $filename, $time, $download, $store);  							break;  						} @@ -488,7 +488,7 @@ class base_extractor  	var $format;  	var $run_comp = false; -	function base_extractor($download = false, $store = false, $format, $filename, $time) +	function base_extractor($format, $filename, $time, $download = false, $store = false)  	{  		global $request; diff --git a/phpBB/includes/acp/acp_forums.php b/phpBB/includes/acp/acp_forums.php index 258aabcc0d..029f4b23c9 100644 --- a/phpBB/includes/acp/acp_forums.php +++ b/phpBB/includes/acp/acp_forums.php @@ -1470,7 +1470,7 @@ class acp_forums  		/**  		* Event when we move content from one forum to another  		* -		* @event core.acp_manage_forums_move_children +		* @event core.acp_manage_forums_move_content  		* @var	int		from_id		If of the current parent forum  		* @var	int		to_id		If of the new parent forum  		* @var	bool	sync		Shall we sync the "to"-forum's data diff --git a/phpBB/includes/acp/acp_styles.php b/phpBB/includes/acp/acp_styles.php index 094d84de40..d5492d85a3 100644 --- a/phpBB/includes/acp/acp_styles.php +++ b/phpBB/includes/acp/acp_styles.php @@ -888,7 +888,11 @@ class acp_styles  	protected function list_style(&$style, $level)  	{  		// Mark row as shown -		if (!empty($style['_shown'])) return; +		if (!empty($style['_shown'])) +		{ +			return; +		} +  		$style['_shown'] = true;  		// Generate template variables diff --git a/phpBB/includes/acp/auth.php b/phpBB/includes/acp/auth.php index f5f90fb5b8..a023bced0a 100644 --- a/phpBB/includes/acp/auth.php +++ b/phpBB/includes/acp/auth.php @@ -506,7 +506,7 @@ class auth_admin extends \phpbb\auth\auth  						'FORUM_ID'			=> $forum_id)  					); -					$this->assign_cat_array($ug_array, $tpl_pmask . '.' . $tpl_fmask . '.' . $tpl_category, $tpl_mask, $ug_id, $forum_id, $show_trace, ($mode == 'view')); +					$this->assign_cat_array($ug_array, $tpl_pmask . '.' . $tpl_fmask . '.' . $tpl_category, $tpl_mask, $ug_id, $forum_id, ($mode == 'view'), $show_trace);  					unset($content_array[$ug_id]);  				} @@ -593,7 +593,7 @@ class auth_admin extends \phpbb\auth\auth  						'FORUM_ID'			=> $forum_id)  					); -					$this->assign_cat_array($forum_array, $tpl_pmask . '.' . $tpl_fmask . '.' . $tpl_category, $tpl_mask, $ug_id, $forum_id, $show_trace, ($mode == 'view')); +					$this->assign_cat_array($forum_array, $tpl_pmask . '.' . $tpl_fmask . '.' . $tpl_category, $tpl_mask, $ug_id, $forum_id, ($mode == 'view'), $show_trace);  				}  				unset($hold_ary[$ug_id], $ug_names_ary[$ug_id]); @@ -1099,7 +1099,7 @@ class auth_admin extends \phpbb\auth\auth  	* Assign category to template  	* used by display_mask()  	*/ -	function assign_cat_array(&$category_array, $tpl_cat, $tpl_mask, $ug_id, $forum_id, $show_trace = false, $s_view) +	function assign_cat_array(&$category_array, $tpl_cat, $tpl_mask, $ug_id, $forum_id, $s_view, $show_trace = false)  	{  		global $template, $user, $phpbb_admin_path, $phpEx, $phpbb_container; diff --git a/phpBB/includes/captcha/captcha_gd_wave.php b/phpBB/includes/captcha/captcha_gd_wave.php index e19f54f777..a61324d120 100644 --- a/phpBB/includes/captcha/captcha_gd_wave.php +++ b/phpBB/includes/captcha/captcha_gd_wave.php @@ -184,7 +184,7 @@ class captcha  			for ($x = 1; $x <= $full_x; ++$x)  			{ -				$cur_height		= $this->wave_height($x, $y, $subdivision_factor) + $this->grid_height($x, $y, 1, $x_grid, $y_grid); +				$cur_height		= $this->wave_height($x, $y, $subdivision_factor) + $this->grid_height($x, $y, $x_grid, $y_grid, 1);  				// height is a z-factor, not a y-factor  				$offset			= $cur_height - $prev_height; @@ -264,7 +264,7 @@ class captcha  		return ((sin($x / (3 * $factor)) + sin($y / (3 * $factor))) * 10 * $tweak);  	} -	function grid_height($x, $y, $factor = 1, $x_grid, $y_grid) +	function grid_height($x, $y, $x_grid, $y_grid, $factor = 1)  	{  		return ((!($x % ($x_grid * $factor)) || !($y % ($y_grid * $factor))) ? 3 : 0);  	} diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index cf8ae3a997..f6f1c96ac7 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -5591,14 +5591,14 @@ function garbage_collection()  	global $cache, $db;  	global $phpbb_dispatcher; -	/** -	* Unload some objects, to free some memory, before we finish our task -	* -	* @event core.garbage_collection -	* @since 3.1-A1 -	*/  	if (!empty($phpbb_dispatcher))  	{ +		/** +		* Unload some objects, to free some memory, before we finish our task +		* +		* @event core.garbage_collection +		* @since 3.1-A1 +		*/  		$phpbb_dispatcher->dispatch('core.garbage_collection');  	} diff --git a/phpBB/includes/functions_compress.php b/phpBB/includes/functions_compress.php index c79a31930e..39a1b2ad21 100644 --- a/phpBB/includes/functions_compress.php +++ b/phpBB/includes/functions_compress.php @@ -46,7 +46,7 @@ class compress  		if (is_file($phpbb_root_path . $src))  		{ -			$this->data($src_path, file_get_contents("$phpbb_root_path$src"), false, stat("$phpbb_root_path$src")); +			$this->data($src_path, file_get_contents("$phpbb_root_path$src"), stat("$phpbb_root_path$src"), false);  		}  		else if (is_dir($phpbb_root_path . $src))  		{ @@ -86,7 +86,7 @@ class compress  						continue;  					} -					$this->data("$src_path$path$file", file_get_contents("$phpbb_root_path$src$path$file"), false, stat("$phpbb_root_path$src$path$file")); +					$this->data("$src_path$path$file", file_get_contents("$phpbb_root_path$src$path$file"), stat("$phpbb_root_path$src$path$file"), false);  				}  			}  		} @@ -109,7 +109,7 @@ class compress  			return false;  		} -		$this->data($filename, file_get_contents($src), false, stat($src)); +		$this->data($filename, file_get_contents($src), stat($src), false);  		return true;  	} @@ -123,7 +123,7 @@ class compress  		$stat[4] = $stat[5] = 0;  		$stat[7] = strlen($src);  		$stat[9] = time(); -		$this->data($name, $src, false, $stat); +		$this->data($name, $src, $stat, false);  		return true;  	} @@ -395,7 +395,7 @@ class compress_zip extends compress  	/**  	* Create the structures ... note we assume version made by is MSDOS  	*/ -	function data($name, $data, $is_dir = false, $stat) +	function data($name, $data, $stat, $is_dir = false)  	{  		$name = str_replace('\\', '/', $name);  		$name = $this->unique_filename($name); @@ -669,7 +669,7 @@ class compress_tar extends compress  	/**  	* Create the structures  	*/ -	function data($name, $data, $is_dir = false, $stat) +	function data($name, $data, $stat, $is_dir = false)  	{  		$name = $this->unique_filename($name);  		$this->wrote = true; diff --git a/phpBB/includes/functions_messenger.php b/phpBB/includes/functions_messenger.php index 5b343e616e..6ceeb50330 100644 --- a/phpBB/includes/functions_messenger.php +++ b/phpBB/includes/functions_messenger.php @@ -1414,7 +1414,7 @@ class smtp_class  		$result = false;  		$stream_meta = stream_get_meta_data($this->socket); -		if (socket_set_blocking($this->socket, 1)); +		if (socket_set_blocking($this->socket, 1))  		{  			$result = stream_socket_enable_crypto($this->socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);  			socket_set_blocking($this->socket, (int) $stream_meta['blocked']); diff --git a/phpBB/includes/ucp/ucp_notifications.php b/phpBB/includes/ucp/ucp_notifications.php index 145963837c..dd62b69342 100644 --- a/phpBB/includes/ucp/ucp_notifications.php +++ b/phpBB/includes/ucp/ucp_notifications.php @@ -78,9 +78,9 @@ class ucp_notifications  					trigger_error($message);  				} -				$this->output_notification_methods('notification_methods', $phpbb_notifications, $template, $user); +				$this->output_notification_methods($phpbb_notifications, $template, $user, 'notification_methods'); -				$this->output_notification_types($subscriptions, 'notification_types', $phpbb_notifications, $template, $user); +				$this->output_notification_types($subscriptions, $phpbb_notifications, $template, $user, 'notification_types');  				$this->tpl_name = 'ucp_notifications';  				$this->page_title = 'UCP_NOTIFICATION_OPTIONS'; @@ -162,12 +162,12 @@ class ucp_notifications  	/**  	* Output all the notification types to the template  	* -	* @param string $block  	* @param \phpbb\notification\manager $phpbb_notifications  	* @param \phpbb\template\template $template  	* @param \phpbb\user $user +	* @param string $block  	*/ -	public function output_notification_types($subscriptions, $block = 'notification_types', \phpbb\notification\manager $phpbb_notifications, \phpbb\template\template $template, \phpbb\user $user) +	public function output_notification_types($subscriptions, \phpbb\notification\manager $phpbb_notifications, \phpbb\template\template $template, \phpbb\user $user, $block = 'notification_types')  	{  		$notification_methods = $phpbb_notifications->get_subscription_methods(); @@ -209,12 +209,12 @@ class ucp_notifications  	/**  	* Output all the notification methods to the template  	* -	* @param string $block  	* @param \phpbb\notification\manager $phpbb_notifications  	* @param \phpbb\template\template $template  	* @param \phpbb\user $user +	* @param string $block  	*/ -	public function output_notification_methods($block = 'notification_methods', \phpbb\notification\manager $phpbb_notifications, \phpbb\template\template $template, \phpbb\user $user) +	public function output_notification_methods(\phpbb\notification\manager $phpbb_notifications, \phpbb\template\template $template, \phpbb\user $user, $block = 'notification_methods')  	{  		$notification_methods = $phpbb_notifications->get_subscription_methods(); diff --git a/phpBB/includes/ucp/ucp_zebra.php b/phpBB/includes/ucp/ucp_zebra.php index 6bb3cdc145..090f9bf34c 100644 --- a/phpBB/includes/ucp/ucp_zebra.php +++ b/phpBB/includes/ucp/ucp_zebra.php @@ -64,7 +64,7 @@ class ucp_zebra  						* @var	array	user_ids	User ids we remove  						* @since 3.1-A1  						*/ -						$vars = array('user_ids'); +						$vars = array('mode', 'user_ids');  						extract($phpbb_dispatcher->trigger_event('core.ucp_remove_zebra', compact($vars)));  						$sql = 'DELETE FROM ' . ZEBRA_TABLE . ' diff --git a/phpBB/phpbb/auth/provider/ldap.php b/phpBB/phpbb/auth/provider/ldap.php index 9d29789567..2123a587cb 100644 --- a/phpBB/phpbb/auth/provider/ldap.php +++ b/phpBB/phpbb/auth/provider/ldap.php @@ -97,7 +97,6 @@ class ldap extends \phpbb\auth\provider\base  		@ldap_close($ldap); -  		if (!is_array($result) || sizeof($result) < 2)  		{  			return sprintf($this->user->lang['LDAP_NO_IDENTITY'], $this->user->data['username']); diff --git a/phpBB/phpbb/auth/provider/oauth/oauth.php b/phpBB/phpbb/auth/provider/oauth/oauth.php index de81ac0d04..5df56db00a 100644 --- a/phpBB/phpbb/auth/provider/oauth/oauth.php +++ b/phpBB/phpbb/auth/provider/oauth/oauth.php @@ -179,7 +179,7 @@ class oauth extends \phpbb\auth\provider\base  		$storage = new \phpbb\auth\provider\oauth\token_storage($this->db, $this->user, $this->auth_provider_oauth_token_storage_table);  		$query = 'mode=login&login=external&oauth_service=' . $service_name_original; -		$service = $this->get_service($service_name_original, $storage, $service_credentials, $this->service_providers[$service_name]->get_auth_scope(), $query); +		$service = $this->get_service($service_name_original, $storage, $service_credentials, $query, $this->service_providers[$service_name]->get_auth_scope());  		if ($this->request->is_set('code', \phpbb\request\request_interface::GET))  		{ @@ -273,13 +273,13 @@ class oauth extends \phpbb\auth\provider\base  	* @param	string	$service_name			The name of the service  	* @param	\phpbb\auth\provider\oauth\token_storage $storage  	* @param	array	$service_credentials	{@see \phpbb\auth\provider\oauth\oauth::get_service_credentials} -	* @param	array	$scope					The scope of the request against -	*											the api.  	* @param	string	$query					The query string of the  	*											current_uri used in redirection +	* @param	array	$scope					The scope of the request against +	*											the api.  	* @return	\OAuth\Common\Service\ServiceInterface  	*/ -	protected function get_service($service_name, \phpbb\auth\provider\oauth\token_storage $storage, array $service_credentials, array $scopes = array(), $query) +	protected function get_service($service_name, \phpbb\auth\provider\oauth\token_storage $storage, array $service_credentials, $query, array $scopes = array())  	{  		$current_uri = $this->get_current_uri($service_name, $query); @@ -458,7 +458,7 @@ class oauth extends \phpbb\auth\provider\base  		// Prepare for an authentication request  		$service_credentials = $this->service_providers[$service_name]->get_service_credentials();  		$scopes = $this->service_providers[$service_name]->get_auth_scope(); -		$service = $this->get_service(strtolower($link_data['oauth_service']), $storage, $service_credentials, $scopes, $query); +		$service = $this->get_service(strtolower($link_data['oauth_service']), $storage, $service_credentials, $query, $scopes);  		$this->service_providers[$service_name]->set_external_service_provider($service);  		// The user has already authenticated successfully, request to authenticate again @@ -491,7 +491,7 @@ class oauth extends \phpbb\auth\provider\base  		$query = 'i=ucp_auth_link&mode=auth_link&link=1&oauth_service=' . strtolower($link_data['oauth_service']);  		$service_credentials = $this->service_providers[$service_name]->get_service_credentials();  		$scopes = $this->service_providers[$service_name]->get_auth_scope(); -		$service = $this->get_service(strtolower($link_data['oauth_service']), $storage, $service_credentials, $scopes, $query); +		$service = $this->get_service(strtolower($link_data['oauth_service']), $storage, $service_credentials, $query, $scopes);  		if ($this->request->is_set('code', \phpbb\request\request_interface::GET))  		{ diff --git a/phpBB/phpbb/auth/provider/oauth/token_storage.php b/phpBB/phpbb/auth/provider/oauth/token_storage.php index 2ce0e32da3..cc912abf6d 100644 --- a/phpBB/phpbb/auth/provider/oauth/token_storage.php +++ b/phpBB/phpbb/auth/provider/oauth/token_storage.php @@ -78,7 +78,7 @@ class token_storage implements TokenStorageInterface  	{  		$service = $this->get_service_name_for_db($service); -		if ($this->cachedToken instanceOf TokenInterface) +		if ($this->cachedToken instanceof TokenInterface)  		{  			return $this->cachedToken;  		} @@ -238,7 +238,7 @@ class token_storage implements TokenStorageInterface  	{  		$service = $this->get_service_name_for_db($service); -		if ($this->cachedToken instanceOf TokenInterface) { +		if ($this->cachedToken instanceof TokenInterface) {  			return $this->cachedToken;  		} diff --git a/phpBB/phpbb/avatar/manager.php b/phpBB/phpbb/avatar/manager.php index c28380a401..7c26bce5ae 100644 --- a/phpBB/phpbb/avatar/manager.php +++ b/phpBB/phpbb/avatar/manager.php @@ -42,12 +42,6 @@ class manager  	protected $avatar_drivers;  	/** -	* Service container object -	* @var object -	*/ -	protected $container; - -	/**  	* Default avatar data row  	* @var array  	*/ @@ -63,13 +57,27 @@ class manager  	*  	* @param \phpbb\config\config $config phpBB configuration  	* @param array $avatar_drivers Avatar drivers passed via the service container -	* @param object $container Container object  	*/ -	public function __construct(\phpbb\config\config $config, $avatar_drivers, $container) +	public function __construct(\phpbb\config\config $config, $avatar_drivers)  	{  		$this->config = $config; -		$this->avatar_drivers = $avatar_drivers; -		$this->container = $container; +		$this->register_avatar_drivers($avatar_drivers); +	} + +	/** +	* Register avatar drivers +	* +	* @param array $avatar_drivers Service collection of avatar drivers +	*/ +	protected function register_avatar_drivers($avatar_drivers) +	{ +		if (!empty($avatar_drivers)) +		{ +			foreach ($avatar_drivers as $driver) +			{ +				$this->avatar_drivers[$driver->get_name()] = $driver; +			} +		}  	}  	/** @@ -112,7 +120,7 @@ class manager  		* There is no need to handle invalid avatar types as the following code  		* will cause a ServiceNotFoundException if the type does not exist  		*/ -		$driver = $this->container->get($avatar_type); +		$driver = $this->avatar_drivers[$avatar_type];  		return $driver;  	} diff --git a/phpBB/phpbb/db/driver/mssql.php b/phpBB/phpbb/db/driver/mssql.php index 50096deded..e1b41461e2 100644 --- a/phpBB/phpbb/db/driver/mssql.php +++ b/phpBB/phpbb/db/driver/mssql.php @@ -259,7 +259,7 @@ class mssql extends \phpbb\db\driver\driver  		{  			foreach ($row as $key => $value)  			{ -				$row[$key] = ($value === ' ' || $value === NULL) ? '' : $value; +				$row[$key] = ($value === ' ' || $value === null) ? '' : $value;  			}  		} diff --git a/phpBB/phpbb/db/driver/mssqlnative.php b/phpBB/phpbb/db/driver/mssqlnative.php index aade311bcb..2eb625fb11 100644 --- a/phpBB/phpbb/db/driver/mssqlnative.php +++ b/phpBB/phpbb/db/driver/mssqlnative.php @@ -195,7 +195,7 @@ class result_mssqlnative  */  class mssqlnative extends \phpbb\db\driver\mssql_base  { -	var $m_insert_id = NULL; +	var $m_insert_id = null;  	var $last_query_text = '';  	var $query_options = array();  	var $connect_error = ''; @@ -427,7 +427,7 @@ class mssqlnative extends \phpbb\db\driver\mssql_base  		{  			foreach ($row as $key => $value)  			{ -				$row[$key] = ($value === ' ' || $value === NULL) ? '' : $value; +				$row[$key] = ($value === ' ' || $value === null) ? '' : $value;  			}  			// remove helper values from LIMIT queries diff --git a/phpBB/phpbb/db/driver/mysqli.php b/phpBB/phpbb/db/driver/mysqli.php index 4d0e43b464..6144dba0c4 100644 --- a/phpBB/phpbb/db/driver/mysqli.php +++ b/phpBB/phpbb/db/driver/mysqli.php @@ -47,11 +47,11 @@ class mysqli extends \phpbb\db\driver\mysql_base  		$this->server = ($this->persistency) ? 'p:' . (($sqlserver) ? $sqlserver : 'localhost') : $sqlserver;  		$this->dbname = $database; -		$port = (!$port) ? NULL : $port; +		$port = (!$port) ? null : $port;  		// If port is set and it is not numeric, most likely mysqli socket is set.  		// Try to map it to the $socket parameter. -		$socket = NULL; +		$socket = null;  		if ($port)  		{  			if (is_numeric($port)) @@ -61,7 +61,7 @@ class mysqli extends \phpbb\db\driver\mysql_base  			else  			{  				$socket = $port; -				$port = NULL; +				$port = null;  			}  		} diff --git a/phpBB/phpbb/db/driver/postgres.php b/phpBB/phpbb/db/driver/postgres.php index 9cbb1ecb07..5cd6578d87 100644 --- a/phpBB/phpbb/db/driver/postgres.php +++ b/phpBB/phpbb/db/driver/postgres.php @@ -328,7 +328,7 @@ class postgres extends \phpbb\db\driver\driver  					return false;  				} -				$temp_result = @pg_fetch_assoc($temp_q_id, NULL); +				$temp_result = @pg_fetch_assoc($temp_q_id, null);  				@pg_free_result($query_id);  				return ($temp_result) ? $temp_result['last_value'] : false; @@ -456,7 +456,7 @@ class postgres extends \phpbb\db\driver\driver  					if ($result = @pg_query($this->db_connect_id, "EXPLAIN $explain_query"))  					{ -						while ($row = @pg_fetch_assoc($result, NULL)) +						while ($row = @pg_fetch_assoc($result, null))  						{  							$html_table = $this->sql_report('add_select_row', $query, $html_table, $row);  						} @@ -476,7 +476,7 @@ class postgres extends \phpbb\db\driver\driver  				$endtime = $endtime[0] + $endtime[1];  				$result = @pg_query($this->db_connect_id, $query); -				while ($void = @pg_fetch_assoc($result, NULL)) +				while ($void = @pg_fetch_assoc($result, null))  				{  					// Take the time spent on parsing rows into account  				} diff --git a/phpBB/phpbb/db/migration/data/v310/notifications.php b/phpBB/phpbb/db/migration/data/v310/notifications.php index 10f1392094..61be25bb5f 100644 --- a/phpBB/phpbb/db/migration/data/v310/notifications.php +++ b/phpBB/phpbb/db/migration/data/v310/notifications.php @@ -34,7 +34,7 @@ class notifications extends \phpbb\db\migration\migration  				),  				$this->table_prefix . 'notifications'		=> array(  					'COLUMNS'			=> array( -						'notification_id'  				=> array('UINT', NULL, 'auto_increment'), +						'notification_id'  				=> array('UINT', null, 'auto_increment'),  						'item_type'			   			=> array('VCHAR:255', ''),  						'item_id'		  				=> array('UINT', 0),  						'item_parent_id'   				=> array('UINT', 0), diff --git a/phpBB/phpbb/db/migration/data/v310/notifications_schema_fix.php b/phpBB/phpbb/db/migration/data/v310/notifications_schema_fix.php index 8ed626d8a6..eb2eb361ee 100644 --- a/phpBB/phpbb/db/migration/data/v310/notifications_schema_fix.php +++ b/phpBB/phpbb/db/migration/data/v310/notifications_schema_fix.php @@ -26,7 +26,7 @@ class notifications_schema_fix extends \phpbb\db\migration\migration  			'add_tables'		=> array(  				$this->table_prefix . 'notification_types'	=> array(  					'COLUMNS'			=> array( -						'notification_type_id'		=> array('USINT', NULL, 'auto_increment'), +						'notification_type_id'		=> array('USINT', null, 'auto_increment'),  						'notification_type_name'	=> array('VCHAR:255', ''),  						'notification_type_enabled'	=> array('BOOL', 1),  					), @@ -37,7 +37,7 @@ class notifications_schema_fix extends \phpbb\db\migration\migration  				),  				$this->table_prefix . 'notifications'		=> array(  					'COLUMNS'			=> array( -						'notification_id'				=> array('UINT:10', NULL, 'auto_increment'), +						'notification_id'				=> array('UINT:10', null, 'auto_increment'),  						'notification_type_id'			=> array('USINT', 0),  						'item_id'						=> array('UINT', 0),  						'item_parent_id'				=> array('UINT', 0), @@ -73,7 +73,7 @@ class notifications_schema_fix extends \phpbb\db\migration\migration  				),  				$this->table_prefix . 'notifications'		=> array(  					'COLUMNS'			=> array( -						'notification_id'  				=> array('UINT', NULL, 'auto_increment'), +						'notification_id'  				=> array('UINT', null, 'auto_increment'),  						'item_type'			   			=> array('VCHAR:255', ''),  						'item_id'		  				=> array('UINT', 0),  						'item_parent_id'   				=> array('UINT', 0), diff --git a/phpBB/phpbb/db/migration/data/v310/style_update_p2.php b/phpBB/phpbb/db/migration/data/v310/style_update_p2.php index 202a8409fb..c5b45d9dc9 100644 --- a/phpBB/phpbb/db/migration/data/v310/style_update_p2.php +++ b/phpBB/phpbb/db/migration/data/v310/style_update_p2.php @@ -56,7 +56,7 @@ class style_update_p2 extends \phpbb\db\migration\migration  			'add_tables'	=> array(  				$this->table_prefix . 'styles_imageset'		=> array(  					'COLUMNS'		=> array( -						'imageset_id'				=> array('UINT', NULL, 'auto_increment'), +						'imageset_id'				=> array('UINT', null, 'auto_increment'),  						'imageset_name'				=> array('VCHAR_UNI:255', ''),  						'imageset_copyright'		=> array('VCHAR_UNI', ''),  						'imageset_path'				=> array('VCHAR:100', ''), @@ -68,7 +68,7 @@ class style_update_p2 extends \phpbb\db\migration\migration  				),  				$this->table_prefix . 'styles_imageset_data'	=> array(  					'COLUMNS'		=> array( -						'image_id'				=> array('UINT', NULL, 'auto_increment'), +						'image_id'				=> array('UINT', null, 'auto_increment'),  						'image_name'			=> array('VCHAR:200', ''),  						'image_filename'		=> array('VCHAR:200', ''),  						'image_lang'			=> array('VCHAR:30', ''), @@ -83,7 +83,7 @@ class style_update_p2 extends \phpbb\db\migration\migration  				),  				$this->table_prefix . 'styles_template'		=> array(  					'COLUMNS'		=> array( -						'template_id'			=> array('UINT', NULL, 'auto_increment'), +						'template_id'			=> array('UINT', null, 'auto_increment'),  						'template_name'			=> array('VCHAR_UNI:255', ''),  						'template_copyright'	=> array('VCHAR_UNI', ''),  						'template_path'			=> array('VCHAR:100', ''), @@ -112,7 +112,7 @@ class style_update_p2 extends \phpbb\db\migration\migration  				),  				$this->table_prefix . 'styles_theme'			=> array(  					'COLUMNS'		=> array( -						'theme_id'				=> array('UINT', NULL, 'auto_increment'), +						'theme_id'				=> array('UINT', null, 'auto_increment'),  						'theme_name'			=> array('VCHAR_UNI:255', ''),  						'theme_copyright'		=> array('VCHAR_UNI', ''),  						'theme_path'			=> array('VCHAR:100', ''), diff --git a/phpBB/phpbb/db/migration/data/v310/teampage.php b/phpBB/phpbb/db/migration/data/v310/teampage.php index 80cc4be1c0..172435c672 100644 --- a/phpBB/phpbb/db/migration/data/v310/teampage.php +++ b/phpBB/phpbb/db/migration/data/v310/teampage.php @@ -27,7 +27,7 @@ class teampage extends \phpbb\db\migration\migration  			'add_tables'		=> array(  				$this->table_prefix . 'teampage'	=> array(  					'COLUMNS'		=> array( -						'teampage_id'		=> array('UINT', NULL, 'auto_increment'), +						'teampage_id'		=> array('UINT', null, 'auto_increment'),  						'group_id'			=> array('UINT', 0),  						'teampage_name'		=> array('VCHAR_UNI:255', ''),  						'teampage_position'	=> array('UINT', 0), diff --git a/phpBB/phpbb/db/tools.php b/phpBB/phpbb/db/tools.php index 1f156fbb04..d9bd8cf568 100644 --- a/phpBB/phpbb/db/tools.php +++ b/phpBB/phpbb/db/tools.php @@ -33,7 +33,7 @@ class tools  	/**  	* @var object DB object  	*/ -	var $db = NULL; +	var $db = null;  	/**  	* The Column types for every database we support diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index 09103680e8..7003e73b38 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -72,7 +72,6 @@ class kernel_exception_subscriber implements EventSubscriberInterface  		page_footer(true, false, false); -  		$status_code = $exception instanceof HttpException ? $exception->getStatusCode() : 500;  		$response = new Response($this->template->assign_display('body'), $status_code);  		$event->setResponse($response); diff --git a/phpBB/phpbb/extension/manager.php b/phpBB/phpbb/extension/manager.php index ce6d7e05c8..f8beb963ba 100644 --- a/phpBB/phpbb/extension/manager.php +++ b/phpBB/phpbb/extension/manager.php @@ -234,7 +234,9 @@ class manager  	*/  	public function enable($name)  	{ +		// @codingStandardsIgnoreStart  		while ($this->enable_step($name)); +		// @codingStandardsIgnoreEnd  	}  	/** @@ -311,7 +313,9 @@ class manager  	*/  	public function disable($name)  	{ +		// @codingStandardsIgnoreStart  		while ($this->disable_step($name)); +		// @codingStandardsIgnoreEnd  	}  	/** @@ -388,7 +392,9 @@ class manager  	*/  	public function purge($name)  	{ +		// @codingStandardsIgnoreStart  		while ($this->purge_step($name)); +		// @codingStandardsIgnoreEnd  	}  	/** diff --git a/phpBB/phpbb/extension/metadata_manager.php b/phpBB/phpbb/extension/metadata_manager.php index 19c6288e96..ff5d55c7f2 100644 --- a/phpBB/phpbb/extension/metadata_manager.php +++ b/phpBB/phpbb/extension/metadata_manager.php @@ -169,7 +169,7 @@ class metadata_manager      			throw new \phpbb\extension\exception('file_get_contents failed on ' . $this->metadata_file);  			} -			if (($metadata = json_decode($file_contents, true)) === NULL) +			if (($metadata = json_decode($file_contents, true)) === null)  			{      			throw new \phpbb\extension\exception('json_decode failed on ' . $this->metadata_file);  			} diff --git a/phpBB/phpbb/feed/base.php b/phpBB/phpbb/feed/base.php index de7dd41df4..8245b849a1 100644 --- a/phpBB/phpbb/feed/base.php +++ b/phpBB/phpbb/feed/base.php @@ -150,7 +150,7 @@ abstract class base  	*/  	function get($key)  	{ -		return (isset($this->keys[$key])) ? $this->keys[$key] : NULL; +		return (isset($this->keys[$key])) ? $this->keys[$key] : null;  	}  	function get_readable_forums() diff --git a/phpBB/phpbb/notification/type/approve_topic.php b/phpBB/phpbb/notification/type/approve_topic.php index ca5bb67754..9f061b8be1 100644 --- a/phpBB/phpbb/notification/type/approve_topic.php +++ b/phpBB/phpbb/notification/type/approve_topic.php @@ -34,7 +34,7 @@ class approve_topic extends \phpbb\notification\type\topic  	{  		return 'approve_topic';  	} -	 +  	/**  	* Language key used to output the text  	* diff --git a/phpBB/phpbb/search/fulltext_native.php b/phpBB/phpbb/search/fulltext_native.php index 33326f2882..024b8f441b 100644 --- a/phpBB/phpbb/search/fulltext_native.php +++ b/phpBB/phpbb/search/fulltext_native.php @@ -850,7 +850,6 @@ class fulltext_native extends \phpbb\search\base  		}  		$this->db->sql_freeresult($result); -  		// if we use mysql and the total result count is not cached yet, retrieve it from the db  		if (!$total_results && $is_mysql)  		{ diff --git a/phpBB/phpbb/session.php b/phpBB/phpbb/session.php index 5e4380bfc8..214ab8fd33 100644 --- a/phpBB/phpbb/session.php +++ b/phpBB/phpbb/session.php @@ -1235,7 +1235,6 @@ class session  				$this->session_create(ANONYMOUS);  			} -  			// Determine which message to output  			$till_date = ($ban_row['ban_end']) ? $this->format_date($ban_row['ban_end']) : '';  			$message = ($ban_row['ban_end']) ? 'BOARD_BAN_TIME' : 'BOARD_BAN_PERM'; diff --git a/phpBB/phpbb/template/context.php b/phpBB/phpbb/template/context.php index 24234c1e4a..decd1c7956 100644 --- a/phpBB/phpbb/template/context.php +++ b/phpBB/phpbb/template/context.php @@ -285,7 +285,7 @@ class context  			// Search array to get correct position  			list($search_key, $search_value) = @each($key); -			$key = NULL; +			$key = null;  			foreach ($block as $i => $val_ary)  			{  				if ($val_ary[$search_key] === $search_value) @@ -296,7 +296,7 @@ class context  			}  			// key/value pair not found -			if ($key === NULL) +			if ($key === null)  			{  				return false;  			} diff --git a/phpBB/phpbb/template/twig/node/includephp.php b/phpBB/phpbb/template/twig/node/includephp.php index 4024cf0cc8..70dcf85d62 100644 --- a/phpBB/phpbb/template/twig/node/includephp.php +++ b/phpBB/phpbb/template/twig/node/includephp.php @@ -23,7 +23,7 @@ class includephp extends \Twig_Node  	/** @var Twig_Environment */  	protected $environment; -	public function __construct(\Twig_Node_Expression $expr, \phpbb\template\twig\environment $environment, $ignoreMissing = false, $lineno, $tag = null) +	public function __construct(\Twig_Node_Expression $expr, \phpbb\template\twig\environment $environment, $lineno, $ignoreMissing = false,  $tag = null)  	{  		$this->environment = $environment; diff --git a/phpBB/phpbb/template/twig/tokenparser/includephp.php b/phpBB/phpbb/template/twig/tokenparser/includephp.php index d906837590..25170e7214 100644 --- a/phpBB/phpbb/template/twig/tokenparser/includephp.php +++ b/phpBB/phpbb/template/twig/tokenparser/includephp.php @@ -43,7 +43,7 @@ class includephp extends \Twig_TokenParser  		$stream->expect(\Twig_Token::BLOCK_END_TYPE); -		return new \phpbb\template\twig\node\includephp($expr, $this->parser->getEnvironment(), $ignoreMissing, $token->getLine(), $this->getTag()); +		return new \phpbb\template\twig\node\includephp($expr, $this->parser->getEnvironment(), $token->getLine(), $ignoreMissing, $this->getTag());  	}  	/** diff --git a/phpBB/phpbb/user.php b/phpBB/phpbb/user.php index f97cc94d40..d82acbf501 100644 --- a/phpBB/phpbb/user.php +++ b/phpBB/phpbb/user.php @@ -343,7 +343,6 @@ class user extends \phpbb\session  			}  		} -  		// Does the user need to change their password? If so, redirect to the  		// ucp profile reg_details page ... of course do not redirect if we're already in the ucp  		if (!defined('IN_ADMIN') && !defined('ADMIN_START') && $config['chg_passforce'] && !empty($this->data['is_registered']) && $auth->acl_get('u_chgpasswd') && $this->data['user_passchg'] < time() - ($config['chg_passforce'] * 86400)) diff --git a/phpBB/posting.php b/phpBB/posting.php index 396b320eac..e29b74af65 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -1525,7 +1525,7 @@ $template->assign_vars(array(  * @event core.posting_modify_template_vars  * @since 3.1-A1  */ -$phpbb_dispatcher->trigger_event('core.posting_modify_template_vars'); +$phpbb_dispatcher->dispatch('core.posting_modify_template_vars');  // Build custom bbcodes array  display_custom_bbcodes(); | 
