OSDN Git Service

BugTrack/2213 Use Absolute URI as Canonical URL
[pukiwiki/pukiwiki.git] / lib / html.php
index a85908a..d128972 100644 (file)
@@ -11,7 +11,7 @@
 // Show page-content
 function catbody($title, $page, $body)
 {
-       global $script, $vars, $arg, $defaultpage, $whatsnew, $help_page, $hr;
+       global $vars, $arg, $defaultpage, $whatsnew, $help_page, $hr;
        global $attach_link, $related_link, $cantedit, $function_freeze;
        global $search_word_color, $_msg_word, $foot_explain, $note_hr, $head_tags;
        global $javascript, $nofollow;
@@ -24,9 +24,11 @@ function catbody($title, $page, $body)
        global $modifier;     // Site administrator's  web page
        global $modifierlink; // Site administrator's name
 
+       $script = get_base_uri();
        $enable_login = false;
        $enable_logout = false;
-       if (AUTH_TYPE_FORM === $auth_type || AUTH_TYPE_EXTERNAL === $auth_type) {
+       if (AUTH_TYPE_FORM === $auth_type || AUTH_TYPE_EXTERNAL === $auth_type ||
+               AUTH_TYPE_SAML === $auth_type) {
                if ($auth_user) {
                        $enable_logout = true;
                } else {
@@ -46,9 +48,10 @@ function catbody($title, $page, $body)
        $r_page = pagename_urlencode($_page);
 
        // Canonical URL
-       $canonical_url = $script;
-       if ($_page !== $defaultpage) {
-               $canonical_url = $script . '?' . $r_page;
+       if ($_page === $defaultpage) {
+               $canonical_url = get_base_uri(PKWK_URI_ABSOLUTE);
+       } else {
+               $canonical_url = get_page_uri($_page, PKWK_URI_ABSOLUTE);
        }
 
        // Set $_LINK for skin
@@ -79,6 +82,7 @@ function catbody($title, $page, $body)
                        $login_link = "$script?plugin=loginform&pcmd=login&page=$r_page";
                        break;
                case AUTH_TYPE_EXTERNAL:
+               case AUTH_TYPE_SAML:
                        $login_link = get_auth_external_login_url($_page, $_LINK['reload']);
                        break;
        }
@@ -230,13 +234,14 @@ EOS;
 // Show 'edit' form
 function edit_form($page, $postdata, $digest = FALSE, $b_template = TRUE)
 {
-       global $script, $vars, $rows, $cols, $hr, $function_freeze;
+       global $vars, $rows, $cols, $hr, $function_freeze;
        global $_btn_preview, $_btn_repreview, $_btn_update, $_btn_cancel, $_msg_help;
        global $whatsnew, $_btn_template, $_btn_load, $load_template_func;
        global $notimeupdate;
        global $_title_list, $_label_template_pages;
        global $rule_page;
 
+       $script = get_base_uri();
        // Newly generate $digest or not
        if ($digest === FALSE) $digest = md5(join('', get_source($page)));
 
@@ -377,9 +382,9 @@ EOD;
 // Related pages
 function make_related($page, $tag = '')
 {
-       global $script, $vars, $rule_related_str, $related_str;
-       global $_ul_left_margin, $_ul_margin, $_list_pad_str;
+       global $vars, $rule_related_str, $related_str;
 
+       $script = get_base_uri();
        prepare_links_related($page);
        $links = links_get_related($page);
 
@@ -405,8 +410,7 @@ function make_related($page, $tag = '')
        if (empty($_links)) return ''; // Nothing
 
        if ($tag == 'p') { // From the line-head
-               $margin = $_ul_left_margin + $_ul_margin;
-               $style  = sprintf($_list_pad_str, 1, $margin, $margin);
+               $style  = sprintf(pkwk_list_attrs_template(), 1, 1);
                $retval =  "\n" . '<ul' . $style . '>' . "\n" .
                        '<li>' . join($rule_related_str, $_links) . '</li>' . "\n" .
                        '</ul>' . "\n";
@@ -466,12 +470,9 @@ function strip_autolink($str)
 // Make a backlink. searching-link of the page name, by the page name, for the page name
 function make_search($page)
 {
-       global $script;
-
        $s_page = htmlsc($page);
        $r_page = rawurlencode($page);
-
-       return '<a href="' . $script . '?plugin=related&amp;page=' . $r_page .
+       return '<a href="' . get_base_uri() . '?plugin=related&amp;page=' . $r_page .
                '">' . $s_page . '</a> ';
 }
 
@@ -643,3 +644,10 @@ function pkwk_output_dtd($pkwk_dtd = PKWK_DTD_XHTML_1_1, $charset = CONTENT_CHAR
                return '<meta http-equiv="content-type" content="text/html; charset=' . $charset . '" />' . "\n";
        }
 }
+
+/**
+ * Get template of List (ul, ol, dl) attributes
+ */
+function pkwk_list_attrs_template() {
+       return ' class="list%d list-indent%d"';
+}