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

Changeset 241


Ignore:
Timestamp:
Sep 26, 2006, 2:24:37 AM (14 years ago)
Author:
takanashi
Message:

メールキュー機能
YouTube小窓タグジェネレータ
ログイン時のリダイレクト前のURL情報保持機能
http://trac.openpne.jp/ticket/134
実装完了

Location:
OpenPNE/trunk
Files:
23 edited
21 copied

Legend:

Unmodified
Added
Removed
  • OpenPNE/trunk/config.php.sample

    r235 r241  
    391391define('OPENPNE_USE_COMMU_MAP', true);
    392392
     393// メール一斉送信のメールキューの使用
     394define('OPENPNE_MAIL_QUEUE', false);
     395// メールキューで一度に送信するメールの数
     396define('SEND_MAIL_QUEUE_NUM', 10);
     397
    393398?>
  • OpenPNE/trunk/webapp/lib/auth.inc

    r2 r241  
    1515    || db_member_is_login_rejected($u)) {
    1616    $auth->logout();
    17     client_redirect_login();
     17
     18    $regexp = '/.*\/\?(.*)/i';
     19    $string = preg_replace_callback($regexp, 'client_redirect_login_with_param', $_SERVER['REQUEST_URI']);
    1820}
    1921
     
    2123$GLOBALS['AUTH'] = $auth;
    2224
     25
     26function client_redirect_login_with_param($matches)
     27{
     28    $params  = $matches[1];
     29    client_redirect_absolute(get_login_url()."&login_params=".urlencode(t_encrypt($params)));
     30}
     31
    2332?>
  • OpenPNE/trunk/webapp/lib/smarty_plugins/modifier.t_cmd.php

    r102 r241  
    1111    }
    1212    $regexp = '/<cmd\s+src="(\w+)"\s+args="([\w-\+%]+(,[\w-\+%]+)*)"\s*>/i';
    13     return preg_replace_callback($regexp, '_smarty_modifier_t_cmd_make_js', $string);
     13    $string = preg_replace_callback($regexp, '_smarty_modifier_t_cmd_make_js', $string);
     14    return $string;
     15
    1416}
    1517
    1618function _smarty_modifier_t_cmd_make_js($matches)
    1719{
     20
    1821    $src  = $matches[1];
    1922    $args = $matches[2];
     
    3336}
    3437
     38
    3539?>
  • OpenPNE/trunk/webapp/lib/util/mail_send.php

    r235 r241  
    640640}
    641641
     642function put_mail_queue($address, $subject, $body, $is_receive_mail=true, $from=ADMIN_EMAIL)
     643{
     644    if (!$is_receive_mail || !db_common_is_mailaddress($address)) {
     645        return false;
     646    }
     647
     648    // 改行コード
     649    $cr = "\x0D";
     650    $lf = "\x0A";
     651    $crlf = "\x0D\x0A";
     652
     653    // header
     654    $headers['MIME-Version'] = "1.0";
     655    $headers['Content-Type'] = "text/plain; charset=iso-2022-jp";
     656    $headers['From'] = $from;
     657    $headers['To'] = $address;
     658
     659    // 半角カナを全角カナに変換
     660    if (MAIL_HAN2ZEN) {
     661        $subject = mb_convert_kana($subject, "KV");
     662        $body = mb_convert_kana($body, "KV");
     663    }
     664   
     665    // subject (改行コードを含んではならない)
     666    $subject = str_replace(array($cr, $lf), "", $subject);
     667    $subject = mb_convert_encoding($subject, "JIS");
     668    $headers['Subject'] = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
     669   
     670    // body (LF)
     671    if (MAIL_WRAP_WIDTH) {
     672        $body = t_wordwrap($body, MAIL_WRAP_WIDTH);
     673    }
     674   
     675    $body = mb_convert_encoding($body, "JIS");
     676    $body = str_replace($cr, $lf, str_replace($crlf, $lf, $body));
     677   
     678    require_once 'Queue.php';
     679   
     680    $db_opt = array(
     681        "type"=>"db",
     682        "dsn"=>$GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn'],
     683        "mail_table"=>"mail_queue",
     684    );
     685    $mail_opt = array(
     686        "driver"=>"mail",
     687    );
     688    $mail_mime = new Mail_mime();
     689    $mail_mime->setTXTBody($body);
     690    $body = $mail_mime->get(array("text_charset"=>"ISO-2022-JP"));
     691    $body = addslashes($body);
     692    $headers = $mail_mime->headers($headers);
     693   
     694    if (MAIL_SET_ENVFROM) {
     695        if (MAIL_ENVFROM) {
     696            $f = MAIL_ENVFROM;
     697        } else {
     698            $f = ADMIN_EMAIL;
     699        }
     700        $params = '-f' . escapeshellcmd($f);
     701        $mail_opt['param']= $params;
     702        $mail_queue  = new Mail_Queue($db_opt, $mail_opt);
     703        return $mail_queue->put($from, $address, $headers, $body);
     704    } else {
     705        $mail_queue  = new Mail_Queue($db_opt, $mail_opt);
     706        return $mail_queue->put($from, $address, $headers, $body);
     707    }
     708}
     709
    642710?>
  • OpenPNE/trunk/webapp/modules/admin/do/send_messages.php

    r235 r241  
    1111    {
    1212        $module_name = ADMIN_MODULE_NAME;
     13        $send_type = $requests['send_type'];
    1314
    1415        if (empty($requests['c_member_ids'])) {
     
    2728
    2829        foreach ($requests['c_member_ids'] as $c_member_id) {
    29             do_common_send_message($c_member_id_from, $c_member_id, $requests['subject'], $requests['body']);
     30            if ($c_member_id_from == $c_member_id) continue;
     31            switch ($send_type) {
     32                case "mail":
     33                    do_admin_send_mail($c_member_id, $requests['subject'], $requests['body']);
     34                break;
     35                case "message":
     36                    do_admin_send_message($c_member_id_from, $c_member_id, $requests['subject'], $requests['body']);
     37                break;
     38                default:
     39                    openpne_forward($module_name, 'page', 'send_messages');
     40                break;
     41            }
    3042        }
    3143
    32         admin_client_redirect('top', 'メッセージを送信しました');
     44        switch ($send_type) {
     45            case "mail":
     46                $sended_name = "メール";
     47            break;
     48            case "message":
     49                $sended_name = "メッセージ";
     50            break;
     51        }
     52       
     53        admin_client_redirect('top', $sended_name.'を送信しました');
    3354    }
    3455}
  • OpenPNE/trunk/webapp/modules/admin/do/send_messages_all.php

    r235 r241  
    1111    {
    1212        $module_name = ADMIN_MODULE_NAME;
    13 
     13        $send_type = $requests['send_type'];
     14       
    1415        if (empty($requests['subject'])) {
    1516            openpne_forward($module_name, 'page', 'send_messages_all');
     
    2728        foreach ($c_member_id_list as $c_member_id) {
    2829            if ($c_member_id_from == $c_member_id) continue;
    29             do_common_send_message($c_member_id_from, $c_member_id, $requests['subject'], $requests['body']);
     30            switch ($send_type) {
     31                case "mail":
     32                    do_admin_send_mail($c_member_id, $requests['subject'], $requests['body']);
     33                break;
     34                case "message":
     35                    do_admin_send_message($c_member_id_from, $c_member_id, $requests['subject'], $requests['body']);
     36                break;
     37                default:
     38                    openpne_forward($module_name, 'page', 'send_messages');
     39                break;
     40            }
    3041        }
    31 
    32         admin_client_redirect('top', 'メッセージを送信しました');
     42       
     43        switch ($send_type) {
     44            case "mail":
     45                $sended_name = "メール";
     46            break;
     47            case "message":
     48                $sended_name = "メッセージ";
     49            break;
     50        }
     51       
     52        admin_client_redirect('top', $sended_name.'を送信しました');
    3353    }
    3454}
  • OpenPNE/trunk/webapp/modules/admin/do/send_messages_search.php

    r238 r241  
    1111    {
    1212        $module_name = ADMIN_MODULE_NAME;
     13        $send_type = $requests['send_type'];
    1314
    1415        if (empty($requests['subject'])) {
     
    2627        $c_member_id_from = 1;
    2728        $c_member_id_list = _db_admin_c_member_id_list($cond_list);
    28 
     29       
    2930        foreach ($c_member_id_list as $c_member_id) {
    3031            if ($c_member_id_from == $c_member_id) continue;
    31             do_common_send_message($c_member_id_from, $c_member_id, $requests['subject'], $requests['body']);
     32            switch ($send_type) {
     33                case "mail":
     34                    do_admin_send_mail($c_member_id, $requests['subject'], $requests['body']);
     35                break;
     36                case "message":
     37                    do_admin_send_message($c_member_id_from, $c_member_id, $requests['subject'], $requests['body']);
     38                break;
     39                default:
     40                    openpne_forward($module_name, 'page', 'send_messages');
     41                break;
     42            }
    3243        }
    3344
    34         admin_client_redirect('top', 'メッセージを送信しました');
     45        switch ($send_type) {
     46            case "mail":
     47                $sended_name = "メール";
     48            break;
     49            case "message":
     50                $sended_name = "メッセージ";
     51            break;
     52        }
     53       
     54        admin_client_redirect('top', $sended_name.'を送信しました');
    3555    }
    3656}
  • OpenPNE/trunk/webapp/modules/admin/lib/db_admin.php

    r238 r241  
    585585}
    586586
     587/**
     588 * メンバー絞込みパラメータ取得
     589 */
    587590function validate_cond($requests)
    588591{
     
    606609}
    607610
     611function do_admin_send_mail($c_member_id, $subject, $body)
     612{
     613    $c_member = db_common_c_member4c_member_id($c_member_id, true);
     614    $pc_address = $c_member['secure']['pc_address'];
     615   
     616    if (OPENPNE_MAIL_QUEUE) {
     617        //メールキューに蓄積
     618        put_mail_queue($pc_address, $subject, $body);
     619    } else {
     620        t_send_email($pc_address, $subject, $body);
     621    }
     622}
     623
     624//メッセージ受信メール(メールキュー蓄積対応)
     625function do_admin_send_message($c_member_id_from, $c_member_id_to, $subject, $body)
     626{
     627    //メッセージ
     628    $c_message_id = _do_insert_c_message($c_member_id_from, $c_member_id_to, $subject, $body);
     629
     630    do_admin_send_message_mail_send($c_member_id_to, $c_member_id_from);
     631    do_admin_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from);
     632   
     633    return $c_message_id;
     634}
     635
     636//メッセージ受信メール(メールキュー蓄積対応)
     637function do_admin_send_message_mail_send($c_member_id_to, $c_member_id_from)
     638{
     639    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
     640    $pc_address = $c_member_to['secure']['pc_address'];
     641    $is_receive_mail = $c_member_to['is_receive_mail'];
     642
     643    $params = array(
     644        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
     645        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
     646    );
     647    return admin_fetch_send_mail($pc_address, 'm_pc_message_zyushin', $params, $is_receive_mail);
     648}
     649
     650//◆メッセージ受信メール(携帯)
     651function do_admin_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from)
     652{
     653    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
     654    $ktai_address = $c_member_to['secure']['ktai_address'];
     655    $is_receive_ktai_mail = $c_member_to['is_receive_ktai_mail'];
     656    $p = array('kad' => t_encrypt($c_member_to['secure']['ktai_address']));
     657    $login_url = openpne_gen_url('ktai', 'page_o_login', $p);
     658
     659    $params = array(
     660        'c_member_to'   => db_common_c_member4c_member_id($c_member_id_to),
     661        'c_member_from' => db_common_c_member4c_member_id($c_member_id_from),
     662        'login_url' => $login_url,
     663    );
     664    return admin_fetch_send_mail($ktai_address, 'm_ktai_message_zyushin', $params, $is_receive_ktai_mail);
     665}
     666
     667function admin_fetch_send_mail($address, $tpl_name, $params = array(), $force = true, $from = '')
     668{
     669    $tpl_name .= '.tpl';
     670    if ($tpl = fetch_mail_m_tpl($tpl_name, $params)) {
     671        list($subject, $body) = $tpl;
     672        if ($from) {
     673            if (OPENPNE_MAIL_QUEUE) {
     674                //メールキューに蓄積
     675                put_mail_queue($address, $subject, $body, $force, $from);
     676            } else {
     677                t_send_email($address, $subject, $body, $force, $from);
     678            }
     679        } else {
     680            if (OPENPNE_MAIL_QUEUE) {
     681                //メールキューに蓄積
     682                put_mail_queue($address, $subject, $body, $force);
     683            } else {
     684                t_send_email($address, $subject, $body, $force);
     685            }
     686        }
     687        return true;
     688    } else {
     689        return false;
     690    }
     691}
     692
    608693?>
  • OpenPNE/trunk/webapp/modules/admin/page/list_c_member.php

    r238 r241  
    3838
    3939        //絞り込みのドロップダウンを作る用
    40         $v['profile_list'] = $profile_list;
     40        $v['profile_list'] = db_common_c_profile_list();;
    4141
    4242        //開始年が終了年より大きい
  • OpenPNE/trunk/webapp/modules/admin/templates/list_c_member.tpl

    r238 r241  
    210210</p>
    211211メッセージ/Eメール送信<br>
    212 <input type="submit" class="submit" value="選択したメンバー">
    213 </form>
     212<input type="submit" class="submit" value="選択したメンバー ">
     213</form>
     214
     215<form action="./" method="post" name="formSendMessagesSearch">
     216<input type="hidden" name="m" value="({$module_name})">
     217<input type="hidden" name="sessid" value="({$PHPSESSID})">
    214218({if $cond})
    215 <form action="./" method="post" name="formSendMessagesSearch">
    216 <input type="hidden" name="m" value="({$module_name})">
    217219<input type="hidden" name="a" value="page_({$hash_tbl->hash('send_messages_search')})">
    218 <input type="hidden" name="sessid" value="({$PHPSESSID})">
    219220({foreach from=$cond_list key=key item=item})
    220221<input type="hidden" name="({$key})" value="({$item})">
    221222({/foreach})
    222223<input type="hidden" name="cond" value="({$cond})">
     224({else})
     225<input type="hidden" name="a" value="page_({$hash_tbl->hash('send_messages_all')})">
     226({/if})
    223227<input type="submit" class="submit" value="絞り込んだメンバー">
    224228</form>
    225 ({/if})
    226229<form action="./" method="post" name="formSendMessagesAll">
    227230<input type="hidden" name="m" value="({$module_name})">
    228231<input type="hidden" name="a" value="page_({$hash_tbl->hash('send_messages_all')})">
    229232<input type="hidden" name="sessid" value="({$PHPSESSID})">
    230 <input type="submit" class="submit" value="すべてのメンバー">
     233<input type="submit" class="submit" value="すべてのメンバー ">
    231234</form>
    232235
  • OpenPNE/trunk/webapp/modules/admin/templates/send_messages.tpl

    r235 r241  
    11({$inc_header|smarty:nodefaults})
    22
    3 <h2>メッセージ送信</h2>
     3<h2>メッセージ・メール送信</h2>
    44
    5 <p>選択したユーザにメッセージを送信します。タイトルと本文を入力してください。</p>
     5<p>選択したユーザにメッセージもしくはEメールを送信します。タイトルと本文を入力してください。</p>
    66<p class="caution">※このメッセージは、ID1番のユーザから送信されます。</p>
    77
     
    2424({/foreach})
    2525<dl>
     26<dt>送信種別</dt>
     27<dd><select name="send_type">
     28<option value="message"({if $send_type=='message'}) selected="selected"({/if})>メッセージ送信</option>
     29<option value="mail"({if $send_type=='mail'}) selected="selected"({/if})>Eメール送信</option>
     30</option>
     31</select>
     32</dd>
    2633<dt>タイトル</dt>
    2734<dd><input type="text" name="subject" size="50" value="({$requests.subject})"></dd>
  • OpenPNE/trunk/webapp/modules/admin/templates/send_messages_all.tpl

    r235 r241  
    11({$inc_header|smarty:nodefaults})
    22
    3 <h2>メッセージ送信</h2>
     3<h2>メッセージ・メール送信</h2>
    44
    5 <p>すべてのユーザにメッセージを送信します。タイトルと本文を入力してください。</p>
     5<p>すべてのユーザにメッセージもしくはEメールを送信します。タイトルと本文を入力してください。</p>
    66<p class="caution">※このメッセージは、ID1番のユーザから送信されます。<br>
    77※全員にメッセージを送る場合、ユーザの数によっては大きな負荷がかかる可能性がありますのでご注意ください。</p>
     
    2020<input type="hidden" name="sessid" value="({$PHPSESSID})">
    2121<dl>
     22<dt>送信種別</dt>
     23<dd><select name="send_type">
     24<option value="message"({if $send_type=='message'}) selected="selected"({/if})>メッセージ送信</option>
     25<option value="mail"({if $send_type=='mail'}) selected="selected"({/if})>Eメール送信</option>
     26</option>
     27</select>
     28</dd>
    2229<dt>タイトル</dt>
    2330<dd><input type="text" name="subject" size="50" value="({$requests.subject})"></dd>
  • OpenPNE/trunk/webapp/modules/admin/templates/send_messages_search.tpl

    r238 r241  
    11({$inc_header|smarty:nodefaults})
    22
    3 <h2>メッセージ送信</h2>
     3<h2>メッセージ・メール送信</h2>
    44
    5 <p>条件に合致するユーザにメッセージを送信します。タイトルと本文を入力してください。</p>
     5<p>条件に合致するユーザにメッセージもしくはEメールを送信します。タイトルと本文を入力してください。</p>
    66<p class="caution">※このメッセージは、ID1番のユーザから送信されます。<br>
    77※送るユーザの数によっては大きな負荷がかかる可能性がありますのでご注意ください。</p>
     
    3030({/foreach})
    3131<dl>
     32<dt>送信種別</dt>
     33<dd><select name="send_type">
     34<option value="message"({if $send_type=='message'}) selected="selected"({/if})>メッセージ送信</option>
     35<option value="mail"({if $send_type=='mail'}) selected="selected"({/if})>Eメール送信</option>
     36</option>
     37</select>
     38</dd>
    3239<dt>タイトル</dt>
    3340<dd><input type="text" name="subject" size="50" value="({$requests.subject})"></dd>
  • OpenPNE/trunk/webapp/modules/admin/validate/do/send_messages.ini

    r235 r241  
    1111[body]
    1212type = "string"
     13
     14[send_type]
     15type = "string"
  • OpenPNE/trunk/webapp/modules/admin/validate/do/send_messages_all.ini

    r235 r241  
    77[body]
    88type = "string"
     9
     10[send_type]
     11type = "string"
  • OpenPNE/trunk/webapp/modules/admin/validate/do/send_messages_search.ini

    r238 r241  
    77[body]
    88type = "string"
     9
     10[send_type]
     11type = "string"
  • OpenPNE/trunk/webapp/modules/pc/do/o_login.php

    r134 r241  
    1717    function execute($requests)
    1818    {
     19        $login_params = t_decrypt($requests['login_params']);
    1920        $options = array(
    2021            'dsn'         => db_get_dsn(),
     
    5152
    5253        db_api_update_token($auth->uid());
    53 
    54         openpne_redirect('pc', 'page_h_home');
     54        client_redirect_absolute(OPENPNE_URL."?".$login_params);
    5555    }
    5656
  • OpenPNE/trunk/webapp/modules/pc/page/o_login.php

    r2 r241  
    1414    function execute($requests)
    1515    {
     16        //ログイン後のページ情報
     17        $login_params = $requests['login_params'];
     18        $this->set('login_params', $login_params);
     19
    1620        if (LOGIN_URL_PC && !DISPLAY_LOGIN) {
    1721            client_redirect_absolute(LOGIN_URL_PC);
  • OpenPNE/trunk/webapp/modules/pc/templates/c_event_detail.tpl

    r2 r241  
    323323<div class="padding_s lh_120">
    324324
    325 ({$c_topic.body|t_url2a|nl2br|t_cmd})
     325({$c_topic.body|nl2br|t_http2cmd|t_url2a|t_cmd})
    326326
    327327</div>
     
    607607<br>
    608608({/if})
    609 ({$item.body|t_url2a|nl2br|t_cmd})
     609({$item.body|nl2br|t_http2cmd|t_url2a|t_cmd})
    610610
    611611</div>
  • OpenPNE/trunk/webapp/modules/pc/templates/c_topic_detail.tpl

    r2 r241  
    117117<br>
    118118({/if})
    119 ({$c_topic.body|t_url2a|nl2br|t_cmd})
     119({$c_topic.body|nl2br|t_http2cmd|t_url2a|t_cmd})
    120120
    121121</div>
     
    254254<br>
    255255({/if})
    256 ({$item.body|t_url2a|nl2br|t_cmd})
     256({$item.body|nl2br|t_http2cmd|t_url2a|t_cmd})
    257257
    258258</div>
  • OpenPNE/trunk/webapp/modules/pc/templates/fh_diary.tpl

    r153 r241  
    332332<tr>
    333333<td style="width:36px;" class="bg_06"><img src="({t_img_url_skin filename=content_header_1})" style="width:30px;height:20px;" class="dummy"></td>
    334 <td style="width:486px;padding:2px 0px;" class="bg_06"><span class="b_b c_00"><span id="DOM_fh_diary_writer">({$target_member.nickname})</span>({if $type == "f"})さん({/if})の日記</span></td>
     334<td style="width:486px;padding:2px 0px;" class="bg_06"><span class="b_b c_00"><span id="DOM_fh_diary_writer">({$target_member.nickname})</span>({if $type == "f"})さん({/if})の日記</span><span style="color: red">
     335
     336({if $type == "h"})
     337(
     338({if $target_diary.public_flag == "default"})
     339日記全体の設定に従う(({if $target_member.public_flag_diary == "public"})全員に公開({elseif $target_member.public_flag_diary == "friend"})({$WORD_FRIEND})まで公開({elseif $target_member.public_flag_diary == "close"})公開しない({/if}))
     340({elseif $target_diary.public_flag == "public"})
     341全員に公開
     342({elseif $target_diary.public_flag == "friend"})
     343({$WORD_FRIEND})まで公開
     344({elseif $target_diary.public_flag == "close"})
     345公開しない
     346({/if})
     347)
     348({/if})
     349
     350</span></td>
    335351</tr>
    336352</table>
     
    393409
    394410<div class="lh_120" id="DOM_fh_diary_body">
    395 ({$target_diary.body|t_url2a|nl2br|t_cmd})
     411({$target_diary.body|nl2br|t_http2cmd|t_url2a|t_cmd})
    396412</div>
    397413
     
    538554({/if})
    539555
    540 ({$item.body|t_url2a|nl2br|t_cmd})
     556({$item.body|nl2br|t_http2cmd|t_url2a|t_cmd})
    541557
    542558</div>
  • OpenPNE/trunk/webapp/modules/pc/templates/o_login.tpl

    r2 r241  
    2525
    2626({t_form _attr='name="login" id="login"' m=pc a=do_o_login})
     27<input type="hidden" name="login_params" value="({$login_params})">
     28<input type="text" tabindex="1" name="username" id="username" class="text">
    2729<input type="text" tabindex="1" name="username" id="username" class="text">
    2830<input type="password" tabindex="2" name="password" id="password" class="text">
  • OpenPNE/trunk/webapp/modules/pc/validate/do/o_login.ini

    r2 r241  
    22type = "int"
    33default = 0
     4
     5[login_params]
     6type = "string"
     7default = 0
Note: See TracChangeset for help on using the changeset viewer.