@@ -34,15 +34,37 @@ function release_date($in) {
3434 echo "<time class='releasedate' datetime=' {$ for_tools }'> {$ human_readable }</time> " ;
3535}
3636
37- function changelog_sidebar (?int $ current = null ): string {
38- $ majors = [8 , 7 , 5 , 4 ];
39- $ ret = "<div class= \"panel \">ChangeLogs<div class= \"body \"><ul> \n" ;
40- foreach ($ majors as $ major ) {
41- if ($ major === $ current ) {
42- $ ret .= " <li><b>PHP {$ major }.x</b></li> \n" ;
37+ function changelog_makelink (string $ branch ): string {
38+ return '<a href="#PHP_ ' . urlencode (strtr ($ branch , '. ' , '_ ' )) . '"> ' . htmlentities ($ branch ) . '</a> ' ;
39+ }
40+
41+ function changelog_header (int $ major_version , array $ minor_versions ): void {
42+ site_header ("PHP {$ major_version } ChangeLog " , [
43+ 'current ' => 'docs ' ,
44+ 'css ' => ['changelog.css ' ],
45+ 'layout_span ' => 12 ,
46+ ]);
47+ echo "<h1>PHP {$ major_version } ChangeLog</h1> \n" ;
48+ $ glue = '' ;
49+ foreach ($ minor_versions as $ branch ) {
50+ echo $ glue , changelog_makelink ($ branch );
51+ $ glue = ' | ' ;
52+ }
53+ echo "\n" ;
54+ }
55+
56+ function changelog_footer (int $ current_major , array $ minor_versions ): void {
57+ $ sidebar = "<div class= \"panel \">ChangeLogs<div class= \"body \"><ul> \n" ;
58+ foreach ([8 , 7 , 5 , 4 ] as $ major ) {
59+ if ($ major === $ current_major ) {
60+ $ sidebar .= " <li><b>PHP {$ major }.x</b> \n <ul> " ;
61+ foreach ($ minor_versions as $ branch ) {
62+ $ sidebar .= " <li> " . changelog_makelink ($ branch ) . "</li> \n" ;
63+ }
64+ $ sidebar .= " </ul></li> \n" ;
4365 } else {
44- $ ret .= " <li><a href= \"/ChangeLog- {$ major }.php \">PHP {$ major }.x</a></li> \n" ;
66+ $ sidebar .= " <li><a href= \"/ChangeLog- {$ major }.php \">PHP {$ major }.x</a></li> \n" ;
4567 }
4668 }
47- return $ ret .= " </ul></body ></body> \n" ;
69+ site_footer ([ ' sidebar ' => " $ sidebar </ul></div ></div> " ]) ;
4870}
0 commit comments