Fullcalendar動いてないから修正してみる

寒いです。皆さんは風邪ひいてませんか? 先週末は大雪でした。今週末も大雪見たいです。 これは私に冬眠しろってことですね??えぇ雪国生まれなもので、雪かきとか無駄に頑張っちゃいますけどね。 ちなみに「雪かき」っていいます?「雪のけ」っていいます?   さて、営業日カレンダーをGoogleカレンダーを使って表示しているところがあったのですが、どうもうまく動いていない模様。Firebugでエラーを見ると、Googleカレンダーのイベントを取得するところでエラーが起こっている模様。 さてさて、困ったぞ、ということで調べました。 どうも原因は2点。

  • Calendar APIがv2→v3になったこと。
  • FullCalendarのバージョンがあがったこと。

ということで修正します。  

Calendar APIを使えるようにする

まずCalendar APIを使えるようにします。v2→v3になって、API Keyが必要になったようです。 API Keyの取得はGoogle Developers Consoleから行います。 アカウントの登録が終わったら、新しくプロジェクトを作り、 141212_01

 メニューのAPIからCalendar APIを選択し、カレンダーをOnにします。

141212_02

141212_03

次に認証情報から新しくKeyを作成します。選択するのはブラウザキーです。

141212_04

141212_05

そうすると下のような画面になるので、ここは何も入力せずに作成を押しちゃってよいみたいです。 これでAPI Keyが取得できました!

141212_06 

141212_07

Fullcalendarをバージョンアップする

サイトに行ってfullcalendar.min.jsをダウンロードしてきます。 ※2014年12月12日現在、最新版は2.2.3のようです。 ダウンロードしてきたら、必要なファイルを読み込みます。


<script src='js/moment.min.js'></script>
<script src="js/jquery-1.11.1.min.js"></script>
<script src="js/fullcalendar.min.js"></script>
<script src="js/gcal.js"></script>
<script src="js/calendar.js"></script> //Fullcalendar設定用。これは各自変更してください。

  このような感じになります。   次にカレンダーの設定をします。 「googleCalendarApiKey」に取得したAPI Keyを、 「events」に表示したいカレンダーのIDを設定します。


$(document).ready(function() {
  $('selector').fullCalendar({
    googleCalendarApiKey: 'ここにAPI Key',
    events: '表示したいGoogleカレンダーのID',
    //日本の休日表示
    eventSources: [
      {
       url:'ja.japanese#holiday@group.v.calendar.google.com'
      }
    ]
  });
});

ちなみに、 カレンダーのIDはGoolgeカレンダーのここです。

141212_08

その他のオプションの設定は本家サイトをご覧ください。   これで無事に営業カレンダーが復活しました。 カレンダーがうまく動かなくて、毎日が営業日のようになっていた悲劇もこれで無事解決です。   今回参考にさせていただいた記事(ありがとうございました!) fullcalendar.js + gcal.jsでGoogle API v3を使ってGoogleカレンダーを表示する


誰かに何かを伝えるときに意識すること

こんにちは!
お日様が出ている時間もだいぶ短くなってきましたね。
洗濯物が乾きにくくって困っているyasaiです。
ちなみにすきな野菜は大根です。先日は大根と春菊のシチューを食べました。

今日はちょっとWeb以外のお話を。
皆さんも社内、社外に関わらず自分の考えていことや、何かの説明を自分以外の他者へ伝えることってあるのではないかと思います。
お客様に更新方法の説明するとき。チームの人間にサイト構成と意図を説明するとき。
もっと身近に、友達に今日あったことの説明をしたいとき。
自分の読んだ本の感想を伝えたいとき、今感じたことをどうしても伝えたいとき。

そういうときに、要領よくわかりやすく端的にまとめて話すことができたらよいのですが、僕はそういうことがとても苦手です。(言葉数が多くなってしまいます…)
人と話をしていると、この人は話し方が上手だなぁとか、この人は言っていることは何となくわかるけど、伝え方が下手だなぁとか感じることってあると思います。
今日は人に何かを伝えるのが苦手な僕が、なるべく気を付けるようにしていることをお話します。

「なんの話か」をはっきり伝える。(5W1H)

