Re: ユーザ共通カテゴリーの生成

投稿ツリー

  • なし Re: ユーザ共通カテゴリーの生成 (mimin, 2010/5/4 11:58)
  • なし Re: ユーザ共通カテゴリーの生成 (なーお, 2010/5/4 12:56)
  • なし Re: ユーザ共通カテゴリーの生成 (なーお, 2010/5/4 14:22)
  • なし Re: ユーザ共通カテゴリーの生成 (mimin, 2010/5/7 8:11)
  • なし Re: ユーザ共通カテゴリーの生成 (なーお, 2010/5/7 8:28)

  • このトピックの投稿一覧へ

    なし Re: ユーザ共通カテゴリーの生成

    msg# 1.2.1.1
    depth:
    3
    前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/5/4 14:22 | 最終変更
    なーお  長老   投稿数: 1832 オンライン

    miminさん

    引用:
    どうしても共通カテゴリを使いたいとのことでしたら、ご自身で検討いただき、結果をフィードバックいただきますようお願いします。

    と書いた後で、「ちょっと冷たかったかな?」 と思いなおして、少し強引な方法で試してみました。 :-D

    ソース変更

     手数が多いのはそれだけ影響範囲が広いので仕方ないため、慎重にやってみてください。 いずれもtrust側ファイルの編集です。

    include/functions.php

    445行目あたりのsql文を編集

    445
    446
    447
    448
    449
    450
    451
    452
    453
    
        //$sql = "SELECT *    //          FROM ".$xoopsDB->prefix($mydirname.'_category')."    //          WHERE uid=".intval($req_uid)." ORDER BY corder";     // naao changed for common category (uid=0)    $sql = "SELECT *              FROM ".$xoopsDB->prefix($mydirname.'_category')."              WHERE uid=".intval($req_uid)." OR uid=0 ORDER BY corder";    $result = $xoopsDB->query($sql);

    main/detail.php

    112行目あたりのカテゴリ抽出コードを編集。

    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    
    if($diary->cid>10000){    $category->uid=0;    $category->cid=$diary->cid;    $category->readdb($mydirname);    $yd_data['cname'] = $category->cname;}elseif($diary->cid>0){//if($diary->cid>0){    $category->uid=$diary->uid;    $category->cid=$diary->cid;    $category->readdb($mydirname);    $yd_data['cname'] = $category->cname;}else{    $yd_data['cname'] = _MD_NOCNAME;}

    main/diarylist.php

    92行目あたりのsql文の編集と抽出条件の追記

     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    
        // added common category query    $common_cid=intval(d3diary_getpost_param('cid'));    if( 10000 < $common_cid ){        $whr_common_cid = " AND diary.cid='".$common_cid."'";    } else {        $whr_common_cid = "";    }     $sql = "SELECT diary.diary, diary.create_time, diary.cid, diary.title, diary.bid, diary.openarea, diary.dohtml, usr.uname, usr.uid            FROM ".$xoopsDB->prefix($mydirname.'_diary')." diary             INNER JOIN ".$xoopsDB->prefix('users')." usr ON diary.uid=usr.uid            LEFT JOIN ".$xoopsDB->prefix($mydirname.'_config')." cfg ON diary.uid=cfg.uid "            .$sql_tag            ." WHERE ".$whr_openarea.$whr_common_cid.$whr_tag." AND (cfg.blogtype=0 OR cfg.blogtype IS NULL) ORDER BY diary.create_time DESC";     // naao changed for hide draft entries of other person    //$sql = "SELECT diary.diary, diary.create_time, diary.cid, diary.title, diary.bid, diary.openarea, diary.dohtml, usr.uname, usr.uid    //        FROM ".$xoopsDB->prefix($mydirname.'_diary')." diary     //        INNER JOIN ".$xoopsDB->prefix('users')." usr ON diary.uid=usr.uid    //        LEFT JOIN ".$xoopsDB->prefix($mydirname.'_config')." cfg ON diary.uid=cfg.uid "    //        .$sql_tag    //        ." WHERE ".$whr_openarea.$whr_tag." AND (cfg.blogtype=0 OR cfg.blogtype IS NULL) ORDER BY diary.create_time DESC";

    main/edit.php

    467行目あたりのsql文を編集

    467
    468
    469
    470
    471
    472
    473
    474
    
        //$sql = "SELECT *    //          FROM ".$xoopsDB->prefix($mydirname.'_category')."    //          WHERE uid=".intval($uid)." ORDER BY corder";     // naao changed for common category (uid=0)    $sql = "SELECT *              FROM ".$xoopsDB->prefix($mydirname.'_category')."              WHERE uid=".intval($uid)." OR uid=0 ORDER BY corder";

    共通カテゴリの追加

    カテゴリの追加は、取り急ぎ、phpmyadminなどでデータベーステーブル「(d3diary)_category」にレコードを手動で追加してゆきます。 この時、

      • uid フィールドは、「0」にする。
      • cid フィールドは、「10001」以上の数値で重複の無いように

    追加すればOKです。

    テンプレート編集

    必要ないとも言えるのですが、diarylistページで全ユーザーの共通カテゴリ記事を抽出するため、テンプレート「diarylist.html」を編集し、「index.php?page=diarylist&cid=10001」といったurlに飛ぶように、生書きするとか、セレクトBOXをつけるとか、HTMLの知識で可能と思いますので、やってみてください。

    以上です。お試しください。 ;-)

    (追伸)
    ここまで考えると、将来はこの延長線上で実装もありかな、と思えてきました。(笑)

    投票数:0 平均点:0.00
    返信する

    この投稿に返信する

    題名
    ゲスト名
    投稿本文

      条件検索へ


    ログイン

    メインメニュー

    テーマ選択
    Cube