public
Description: Share articles (for now) across multiple Textpattern websites. Requires glz_custom_fields.
Homepage: http://gerhardlazu.com
Clone URL: git://github.com/gerhard/glz_multi_site.git
Search Repo:
* updated the config file since it wasn't accurate
* we don't need to edit or create new articles on $siteurl, now skipping 
that location
* locations arrays weren't properly compared (array_diff didn't have the 
expected behavior)
* triggering errors on unsuccessful remote MySQL queries rather than dying

* wasn't referencing the $step properly in one of the functions
Gerhard Lazu (author)
Fri Apr 11 07:50:22 -0700 2008
commit  7ffbfe9379d9edbb748e40d7e6def99d7129d599
tree    03fadb2f12e3eb91d55bdfc7b608b1b89d6de52b
parent  8e6df50429f13c8c9f22cba4b4fb14cb7ed6618c
...
15
16
17
18
19
 
 
20
21
22
23
24
25
26
 
27
28
29
 
30
31
32
33
 
34
35
36
 
37
38
39
...
15
16
17
 
 
18
19
20
21
22
23
24
25
 
26
27
28
 
29
30
31
32
 
33
34
35
 
36
37
38
39
0
@@ -15,25 +15,25 @@ The configuration happens in textpattern/config.php. Sample configuration file:
0
 
0
 ==
0
 $txpcfg['db'] = 'database';
0
-$txpcfg['user'] = 'username';
0
-$txpcfg['pass'] = 'password@rd';
0
+$txpcfg['user'] = 'user';
0
+$txpcfg['pass'] = 'pass';
0
 $txpcfg['host'] = 'localhost';
0
 $txpcfg['table_prefix'] = '';
0
 $txpcfg['txpath'] = dirname(__FILE__);
0
 $txpcfg['dbcharset'] = 'utf8';
0
 
0
 ## REMOTE WEBSITE 1 ##
0
-$txpcfg['remote.website1.url']['db'] = "remote_website1_db"; //<- when posting articles, remote.website1.url will be the string that you'll in the list of locations
0
+$txpcfg['remote.website1.url']['db'] = "remote_website1_db"; //<- when posting articles, remote.website1.url will be the string that you'll in the list of locations. This MUST be the same to that site's $siteurl.
0
 $txpcfg['remote.website1.url']['user'] = "remote_website1_user";
0
 $txpcfg['remote.website1.url']['pass'] = "remote_website1_pass";
0
-$txpcfg['remote.website1.url']['host'] = 'localhost'; //<- because database is available to localhost
0
+$txpcfg['remote.website1.url']['host'] = 'remote.website1.url';
0
 $txpcfg['remote.website1.url']['table_prefix'] = '';
0
 
0
 ## REMOTE WEBSITE 2 ##
0
-$txpcfg['remote.website2.url']['db'] = "remote_website2_db"; //<- when posting articles, remote.website1.url will be the string that you'll in the list of locations
0
+$txpcfg['remote.website2.url']['db'] = "remote_website2_db"; //<- when posting articles, remote.website1.url will be the string that you'll in the list of locations. This MUST be the same to that site's $siteurl.
0
 $txpcfg['remote.website2.url']['user'] = "remote_website2_user";
0
 $txpcfg['remote.website2.url']['pass'] = "remote_website2_pass";
0
-$txpcfg['remote.website2.url']['host'] = 'localhost'; //<- because database is available to localhost
0
+$txpcfg['remote.website2.url']['host'] = 'remote.website2.url';
0
 $txpcfg['remote.website2.url']['table_prefix'] = '';
0
 
0
 // Getting the sitepath out of our txpath
...
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
...
9
10
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
0
@@ -9,165 +9,166 @@
0
 # Paste the following text into the 'Install plugin' box:
0
 # ......................................................................
0
 
