/
update.php
235 lines (150 loc) · 6.35 KB
/
update.php
1
2
3
4
5
6
7
8
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
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
<?php
date_default_timezone_set('UTC');
require_once("wakaHelper.php");
require_once("renderHelper.php");
require_once("image.php");
require_once("imagesHelper.php");
$dateNow=date("Y-m-d H:i:s");
if(wakaExists($_REQUEST['w'])){
$waka=readWaka($_REQUEST['w']);
if(isset($waka['users'][$_REQUEST['u']]['type'])) {
$user['type']=$waka['users'][$_REQUEST['u']]['type'];
$user['email']=$waka['users'][$_REQUEST['u']]['email'];
}else{
$user['type']='public';
$user['email']='notset';
}
$out=array();
if(strnatcmp( $waka['dateUsersTouched'] , $_REQUEST['d'])>0) {
//echo $waka['starter']['dateTouched'].' > '.$_REQUEST['d'];
$c=count($out);
$out[$c]['html']=renderHead($waka,$user);
$out[$c]['location']='head';
$out[$c]['type']='changed';
}
if(strnatcmp( $waka['starter']['dateContentTouched'] , $_REQUEST['d'])>0) {
$c=count($out);
$out[$c]['html']=renderItemContent($waka['starter'],'starter');
$out[$c]['location']='starter_content';
$out[$c]['type']='changed';
$c=count($out);
$out[$c]['html']=renderItemContentForm($waka['starter'],'starter');
$out[$c]['location']='starter_content_form';
$out[$c]['type']='changed';
}
if(strnatcmp( $waka['starter']['dateImagesTouched'] , $_REQUEST['d'])>0) {
$c=count($out);
$out[$c]['html']=renderItemImages($waka['starter'],'starter');
$out[$c]['location']='starter_images';
$out[$c]['type']='changed';
$c=count($out);
$out[$c]['html']=renderItemImagesForm($waka['starter'],'starter');
$out[$c]['location']='starter_images_form';
$out[$c]['type']='changed';
}
if(strnatcmp( $waka['starter']['dateFilesTouched'] , $_REQUEST['d'])>0) {
$c=count($out);
$out[$c]['html']=renderItemFiles($waka['starter'],'starter');
$out[$c]['location']='starter_files';
$out[$c]['type']='changed';
$c=count($out);
$out[$c]['html']=renderItemFilesForm($waka['starter'],'starter');
$out[$c]['location']='starter_files_form';
$out[$c]['type']='changed';
}
if($user['type']=='editor'){
if(strnatcmp($waka['drafts'][$_REQUEST['u']]['dateContentTouched'],$_REQUEST['d'])>0) {
$c=count($out);
$out[$c]['html']=renderItemContentForm($waka['drafts'][$_REQUEST['u']],'draft');
$out[$c]['location']='draft_content_form';
$out[$c]['type']='changed';
}
if(strnatcmp($waka['drafts'][$_REQUEST['u']]['dateImagesTouched'],$_REQUEST['d'])>0) {
$c=count($out);
$out[$c]['html']=renderItemImagesForm($waka['drafts'][$_REQUEST['u']],'draft');
$out[$c]['location']='draft_images_form';
$out[$c]['type']='changed';
}
if(strnatcmp($waka['drafts'][$_REQUEST['u']]['dateFilesTouched'],$_REQUEST['d'])>0) {
$c=count($out);
$out[$c]['html']=renderItemFilesForm($waka['drafts'][$_REQUEST['u']],'draft');
$out[$c]['location']='draft_files_form';
$out[$c]['type']='changed';
}
}
$oldplist=listToArray($_REQUEST['p']);
$postcount=count($waka['posts']);
for($p=0; $p<$postcount; $p++){
for($p2=0; $p2<count($oldplist); $p2++) if($oldplist[$p2]==$waka['posts'][$p]['id']) array_splice($oldplist,$p2,1);
if(strnatcmp($waka['posts'][$p]['dateCreated'],$_REQUEST['d'])>0){
$c=count($out);
$out[$c]['html']=renderPost($waka['posts'][$p],$waka['users'],$user);
$out[$c]['location']='post_'.$waka['posts'][$p]['id'];
$out[$c]['type']='new';
}else{
if(strnatcmp($waka['posts'][$p]['dateContentTouched'],$_REQUEST['d'])>0){
$c=count($out);
$out[$c]['html']=renderItemContent($waka['posts'][$p],'post_'.$waka['posts'][$p]['id']);
$out[$c]['location']='post_'.$waka['posts'][$p]['id'].'_content';
$out[$c]['type']='changed';
if($user['type']=='editor' && userMayEdit($user['email'],$waka['posts'][$p]['users'])){
$c=count($out);
$out[$c]['html']=renderItemContentForm($waka['posts'][$p],'post_'.$waka['posts'][$p]['id']);
$out[$c]['location']='post_'.$waka['posts'][$p]['id'].'_content_form';
$out[$c]['type']='changed';
}
}
if(strnatcmp($waka['posts'][$p]['dateImagesTouched'],$_REQUEST['d'])>0){
$c=count($out);
$out[$c]['html']=renderItemImages($waka['posts'][$p],'post_'.$waka['posts'][$p]['id']);
$out[$c]['location']='post_'.$waka['posts'][$p]['id'].'_images';
$out[$c]['type']='changed';
if($user['type']=='editor' && userMayEdit($user['email'],$waka['posts'][$p]['users'])){
$c=count($out);
$out[$c]['html']=renderItemImagesForm($waka['posts'][$p],'post_'.$waka['posts'][$p]['id']);
$out[$c]['location']='post_'.$waka['posts'][$p]['id'].'_images_form';
$out[$c]['type']='changed';
}
}
if(strnatcmp($waka['posts'][$p]['dateFilesTouched'],$_REQUEST['d'])>0){
$c=count($out);
$out[$c]['html']=renderItemFiles($waka['posts'][$p],'post_'.$waka['posts'][$p]['id']);
$out[$c]['location']='post_'.$waka['posts'][$p]['id'].'_files';
$out[$c]['type']='changed';
if($user['type']=='editor' && userMayEdit($user['email'],$waka['posts'][$p]['users'])){
$c=count($out);
$out[$c]['html']=renderItemFilesForm($waka['posts'][$p],'post_'.$waka['posts'][$p]['id']);
$out[$c]['location']='post_'.$waka['posts'][$p]['id'].'_files_form';
$out[$c]['type']='changed';
}
}
if(strnatcmp($waka['posts'][$p]['dateUsersTouched'],$_REQUEST['d'])>0){
$c=count($out);
$out[$c]['html']=renderAvatar($waka['posts'][$p]);
$out[$c]['location']='post_'.$waka['posts'][$p]['id'].'_avatar';
$out[$c]['type']='changed';
if($user['type']=='editor' && userMayEdit($user['email'],$waka['posts'][$p]['users'])){
$c=count($out);
$out[$c]['html']=renderItemUsersForm($waka['posts'][$p],$waka['users'],'post_'.$waka['posts'][$p]['id']);
$out[$c]['location']='post_'.$waka['posts'][$p]['id'].'_users_form';
$out[$c]['type']='changed';
}
}
if(strnatcmp($waka['posts'][$p]['dateCommentsTouched'],$_REQUEST['d'])>0){
$c=count($out);
$out[$c]['html']=renderItemComments($waka['posts'][$p],$user,'post_'.$waka['posts'][$p]['id']);
$out[$c]['location']='post_'.$waka['posts'][$p]['id'].'_comments';
$out[$c]['type']='changed';
}
}
}
for($p2=0; $p2<count($oldplist); $p2++){
$out[$p2]['location']='post_'.$oldplist[$p2];
$out[$p2]['type']='deleted';
}
//writeWaka($waka,$_REQUEST['w']);
$data['out']=$out;
$data['dateNow']=$dateNow;
echo json_encode($data);
}
?>