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
ついつい簡単そうだったので、作りましたが、それなりに難しそうなので、私が理解しながらぼちぼち作ってみます。

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