ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changeset 6067


Ignore:
Timestamp:
Mar 26, 2008, 10:42:01 AM (13 years ago)
Author:
kiwa
Message:

#2094 日記コメントメール投稿機能の取り込み

Location:
OpenPNE/trunk/webapp
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/trunk/webapp/lib/mail/sns.php

    r5948 r6067  
    128128            m_debug_log('mail_sns::add_diary()', PEAR_LOG_INFO);
    129129            return $this->add_diary();
     130        }
     131
     132        //---
     133
     134        // 日記コメント投稿
     135        elseif (
     136            preg_match('/^bc(\d+)$/', $to_user, $matches) ||
     137            preg_match('/^bc(\d+)-([0-9a-f]{12})$/', $to_user, $matches)
     138        ) {
     139
     140            // 日記IDのチェック
     141            if (!$c_diary_id = $matches[1]) {
     142                return false;
     143            }
     144
     145            if (MAIL_ADDRESS_HASHED) {
     146                if (empty($matches[2])) return false;
     147
     148                // メンバーハッシュのチェック
     149                if ($matches[2] != t_get_user_hash($this->c_member_id)) {
     150                    return false;
     151                }
     152            }
     153
     154            m_debug_log('mail_sns::add_diary_comment()', PEAR_LOG_INFO);
     155            return $this->add_diary_comment($c_diary_id);
    130156        }
    131157
     
    358384            $point = db_action_get_point4c_action_id(4);
    359385            db_point_add_point($this->c_member_id, $point);
     386        }
     387
     388        return true;
     389    }
     390
     391    /**
     392     * 日記コメント投稿
     393     */
     394    function add_diary_comment($c_diary_id)
     395    {
     396        //--- 権限チェック
     397
     398        $c_diary = db_diary_get_c_diary4id($c_diary_id);
     399        $target_c_member_id = $c_diary['c_member_id'];
     400        $target_c_member = db_member_c_member4c_member_id($target_c_member_id);
     401
     402        if ($this->c_member_id != $target_c_member_id) {
     403            // check public_flag
     404            if (!pne_check_diary_public_flag($c_diary_id, $this->c_member_id)) {
     405                $this->error_mail('日記にアクセスできないため投稿できませんでした。');
     406                m_debug_log('mail_sns::add_diary_comment() not a member');
     407                return false;
     408            }
     409            //アクセスブロック設定
     410            if (db_member_is_access_block($this->c_member_id, $target_c_member_id)) {
     411                $this->error_mail('日記にアクセスできないため投稿できませんでした。');
     412                m_debug_log('mail_sns::add_diary_comment() access block');
     413                return false;
     414            }
     415        }
     416        //---
     417
     418        $body = $this->decoder->get_text_body();
     419        if ($body === '') {
     420            $this->error_mail('本文が空のため投稿できませんでした。');
     421            m_debug_log('mail_sns::add_diary_comment() body is empty');
     422            return false;
     423        }
     424
     425        //日記コメント書き込み
     426        $ins_id = db_diary_insert_c_diary_comment($this->c_member_id, $c_diary_id, $body);
     427
     428        // 写真登録
     429        $images = $this->decoder->get_images();
     430        $image_num = 1;
     431        $filenames = array(1 => '', 2 => '', 3 => '');
     432        foreach ($images as $image) {
     433            $image_ext = $image['ext'];
     434            $image_data = $image['data'];
     435            $filename = 'dc_' . $ins_id . '_' . $image_num . '_' . time() . '.' . $image_ext;
     436
     437            db_image_insert_c_image($filename, $image_data);
     438            $filenames[$image_num] = $filename;
     439            $image_num++;
     440            if ($image_num > 3) {
     441                break;
     442            }
     443        }
     444        db_diary_insert_c_diary_comment_images($ins_id, $filenames[1], $filenames[2], $filenames[3]);
     445
     446        //日記コメントが書き込まれたので日記自体を未読扱いにする
     447        if ($this->c_member_id != $target_c_member_id) {
     448            db_diary_update_c_diary_is_checked($c_diary_id, 0);
     449        }
     450
     451        if (OPENPNE_USE_POINT_RANK) {
     452            // コメント者と被コメント者が違う場合にポイント加算
     453            if ($this->c_member_id != $target_c_member_id) {
     454                //書いた人にポイント付与
     455                $point = db_action_get_point4c_action_id(3);
     456                db_point_add_point($this->c_member_id, $point);
     457
     458                //書かれた人にポイント付与
     459                $point = db_action_get_point4c_action_id(2);
     460                db_point_add_point($target_c_member_id, $point);
     461            }
    360462        }
    361463
  • OpenPNE/trunk/webapp/modules/ktai/page/fh_diary.php

    r4933 r6067  
    7575        $this->set("INC_NAVI_type", k_p_fh_common_get_type($target_c_member['c_member_id'], $u));
    7676
     77        if (MAIL_ADDRESS_HASHED) {
     78            $mail_address = "bc{$target_c_diary_id}-".t_get_user_hash($u)."@".MAIL_SERVER_DOMAIN;
     79        } else {
     80            $mail_address = "bc{$target_c_diary_id}"."@".MAIL_SERVER_DOMAIN;
     81        }
     82        $mail_address = MAIL_ADDRESS_PREFIX . $mail_address;
     83        $this->set("mail_address", $mail_address);
     84
    7785        //あしあとをつける
    7886        db_ashiato_insert_c_ashiato($target_c_member_id, $u);
  • OpenPNE/trunk/webapp/modules/ktai/templates/fh_diary.tpl

    r4382 r6067  
    9090<input type="submit" value="書き込む">
    9191</form>
     92<br>
     93[i:110]<a href="mailto:({$mail_address})">メール投稿</a><br>
     94写真も添付できます。<br>
     95<font color="#({$ktai_color_config.font_09})">※メール投稿では絵文字が反映されません</font>
    9296
    9397<hr color="#({$ktai_color_config.border_01})">
Note: See TracChangeset for help on using the changeset viewer.