|
1 <?php |
|
2 /* |
|
3 Copyright (c) 2008, Alex Tingle. |
|
4 |
|
5 This program is free software; you can redistribute it and/or |
|
6 modify it under the terms of the GNU General Public License |
|
7 as published by the Free Software Foundation; either version 2 |
|
8 of the License, or (at your option) any later version. |
|
9 |
|
10 This program is distributed in the hope that it will be useful, |
|
11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 GNU General Public License for more details. |
|
14 |
|
15 You should have received a copy of the GNU General Public License |
|
16 along with this program; if not, write to the Free Software |
|
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
18 */ |
|
19 |
|
20 /** Only include this file if a database upgrade is called for. |
|
21 * Otherwise it can be safely ignored. */ |
|
22 function ec3_upgrade_posts() |
|
23 { |
|
24 global $ec3,$post,$wpdb; |
|
25 $ec3->advanced=false; |
|
26 $changed = ec3_upgrade_posts_apply(); |
|
27 |
|
28 $query =& new WP_Query(); |
|
29 $query->query( 'nopaging=1&cat=' . $ec3->event_category ); |
|
30 |
|
31 $format = 'Y-m-d H:i:s'; |
|
32 $now = time(); |
|
33 $rownum = 0; |
|
34 ?> |
|
35 |
|
36 <?php if($changed): ?> |
|
37 |
|
38 <div id="message" class="updated fade"><p><strong> |
|
39 <?php if($changed==1) _e('Post upgraded.','ec3') ?> |
|
40 <?php if($changed>1) echo sprintf(__('%d posts upgraded.','ec3'),$changed) ?> |
|
41 </strong></p></div> |
|
42 |
|
43 <?php endif ?> |
|
44 |
|
45 <div class="wrap"> |
|
46 <form method="post"> |
|
47 <h2><?php _e('Upgrade Event Posts (from version 3.0)','ec3'); ?></h2> |
|
48 |
|
49 <?php if($query->have_posts()): ?> |
|
50 |
|
51 <input type="hidden" name="ec3_action" value="upgrade_posts" /> |
|
52 <table class="widefat"> |
|
53 |
|
54 <thead> |
|
55 <tr> |
|
56 <th scope="col">OK</th> |
|
57 <th scope="col">Title</th> |
|
58 <th scope="col">Post date</th> |
|
59 <th scope="col">Event date</th> |
|
60 </tr> |
|
61 </thead> |
|
62 |
|
63 <?php while($query->have_posts()): $query->the_post(); ?> |
|
64 |
|
65 <?php if(empty($post->ec3_schedule)): |
|
66 $post_date = get_post_time(); |
|
67 $post_modified_date = get_post_modified_time(); |
|
68 $rownum++; |
|
69 if($rownum % 2) |
|
70 { |
|
71 $rowclass='alternate '; |
|
72 } |
|
73 else |
|
74 { |
|
75 $rowclass=''; |
|
76 } |
|
77 |
|
78 if($post_modified_date >= $now) |
|
79 { |
|
80 $errstyle='background-color:#fcc'; |
|
81 } |
|
82 else |
|
83 { |
|
84 $errstyle=''; |
|
85 } |
|
86 ?> |
|
87 |
|
88 <tr class="<?php echo $rowclass ?>"> |
|
89 <td> |
|
90 <input type="checkbox" name="ec3_upgrade_<?php the_ID() ?>" |
|
91 value="1" checked="checked" /> |
|
92 </td> |
|
93 <td title="Post ID: <?php the_ID() ?>"> |
|
94 <a target="_blank" href="<?php the_permalink() ?>"> |
|
95 <?php the_title() ?> |
|
96 </a> |
|
97 </td> |
|
98 <td> |
|
99 <input type="text" name="ec3_postdate_<?php the_ID() ?>" |
|
100 style="<?php echo $errstyle ?>" |
|
101 value="<?php echo date($format,$post_modified_date) ?>" /> |
|
102 </td> |
|
103 <td> |
|
104 <input type="text" name="ec3_eventdate_<?php the_ID() ?>" |
|
105 value="<?php echo date($format,$post_date) ?>" /> |
|
106 </td> |
|
107 </tr> |
|
108 |
|
109 <?php endif ?> |
|
110 <?php endwhile ?> |
|
111 <?php if($rownum==0): ?> |
|
112 |
|
113 <tr><td>No posts to upgrade.</td></tr> |
|
114 |
|
115 <?php endif ?> |
|
116 |
|
117 </table> |
|
118 |
|
119 <p class="submit"> |
|
120 |
|
121 <?php if($rownum>0): ?> |
|
122 |
|
123 <input type="submit" name="ec3_upgrade_posts" |
|
124 value="<?php _e('Upgrade Event Posts','ec3') ?>" /> |
|
125 <input type="submit" name="ec3_cancel_upgrade" |
|
126 value="<?php _e("Don't Upgrade Posts") ?>" /> |
|
127 |
|
128 <?php else: update_option('ec3_upgrade_posts',0) ?> |
|
129 |
|
130 <input type="submit" name="ec3_cancel_upgrade" |
|
131 value="<?php _e('OK') ?> »" /> |
|
132 |
|
133 <?php endif ?> |
|
134 |
|
135 </p> |
|
136 |
|
137 <?php endif ?> |
|
138 |
|
139 </form> |
|
140 </div> |
|
141 |
|
142 <?php |
|
143 |
|
144 } |
|
145 |
|
146 |
|
147 /** Process results from the 'ec3_upgrade_posts' form. */ |
|
148 function ec3_upgrade_posts_apply() |
|
149 { |
|
150 if(!isset($_POST) || |
|
151 !isset($_POST['ec3_action']) || |
|
152 $_POST['ec3_action']!='upgrade_posts') |
|
153 { |
|
154 return; |
|
155 } |
|
156 |
|
157 global $ec3,$wpdb; |
|
158 |
|
159 $changed_count=0; |
|
160 |
|
161 // Find all of our parameters |
|
162 $sched_entries=array(); |
|
163 $fields =array('postdate','eventdate'); |
|
164 foreach($_POST as $k => $v) |
|
165 { |
|
166 if(preg_match('/^ec3_(upgrade|'.implode('|',$fields).')_(_?)([0-9]+)$/',$k,$match)) |
|
167 { |
|
168 $pid=intval($match[3]); |
|
169 if(!isset( $sched_entries[$pid] )) |
|
170 $sched_entries[ $pid ]=array(); |
|
171 $sched_entries[ $pid ][ $match[1] ] = $v; |
|
172 } |
|
173 } |
|
174 |
|
175 foreach($sched_entries as $pid => $vals) |
|
176 { |
|
177 if(empty($vals['upgrade']) || |
|
178 empty($vals['postdate']) || |
|
179 empty($vals['eventdate']) ) |
|
180 { |
|
181 continue; |
|
182 } |
|
183 $postdate = "'".$wpdb->escape($vals['postdate'])."'"; |
|
184 $eventdate = "'".$wpdb->escape($vals['eventdate'])."'"; |
|
185 $cnt=$wpdb->get_var( |
|
186 "SELECT COUNT(0) FROM $ec3->schedule |
|
187 WHERE post_id=$pid"); |
|
188 if(!empty($cnt)) |
|
189 continue; |
|
190 // Create a schedule record. |
|
191 $wpdb->query( |
|
192 "INSERT INTO $ec3->schedule (post_id,start,end,allday,rpt) |
|
193 VALUES ($pid,$eventdate,$eventdate,0,'')" |
|
194 ); |
|
195 // Modify the post date. |
|
196 $wpdb->query( |
|
197 "UPDATE $wpdb->posts |
|
198 SET post_date=$postdate, post_date_gmt=$postdate |
|
199 WHERE ID=$pid" |
|
200 ); |
|
201 $changed_count++; |
|
202 } |
|
203 return $changed_count; |
|
204 } |
|
205 |
|
206 ?> |