メニューを切り替える
個人設定メニューを切り替える
個人メニューを切り替える
ログインしていません
編集を行うと、IPアドレスが公開されます。

「MediaWiki:Gadget-TemplateInshokuten.js」の版間の差分

MediaWikiインターフェイスページ
編集の要約なし
タグ: 差し戻し済み
編集の要約なし
タグ: 手動差し戻し
24行目: 24行目:
// 店舗/飲食店テンプレート用JavaScript
// 店舗/飲食店テンプレート用JavaScript
if ( document.querySelector('.template-tenpo') ) {
if ( document.querySelector('.template-tenpo') ) {
  console.log("飲食店テンプレート → CSS ロード");
  mw.loader.load(
  '/load.php?modules=ext.gadget.TemplateInshokutenCss&only=styles',
  'text/css'
);
   const twitterdiv = document.querySelector('.twitter-id');
   const twitterdiv = document.querySelector('.twitter-id');
   if(twitterdiv) {
   if(twitterdiv) {

2025年12月5日 (金) 12:58時点における版

function initGoogleMaps() {
    document.querySelectorAll(".map-embed").forEach(function (el) {
        const name = el.dataset.name;
        if (!name) return;

        const src = `https://www.google.com/maps/embed/v1/place?key=AIzaSyDOA7e6S9arQa6NvnsFYXxGjX9P_ycwoyM&q=${encodeURIComponent(name)}&zoom=16&maptype=roadmap&language=ja&region=JP`;

        const iframe = document.createElement("iframe");
        iframe.width = "100%";
        iframe.height = "400";
        iframe.style.border = "0";
        iframe.loading = "lazy";
        iframe.allowFullscreen = true;
        iframe.referrerPolicy = "no-referrer-when-downgrade";
        iframe.src = src;

        // iframeが読み込まれたらSkeletonを消す
        iframe.addEventListener("load", function() {
            el.classList.add("loaded");
        });
        el.appendChild(iframe);
    });
}
// 店舗/飲食店テンプレート用JavaScript
if ( document.querySelector('.template-tenpo') ) {
  const twitterdiv = document.querySelector('.twitter-id');
  if(twitterdiv) {
    const username = twitterdiv.textContent.trim();
    if(username) { // 空文字なら生成しない
      const a = document.createElement('a');
      a.href = `https://twitter.com/${username}?ref_src=twsrc%5Etfw`;
      a.className = "twitter-follow-button";
      a.dataset.showCount = "false";
      a.textContent = `Follow @${username}`;
      twitterdiv.parentNode.replaceChild(a, twitterdiv);

      const script = document.createElement('script');
      script.async = true;
      script.src = "https://platform.twitter.com/widgets.js";
      script.charset = "utf-8";
      document.body.appendChild(script);
    }
  }
  const instagramdiv = document.querySelector('.instagram-id');
  if(instagramdiv) {
    const username = instagramdiv.textContent.trim();
    if(username) {
      const a = document.createElement('a');
      a.href = `https://instagram.com/${username}/`;
      a.target = "_blank";
      a.rel = "noopener noreferrer";

      const img = document.createElement('img');
      img.src = "/images/3/3d/Instagram_Glyph_Gradient.png";
      img.alt = "Instagram";
      img.style.width = "50px";
      img.style.height = "50px";
      img.style.marginRight = "15px";

      a.appendChild(img);
      instagramdiv.parentNode.replaceChild(a, instagramdiv);
    }
  }
  const tictokdiv = document.querySelector('.tictok-id');
  if(tictokdiv) {
    const username = tictokdiv.textContent.trim();
    if(username) {
      const a = document.createElement('a');
      a.href = `https://tictok.com/@${username}/`;
      a.target = "_blank";
      a.rel = "noopener noreferrer";

      const img = document.createElement('img');
      img.src = "/images/f/fa/TikTok-logo-RGB-Tag.png";
      img.alt = "TicTok";
      img.style.width = "50px";
      img.style.height = "50px";
      img.style.marginRight = "15px";

      a.appendChild(img);
      tictokdiv.parentNode.replaceChild(a, tictokdiv);
    }
  }
  const facebookdiv = document.querySelector('.facebook-id');
  if(facebookdiv) {
    const username = facebookdiv.textContent.trim();
    if(username) {
      const a = document.createElement('a');
      a.href = `https://facebook.com/${username}/`;
      a.target = "_blank";
      a.rel = "noopener noreferrer";

      const img = document.createElement('img');
      img.src = "/images/8/82/Facebook_Logo_Primary.png";
      img.alt = "Facebook";
      img.style.width = "50px";
      img.style.height = "50px";

      a.appendChild(img);
      facebookdiv.parentNode.replaceChild(a, facebookdiv);
    }
  }
    document.querySelectorAll(".wikitable p").forEach(function(p) {
        if (!p.textContent.trim()) {
            p.remove();
        }
    });
    document.querySelectorAll(".wikitable tr").forEach(function(tr) {
        const th = tr.querySelector("th");
        const td = tr.querySelector("td");

        if (!th || !td) return;

        if (th.textContent.trim() === "郵便番号") {
            // 郵便番号らしい数字のみ抽出
            const match = td.textContent.replace(/\D/g, "").match(/^(\d{3})(\d{4})$/);
            if (match) {
                td.textContent = match[1] + "-" + match[2];
            }
        }
    });

    // DOM準備後に実行
    if (document.readyState === "loading") {
        document.addEventListener("DOMContentLoaded", initGoogleMaps);
    } else {
        initGoogleMaps();
    }
    
	document.querySelectorAll(".streetview-placeholder").forEach(function(el) {
	    const url = el.getAttribute("data-url");
	    if (!url) return;
	
	    const iframe = document.createElement("iframe");
	    iframe.src = url;
	    iframe.width = "100%";
	    iframe.height = "100%";
	    iframe.style.border = "0";
	    iframe.loading = "lazy";
	    iframe.allowFullscreen = true;
	    iframe.referrerPolicy = "no-referrer-when-downgrade";
	
	    el.appendChild(iframe);
  });
 	document.querySelectorAll(".streetview-api-placeholder").forEach(function(el) {
	    const name = el.getAttribute("data-name");
	    if (!name) return;
	    
        const src = `https://www.google.com/maps/embed/v1/streetview?key=AIzaSyDOA7e6S9arQa6NvnsFYXxGjX9P_ycwoyM&location=${name}`;
	
	    const iframe = document.createElement("iframe");
	    iframe.src = src;
	    iframe.width = "100%";
	    iframe.height = "100%";
	    iframe.style.border = "0";
	    iframe.loading = "lazy";
	    iframe.allowFullscreen = true;
	    iframe.referrerPolicy = "no-referrer-when-downgrade";
	
	    el.appendChild(iframe);
  });
}