XPressME Integration Kit

フォーラム

人気記事リスト(***_popular_posts_block.html)の表示について

永らくありがとうございました フォーラム 使い方全般 人気記事リスト(***_popular_posts_block.html)の表示について

  • このトピックには22件の返信、2人の参加者があり、最後に匿名により13年、 4ヶ月前に更新されました。
8件の投稿を表示中 - 16 - 23件目 (全23件中)
  • 投稿者
    投稿
  • #2973
    toemon
    キーマスター

    ***/modules/news/wp-content/themes/xpress_default/blocks/my_rank_block.php が見つかりません。

    エラー内容のとおりのパスにファイルが無いということですが、前述のブロック更新のバグで更新されていないのかもしれません。

    モジュールにアクセスすると、画面が真っ白になってしまいます。

    一度PHPの memory_limit値確認ください。当方で

    * Counterize II

    * QF-GetThumbプラグイン

    プラグインをいれてテストした段階では memory_limit 32Mで真っ白(Fatal error: Allowed memory size)が発生しております。

    #2974
    匿名
    ゲスト

    toemon様

    XOOPS側でのRewriteRule適応時のブロック更新が行われないバグがありますので、そのせいでブロック更新していないのだと思います。

    #XOOPS側でのRewriteRule適応への対応はまだ未知数なところがありますね。

    実はこちらのスレッドで検証しているサイトには、

    .htaccessおよびRewriteRuleの設定はありません。

    以前、メールでご相談させていただいたサイトになります。

    RewriteRuleを設定していない場合でも

    バグ修正を行ってしまって大丈夫でしょうか。

    同時に2つのスレッドで質問させていただき、

    ややこしくなってしまいまして誠に申し訳ございません。

    一度拡張ブロックを両方ともはずして再度設定してみましたが、

    両方とも

    キャッシュが存在しません。

    最初にnewsモジュールにアクセスしてください。

    となり、モジュールアクセスが出来ない状態です。

    プラグインをいれてテストした段階では memory_limit 32Mで真っ白(Fatal error: Allowed memory size)が発生しております。

    これはxoopsのmainfile.phpで設定されているmemory_limitのことでしょうか。

    ちなみにこちらは

    define("XCL_MEMORY_LIMIT", "128M"); // extra param

    となっております。

    #2975
    toemon
    キーマスター

    サイト拝見させていただきました。

    以前のアカウントが残っておりましたので、ログインし確認作業させていただきましたが、

    まず、

    /**/wp-content/themes/xpress_default/blocks/my_thumb_block.php が見つかりません。

    のですが

    実際にアップロードされているファイルがmy_thumb_blok.phpと名前が異なっています。

    次に画面真っ白の方ですが

    my_rank_block.phpにて

    echo '<a href="' . $url . '" title="'. $title . '">'. $title . '</a>';

    としなければならないところ、

    echo '<a>url . '" title="'. $title . '">'. $title . '</a>';

    となり不正なHTMLを吐いていましたので、修正させていただきました。

    すみません、サンプルコードが間違っていたようです。

    #2976
    匿名
    ゲスト

    toemon様

    実際にアップロードされているファイルがmy_thumb_blok.phpと名前が異なっています。

    大変申しわけございません。お恥ずかしい限りです。。。

    リネームしたところ、正常に表示されるようになりました。

    次に画面真っ白の方ですが

    my_rank_block.phpにて

    echo ‘‘. $title . ‘‘;

    としなければならないところ、

    echo ‘url . ‘” title=”‘. $title . ‘”>’. $title . ‘‘;

    となり不正なHTMLを吐いていましたので、修正させていただきました。

    こちらも問題なく表示させることが出来ました。

    どうもありがとうございます!

    サムネイル+記事タイトルを表示させるためのコード

    <code><?php<br />
    global $wpdb;<br />
    $show_posts =5;<br />
    if (!is_null($wpdb)){<br />
    $wp_query->in_the_loop = true;<br />
    $r = new WP_Query("showposts=$show_posts&what_to_show=posts&nopaging=0&post_status=publish");<br />
    while($r->have_posts()){<br />
    $r->the_post();<br />
    if(function_exists('the_qf_get_thumb_one')){<br />
    echo the_qf_get_thumb_one("num=0&width=100");<br />
    }<br />
    echo '<a href="'. get_permalink() . '">' . the_title('<h2>','</h2>',false) . '</a>';<br />
    }<br />
    }<br />
    ?></code>

    こちらの

    num=0

    は何を表しているのでしょうか。

    カテゴリやタグかなと思って試しに入れてみたのですが・・・

    関係の無い記事が並んでしまいました。

    「最近の記事内容ブロック」のように、

    カテゴリやタグで記事を指定できたらと思ったのですが。

    また、以前いただいた人気記事ブロックでのランキング表示における

    以下のコードですが、

    <div class=”xpress_block”>

    <{$block.err_message}>

    <div class=”xpress_popular_post_block”>

    <{php}> $ranking = 1;<{/php}>

    <{foreach from=$block.contents item=content}>

    <div class=”populor_ranking”>

    <{php}>

    $ranking_text = $ranking . ‘位’;

    $image_url = ‘http://www.exsample.com/uploads/ranking_&#8217; . $ranking . ‘.gif’;

    if (@fclose(@fopen($image_url, “r”))){

    echo ‘<img src=”‘ . $image_url . ‘” alt=”‘ . $ranking_text . ‘”/>’;

    }else{

    echo $ranking_text . ” ;

    }

    <{/php}>

    <{$content.post_title}> (<{$content.post_views}>)

    </div>

    <{php}> $ranking++;<{/php}>

    <{/foreach}>

    </div>

    </div>

    今回拡張ブロックとして設置したmy_rank_block.php

    <code><?php<br />
    if (function_exists('counterize_renderstats_vertical')){<br />
    $number = 3;<br />
    $onedayago = date("Y-m-d", time()-86400);<br />
    $wpdb =& $GLOBALS['wpdb'];<br />
    $sql = "SELECT p.count as amount, p.url as url, p.url as label, p.postID as post_id , COUNT(m.id) as  day_count"<br />
    . " FROM " .counterize_logTable(). " m, " . counterize_pageTable(). " p "<br />
    . " WHERE m.pageID = p.pageID and p.postID IS NOT NULL and "<br />
    . " m.timestamp >= '$onedayago'"<br />
    . " GROUP BY p.url "<br />
    . " ORDER BY day_count DESC LIMIT $number";<br />
    $rows = $wpdb->get_results($sql);<br />
    foreach($rows as $row){<br />
    $postid = $row->post_id;<br />
    $post_data = get_post($postid);<br />
    $title = $post_data->post_title;<br />
    echo '<a>url . '" title="'. $title . '">'. $title . '</a>';<br />
    echo ' today(' . $row->day_count .')';<br />
    echo ' total(' . $row->amount . ')';<br />
    }<br />
    } else {<br />
    echo 'not installd Counterize II plugin';<br />
    }<br />
    ?></code>

    こちらでも同様の表示をさせることは可能でしょうか。

    #2977
    toemon
    キーマスター

    the_qf_get_thumb_one(“num=0&width=100”);

    のnumのことでしたら、

    QF-GetThumbプラグインの作者さんのページに詳しく説明があります。

    「最近の記事内容ブロック」のように、

    カテゴリやタグで記事を指定できたらと思ったのですが。

    サンプルでは

    $r = new WP_Query(“showposts=$show_posts&what_to_show=posts&nopaging=0&post_status=publish”);

    としておりますが、

    WP_Query()へのパラメータでいかようにでもなります。

    最近の記事内容ブロックのrecent_posts_content_block_theme.phpがどのようなWP_Query()を作成しているか参考にしてもよいでしょう。

    こちらでも同様の表示をさせることは可能でしょうか。

    PHPと埋め込みPHPの違いだけですから、foreachの部分を

    <code>$ranking = 1;<br />
    foreach($rows as $row){<br />
    $postid = $row->post_id;<br />
    $post_data = get_post($postid);<br />
    $title = $post_data->post_title;<br />
    $ranking_text = $ranking . '位';<br />
    $image_url = 'http://www.exsample.com/uploads/ranking_' . $ranking . '.gif';<br />
    if (@fclose(@fopen($image_url, "r"))){<br />
    echo '<img src="' . $image_url . '" alt="' . $ranking_text . '"/>';<br />
    }else{<br />
    echo $ranking_text . '' ;<br />
    }<br />
    echo '<a href="' . $row->url . '" title="'. $title . '">'. $title . '</a>';<br />
    echo ' today(' . $row->day_count .')';<br />
    echo ' total(' . $row->amount . ')';<br />
    $ranking++;<br />
    }</code>

    みたいな感じで出来るのではないでしょうか

    (時間が無いのでコードの検証は行っていません。 間違っていたらごめんなさい)

    #2978
    匿名
    ゲスト

    toemon様

    お手間おかけしてしまいまして

    誠に申しわけございませんでした。

    のnumのことでしたら、

    QF-GetThumbプラグインの作者さんのページに詳しく説明があります。

    すいません。確認不足でした。

    以後気をつけます;

    WP_Query()へのパラメータでいかようにでもなります。

    最近の記事内容ブロックのrecent_posts_content_block_theme.phpがどのようなWP_Query()を作成しているか参考にしてもよいでしょう。

    こんな風にして表示させることができました!

    <code><?php<br />
    global $wpdb;<br />
    $show_posts =5;<br />
    $cat_id = 383;<br />
    if (!is_null($wpdb)){<br />
    $wp_query->in_the_loop = true;<br />
    $r = new WP_Query("cat=$cat_id&showposts=$show_posts&what_to_show=posts&nopaging=0&post_status=publish");<br />
    while($r->have_posts()){<br />
    $r->the_post();<br />
    if(function_exists('the_qf_get_thumb_one')){<br />
    echo the_qf_get_thumb_one("num=0&width=50");<br />
    }<br />
    echo '<a href="'. get_permalink() . '">' . the_title('<p>','</p>',false) . '</a><hr />';<br />
    }<br />
    }<br />
    ?></code>

    複数カテゴリーの指定が出来るとなおいいのですが、

    もう少し調べてみます。

    PHPと埋め込みPHPの違いだけですから、foreachの部分を

    $ranking = 1;

    foreach($rows as $row){

    $postid = $row->post_id;

    $post_data = get_post($postid);

    $title = $post_data->post_title;

    $ranking_text = $ranking . ‘位’;

    $image_url = ‘http://www.exsample.com/uploads/ranking_&#8217; . $ranking . ‘.gif’;

    if (@fclose(@fopen($image_url, “r”))){

    echo ‘<img src=”‘ . $image_url . ‘” alt=”‘ . $ranking_text . ‘”/>’;

    }else{

    echo $ranking_text . ” ;

    }

    echo ‘url . ‘” title=”‘. $title . ‘”>’. $title . ‘‘;

    echo ‘ today(‘ . $row->day_count .’)’;

    echo ‘ total(‘ . $row->amount . ‘)’;

    $ranking++;

    }

    みたいな感じで出来るのではないでしょうか

    (時間が無いのでコードの検証は行っていません。 間違っていたらごめんなさい)

    こちらは無理かなと思ったのですが、

    なぜか表示されるようになりました;

    ん~、まだまだ勉強不足です。

    でもひとまず全て理想の状態を再現することが出来ました。

    本当に感謝申し上げます。

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

    #2979
    toemon
    キーマスター

    複数カテゴリーの指定が出来るとなおいいのですが、

    $cat_id = ‘383,386’;

    みたいにカンマ区切りで指定すれば出来ます。

    ひとまず、このトピックは「解決済み」ということで、

    がんばってください。

    #2980
    匿名
    ゲスト

    toemon様

    $cat_id = ‘383,386’;

    みたいにカンマ区切りで指定すれば出来ます。

    ありがとうございます!

    うぁ、なぜ一見単純な書き方が浮かばないのか…。

    勉強していきます。

    最後の最後までサポートいただきありがとうございました。

8件の投稿を表示中 - 16 - 23件目 (全23件中)
  • フォーラム「使い方全般」には新規投稿および返信を追加できません。