XPressME Integration Kit

Trac

source: trunk/xpressme_integration_kit/include/general_functions.php @ 844

Last change on this file since 844 was 844, checked in by toemon, 10 years ago

データベースが大文字小文字を区別しない環境での問題修正 Fixed#428

File size: 6.0 KB
Line 
1<?php
2/*
3 * XPressME - WordPress for XOOPS
4 *
5 * @copyright   XPressME Project http://www.toemon.com
6 * @license             http://www.fsf.org/copyleft/gpl.html GNU public license
7 * @author              toemon
8 * @package             module::xpress
9 */
10if (!function_exists('wp_uid_to_xoops_uid')){
11        function wp_uid_to_xoops_uid($wp_uid = '',$mydirname){
12                global $xoopsDB,$xoops_db;
13                if (empty($mydirname))
14                        $mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
15               
16                $wp_prefix = preg_replace('/wordpress/','wp',$mydirname);
17
18                if (empty($xoops_db)) { // not load XPressME
19                        $xoops_user_tbl = $xoopsDB->prefix('users');
20                        $wp_user_tbl = $xoopsDB->prefix($wp_prefix . "_users");
21
22                        $wp_user_SQL ="SELECT user_login FROM $wp_user_tbl WHERE ID = $wp_uid ";
23                        $wp_user_Res = $xoopsDB->query($wp_user_SQL, 0, 0);
24                        if ($xoopsDB->getRowsNum($wp_user_Res)  > 0){
25                                $wp_user_Row = $xoopsDB->fetchArray($wp_user_Res);
26                                $wp_user_name = $wp_user_Row['user_login'];
27                       
28                                $xoops_user_SQL ="SELECT uid FROM $xoops_user_tbl WHERE uname LIKE '$wp_user_name'";
29                                $xoops_user_Res = $xoopsDB->query($xoops_user_SQL, 0, 0);
30                                if ($xoopsDB->getRowsNum($xoops_user_Res)  > 0){
31                                        $xoops_user_Row = $xoopsDB->fetchArray($xoops_user_Res);
32                                        $xoops_uid = $xoops_user_Row['uid'];   
33                                        return $xoops_uid;
34                                }
35                        }
36                        return 0;
37                } else { // load XPressME or not Load XOOPS
38                        $xoops_user_tbl = get_xoops_prefix() . 'users';
39                        $wp_user_tbl = get_wp_prefix() . 'users';
40                        $wp_user_name = $xoops_db->get_var("SELECT user_login FROM $wp_user_tbl WHERE ID = $wp_uid ");
41                        if (empty($wp_user_name)) return 0;
42                        $xoops_uid = $xoops_db->get_var("SELECT uid FROM $xoops_user_tbl WHERE uname LIKE '$wp_user_name'");
43                        if (!empty($xoops_uid)) return $xoops_uid; else return 0;
44                }
45        }
46}
47
48if (!function_exists('xoops_uid_to_wp_uid')){
49        function xoops_uid_to_wp_uid($xoops_uid = '',$mydirname){
50                global $xoopsDB,$xoops_db;
51                if (empty($mydirname))
52                        $mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
53
54                $wp_prefix = preg_replace('/wordpress/','wp',$mydirname);
55
56                if (empty($xoops_db)) { // not load XPressME
57                        $xoops_user_tbl = $xoopsDB->prefix('users');
58                        $wp_user_tbl = $xoopsDB->prefix($wp_prefix . "_users");
59
60                        $xoops_user_SQL ="SELECT uname FROM $xoops_user_tbl WHERE uid =  $xoops_uid";
61                        $xoops_user_Res = $xoopsDB->query($xoops_user_SQL, 0, 0);
62                        if ($xoopsDB->getRowsNum($xoops_user_Res)  > 0){
63                                $xoops_user_Row = $xoopsDB->fetchArray($xoops_user_Res);
64                                $xoops_user_name = $xoops_user_Row['uname'];   
65
66                                $wp_user_SQL ="SELECT ID FROM $wp_user_tbl WHERE user_login LIKE '$xoops_user_name'";
67                                $wp_user_Res = $xoopsDB->query($wp_user_SQL, 0, 0);
68                                if ($xoopsDB->getRowsNum($wp_user_Res)  > 0){
69                                        $wp_user_Row = $xoopsDB->fetchArray($wp_user_Res);
70                                        $wp_user_id = $wp_user_Row['ID'];
71                                        return $wp_user_id;
72                                }
73                        }
74                        return 0;
75                } else { // load XPressME or not Load XOOPS
76                        $xoops_user_tbl = get_xoops_prefix() . 'users';
77                        $wp_user_tbl = get_wp_prefix() . 'users';
78                        $xoops_user_name = $xoops_db->get_var("SELECT uname FROM $xoops_user_tbl WHERE uid =  $xoops_uid");
79                        if (empty($xoops_user_name)) return 0;
80                        $wp_user_id = $xoops_db->get_var("SELECT ID FROM $wp_user_tbl WHERE user_login LIKE '$xoops_user_name'");
81                        if (!empty($wp_user_id)) return $wp_user_id; else return 0;
82                }       
83        }
84}
85
86// XOOPS user ID is get from the name and the mail address of the contributor of the comment that is not user_id.
87if (!function_exists('wp_comment_author_to_xoops_uid')){
88        function wp_comment_author_to_xoops_uid($name = '',$email = ''){
89                global $xoopsDB,$xoops_db;
90                if (empty($name) || empty($email)) return 0;
91               
92                if (empty($xoops_db)) { // not load XPressME
93                        $xoops_user_tbl = $xoopsDB->prefix('users');
94                        $wp_user_tbl = $xoopsDB->prefix($wp_prefix . "_users");
95
96                        $xoops_uid = 0;
97                        $xoops_user_SQL ="SELECT uid FROM $xoops_user_tbl WHERE uname = '$name' AND email = '$email'";
98                        $xoops_user_Res = $xoopsDB->query($xoops_user_SQL, 0, 0);
99                        if ($xoopsDB->getRowsNum($xoops_user_Res)  > 0){
100                                $xoops_user_Row = $xoopsDB->fetchArray($xoops_user_Res);
101                                $xoops_uid = $xoops_user_Row['uid'];
102                        }       
103                        return $xoops_uid;
104                } else { // load XPressME or not Load XOOPS
105                        $xoops_user_tbl = get_xoops_prefix() . 'users';
106                        $xoops_uid = $xoops_db->get_var("SELECT uid FROM $xoops_user_tbl WHERE uname = '$name' AND email = '$email'");
107                        if (empty($xoops_uid)) return 0;
108                        return $xoops_uid;
109                }                       
110        }
111}
112
113// Get Multi Blog table list for WordPressMU
114if (!function_exists('get_table_list')){
115        function get_table_list($wp_prefix = '',$table_name = ''){
116                global $xoopsDB,$xoops_db;
117
118                $table_list = array();
119                $ret = array();
120                $wp_prefix = preg_replace('/_$/', '',$wp_prefix);
121                $pattern = $wp_prefix . '_' . $table_name . '|' . $wp_prefix . '_[0-9]*_' . $table_name;
122
123                if (!empty($wp_prefix) && !empty($table_name)){
124                        $sql = "SHOW TABLES LIKE '" . $wp_prefix  . '%' . $table_name . "'";
125
126                        if (empty($xoops_db)) { // not load XPressME                   
127                                if($result = $xoopsDB->queryF($sql)){
128                                        while($row = $xoopsDB->fetchRow($result)){
129                                                if(preg_match('/' . $pattern . '/i' , $row[0])){
130                                                        $table_list[] = $row[0];
131                                                }
132                                        }
133                                }
134                        } else { // load XPressME or not Load XOOPS
135                                $rows = $xoops_db->get_results($sql, ARRAY_N);
136                                foreach ($rows as $row){
137                                        if(preg_match('/' . $pattern . '/' , $row[0])){
138                                                $table_list[] = $row[0];
139                                        }
140                                }
141                        }                       
142                }
143                return $table_list;
144        }
145}
146
147// Get Middle Prefix from Table name for WordPressMU
148if (!function_exists('get_multi_mid_prefix')){
149        function get_multi_mid_prefix($wp_prefix = '',$table_name = '' , $full_table_name){
150                $pattern = '/' . $wp_prefix . '(.*)' . $table_name . '/';
151                preg_match($pattern,$full_table_name,$match);
152                return $match[1];
153        }
154}
155
156// Get Prefix from Table name for WordPressMU
157if (!function_exists('get_multi_prefix')){
158        function get_multi_prefix($full_table_name,$table_name = ''){
159                $pattern = '/'. $table_name . '/';
160                return preg_replace($pattern,'',$full_table_name);
161        }
162}
163?>
Note: See TracBrowser for help on using the repository browser.