Archive for the ‘Blogger’ Category

10月
27

flashcast:フリーで働くITエンジニア集団のブログ: Bloggerに「続きを読む」を追加してみたの続きです。

「続きを読む」機能を先日つけたのですが、なんか変な現象が・・・

よく見ると、「copy to clip」の文字があり得ない場所に出ています。

どうも、
flashcast:フリーで働くITエンジニア集団のブログ: bloggerで使っているsyntaxhighlighterに、クリップボードにコピーするボタンを追加する
で追加したflashが消えていないみたい・・・

しょうがないので、「続きを読む」で隠した場合は、display:noneで、flashを消すことにしました。(本当は、隠している場所だけ消せばいいのですが、とりあえず全部消しちゃいました。)

うっかりしてました。
みつけてくれたもじゃもじゃに感謝です。

10月
23

flashcast:フリーで働くITエンジニア集団のブログ: flash+javascriptで、クリップボードにコピーする
の続きです。

こんな感じになりました。

   $(document).ready(function() {
    if (!$.browser.msie) {
     var i = 0;
     $(".dp-highlighter").each(function(){
      this.id = "tonosamartdp" + i;
      $(this).children(".bar").children(".tools").children("a:contains('copy to clipboard')").replaceWith("<span id='" + this.id + "swf'/>");

      var flashvars = {
       func:"copy2clip_getData",
       img:"http://tonosamart.com/flashcast/copy2clip/copy.swf",
       param:this.id
      };
      var params = {
       menu:"false",
       allowScriptAccess:"always"
      };
      var attributes = {
       id:this.id + "swf"
      };
      swfobject.embedSWF("http://tonosamart.com/flashcast/copy2clip/copy2clip.swf",  this.id + "swf", "93", "14", "9.0.0", "http://tonosamart.com/flashcast/swfobject/expressInstall.swf", flashvars, params, attributes);

      ++i;
     });
    }
   });

ブラウザ判定をして、IE以外だった場合は、「copy to clipboard」の文字をflashに置き換えています。
また、そのときにidを付加して、javascriptの呼び出しに使っています。

こういう、ページ内の特定のタグに対する一括処理はjQueryだと簡単に出来て便利ですね。

flashから呼ばれるjavascriptはこんな感じです。

function copy2clip_getData(param) {
 var text;
 text = dp.sh.Utils.FixForBlogger(document.getElementById(param).highlighter.originalCode).replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&');
 //alert(param + ":" + text);
 if ($.browser.msie) {
  window.clipboardData.setData('text', text);
  return null;
 } else {
  return text;
 }
}

highlighter.originalCodeにコピー元のコードが入っているのを探すのに苦労しましたが、特に問題なくできました。

これで、IE以外のブラウザでも、ソースのコピーができるようになりました!

10月
01

Bloggerには、「続きを読む」がないんですね・・・
不便なので追加してみました。

サーバ側で制御して、クライアントにデータを送らないっていうのが理想だけど
それは無理っぽかったので、クライアントで「記事を途中から隠す」っていう感じにすることにしました。

jQueryで実装してみました。

まずは、記事ごとにidを振っておいて識別できるようにします。

<div class='post-body entry-content' expr:id='&quot;tonosamart_read_more_&quot; + data:post.id'>

