Simplicityを少し改造してみた part4の補足

今しがた、新しいSimplicityのバージョンをダウンロードしてスクリプト見てみました。そのままでもおそらく問題ないのですが、実際は以下のようにするだけで良いので一応書いておきます。
ちなみに(part1)〜part4は続きものなのでいきなり書き方を変えるとわかりにくいかなと敢えて修正しませんでしたが、実質動いている部分はもう少しまとめられるのでそれを書いておきます(2014/11/14 朝 若干更新しました)。


2015/6/13 追記 Google+のカウントを自前で取得して表示できる方法がわかったため、新たに記事を書きました。
Simplicityを少し改造してみた part4-2 Google+のカウントを自前phpで取得する編
2015/09/30 追記分 内容が古くなっていたので書き変えました。 また、これらを利用するajax部の書き変えを昨日(2015/09...
追記ここまで


Simplicityを少し改造してみた part4
2014/11/9版のSimplicityでは、feedlyのカウントが(非同期で)動作しなかったので、part3でやった方法に少し手を加え...

twitterの部分をpart3あたりで説明したのでちょっとややこしくなってしまったかも知れません。SNSの部分(ajaxの箇所)で、part3ではtwitterShowとしていた所をcountShowに変更して、これまでjQuery( selcter ).text( count )としていた所をSNS.countShow(selcter, count)とします。つまり「処理ができたらSNSの中のcountShowでselcterと言う箇所にcountを表示」と言うことです。

SNS.countShowはヘッダ部分にかかれている(新しいバージョンで言うとheader-javascript.phpの最後あたり)、

ここの値で、the_permalinkと.twitter-count等がselcterとcountの値を受け渡しています。

javascript.jsにthe_permalinkから各ページのアドレス(url)が送られて、javascript.jsで処理した内容がSNS.countShowで戻されます。その時の内容としては、

twitterの場合、SNS.countShow( “.twitter-count”, 処理したcountの値 )
facebookなら、SNS.countShow( “.facebook-count”, 処理したcountの値 )

と言う感じです。なので、SNSの中のtwitterShowの部分をcountShowに書き直した場合は、それぞれのカウントの値を処理している部分で、以下のように書き直します。

はてなの部分を例で上げてみました。上記のようにすれば全体の処理に統一感が出ます。これらによって、SNSの中身は、ajaxとcountShowだけで良いようになるわけです。元々もデータを拾ってきて整形した値を表示だったので何も変わっていないのがご理解いただけるとありがたい。処理速度や効率というよりは、どちらかというと可読性を上げてメンテナンスを容易にできるようにと言う感じでしょうか。

またもう少しまとめようとすると、yahooのapiを利用している部分をまとめることもできます。
SURLは共通で、tmpQuery1の部分が変わるだけですから、

こんな感じにすると、もっと処理部分が見やすくなるかも知れません。yahooのapiに送る部分をまとめる関数yapiを新たに設置して、yahooのapiを使う時はここでアドレスをまとめるという流れです。関数を作った分、行数自体は増えるかも知れませんが、メインで処理している箇所はおおよそ共通な書き方になったりするのでメンテナンスがしやすいと思います。
例えばapiのアドレスが変更とかの場合そこだけ修正すれば良いですし、またyahooの方が変われば関数の中身を修正すれば良いですし。ちなみにtmpQueryをquery = {q: tmpQuery}でやると何故かパーサーエラーが出たので、+で連結しています。

現在動作しているスクリプト(ちょっと更新しました)

ひとまずjavascript.jsの部分はこんな感じです。

スポンサーリンク

シェアする

フォローする