5W1Hなんてのはよく言われることですが。
逆に話を聞く立場に立って考えてみましょう。相手が何かを話しているときに、自分の中で不足する情報は無意識のうちに推測or予測して補完して聞いていますよね。
補完しながら、この人は「こういうこと」を言っているんだろう、って思いながら聞いているわけです。
この時にそもそも相手から与えられなければ補完しようがない情報は推測しづらいと思うのです。
補完できないので、「この人は何の話をしているんだろう」→「何言ってるかよくわからない」になるのですね。
例えば、

A「あの田中のシュートが入ってたらわかんなかったと思うんだよね。だってあの後の展開を考えると…」

突然A氏がこのように話し始めたとします。
今あなたはA氏が何の話をしていると思いましたか?サッカーでしょうか?
このサッカーという部分が、あなたが今無意識のうちに推測して補完した部分です。
このA氏の発言だけでは、これが何の話なのかよくわかりません。
「サッカー」の話なのか、「バスケット」の話なのか、「いつ」の話なのか、「誰の」話なのか(田中選手はA氏の好きなチームの選手かもしれませんし、あなたのことかもしれません。)。もしかしたら、「シュート」は野球の球種なのかもしれません。
A氏が話したかった内容の、バッググラウンドに当たる部分の説明が何もないので推測ができないのです。
この発言だけでA氏の言いたい話を理解できるとすれば、それはあなたがA氏との間に、話のバックグラウンドを共有している場合になるでしょう。
A氏の発言がこのようだったら、知らない人でも伝わったかもしれません。

A「先週のサッカーの代表戦、あの田中のシュートが入っていたらわかんなかったと思うんだよね。だってあの後の展開を考えると…」

「先週のサッカーの代表戦」を付け加えただけですが、ぐっと推測しやすくなりました。
伝えることが苦手な人は、この相手に推測してもらうための情報をつけ忘れやすいのかもしれません。
バッググラウンドは相手が共有しているだろう、というのは本人の思い込みかもしれません。
バッググラウンドが共有しやすい友達や家族ならまだしも、社外の人間や同僚などにあなたのバッググラウンドの推測をすることはとても難しいことかもしれません。
ということで、僕が気を付けていることの1点目は、「自分がこれから何の話」をしようとしているかを意識的に伝える、です。

相手のわかる言葉で話す

20年も人生生きていると、ある程度自分の話し方ってかたまってきますよね。
その話し方っていうのは、おそらく自分の中で一番聞きやすい話し方なのではないでしょうか?
誰しもたいがいの誰かに何かを伝えたいという場面で、僕たちは一番伝わりやすいだろう方法、話し方を探すでしょう。
せっかく一番よく伝わりやすいだろう方法を考えて伝えようとしているのに、うまく伝わらないのはなぜなのでしょう?
それは僕にとって一番伝わりやすい言葉が、相手にとっても一番伝わりやすい言葉とは限らない、ということなのではないでしょうか?

例えば料理のレシピを伝えるときに、

A「卵が何個(約何g)、スープが何cc、塩が小さじで何杯・・・」
B「卵とスープに塩気を足して・・・」

同じ内容のレシピだったとしても、Aの方が理解しやすい人、Bの方がイメージしやすい人両方いると思います。

理系の人、文系の人、直感的な人、理詰めな人、先に結論を言った方がわかりやすい人、順序立てて説明した方が理解しやすい人。
人の理解する手順は十人十色なのだと思います。
もし本題に入る前に、相手の話の癖をつかむことができる時間があるのなら、相手の話の組み立て方や結論の出し方を注意してみていると、相手に伝わりやすい言葉を探しやすいかもしれません。
というわけで、僕が意識していること2点目は、相手の理解しやすい言葉(この中には難しい専門用語は使わない、なども含む)で話す、ということです。

 

相手の立場になって考えてみなさい、小学生の時に言われることですが、

相手がどう理解しようとしているのか、どういう風に聞こえているのか、そんなところに気を配りながら

お話ができたら、わかりにくい話もちょっとは伝わりやすくなるのかな、と思います。
長々と書いてきましたが、それが今日の結論めいたものです。
結局長すぎて、この記事もよくわからくなっている気もしますが…

 


とても初歩的なjQuery(僕のスニペットの中から)

お昼に外に出たら霰と霙(漢字で書くとなんだかちょっと迷いますね)の中間みたいなのに降られたyasaiです。