そのあとは、ちょっと長いですが

  <b:if cond='data:blog.pageType == &quot;item&quot;'>
  <b:else/>
   <script type='text/javascript'>
    $(document).ready(function() {
     $(".entry-content").each(function(){
      if ($(this).height() &gt;= 550) {
       $(this).after("<a class='tonosamart-read-more-link' href='javascript:tonosamart_readMore(\"" + this.id + "\", " + $(this).height() + ", true);' id='tonosamart-read-more-link-on" + this.id + "'>続きを読む</a>");
       $(this).after("<a class='tonosamart-read-more-link' href='javascript:tonosamart_readMore(\"" + this.id + "\", " + $(this).height() + ", false);' id='tonosamart-read-more-link-off" + this.id + "'>詳細を隠す</a>");
       $(this).after("<div class='tonosamart-read-more-bg' id='tonosamart-read-more-bg" + this.id + "'/>");
       $("#tonosamart-read-more-link-off" + this.id).css("display", "none");
       $(this).css("overflow", "hidden");
       $(this).height(500);
      }
     });
    });

    function tonosamart_readMore(id, height, isDisplay) {
     if (isDisplay) {
      $("#tonosamart-read-more-link-on" + id).css("display", "none");
      $("#tonosamart-read-more-link-off" + id).css("display", "inline");
      $("#tonosamart-read-more-bg" + id).css("display", "none");
      if (jQuery.browser.safari) {
       $("#" + id).height(height);
      } else {
       $("#" + id).animate({height:height}, 400);
      }
     } else {
      $("#tonosamart-read-more-link-on" + id).css("display", "inline");
      $("#tonosamart-read-more-link-off" + id).css("display", "none");
      $("#tonosamart-read-more-bg" + id).css("display", "block");
      var targetOffset = $('a[@name=' + id.substring('tonosamart_read_more_'.length, id.length) + ']').offset().top;
      if (jQuery.browser.safari) {
       $('html,body').animate({scrollTop:targetOffset}, 1,"swing" , function(){$("#" + id).height(500)});;
      } else {
       $('html,body').animate({scrollTop:targetOffset}, 1,"swing" , function(){$("#" + id).animate({height:"500"}, 400, "swing", function(){$(this).height(500)})});
      }
     }
    };
   </script>
  </b:if>

こんな感じで、「続きを読む」機能を追加してみました。

記事の高さが550px以上の場合は、高さを500pxにして記事の後半を隠しています。
そのときに、透過pngを重ねて、記事がフェードアウトするみたいにしてみました。

簡単にできた割には、わりと素敵にできたと思います。

いちいち、記事の前半と後半を分けて書かなくてもいいので、記事を書く方としても楽ですね。

9月
25

---
2010/02/11追記

2010/02/11に、Haloscanのサービスが停止になりました。
本記事についても過去のものとなります。
---

Bloggerには、Trackbackの機能がありません。

というわけで、記事の最後にTrackback用のURLとかをつけてみました。
※事前に、Haloscanの設定が終わっていることが条件です。

      <div class='post-footer-line post-footer-line-3'>
    <script src='http://www.haloscan.com/load/flashcast' type='text/javascript'/>
    <span class='post-comment-link'>
     <a class='comment-link' expr:href='"http://www.haloscan.com/tb/flashcast/" + data:post.id + "/"' expr:onclick='"javascript:HaloScanTB(" + "\"" + data:post.id + "\"" + ");return false;"'>
      <script type='text/javascript'>postCountTB('<data:post.id/>');</script>
     </a>
    </span>
    <div class='tonosamart-trackback'>
     <input expr:value='"http://haloscan.com/tb/flashcast/" + data:post.id + "/"' onfocus='javascript:this.select();' readonly='readonly' type='text'/>
    </div>
    <p class='tonosamart-trackback-comment'>&#8251;この記事へのトラックバック用 URL</p>
   </div>
    </div>

こんな感じで、実装できました。
URLの表示をinputタグにすることで、コピペしやすくしています。

みなさん、ぜひTrackbackをお願いしますね!

9月
24

---
2010/02/11追記

2010/02/11に、Haloscanのサービスが停止になりました。
本記事についても過去のものとなります。
---

Bloggerには、Trackbackの機能がありません。

ですが、Haloscanという海外のコメントを管理するサービスを使用することで実装可能です。設定方法は、クリボウさんのBlogが非常に参考になります(私も参考にさせていただきました)。Trackbackの機能がないということは、他のブログにTrackback Pingを送る機能もありません。が、これもHaloscanよりTrackback Pingを送ることができます。

ここでは、Haloscanを利用して他のブログにTrackback Pingを送る方法を、備忘録として記載します。

※ HaloscanへのSignUp、BloggerへのTrackback機能の実装がされていることを前提にしています。