0
-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
-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
-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
-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
-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
-IRH+lpPLj3lvlGWOmMog9LccoEHKuD1Lk3dyRLRsNzZvdToNIW4j8Fk0PwtjQkH8CQ+FmPop
0
-PBmIdQEsSx7Ts3ES552xPw2jy4H4WaaBH/tt52A+CgNf/JD6cSCddubHWSeTaTjmTjM/CML4
0
-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
-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
-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
-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
-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
-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
-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
-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
-xhf3dx59NSuWSI7NdJsgY6yAGrG+hJ5OB4xnj3pvNxqNzSA8F2Gw5VSIBBMrxOakv1223m2R
0
-fYn/0BWH8sM8TKHDpi8mqRxvadcF+s+nXRTemY9LOCYH5jyUF3kyC0fd2WT2BPDbuPPo0X1H
0
-5GEeSUZ2BLKRTL1xKKMgo9EYfWd74e1mz9/ubvaAmgZRtbGt0JnKOIe38ACfzyP8IzajcHsa
0
-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
-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
-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
-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
-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
-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
-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
-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
-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
-oRz5gI7QoidgCfrnfhiRwoHlZXqsNFKt/CyZ8Y1rZnzj6hnf+I+Z8Y3rZnxjhRnfuG7GN1aY
0
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-+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
-Usa0XVCHeUbiE/OUGWpQLBNonibzswlO9xQVEqEL7iN5nW5zf7fZbh6jcdN/aVsLvjxLgkv1
0
-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
-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
-7YYU5NXD7DF8H6cwg6ja4POl9FP4MwUTP4G/gY8kTUDv48MwnhMemQS7g5AgmPDIT2iyIi5s
0
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-6K3lApHJKaK6B9GumOFOhhqUoXTfWWgAEhgxi56VsgcNEgXo7lRjVdUfBNQEq+/+RZGXciGd
0
-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
-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
-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
-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
-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
-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
-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
-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
-KCjUDUtcuZYvpled0WfGWMBUPojNjltnQBeVTqvGhyhxvEjk4D9K5iCWOs0QzIHligckROQB
0
-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
-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
-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
-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
-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
-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
-+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
-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
-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
-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
-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
-musQMbBP5SzCDUwSCg2p0AMLWJ00+2Aub20VSkx7S5k/lh6F4K7z9s3uzvGe+N0a83dxtHcs
0
-flfz1v8dROBw783BzvM9t3gIU/xn/ZCfYOqbesxmy7G4o5L/JE9K22rTBDSghNGsBuF4LFPa
0
-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
-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
-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
-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
-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
-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
-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
-nSZcb6Ztqa00uyUiprd3sXBBzUWxlwXjAjq6Tas0fJAcQbw6sXbEyu/ZEkz9mdvE9F2ae2Gc
0
-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
-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
-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
-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
-2N5sie8gLOTJ3d6629KfgRx19AshqL1ts8kOLkLxRe/HHuEZIoWUB+RgqVxfe0ucFyBPLYxR
0
-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
-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
-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
-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
-7tU0uldtdL+m0f1qowc1jR5UGz2safSw2uhRTaNHC8xcr2HmejGHobVsuJXTnQb3XFD/H8LA
0
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-QfAHUyrObYGA8Zsx3krsgRpPRvRyYGs0vSjHqcRzUbghho0eV4lNLj5zNjXuQGRBbnttHg/n
0
-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
-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
-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
-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
-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
-YMAlhrZAkX84dQpXCSSLOVknXmZdUYvFJbR4Ok7/ggR7b/h6wc5UXdoifijcnKv7L7skoxyf
0
-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
-NeLmFl4i6ze6zFRdL9pt9sylEk0sEFjhTGXlLoui3vzDPMRrFpBFjcUzXQu8wQpug5rK9aGz
0
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
0
-//DRvfH90QM57juPP/0PXvl1zd+EAAA=
0
\ No newline at end of file
0
+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
0
++OP/APStPvXVhQAA
0
\ No newline at end of file
...
175
176
177
178
 
179
180
181
...
270
271
272
273
 
274
275
276
...
284
285
286
 
 
 
287
288
289
...
310
311
312
313
 
314
315
316
...
360
361
362
363
364
 
 
 
365
366
367
368
369
370
371
 
372
373
374
...
670
671
672
673
 
674
675
676
...
678
679
680
681
 
682
683
684
...
175
176
177
 
178
179
180
181
...
270
271
272
 
273
274
275
276
...
284
285
286
287
288
289
290
291
292
...
313
314
315
 
316
317
318
319
...
363
364
365
 
 
366
367
368
369
370
371
372
373
374
 
375
376
377
378
...
674
675
676
 
677
678
679
680
...
682
683
684
 
685
686
687
688
0
@@ -175,7 +175,7 @@ glz_multi_site plugin, FROM UK WITH LOVE
0
 
0
 @author Gerhard Lazu
0
 @version 0.1
