ソーシャルボタン

2012年3月18日 at 10:13

海外向けのソーシャルボタンはあるようですが、国内向けで使用できるブロックが欲しいです。concrete5 japanさんのオフィシャルページで設置しているものを使用することはできませんか?

タグ:

Re: ソーシャルボタン

2012年3月18日 at 12:14
過去に同じスレが合ったような…ああ、これですね。
http://concrete5-japan.org/community/forums/chat/post-912/post-3820/
 

Re: ソーシャルボタン

2012年3月19日 at 9:32
一応
http://concrete5-japan.org/community/forums/development/post-908/
の方法は、自分的には5分でちょちょいと設置できる気軽な設定ですが、でも、気軽に設置できる、アドオン作らないといけないですよね。

誰か作ってくれないかな〜、無料で・・・ ( ̄ー ̄)ニヤリ
acliss さんぐらいに〜 ( ̄ー ̄)ニヤリ
 

Re: ソーシャルボタン

2012年3月19日 at 21:43
肝心なことですが、なんのものかよくわかりません。

ボタンを押せば、特定のURLのポストするんですか?

結果は、たとえばTwitterの場合、どこで確認するんですか?

仕様が分かれば明日にでも作りますが。
 

Re: ソーシャルボタン

2012年3月20日 at 1:30
補足。

この concrete5 Japan のサイトでは、ブロックではなく、テーマに直接、プログラムコードや Javascript を入れています。

このサイトは、以下のことをしています。

□ Twitter ツイートボタンと Facebook いいねボタン設置方法
http://concrete5-japan.org/community/forums/development/post-908/

□ はてブ ボタン 設置方法
http://concrete5-japan.org/community/forums/development/post-979/

□ Mixi チェックイン ボタン 設置方法
http://concrete5-japan.org/community/forums/development/post-971/

□ Google Plus
http://concrete5-japan.org/community/forums/development/post-2518/

これらを、Main エリアの上、テーマファイルに直接記述しています。
concrete5 のテーマファイル自体も PHP で作られているので、ブロック以外にも直接プログラミングができます。

ブロックを作るのは面倒くさく、ソーシャルボタンの配置の場所も固定する予定だったので、テーマにしました。

tomoac さん、テーマに直接記述するときの記述をまとめて Gist にしてみました。

http://gist.github.com/2116372

どうじょ
 

Re: ソーシャルボタン

2012年3月20日 at 7:04
補足の補足。OGPタグはこのアドオンで自動で挿入できます wink
http://github.com/hissy/c5-open-graph-tags-lite/tree/master/packages

OGPを設定できたらあとは各ボタンのコードを各サイトから取得してテーマに貼っつけるだけでいけますよん。

http://twitter.com/about/resources/buttons
http://developers.facebook.com/docs/reference/plugins/like/
http://developer.mixi.co.jp/connect/mixi_plugin/favorite_button/get_html_code/
http://b.hatena.ne.jp/help/bbutton
http://www.google.com/intl/ja/webmasters/+1/button/index.html

…と思ったけど、貼っつけるだけなのはTwitterとG+1だけだった。+1もfooter_requiredにJavascriptを出力しないと行けないので面倒だな。
はてブボタンはURL必須なのでちょっとめんどくさい。Katzさんのリンク先を参照。
FacebookはAdmin ID、MixiもIDを発行しないとそもそも動かないという面倒仕様。使って欲しいのか欲しくないのか…。

うわー、アドオン作るかな〜
 

Re: ソーシャルボタン

2012年3月20日 at 9:53
結構面倒そうですね。。。

まずはTwitterが簡単な印象なので、そのへんを中心に勉強してみます。
 

Re: ソーシャルボタン

2012年3月20日 at 11:27
Tweetボタンのブロックを作ってみました。

使ったことがないので、挙動もよくわかりませんが、こんな感じでいいのでしょうか?

ボタンを押したら一応ツイートできました。

OKでしたら申し機能を付けて、Facebookに取り掛かります。
 

Re: ソーシャルボタン

2012年3月20日 at 12:39
Tomoac さん。
おお。動作に問題は無いですが、これだと

URL が「index.php?cID=xxx」な時だと、その URL がシェアされてしまうので、