1.Haloscanにログインします。
Haloscanの管理コンソールより、「Username」、「Password」を入力し「Sign In」ボタンをクリックします。

2.Manage Trackbackタブをクリックします。
ログイン後、中タブコントロールから「Manage Trackback」(赤枠)を選択します。

3.Send a Trackback Pingタブをクリックします。
「Manage Trackback Ping」画面が表示されます。小タブコントロールから「Send a Trackback Ping」(赤枠)を選択します。

4.Trackbackする内容を入力します。
入力画面が表示されますのでTrackback Pingを送る内容を入力し、画面下部の「Send Pings」ボタンをクリックします。

  • Your Blog Name:ブログ名を入力します。ふぐブログの場合「フリーで働くIT・・・」
  • Your Blog Post Address:自分の投稿したブログのURLを入力します。
  • Your Blog Post Title:自分の投稿したブログのタイトルを入力します。
  • Your Blog Post Excerpt:自分の投稿したブログの抜粋を入力します。頭1、2行を抜粋すれば十分かと思います。
  • URL(s) to Ping:Trackback Pingを送るブログのトラックバックURLを入力します(複数指定可)。

画面上部に「Successfully sent ping」(赤枠)メッセージが表示されれば完了です。

5.Trackbackがカウントされていることを確認します。
今回は自分のブログにTrackback Pingを送ったので、Bloggerに戻って「Trackback」がカウントアップされていること(赤線部)を確認します。

「Trackback(1)」リンクをクリックすると、Haloscanサービスの画面がポップアップ表示されます。4.で入力した内容が表示されればTrackback Ping送信成功です。

以上が、HaloscanからTrackback Pingを送る手順になります。

  • Search:
  • flashcastとは?

    東京を中心に、現在フリーランスとして活動しているITエンジニア、および、かつてフリーランスとして活動していた起業家達が立ち上げたコミュニティーです。

    みんなで集まって面白いことをやろう!形に残そう!ということで、ブログをはじめました。

    技術情報や、フリーエンジニアに役立つ情報などを、ご紹介できたらと思っています。

    お問い合わせ:
    info@flashcast.jp
  • カレンダー

    2010年7月
    日曜日 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日
    « 6月    
     123
    45678910
    11121314151617
    18192021222324
    25262728293031
  • メンバー紹介

    もじゃもじゃ
    flashcastのリーダー

    3年ほどフリーのITエンジニアとして活動。現在は、社員2名の株式会社を経営しています。

    一攫千金を夢見る野心家です。

    ライブキャスト

    yasu
    ダイバー

    自宅サーバーでホームページを作り始めました。

    少しずつ記事を増やしていきますので足を運んでください。

    よろしくお願いします。

    sa-sa-ki.jp

    のら
    たびびと

    ねこ好きに悪人はいなーいっ!!

    バイクや車も好きです。

    めぐ
    デザイナーのたまご

    音楽とデザインとお酒をこよなく愛する永遠のダイエッター。

    現在ペンタブレットでイラストを勉強中。

    Hiro
    コンサル

    PMやSEの案件を業務委託で請けることが多いですが、小規模案件も受託でやっています。

    得意な分野はマイクロソフト製品や関連技術によるシステム構築です。

    KEI
    取締役の風格

    最年少なのに、メンバーで1番の貫禄の持ち主!?

    C#や.netなどサーバ側の開発が得意。

    ろっきー
    美食家★パパ

    自分にとっての息抜きは、ドライブして温泉に入って、美味しいご飯を食べる事。

    ココロとカラダのリフレッシュを大切にし、日々の仕事に励む一児の父親です。

    郵便番号検索

    my-hobby

    とのさま
    げーむのおうさま

    大人なのに好きなことしかやらない駄目人間。

    Web系が得意、アクセスは苦手><

    tonosamart.com

    セクレタリアト
    ギャンブラー

    フリーランス時代は仲間の現場を探すことが多く、それをきっかけに会社を設立。

    現在はSI業に特化せず、他の業種にも興味を持ち始めています。

    メドレー株式会社

  • 広告