サイト制作に役立つ情報や小技などをまとめています。StudioTipsランダム記事2020年あけましておめでとうございます!概要あけましておめでとうございます。2020年もAnalogStudioを宜しくお願い致します。本年も役立つ情報をまとめていきたいと思います。秋といえば色々な果物などが旬で楽しい時期ですよね。そんな旬のフルーツの一つに「キウイフルーツ」があります。私が住む静岡県掛川市には日本最大級のキウイ農園があります。それが「キウイフルーツカントリーJapan」さんです!縁あってWebサイトのリニューアルを任せて頂き、自由にアピールしてもいいよということなので紹介したいと思います。「キウイフルーツカントリーJapan」はキウイの栽培だけでなく、手ぶらBBQが楽しめたりと隠れた観光名所になっています。農園の紹介とサイトの紹介をしたいと思います。サイトのWeb技術的な紹介は別途まとめていきます。概要お問い合わせフォームなどで電話番号を入力してもらいたいことがありますよね。見やすさや管理のしやすさから3つの入力欄を設けている場合が多いです。ユーザの観点から云えば入力欄を切り替えなければならず入力が面倒だと感じます。そこで今回は、入力された電話番号をハイフン(-)区切りに変換する方法を紹介します。不要な文字は削除して半角の整形された電話番号を返すようにしてユーザの負担を最小限にしょましょう。分けたい場合にも区切り文字があるので簡単に分けて保存しておくこともできます。実際にやっていきましょう。2019/02/112019/02/13PHPのechoとprintの違いとは?「echoが早い」はホントなのかも検証!概要PHPには良く似た命令や関数が複数用意されていることがあります。その中でも良く使う"echo"と"print"の違いってなんだろうと疑問に思った方も多いはずです。そこで、"echo"と"print"の違いをまとめます。一般的に"echo"の方が早いって言われてますが、本当かどうか検証したいと思います。2018/12/17カレンダー共有アプリ「TimeTree」のAPIを使おう!~アクセストークン取得編~概要1500万人のユーザが利用するカレンダー共有アプリの「TimeTree」が外部サービスとの連携の為にAPIをリリースしました。(2019年5月30日)そこで、そんなできたてのAPIを使ってみましたので使い方をPHPやJavascriptによるサンプルを使って解説します。TimeTreeAPIは、2023年12月22日をもって終了しました。本記事の内容はすでに利用できません。https://timetreeapp.com/intl/ja/newsroom/2023-12-14/connect-app-api-202312TimeTree-https://timetreeapp.com/TimeTree-サービス概要TimeTree|Dev-開発者向け情報TimeTree|Dev-APIドキュメント今回はAPIへのアクセスに必須なアクセストークン取得についてまとめます。カレンダー情報の取得や予定の追加・更新・削除は別途まとめます。トークン取得だけ読みたい方は「3.アクセストークンを取得しよう!」まで飛ばして下さい。現在では、ブラウザに標準でフォーム要素のバリデーションを行う機能が備わっています。type属性によって自動的に適応されるルールや、pattern属性の正規表現によるルールなどを検証してくれてとても便利です。このバリデーションのエラー表示は送信ボタンを押下したタイミングで表示されますが、上から順番に検証されて初めにバリデーションエラーが発生した入力要素にエラーを表示すると、そこで検証が終了してしまいます。フォームの入力要素が数多くある場合には、これでは非常に非効率でユーザに与えるストレスが大きくなります。そこでJavascriptを使ってすべての要素を検証してエラーを全て表示するようにしてみましょう。2022/03/022022/03/03Javascriptでcubic-bezierを計算する概要CSSのtransitionプロパティで使えるcubic-bezier関数を使うことは良くあると思います。Javascriptではどうでしょうか?使ったことがないという方が多いでしょう。Javascriptの標準関数にはcubic-bezier(3次のベジュ曲線)と等価なものはありません。そのため自作しなければならないのですが、Web上ではなかなか紹介されていません。そこでcubic-bezierを計算する関数を生成する関数を作ったので紹介します。基本的な利用方法と認証方法の種類について概要Googleが提供しているサービスを自分のサイトに組み込んで活用したいことは多いと思います。使うサービスでいえば地図(GoogleMaps)の埋め込みなどがあります。地図の埋込なら地図上から共有用の<iframe>コードを取得でき簡単に埋め込めますが、この<iframe>のsrc属性に設定するURLを住所から自動生成したいといった場合にはAPIの力を借りる必要があります。その他にも非常に多彩な処理が可能になるAPIが使えるようにしてくれているのでぜひ使っていきたいですよね。そこで、GoogleAPIを使う基本的な使用方法をまとめたいと思います。概要WordPressでサイトを作成する時、お問い合わせフォームとして「ContactForm7」というプラグインを使う機会は多いと思います。非常に便利でカスタマイズ性に優れたプラグインですが、サーバや設定によっては送信されるまでに非常に時間が掛かることや迷惑メールに仕分けられてしまうこともあります。深刻だとメールが送信すらされないこともあります。そんな時、メールの送信にSMTPサーバというメール送信用のサーバを設定することで解決できることが多いです。そこで今回はそんなSMTPサーバの設定方法を紹介します。概要JavascriptのXHRやfetchを使って非同期に通信を行う際、自分のドメインを超えて他のドメインにアクセスしたいことはよくありますよね。XHR/fetchはいずれも他ドメインへの通信も可能(正確にはXHRは(通称)XHRLevel2以降)ですが、サーバ側でドメインが異なるアクセス元からの通信を許可してやる必要があります。これがCORS(Cross-OriginResourceSharing)と呼ばれる決まり・技術です。先日、ちょっと調べる機会がありましたのでその際に確認したことを備忘録を兼ねて共有したいと思います。CORSを扱う際には.htaccessなどでヘッダを追加する方法が取られますが、サーバサイドプログラムで出力すれば良かった(私自身もそうであるべきだと思っていた)のでそのあたりも含めてまとめます。Javascript側からヘッダを追加する(Authorizationヘッダなどが多い)場合などに必要になるpreflightリクエストについても言及します。概要パララックスと呼ばれる視覚効果をご存知でしょうか?スクロールに応じて要素がスクロールとは少し違う動き(左右だったり上下逆だったり、速度が違ったり)をして印象的にする効果です。遅延読込させた画像のロード時の効果として使われる場合もあり、採用しているサイトは多いです。従来はscrollイベントかタイマーで要素を監視して必要になったら動作させるものが主流でした。scrollイベントは非常に短い間隔で発火され、位置を把握するgetBoundingClientRect()関数による強制レンダリングにより往々にして処理が重くなりがちでユーザ体験を悪化させる一因になりかねないものです。そんな悩みの種を解消する方法にIntersectionObserverAPIが提供されました。このAPIを利用すると従来の高負荷な処理が無くなり、必要なタイミングでのみ処理を行えば良く、非常に効率的になります。概要CSSのグラデーション関数は便利ですよね。最近のWebデザインではボーダーやボタンなどにグラデーションが付いていることも増えてきました。画像の作成が必要なく修正も用意で、簡単にオシャレにできるので人気があります。グラデーションを使っていて縞模様が気になってしまった...という経験をお持ちの方も多いのではないでしょうか?この現象はバンディングやマッハバンドと呼ばれPhotoshopなどでも発生してしまうなかなか厄介なものです。生成されたイメージの階調が少なく淡いグラデーションではどうしても気になってしまい根本的には解決できません。そこで今回はそんなバンディングを目立たなくする手法を紹介します。概要Wordpressのカスタマイザで画像を選択させる時に使うWP_Customize_Image_Controlクラスを使っている方は多いと思います。テーマの設計上でサイズの小さい画像やサムネイルも欲しい時、WP_Customize_Image_Controlクラスだと画像のURLになってしまうので少し面倒です。一般的に良くある解決法は画像URLからAttachmentID(以降、単に「ID」と呼ぶ)を取得するattachment_url_to_postid関数を使っています。このattachment_url_to_postid関数は実行するたびにSQLクエリを飛ばすので頻繁には使いたくないですね。取得したIDからwp_get_attachment_image_urlなどの関数でもデータベースにアクセスするので無駄が多いです。そこではじめからIDを使うことが決まっている場合にカスタマイザでIDが保存される方法をまとめます。2020/01/162020年あけましておめでとうございます!概要あけましておめでとうございます。2020年もAnalogStudioを宜しくお願い致します。本年も役立つ情報をまとめていきたいと思います。皆さんは決済代行サービスに何を利用されているでしょうか?私は専ら「PayPal」でしたが、ここ最近話題になっている「Stripe」も有料記事の決裁で導入してみました。そこで、この両者を比較してメリット・デメリットを確認してみようと思います。どちらも一長一短ありますので、ご自分のサイトに合ったサービスの導入を検討て下さい。秋といえば色々な果物などが旬で楽しい時期ですよね。そんな旬のフルーツの一つに「キウイフルーツ」があります。私が住む静岡県掛川市には日本最大級のキウイ農園があります。それが「キウイフルーツカントリーJapan」さんです!縁あってWebサイトのリニューアルを任せて頂き、自由にアピールしてもいいよということなので紹介したいと思います。「キウイフルーツカントリーJapan」はキウイの栽培だけでなく、手ぶらBBQが楽しめたりと隠れた観光名所になっています。農園の紹介とサイトの紹介をしたいと思います。サイトのWeb技術的な紹介は別途まとめていきます。2019/11/12カレンダー共有アプリ「TimeTree」のAPIを使おう!~イベント登録編~概要1500万人のユーザが利用するカレンダー共有アプリの「TimeTree」が外部サービスとの連携の為にAPIをリリースしました。(2019年5月30日)そこで、そんなできたてのAPIを使ってみましたので使い方をPHPやJavascriptによるサンプルを使って解説します。TimeTreeAPIは、2023年12月22日をもって終了しました。本記事の内容はすでに利用できません。https://timetreeapp.com/intl/ja/newsroom/2023-12-14/connect-app-api-202312TimeTree-https://timetreeapp.com/TimeTree-サービス概要TimeTree|Dev-開発者向け情報TimeTree|Dev-APIドキュメント前回から大分間が空いてしまいましたが、今回はイベントの登録方法についてまとめます。第1回「アクセストークン取得編」と第2回「カレンダー情報取得編」は以下のリンクからご確認下さい。