none
SharePoint2007のブログコメントフォームについて RRS feed

  • 質問

  • SharePoint2007のブログの設定を変更し、

    ブログのコメントを非表示にしたいと考えております。

     

    コメントリストを表示するWebパーツのビューを変更して

    コメント自体を非表示にすることはできたのですが、

    フォームのタイトル入力欄を消せなくて困っております。

     

    SharePoint Designer 2007 を利用して、

    ユーザー設定のリストフォームを配置する方法を試してみました。

    ですが、このフォームを利用して作成したコメントが

    投稿へのコメント数にカウントされなかったため、

    既定のフォームからタイトル入力欄を消す方法を色々試しております。

     

    自力で調べられる範囲では解決できなかったので…

    ぜひご教授頂ければと思います。

    よろしくお願いします。

    2008年2月5日 13:35

回答

  • はじめまして。

    コメント入力欄なしでブログを運用される、ということですよね?

    手元の環境で試してみましたが、SharePoint Designer を使わずとも、コメントリストのアクセス権設定と、あとはいくつかのWebパーツの設定変更で実現できそうです。

     

    こちらにまとめましたので、ご覧下さい。

    http://sharepoint.boo.jp/index.php?e=172

    2008年2月6日 1:47
  • 山崎です。

     

    タイトルのみを非表示にする方法ですが、JavaScript を利用する方法はいかがでしょうか。ちょっと無理やりな気もしますが、所詮HTMLの世界なのでありかなぁと。。。一応、自分の環境で試してみましたが、なんとか動いています。ただ、これでちゃんと実用レベルで使えるかはわかりませんので、もし試していただけるのでしたら感想をお聞かせいただけると嬉しいです。

     

    方法

    SharePoint Designer 2007 で Post.aspx を開き、「<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">
    」の次の行あたりに次のスクリプトを埋め込みます。

    Code Snippet

    <script type="text/javascript">
    <!--
    _spBodyOnLoadFunctionNames.push("hideTitle");

    function hideTitle()
    {
    var tags=document.getElementsByTagName('TD');
    for (i=0; i<tags.length; i++) {
     if(tags[i].hasChildNodes())
      if(tags[i].childNodes[0].hasChildNodes())
        if(tags[i].childNodes[0].childNodes[0].innerText=='タイトル')

    {
     tags[i].parentNode.style.display='none';

    }//if

    }//for
    }//function

    //-->
    </script>

     

     


    2008年2月7日 13:02

