We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33488
    • 429 Posts
    Quote from: takumi at Mar 03, 2006, 05:00 AM

    おぉ~!すばらしい!
    まさしくその通りです。 shocked
    そのハックを是非、ディベロッパー側にリクエストして頂きたいですね。 grin
    で、何処を修正しました?
    あとでご教授下さい。(^^;
    英語で解説できないので・・・ここに修正点だけ書きます。
    多分、正式な修正がいつかあがるか、別のものが出てくるかも知れませんが、とりあえず暫定修正ということで・・。
    対象としたNewsListingはVer6.5でのものです。
    		$placeholders['[+date+]'] =  strftime($date, $resource[$x][$datetype]);
    // ******* ここから追加部分 ***************
    
    			$docid = $resource[$x]['id'];
    			// set splitter
    			$splitter = '<!--Comment-Spliter:'.$docid.'-->';	
    		// get tagid
    			// $tagid = '';
    			// set alias name of document used to store comments
    			$cm_alias = 'usrcmt-'.$docid;    // .($tagid ? '-'.$tagid:'');
    			// get comments
    			$cm_ds = $modx->db->select('content',$modx->getFullTableName('site_content'),' parent=\''.$docid.'\' AND alias=\''.$cm_alias.'\'');
    			$cm_content = $modx->db->getValue($cm_ds);
    				// split content into separate comments
    			$parts = explode($splitter,$cm_content);
    			array_pop($parts);
    			// count comments
    			$placeholders['[+comments+]'] =  count($parts);
    // ************* ここまで ***************
    

    最初の行を記述をオリジナルから探してもらって、その下にUserCommentsCountとほぼ同じロジックを組み込んでます。
    tagidは、とりあえず固定で設定していますので、もし、設定しているようでしたらここを修正してください。

    あとは、NewsListingのTPLをChunkで作って、その中に[+comments+]を入れれば、コメント数が入るはずです。
    ということで、お試しください。
      • 29228
      • 109 Posts
      takizさん、ありがとうございます!
      これからテストしてみます。
      後ほど報告しますね。

      話は変わりますが、他でもNewsListingからRSSが作れないって書いてありましたので、私の乏しい英語力で日本語フォーラムに誘導しました。(^^;
      NewsListingはスニペットと言うには巨大化してしまう可能性があるので、モジュールとかにしちゃえばいいのに?と最近考えています。
        • 29228
        • 109 Posts
        takizさん、バッチリOKです! grin
        無事にコメントをカウントして表示出来ました。
        ありがとうございました!
          • 33488
          • 429 Posts
          Quote from: takumi at Mar 03, 2006, 02:26 PM

          takizさん、ありがとうございます!
          これからテストしてみます。
          後ほど報告しますね。

          話は変わりますが、他でもNewsListingからRSSが作れないって書いてありましたので、私の乏しい英語力で日本語フォーラムに誘導しました。(^^;
          NewsListingはスニペットと言うには巨大化してしまう可能性があるので、モジュールとかにしちゃえばいいのに?と最近考えています。

          無事動いてなによりです、NewsListingはかなり優れたスニペットですね。
          RSSにもいろんなものにも応用ができそうです。
          英語でのフォローアップありがとうございます・・・。
          1点気になったのは、NewsListingでのRSSの出力はNewsListingのバグとは言い切れません。
          日本語とかダブルバイト圏での問題で文字化けしちゃうという問題かと思います。
          その修正については、元の方に書いときますね。

          そういえば、このスレッドの中で出てきてたSMFの方は結局分からず仕舞いで、モジュールが必要なのかどうか。
          フォーラムのスニペットかモジュールはちょっといいなぁ って気がしてきました。
            • 29228
            • 109 Posts
            度々すみません。(^^;
            このカウント取得で、任意のコメントフォルダー内にあるコメントをカウントするにはどうしたら良いでしょうか?
            現状の修正だと、NewsListingで「makefolder=1」で、コメントされるドキュメント下にあるコメントはカウントされます。
            これを任意のフォルダーにコメントを格納する「folder=id」とした場合のカウントを取得はどうしたらよいのでしょう? huh
              • 33488
              • 429 Posts
              Quote from: takumi at Mar 05, 2006, 02:45 PM

              度々すみません。(^^;
              このカウント取得で、任意のコメントフォルダー内にあるコメントをカウントするにはどうしたら良いでしょうか?
              現状の修正だと、NewsListingで「makefolder=1」で、コメントされるドキュメント下にあるコメントはカウントされます。
              これを任意のフォルダーにコメントを格納する「folder=id」とした場合のカウントを取得はどうしたらよいのでしょう? huh

              えーと、推測になっちゃうんですけど
              今のというか、テストしたものだと元記事の下にコメントのドキュメントが生成されているので、
              上記のソースのSQL文の生成で、parent=$docid(ちょっと手抜きしてます)とAliasでコメントの書式名になっているかで引っ張ってきている条件を変えればできるかと思います。
              Takumiさんの上記の話だと、コメント用のフォルダがあるということだと思うので、parent=$docidを固定のフォルダIDにしてしまうか(ex.parent=999とか)、または、専用の変数を作って、parent=$commentfolder とかにして、この変数の設定を呼び出し側で設定してあげるなどの方法でできるんじゃないかと思います。

              また、意味を取り違えていたらごめんなさい。



                • 29228
                • 109 Posts
                takizさん、ありがとうございます。
                意味はその通りです。
                早速チャレンジしてみましたが、うまくカウント取得出来ませんでした。
                もうちょっと試行錯誤しながらやってみます。 wink
                ヒントも頂いたので。 grin
                  • 8382
                  • 253 Posts
                  今更ですが、http://modxcms.com/forums/index.php/topic,3801.0.html
                  使い方紹介されてますね。なかなか興味深い内容なのでご紹介しておきます。