「Widget:人気ページ」の版間の差分

編集の要約なし
Add table-layout:fixed for mobile fix
 
(4人の利用者による、間の89版が非表示)
1行目: 1行目:
<includeonly>
<html lang="ja">
<html lang="ja">
  <head>
<head>


     <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8">
     <style>
    <META HTTP-EQUIV="CONTENT-LANGUAGE" CONTENT="ja">
        #chart_div table {
            table-layout: fixed;
            width: 100%;
            border-collapse: collapse;
            border-spacing: 0;
            margin: 1rem 0;
        }
 
        #chart_div .time {
            width: 3rem;
        }
 
        #chart_div .pageview {
            width: 2.5rem;
        }
 
        #chart_div td.time {
            text-align: right;
            font-size: 0.8rem;
        }
 
        #chart_div td.pageview {
            text-align: center;
            font-size: 0.8rem;
        }
 
        #chart_div td.page {
            text-overflow: ellipsis;
            overflow: hidden;
            white-space: nowrap;
        }
 
        #chart_div th,
        #chart_div td {
            border: 1px solid #ddd;
        }
       
        #chart_div th {
            text-align: center;
        }


    <style>
         #chart_div th.selectable {
      #chart_div {
            cursor: pointer;
         margin: 0;
         }
        height: 100%;
        min-height: 38em;
        overflow: hidden;
      }
      #chart_div .tab {
        margin: 0;
        padding: 0;
        display: block;
        overflow: hidden;
      }
      #chart_div .tab li {
        display: block;
        float: left;
        width: 50%;
        text-align: center;
        background-color: #aca6e4;
      }
      #chart_div .tab a {
        color: white;
      }
      #chart_div .tab a.selected {
        font-weight: bold;
        cursor: text;
      }
      #chart_div .tab a.selected:hover {
         text-decoration: none;
      }


      #chart_div table {
         #chart_div th.selected {
        width: 100%;
            cursor: auto;
        border-collapse: collapse;
            background-repeat: no-repeat;
        border-spacing: 0;
            background-position: center right 0.2rem;
        margin: 1rem 0;
        }
      }
      #chart_div .time {
        width: 3rem;
      }
      #chart_div .pageview {
        width: 2.5rem;
      }
      #chart_div td.time {
        text-align: right;
        font-size: 0.8rem;
      }
      #chart_div td.pageview {
        text-align: right;
        font-size: 0.8rem;
      }
      #chart_div td.page {
        text-overflow: ellipsis;
        max-width: 0;
        overflow: hidden;
        white-space: nowrap;
      }
      #chart_div th,
      #chart_div td {
         border: 1px solid #ddd;
      }
      #chart_div th.selectable {
        cursor: pointer;
      }
      #chart_div th.selected {
        background-image: url("/resources/src/jquery.tablesorter.styles/images/sort_down.png");
        cursor: auto;
        background-repeat: no-repeat;
        background-position: center right 0.2rem;
      }


         @media only screen and (max-width: 993px) {
         .page {
             #chart_div > table > thead > tr {
             overflow: hidden;
                width: 80%;
    text-overflow: ellipsis;
            }
    white-space: nowrap;
         }
         }


     </style>
     </style>
     <!--Load the AJAX API-->
     <!--Load the AJAX API-->
     <script
     <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
      type="text/javascript"
      src="https://www.gstatic.com/charts/loader.js"
    ></script>
     <script type="text/javascript">
     <script type="text/javascript">
      var period = "daily",
        var period = "daily",
        orderBy = "time";
            orderBy = "pageview";
      prepareChart();
        prepareChart();
      function prepareChart() {
        var sheetName =
          period +
          " " +
          (orderBy == "time" ? "longest time spent" : "most viewed");
        var url =
          "https://docs.google.com/spreadsheets/d/1niIGejZ1Czrkj07hGDPleVvk9AEBaDtjr55n63GluLw/gviz/tq?sheet=" +
          sheetName +
          "&headers=15";


         google.charts.load("current", { packages: ["corechart"] });
         function prepareChart() {
        google.charts.setOnLoadCallback(drawChart);
            var sheetName =
                period +
                " " +
                (orderBy === "time" ? "longest time spent" : "most viewed");
            var url =
                "https://docs.google.com/spreadsheets/d/1QrIPnTnAaJSoKRy-IcWCoDylC3K8pdbfINNVFs7XEnA/gviz/tq?sheet=" +
                sheetName +
                "&headers=15";


        function drawChart() {
            google.charts.load("current", {packages: ["corechart"]});
          var query = new google.visualization.Query(url);
            google.charts.setOnLoadCallback(drawChart);
          query.send(handleQueryResponse);
        }


        function handleQueryResponse(response) {
            function drawChart() {
          var data = response.getDataTable();
                var query = new google.visualization.Query(url);
          var rows = data.getNumberOfRows();
                 query.send(handleQueryResponse);
          var html = [
                    '<ul class="tab">',
                    '<li><a id="hourly" class="',
                    (period == "hourly" ? "selected" : ""),
                    '" href="javascript: void(0);">リアルタイム</a></li>',
                    '<li><a id="daily" class="',
                    (period == "daily" ? "selected" : ""),
                    '" href="javascript: void(0);">一日</a></li>',
                    "</ul>",
                    "<table><thead><tr>",
                    '<th id="header-time" class="time selectable ',
                    (orderBy == "time" ? "selected" : ""),
                    '">時間</th>',
                    '<th id="header-pageview" class="pageview selectable ',
                    (orderBy == "pageview" ? "selected" : ""),
                    '">PV</th>',
                    "<th>ページ</th>",
                    "</tr></thead><tbody>"
          ];
          for (var i = 0; i < rows; i++) {
            try {
              var title = data.getValue(i, 0).replace(" - 宇宙wiki", "");
              var time = Math.round(data.getValue(i, 1) / 60) + "分";
              var pageview = data.getValue(i, 2);
              var url = "/w/" + encodeTitle(title);
              var anchor =
                '<a href="' +
                url +
                '" target="_parent" title="' +
                title +
                '">' +
                title +
                "</a>";
              html.push(
                 "<tr>" +
                  '<td class="time">' +
                  time +
                  "</td>" +
                  '<td class="pageview">' +
                  pageview +
                  "</td>" +
                  '<td class="page">' +
                  anchor +
                  "</td>" +
                  "</tr>"
              );
            } catch (e) {
              console.log([i, e]);
             }
             }
          }
          html.push("</tbody></table>");console.log(html);
          document.querySelector("#chart_div").innerHTML = html.join("\n");


          document
            function handleQueryResponse(response) {
            .getElementById("hourly")
                var data = response.getDataTable();
            .addEventListener("click", function() {
                var rows = data.getNumberOfRows();
              if (period == "hourly") return;
                var html = [
              period = "hourly";
`<table>
              prepareChart();
    <thead bgcolor = #507f50>
            });
        <tr>
          document
            <th id="header-pageview" class="pageview selectable ${orderBy === "pageview" ? "selected" : ""}">PV</th>
            .getElementById("daily")
            <th>ページ</th>
            .addEventListener("click", function() {
        </tr>
              if (period == "daily") return;
    </thead>
              period = "daily";
    <tbody>
              prepareChart();
                `];
            });
                for (var i = 0; i < rows; i++) {
          document
                    try {
            .getElementById("header-time")
                        var title = data.getValue(i, 1).replace(" - 宇宙wiki", "");
            .addEventListener("click", function() {
                        var pageview = data.getValue(i, 3);
              if (orderBy == "time") return;
                        var url = "/w/" + encodeTitle(title);
              orderBy = "time";
                        var anchor = `<a href="${url}" target="_parent" title="${title}">${title}</a>`;
              prepareChart();
 
            });
                        html.push(`
          document
<tr>
            .getElementById("header-pageview")
    <td class="pageview">${pageview}</td>
            .addEventListener("click", function() {
    <td class="page" >${anchor}</td>
              if (orderBy == "pageview") return;
</tr>
              orderBy = "pageview";
`);
              prepareChart();
                    } catch (e) {
            });
                        console.log([i, e]);
                    }
                }
                html.push("</tbody></table>");
                document.querySelector("#chart_div").innerHTML = html.join('');
 
                document
                    .getElementById("hourly")
                    .addEventListener("click", function () {
                        if (period === "hourly") return;
                        period = "hourly";
                        prepareChart();
                    });
                document
                    .getElementById("daily")
                    .addEventListener("click", function () {
                        if (period === "daily") return;
                        period = "daily";
                        prepareChart();
                    });
                document
                    .getElementById("header-pageview")
                    .addEventListener("click", function () {
                        if (orderBy === "pageview") return;
                        orderBy = "pageview";
                        prepareChart();
                    });
            }
         }
         }
      }


      function encodeTitle(title) {
        function encodeTitle(title) {
        return title
            return title
          .split("/")
                .split("/")
          .map(function(path) {
                .map(function (path) {
            return encodeURIComponent(path);
                    return encodeURIComponent(path);
          })
                })
          .join("/");
                .join("/");
      }
        }
     </script>
     </script>
  </head>
</head>
  <body>
<body>
    <div id="chart_div"></div>
<div id="chart_div"></div>
  </body>
</body>
</html>
</html>
</includeonly>
<noinclude>
{{DEFAULTSORT:}}
</noinclude>

2026年5月28日 (木) 15:08時点における最新版