XPressME Integration Kit

Trac

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

Last change on this file since 576 was 526, checked in by toemon, 15 years ago

WP3.XでのMultiBlog時のサイトマップ・検索・プラグイン対応 Fixes #292

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