XPressME Integration Kit

Trac


Ignore:
Timestamp:
May 26, 2009, 3:19:43 PM (15 years ago)
Author:
toemon
Message:

bump RC2(r236) fixed#129 パーマリンクを設定しておくと、マルチユーザが有効にならないバグ修正
原因としてはパーマリンクを使用すると、$_GETが得られない為でした。
URLからパーマリンクを解析するのは厄介なのでwordpressでの解析を利用することにする上で
do_action('init') の時期では早すぎるので
wordpressがパーマリンクを解析しているparse_request()の発生するapply_filters('request', ...)でxpress_set_author_cookie()を呼び出すことにする。

Location:
trunk/xpressme_integration_kit/wp-content/plugins/xpressme
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/xpressme_integration_kit/wp-content/plugins/xpressme/include/xpress_common_functions.php

    r232 r236  
    235235} 
    236236 
    237 function xpress_set_author_cookie() 
    238 { 
     237function xpress_set_author_cookie($query_vars) 
     238{ 
     239        global $wp , $wpdb; 
    239240        $author_cookie = get_xpress_dir_name() . "_select_author" ; 
    240241        if(xpress_is_multi_user()){ 
    241                 if (empty($_GET)){ 
    242         //              $GLOBALS["wp_xoops_author"] = null; 
    243                         setcookie($author_cookie, 0); 
    244                         $_COOKIE[$author_cookie] = 0; 
    245                          
    246                 } else { 
     242                if (!empty($_GET)){ 
    247243                        $auth = intval( @$_GET["author"] ); 
    248244                        if ($auth > 0){ 
    249                                 setcookie($author_cookie, $auth); 
     245                                setcookie($author_cookie, $auth, time()+3600, COOKIEPATH); 
    250246                                $_COOKIE[$author_cookie] = $auth; 
    251247                        } 
     248                } else { 
     249                        if (!empty($wp->query_vars) ){ 
     250                                if (!empty($wp->query_vars['author_name']) ){ 
     251                                        $author_name = $wp->query_vars['author_name']; 
     252                                        $auth = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_login = '$author_name'"); 
     253 
     254                                        setcookie($author_cookie, $auth, time()+3600, COOKIEPATH); 
     255                                        $_COOKIE[$author_cookie] = $auth; 
     256                                } 
     257                        } else { 
     258                                setcookie($author_cookie, 0, time()+3600, COOKIEPATH); 
     259                                $_COOKIE[$author_cookie] = 0; 
     260                        } 
    252261                } 
    253262        }else{ 
    254263        //      $GLOBALS["wp_xoops_author"] = null; 
    255                 setcookie($author_cookie, 0); 
     264                setcookie($author_cookie, 0, time()+3600, COOKIEPATH); 
    256265                $_COOKIE[$author_cookie] = 0; 
    257266        } 
     267        return $query_vars; 
    258268} 
    259269 
  • trunk/xpressme_integration_kit/wp-content/plugins/xpressme/xpressme.php

    r232 r236  
    8181// Query filter for  MultiUser 
    8282add_filter('query','xpress_query_filter'); 
    83 add_action("init", "xpress_set_author_cookie"); 
     83//add_action("init", "xpress_set_author_cookie"); 
     84add_filter('request', 'xpress_set_author_cookie'); 
    8485 
    8586// SQL debug windows 
Note: See TracChangeset for help on using the changeset viewer.