-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathFixedHeader_body.php
60 lines (46 loc) · 2.24 KB
/
FixedHeader_body.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
class ExtFixedHeader {
public static function Init( Parser &$parser ) {
$parser->setHook( 'fixed', 'ExtFixedHeader::Render' );
return true;
}
public static function LoadScript( $out, &$sk ) {
$out->addModules( 'ext.FixedHeader' );
return true;
}
public static function Auto( &$data, $skin = null ) {
global $wgFixedHeaderAutoEnable, $wfFixedHeaderWasCalled, $egFixedHeaderEnableH3Headers, $egFixedHeaderFadeOutDistance, $egFixedHeaderFadeOutOffset, $wfFixedHeaderRestrictNS, $wgTitle, $wgRequest, $wgOut;
if( !$wgFixedHeaderAutoEnable || $wfFixedHeaderWasCalled || $wgTitle->isSpecialPage() || $wgTitle->getArticleID() == 0 ||
in_array( $wgTitle->getNamespace(), $wfFixedHeaderRestrictNS ) ||
( method_exists( $wgTitle, 'isMainPage' ) && $wgTitle->isMainPage() ) ||
$wgOut->isPrintable() || $wgRequest->getVal('action', 'view') != "view") return true;
$wfFixedHeaderWasCalled = true;
$data = '<div id="ExtFixedHeader"' .
' data-fade="' . $egFixedHeaderFadeOutDistance . '" data-offset="' . $egFixedHeaderFadeOutOffset . '"' .
( $egFixedHeaderEnableH3Headers ? ' data-lower"' : '' ) . '>' . '</div>';
return true;
}
public static function Render( $input, array $args, Parser $parser, PPFrame $frame ) {
global $wfFixedHeaderWasCalled, $egFixedHeaderEnableH3Headers, $egFixedHeaderFadeOutDistance, $egFixedHeaderFadeOutOffset;
if ( $wfFixedHeaderWasCalled ) return '';
$wfFixedHeaderWasCalled = true;
if ( array_key_exists( 'off', $args ) ) return '';
$move = false;
$h3 = $egFixedHeaderEnableH3Headers;
$fade = $egFixedHeaderFadeOutDistance;
$offset = $egFixedHeaderFadeOutOffset;
if ( isset( $args['move'] ) ) $move = true;
if ( isset( $args['h3'] ) ) $h3 = ( $args['h3'] == "off" ? false : true );
if ( isset( $args['fade'] ) ){
$fade = abs( (int)$args['fade'] );
if( !is_int( $fade ) ) $fade = $egFixedHeaderFadeOutDistance;
}
if ( isset( $args['offset'] ) ){
$offset = abs( (int)$args['offset'] );
if( !is_int( $offset ) ) $offset = $egFixedHeaderFadeOutOffset;
}
return ( $move ? '<span id="ExtFixedHeaderEnd"></span>' : '' ) .
'<div id="ExtFixedHeader"' . ' data-fade="' . $fade . '" data-offset="' . $offset . '"' .
( $h3 ? ' data-lower' : '' ) . '>' . '</div>';
}
}