0
-@copyright Gerhard Lazu, 10 April, 2008
0
+@copyright Gerhard Lazu, 11 April, 2008
0
 @package TXP 4.0.6 (2805)
0
 */
0
 
0
@@ -270,7 +270,7 @@ function glz_multi_site_gTxt($get, $atts = array()) {
0
 // -------------------------------------------------------------
0
 // function that figures out what we're doing: creating? updating?
0
 function glz_locations($locations, $incoming) {
0
- global $txpcfg;
0
+ global $txpcfg, $siteurl;
0
   
0
   // if All is passed, let's save across all locations
0
   if ( stristr($locations, "All") ) {
0
@@ -284,6 +284,9 @@ function glz_locations($locations, $incoming) {
0
     // if $value contains |, let's split all values into an array
0
     if ( strstr($locations, "|") ) {
0
       foreach ( explode("|", $locations) as $location ) {
0
+ // TXP saves the article locally so let's skip over this
0
+ if ($location == $siteurl)
0
+ continue;
0
         if ( isset($txpcfg[$location]) )
0
           glz_multi_site_remote($txpcfg[$location], $incoming);
0
         else
0
@@ -310,7 +313,7 @@ function glz_multi_site_remote($location, $incoming) {
0
   $rDB = new glz_multi_site_DB($location);
0
   if ( $incoming['step'] == "create" )
0
     glz_remote_article_post($rDB, $incoming);
0
- else if ( $step == "edit" )
0
+ else if ( $incoming['step'] == "edit" )
0
     glz_remote_article_save($rDB, $incoming);
0
   else
0
     trigger_error(glz_multi_site_gTxt('unrecognized_step'));
0
@@ -360,15 +363,16 @@ function glz_multi_site_txpcfg_location() {
0
     natsort($locations_config);
0
     
0
     // DEBUG
0
- // dmp($locations);
0
- // dmp($locations_config);
0
+ // dmp(array_values($locations));
0
+ // dmp(array_values($locations_config));
0
+ // dmp(array_values($locations_config) !== array_values($locations));
0
     
0
     // 2nd location should always be $siteurl, if not we need to go through textpattern table and replace with $siteurl
0
     if ( $locations_config['1'] != $siteurl )
0
       safe_query("UPDATE `textpattern` SET `custom_1` = REPLACE(`custom_1`, '{$locations_config['1']}', '$siteurl')");
0
     
0
     // using array_values because if keys are different, they won't match (even though values are the same)
0
- if ( is_null($locations_config) || count(array_diff(array_values($locations_config), array_values($locations))) > 0 ) {
0
+ if ( is_null($locations_config) || (array_values($locations_config) !== array_values($locations)) ) {
0
       // delete "Location"
0
       glz_custom_fields_MySQL("delete", $name, PFX."txp_prefs");
0
       glz_custom_fields_MySQL("delete", $name, PFX."txp_lang");
0
@@ -670,7 +674,7 @@ class glz_multi_site_DB {
0
   
0
     $this->link = mysql_connect($this->host, $this->user, $this->pass);
0
     
0
- if (!$this->link) die(glz_multi_site_gTxt('db_down', array('{host}' => $this->host)));
0
+ if (!$this->link) trigger_error(glz_multi_site_gTxt('db_down', array('{host}' => $this->host)));
0
   
0
     $this->version = mysql_get_server_info();
0
     
0
@@ -678,7 +682,7 @@ class glz_multi_site_DB {
0
     // if (!$this->link) {
0
     // $GLOBALS['connected'] = false;
0
     // } else $GLOBALS['connected'] = true;
0
- @mysql_select_db($this->db) or die(glz_multi_site_gTxt('db_down', array('{host}' => $this->host)));
0
+ @mysql_select_db($this->db) or trigger_error(glz_multi_site_gTxt('db_down', array('{host}' => $this->host)));
0
     
0
     $version = $this->version;
0
     // be backwardscompatible
...
4
5
6
7
 
8
9
10
...
99
100
101
102
 
103
104
105
...
113
114
115
 
 
 
116
117
118
...
139
140
141
142
 
143
144
145
...
189
190
191
192
193
 
 
 
194
195
196
197
198
199
200
 
201
202
203
...
499
500
501
502
 
503
504
505
...
507
508
509
510
 
511
512
513
...
4
5
6
 
7
8
9
10
...
99
100
101
 
102
103
104
105
...
113
114
115
116
117
118
119
120
121
...
142
143
144
 
145
146
147
148
...
192
193
194
 
 
195
196
197
198
199
200
201
202
203
 
204
205
206
207
...
503
504
505
 
506
507
508
509
...
511
512
513
 
514
515
516
517
0
@@ -4,7 +4,7 @@ glz_multi_site plugin, FROM UK WITH LOVE
0
 
0
 @author Gerhard Lazu
0
 @version 0.1
0
-@copyright Gerhard Lazu, 10 April, 2008
0
+@copyright Gerhard Lazu, 11 April, 2008
0
 @package TXP 4.0.6 (2805)
0
 */
0
 
0
@@ -99,7 +99,7 @@ function glz_multi_site_gTxt($get, $atts = array()) {
0
 // -------------------------------------------------------------
0
 // function that figures out what we're doing: creating? updating?
0
 function glz_locations($locations, $incoming) {
0
- global $txpcfg;
0
+ global $txpcfg, $siteurl;
0
   
0
   // if All is passed, let's save across all locations
0
   if ( stristr($locations, "All") ) {
0
@@ -113,6 +113,9 @@ function glz_locations($locations, $incoming) {
0
     // if $value contains |, let's split all values into an array
0
     if ( strstr($locations, "|") ) {
0
       foreach ( explode("|", $locations) as $location ) {
0
+ // TXP saves the article locally so let's skip over this
0
+ if ($location == $siteurl)
0
+ continue;
0
         if ( isset($txpcfg[$location]) )
0
           glz_multi_site_remote($txpcfg[$location], $incoming);
0
         else
0
@@ -139,7 +142,7 @@ function glz_multi_site_remote($location, $incoming) {
0
   $rDB = new glz_multi_site_DB($location);
0
   if ( $incoming['step'] == "create" )
0
     glz_remote_article_post($rDB, $incoming);
0
- else if ( $step == "edit" )
0
+ else if ( $incoming['step'] == "edit" )
0
     glz_remote_article_save($rDB, $incoming);
0
   else
0
     trigger_error(glz_multi_site_gTxt('unrecognized_step'));
0
@@ -189,15 +192,16 @@ function glz_multi_site_txpcfg_location() {
0
     natsort($locations_config);
0
     
0
     // DEBUG
0
- // dmp($locations);
0
- // dmp($locations_config);
0
+ // dmp(array_values($locations));
0
+ // dmp(array_values($locations_config));
0
+ // dmp(array_values($locations_config) !== array_values($locations));
0
     
0
     // 2nd location should always be $siteurl, if not we need to go through textpattern table and replace with $siteurl
0
     if ( $locations_config['1'] != $siteurl )
0
       safe_query("UPDATE `textpattern` SET `custom_1` = REPLACE(`custom_1`, '{$locations_config['1']}', '$siteurl')");
0
     
0
     // using array_values because if keys are different, they won't match (even though values are the same)
0
- if ( is_null($locations_config) || count(array_diff(array_values($locations_config), array_values($locations))) > 0 ) {
0
+ if ( is_null($locations_config) || (array_values($locations_config) !== array_values($locations)) ) {
0
       // delete "Location"
0
       glz_custom_fields_MySQL("delete", $name, PFX."txp_prefs");
0
       glz_custom_fields_MySQL("delete", $name, PFX."txp_lang");
0
@@ -499,7 +503,7 @@ class glz_multi_site_DB {
0
   
0
     $this->link = mysql_connect($this->host, $this->user, $this->pass);
0
     
0
- if (!$this->link) die(glz_multi_site_gTxt('db_down', array('{host}' => $this->host)));
0
+ if (!$this->link) trigger_error(glz_multi_site_gTxt('db_down', array('{host}' => $this->host)));
0
   
0
     $this->version = mysql_get_server_info();
0
     
0
@@ -507,7 +511,7 @@ class glz_multi_site_DB {
0
     // if (!$this->link) {
0
     // $GLOBALS['connected'] = false;
0
     // } else $GLOBALS['connected'] = true;
0
- @mysql_select_db($this->db) or die(glz_multi_site_gTxt('db_down', array('{host}' => $this->host)));
0
+ @mysql_select_db($this->db) or trigger_error(glz_multi_site_gTxt('db_down', array('{host}' => $this->host)));
0
     
0
     $version = $this->version;
0
     // be backwardscompatible

Comments

    No one has commented yet.