急に冬っぽくなってきまして、北国生まれの寒がりにはちょっと厳しい季節になってきました。

長袖をせっせと着込んで、早速着ぶくれしてます。

ちなみに、暑いのも苦手です。ずっと春がいいなぁ。

141028

さて最近はWordPressのお勉強していて、先日久しぶりにjQuery書いたら、「あ、PHPじゃない…」と思うくらいアホになってたわけでして。

これはいかんなぁということで、ごく初歩的なことからjQueryのおさらいをしてみたいと思います。

基本的には適当に保存してあったスニペットからですが…

 

「$(document).ready()」と「$(window).load()」

僕もはじめは呪文のように覚えてましたが、$(document).ready()と$(window).load()の違いについて。

まずは使い方。


その1
$(document).ready(function(){
  //ここに処理
});

その2
$(window).load(function(){
  //ここに処理
});

どちらも意味合いとしては、「~が完了したら」ってことですが、

ここではざっくりつかむと、$(document).ready()のほうは、「HTML読みこみ終わったら処理」。

$(window).load()の方は「描画とかも終わったら処理」。って感じですかね。

だから、画像の高さを取得したいとかいう場合は、$(window).load()の方をつかわないとダメなんですね。

 

タイミングを見計らって処理「setTimeout()」

これもよく使いますよね。


var time = 1000;
$setTimeout(function(){
  //処理
},time);
//timeは何ミリ秒後に処理が始まるか。
//1秒後だったら1000。

アニメーションさせるときとかによく使いますねー。


$(document).ready(function(){
  $('#btn').on(
    'click' : function(){
      var time = 1000;
      $setTimeout(function(){
        $(#content).fadeOut(1500);
      },time);
    }
  );
)}

例えばこんな感じですかね。これで、#btnをクリックして1秒後に#contentがフェードアウトします。

今回はとても初歩的なところですけど、自分のリハビリもかねて算数ドリルです。
やっぱりなんでも日々触ってないと抜けていくもんだぁと実感している最近です。
抜けていくのはあっという間なのに、覚えられるものが年々少なくなっているのは、これどういうことなんでしょう?(苦笑)


パーマリンクの変更ができない!!の場合

こんにちは。 「天高く馬肥ゆる秋」ですね!みなさんアジア大会みてますか? 昔ちょっとだけスポーツしてたのでスポーツ観戦は大好きです。 最近は見るばかりで、運動不足感がハンパないですが。。。   さて今回はWPでパーマリンクの変更がうまくいかなかった際のお話です。 今回制作した案件では、ちょっとどのようなurlにしたいか、はっきり決められないところがあったので、 まずはローカル環境の方でテーマいじったり、ゴリゴリCSS書いたりしてました。 ようやくこれでいくよって指示がでたので、 ローカルの方で、パーマリンク変更してしめしめうまくいったぞ、くらいに思ってたのですが・・・  

あれ、本番サーバーだとうまくいかない・・・

今回は進捗の関係上少し早めにデータを本番サーバへアップしてたんですねー(制限はかけた状態で) それでは本番の方もパーマリンク修正しましょーポチポチと。やれやれ。。 ・・・ ん、404ページでた?404404404・・・ あれれ?なんかまちがえたかなぁ? ポチポチ、404… 「お探しのページ」探してください、お願いします!   ということで、もうまたいろいろ調べに行きました。 調べてみると似たような経験された方やっぱりいらっしゃいました。  

なんで404ページなの?

結論からいうと、今回はサーバの仕様だったんですね。 ちょうどWPが4.0にアップデートされたタイミングで、 本番のWPの方もアップデートしようとしたときに、なぜかうまくいかなくて、 雰囲気的に何か書き込みがうまくいかないからアップデートできないって感じで。 そういえばパーマリンクの変更の時って自動生成される.htaccessがあったような、と思い出しまして。


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

↑こういうのが書いてあるやつですね。   本番サーバのぞいてみたら。。。ないっ。。。 ちょっと確認したわけじゃないんですけど、サーバの仕様の関係で書き込み関係がうまくいかなかったようで、 .htaccessが自動生成されなかったみたいです。 なので、.htaccessは自作してサーバにアップ、またサーバ会社の方に連絡してWPのバージョンアップの方も無事にできるようになりました。 .htaccessの方は、パーミッションの設定もお忘れなく!