<?php
$SocBtnWidth=200; // width of comment area
$SocBtnHeight=50; // height of comment area
$req = Request::get();
if ($req->getRequestCollectionID() > 1 && $req->getRequestPath() == ''
&& $_SERVER['REQUEST_METHOD'] != 'POST') {
// This is a request that is directly for the cID, rather than the path
$u = new User();
// Get the page object for the current cID
if (!$c->isError()) {
?>

<div class="ccm-edit-mode-disabled-item" style="width:<?php echo $SocBtnWidth; ?>px; height:<?php echo $SocBtnHeight; ?>px;">
<div style="padding:8px 0px; padding-top: <?php echo round($SocBtnHeight/2)-10; ?>px;"><?php echo t('Content disabled in edit mode.'); ?></div>
</div>

<?php } else { ?>

// ここに、URL がきちんと表示された時に表示する

<?php } ?>



みたいな細工を加えるといいかもしれません。 $SocBtnWidth $SocBtnHeight など適宜に変えておいてください。

この細工は、編集モードなどで正規の URL で表示されていない時に、間違ってユーザーがシェアしてしまわないようにするためのセーフティーガードです。
 

Re: Re: ソーシャルボタン

2012年3月20日 at 14:01
すんません。
基本的なことを。

if ($req->getRequestCollection .... で、$req が生成されていないのでエラーが出ます。

getRequestCollection()の仕様は、APIの仕様をみればいいのでしょうか。
 

Re: ソーシャルボタン

2012年3月20日 at 14:32
おっと

コピペした時に

$req = Request::get();


忘れてました。
 

Re: ソーシャルボタン

2012年3月20日 at 16:30
お手数かけます。

if (!$c->isError()) {

の、$c は、なんのオブジェクトでしょうか。

現在、未定義なので判定が無効になっています。
 

Re: ソーシャルボタン

2012年3月20日 at 16:58
それと、ひとつ相談が。

これらのボタンは、まとめて横に並べる使い方が多いように思います。

1つのボタン、1ブロックだと横に並べにくいですよね。レイアウトを使えばいいのかもしれませんが。

となると、1ブロックで、複数のボタンが作れて並べられる方がいいですよね。

すると、並べ替えの機能が要ったりして、結構大変になりそう。
 

Re: ソーシャルボタン

2012年3月20日 at 19:38
$c はコレクションの情報が格納されている関数です。
global $c 宣言する必要あったっけな。

あと、デザインですが、簡単に、横並びで

Twitter Facebook はてブ Mixi Google+ の横並びでいいんじゃないですか。

細かいことできるのは有償アドオンにして、ひとまず、無償アドオンは簡略に行きませう〜。
 

Re: ソーシャルボタン

2012年3月21日 at 7:59
聞き方が悪かったようです。

宣言もですが、$c の初期値が入っていないので、どうすればいいかと。
 

Re: ソーシャルボタン

2012年3月23日 at 19:52
index.php?cID=xxx になった時に表示しないと言うよりは、ボタンから正しいURLを指定すればOKだと思いますが…。

あと、グローバル変数の$cはあんまし使わないでね、ってことになったと思います。ソース紛失。
ぼくのアドオンではこう言うふうに書いています。

$page = Page::getCurrentPage();
$url = BASE_URL . DIR_REL . $page->getCollectionPath();
 

Re: ソーシャルボタン

2012年3月24日 at 1:17
ついつい簡単そうだったので、作りましたが、それなりに難しそうなので、私が理解しながらぼちぼち作ってみます。

ところで、そもそも欲しいと言われた方の要望は、どうなんでしょうか?
使ってみて感想をいただければと思います。
 

Re: ソーシャルボタン

2012年3月21日 at 9:42
Facebookの場合、

HTMLタグに、以下を追加せよ、とありますが、ブロックの場合どうしたらいんでしょう。
xmlns:fb="http://www.facebook.com/2008/fbml"
 

Re: ソーシャルボタン

2012年3月23日 at 19:59
XMLの名前空間が必要なのは、XHTMLのLikeボタンの場合のみです。HTML5では必要無いです。ただ、HTML5版でも、<body>タグの直後にJavaScript SDKを埋め込む必要があり、ブロックから行うのは無理です。仕方が無いので<body>タグの直後は諦めて、ブロックの先頭に入れるしか無いですね。そうすると、ブロックが複数になった時に、2個目以降はJavaScript SDKが入らないようにしないといけません。そんなことできるのかな…。

一番簡単なのは、「送る」ボタンを諦めればiframe版を使うことですね。でもページの読み込みが遅くなります。

Mixi関係は、WordPressプラグインを過去に作ったので参考になるかも?です。
http://notnil-creative.com/blog/archives/470
 

Re: ソーシャルボタン

2012年3月24日 at 1:19
xmlns:fb="http://www.facebook.com/2008/fbml"

ってのは必須なんですか?
 

Re: ソーシャルボタン

2012年3月24日 at 8:34
無くても動くと思いますが、XHTMLは仕様が厳格なので、名前空間で定義していない要素は入れられないんでしょう。というかなぜFacebookがこんな仕様にしたのかよく分かりません…。
 

Re: ソーシャルボタン

2012年3月25日 at 2:53
テーマのheader.phpの位置はどのテーマでも同じなんでしょうか?

であれば、インストール時に無理やり書き換えますかね。
 

Re: ソーシャルボタン

2012年3月25日 at 7:20
header.phpを書き換えるのはマズイと思いますよ…。アップグレードで書き換わる可能性がありますし、header.phpに<body>タグがあるとは限らないですし。
 

Re: ソーシャルボタン

2012年3月25日 at 14:19
xmlns:fb="XXXXXX"

という記述は、Facebook が独自に規格した FBML (HTML にFacebook のタグを加えたもの) を使用するという宣言です。

<fb:like> というタグを使用することができるようにするために必要です。
以前、そのフォーラム記事を書いた当時、「いいね!」ボタンの実装にも必要でしたが、今は必要ありません。

FBML 規格以外のフォーマットは何だったっけなー
 

Re: ソーシャルボタン

2012年3月25日 at 16:03
Fackbookのサイトを見て、コード入れ替えました。

twitter, google+1, hatena, mixi, facebook に対応できたと思います。

こんなんでどうでしょう。

添付でも、以下からでもダウンロードできます。
http://concrete5.tomo.ac/osusumeblock/socilabutton/
 

Re: ソーシャルボタン

2012年3月21日 at 10:12
Google+1とFacebookを追加してみました。Twitterを含めて3つです。

先にKatzさんからいただいたコードは、わけがわからないまま中途半端に入れてます。
そのへんは、次回調整しますが、

要は、表向きの仕様等について、こんな感じでいいかどうか確認くださり、ご意見ください。

データベース項目が増えているので、前回のはアンインストール&削除してお試しください。

#今日はこれから別のことをするので、本日はこれで終了です。
 

Re: Re: ソーシャルボタン

2012年3月25日 at 11:00
ソーシャルボタンに、HATENAを追加しました。

「こんなブロックを作ってみませんか?」ということで作ってみました。
そんなことから自分でどうしたい!ってのがないので、どういう仕様がいいのか機能がいいのかよくわかりません。
ここは違う!とかここはこうすべき!とかご意見いただければ改良します。

index.php?cID=xxx には、未対応です。

以下からダウンロードできます。
http://concrete5.tomo.ac/osusumeblock/socilabutton/
 

Re: ソーシャルボタン

2012年7月4日 at 11:23
いつもお世話になります。
ソーシャルボタンの設置テーブルの幅を指定できますでしょうか?
IE8の場合、膳幅表示になりfloatしたデータがずれてしまいますので、幅指定すれば解消されると思いますので、ご指導ください。
 

Re: ソーシャルボタン

2012年7月4日 at 12:52
使っていただいてましたか。

作ったものの誰からもレスポンスがないので、ほったらかしでした。

確認して連絡します。
 

Re: Re: ソーシャルボタン

2012年7月11日 at 11:12
連絡が遅くなり、申し訳ないです。
その後、どうでしょうか?
あと、これもIEのバグ(IEのみ)ですが、「Facebook Box by tomoac」のブロックを設置したら、サイト右にいらぬ余白ができて横スクロールが表示されてしまいます。このブロックも修正できませんでしょうか?
よろしくお願いいたします。
 

Re: ソーシャルボタン

2012年7月11日 at 12:18
配置とかについては特別に細工はしていませんので、お使いのテーマーのCSSの設定によります。
逆にいえばCSSを設定していただければ配置は自由になります。

というのが基本ですが、そのことがちゃっと想定されているかどうかの確認をしたいので、差し支えなければ実際に問題になっているところのURLを教えていただくことはできませんか。
 

Re: Re: ソーシャルボタン

2012年7月11日 at 12:45
http://www.furisode-kimono.net/index.php/

になります。
cssのtable設定をいろいろやってみたのですが、変わりませんでした。

あと、先ほど言ってた右にスロールバーが出るサイトも同様のサイトです。

同じ仕様(若干、コンテンツとメニュー部の幅設定が違います)
で作った下記のサイトは、IEでも正常に見えていると思うのですが・・・

http://www.kawaman.co.jp/

以上、よろしくお願いいたします。
 

Re: Re: Re: ソーシャルボタン

2012年7月11日 at 22:36
ずいぶんきれいなサイトですね。感動しました。

出力するタグを換えてみました。
以下からダウンロードしてください。Version 0.4.4 です。

http://concrete5.tomo.ac/osusumeblock/socilabutton/

どうでしょうか。
 

Re: ソーシャルボタン

2012年7月12日 at 7:05
yamanoiです。

データベースへの保存は、ボタンごとに項目を分けなくてもいいんじゃないかな。
JSON形式とかで1つにして保存するようにすれば拡張性が高くなりますよ。
 

Re: ソーシャルボタン

2012年7月12日 at 7:18
ソースを見られたのですね。おはずかしい。言い訳せずにおられない。

あんまり考えずに作り始めたので、最初は共通のフォールドで複数のボタンで対応できると思ったんですね。結構できた後でそれぞれに項目がいるなあと気づいて、そのままフィールドを追加してしまいました。

なるほど、そういう手があったのですね。別途、aclissさんからbtTablesをつかってシンプルに作る方法も教えてもらっているので、いまやっている作業が一段落したらまとめて作り変えます。
 

Re: Re: ソーシャルボタン

2012年7月12日 at 10:38
ありがとうございます。
早速、アップデートして設置しましたが、今度はFierfoxで見ても2段になってしまいました。IEは相変わらずずれてしまってます。
お手数をわずらわせるばかりで申し訳ないです。
btTablesを使って作り替えると言ってみえるので、待った方がいいでしょうか?
 

Re: ソーシャルボタン

2012年7月12日 at 11:00
それはすみません。
元に戻せますか?
テストする環境が作れないので対応が難しいですが、なにか作って見ます。

作り変えても中のコードがかっこ良くなるだけで、挙動は同じです。
 

Re: ソーシャルボタン

2012年7月12日 at 11:33
ありがとうござます。
よろしくお願いいたします。
 

Re: ソーシャルボタン

2012年7月13日 at 20:14
今日から作り替えをしてますので、週明けまで待ってください。
IE8 の問題も週末に調査します。
 

Re: Re: ソーシャルボタン

2012年7月13日 at 21:36
ありがとうございます。
お手数をお掛けしますが、よろしくお願いいたします。
 

Re: ソーシャルボタン

2012年7月14日 at 5:15
IE8 の環境を見つけたので、あらためて開きましたが問題の表示が確認できません。

おかしい状態のページのURLをあらためて送っていただけますか?
 

Re: ソーシャルボタン

2012年7月14日 at 10:53
ソーシャルボタンを作り変えました。

momoさん。囲っていたタグをなくしましたのでこれで確認ください。
あとview.phpをシンプルにしましたのでこの編集ができるならそれを開いてタグを加えてみてください。
今出ているタグは必要最小限です。


主な変更点(機能面)

1.表示の順番変更ができるようになりました
2.facebookのオプションを増やしました

主な変更点(内部)

1.囲っていたtableやdivタグをとりました
2.view.phpをシンプルにしたので、自由にタグをつけたりとったりしてください
3.データベースをシンプルにしました(JSON対応:山野井さんの助言で)

*まだつくりたてなので、バグがあると思います。見つけたらご指摘ください。
*いまいろいろいじくってますので、機能要望があればすぐに対応します。(あす日曜日まで)
 

Re: ソーシャルボタン

2012年7月14日 at 15:42
先のバージョンに不具合がありましたので、修正版(Version 0.5.1)です。

これを使ってください。>momoさん。
 

Re: ソーシャルボタン

2012年7月15日 at 10:53
不具合が見つかり対策しましたので、最新版をリリースします。

Version0.5.2 です。

添付のほか、以下からもダウンロードできます。(履歴や注意事項も書いています)
http://concrete5.tomo.ac/osusumeblock/socilabutton/

変更点(Ver. 0.5.0以降)をまとめますと

1.各ボタンをDIVタグで囲っていたがやめて、余分なタグは出力しないようにした。
2.Facebookのボタンの設定項目を増やした。
3.Mixiでキーがない場合表示しないようにした。
4.コードおよびデータベースを含めて作り変えています。
 

Re: ソーシャルボタン

2012年7月16日 at 12:02
なんどもすみません。

ソースを github にアップしたことに伴う不手際で、解凍時のフォルダ名が異なってしまってました。
修正しましたので、この添付(version 0.5.3)を使ってください。


以下のURLか、GITHUB(tomoac-button)からダウンロードも可能です。

http://concrete5.tomo.ac/osusumeblock/socilabutton/
 

Re: ソーシャルボタン

2012年7月4日 at 12:56
yamanoiです。

下のスクリプトを使って,htmlブロックで書くのが簡単だと思います。
http://itra.jp/jquery_socialbutton_plugin/
複数ページに入れるにはスタックに入れておくとかすればよいと思う。

参考までに
ソーシャルブックマークというのがありますので
これに手を入れるのも1つかもしれません。
http://www.yamanoi.org/concrete5/download/bookmark/