すべての返信

  • はじめまして。

    コメント入力欄なしでブログを運用される、ということですよね?

    手元の環境で試してみましたが、SharePoint Designer を使わずとも、コメントリストのアクセス権設定と、あとはいくつかのWebパーツの設定変更で実現できそうです。

     

    こちらにまとめましたので、ご覧下さい。

    http://sharepoint.boo.jp/index.php?e=172

    2008年2月6日 1:47
  • アドレスが違うので名前が少し違いますが

    質問者です。

     

    saruhiko様

    丁寧なご回答ありがとうございます。

    …ですが申し訳ないのですが実現したいことは

    フォームのタイトル欄だけを非表示にして本文入力欄を残すようにしたいのです。

    分かりづらい説明になってしまい申し訳ありません。

     

    教えて頂いたコメント入力無しのブログの設定も

    別件で使えそうなのでぜひ活用させて頂きたいと思います。

     

    よろしかったら本文入力欄だけのフォームの作成方法についても

    引き続きご教授ください。

    よろしくお願いいたします。

    2008年2月6日 2:49
  • うわ、とんだ勘違い、失礼いたしました~(恥)

    確かに、一般的なブログのコメント欄にはタイトルなんてないですよね。

     

    そこで、タイトル欄を外せないものか、私も触ってみたのですが・・・

    どうにも不可能っぽいです。

    コメントも SharePoint のリストを利用している都合上、タイトルはかならず必要になってしまいます。

    これは仕様、としか言えないかも…。

     

    Webパーツをカスタマイズすれば出来るかもしれませんが、私にはちょっと手が出ない次元です。

    お役に立てず申し訳ないです。

     

     

    2008年2月7日 0:29
  • タイトル欄のみを外すのは無理そうですか…

    投稿したコメントのタイトル自体はビューで消せるので

    フォームのタイトル部分も簡単に消せるだろうと思ってしまったのが落とし穴ですね。

     

    saruhiko様、ご対応ありがとうございます。

    「コメント無しのブログ」のほう活用させていただきます。

     

    ありがとうございました!

    2008年2月7日 3:28
  • 山崎です。

     

    タイトルのみを非表示にする方法ですが、JavaScript を利用する方法はいかがでしょうか。ちょっと無理やりな気もしますが、所詮HTMLの世界なのでありかなぁと。。。一応、自分の環境で試してみましたが、なんとか動いています。ただ、これでちゃんと実用レベルで使えるかはわかりませんので、もし試していただけるのでしたら感想をお聞かせいただけると嬉しいです。

     

    方法

    SharePoint Designer 2007 で Post.aspx を開き、「<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">
    」の次の行あたりに次のスクリプトを埋め込みます。

    Code Snippet

    <script type="text/javascript">
    <!--
    _spBodyOnLoadFunctionNames.push("hideTitle");

    function hideTitle()
    {
    var tags=document.getElementsByTagName('TD');
    for (i=0; i<tags.length; i++) {
     if(tags[i].hasChildNodes())
      if(tags[i].childNodes[0].hasChildNodes())
        if(tags[i].childNodes[0].childNodes[0].innerText=='タイトル')

    {
     tags[i].parentNode.style.display='none';

    }//if

    }//for
    }//function

    //-->
    </script>

     

     


    2008年2月7日 13:02
  • 返答が遅れてすみません。

    質問者です。

     

    ありがとうございます!

    教えて頂いた方法でフォームのタイトル欄だけを消すことができました。

     

    …ひとつだけ心配なのは、この方法で他の意図しない箇所が非表示になってしまわないかです。

    たとえば(あまり現実的ではないですが)リストやサイト名などに"タイトル"という名前をつけたときに

    望ましくない箇所が非表示になってしまうのは避けたいところです。

     

    見当違いな考えかもしれませんが、

    この考え方が誤りでしたらご指摘ください。

     

     

     

     

    2008年2月12日 3:20
  • ban-4 さん

     

    思いつきで、つい勢いで書いてしまったものですから、言葉足らずで済みませんでした。

    今回のJavaScript を用いるアプローチがあることをご紹介したかったので、あくまで分かりやすい例にした方がよいかなぁとこのソースコードをご紹介しました。冷静になってみると、そのまま使うと確かに不備がある場合があると思います(ただ、"タイトル"という名前の列は予約されている名前ですので、列として追加することはないと思いますが、、、)。

     

    とはいえ、ご心配されている点はクリアできると思います。一度、MOSSが生成するHTMLソースをご覧になってみてください。列にはそれぞれ一意なIDが割り振られます。このIDを利用すれば、特定のフィールドのみを指定にできますから、これをたどって親となるTR列を非表示にすることは可能だと思います。ただ、各リストごとに生成されるIDは異なりますので、特定のフィールドオブジェクトを取得するための汎用的な関数などを利用されるとよいと思います。以下のサイトが参考になります。

    http://blogs.msdn.com/sharepointdesigner/archive/2007/06/13/using-javascript-to-manipulate-a-list-form-field.aspx

     

    参考になれば幸いです。

    2008年2月12日 11:46
  • こんにちは。中川俊輔 です。

     

    saruhikoさん、山崎 愛さん、大変参考になる回答ありがとうございます。

     

    ban4 さん、フォーラムのご利用ありがとうございます。

    問題が解決されたようなので、saruhikoさん、山崎 愛さんの回答へ回答済みチェックをつけさせていただきました。

     

    回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
    問題解決につながる回答があった場合は、なるべく回答済みボタンを押してチェックを付けてください。

    ban4 さんはチェックを解除することもできますので、ご確認ください。

     

    それでは!

     

    2008年2月18日 8:55