@@ -57,348 +57,348 @@ |
||
57 | 57 | |
58 | 58 | switch ($op) { |
59 | 59 | /* save a single blog */ |
60 | - case 'save': |
|
61 | - |
|
62 | - if ($blog_id) { |
|
63 | - $blog_obj = $blogHandler->get($blog_id); |
|
64 | - } else { |
|
65 | - if ($blog_exists = $blogHandler->getCount(new Criteria('blog_feed', Request::getString('blog_feed', '', 'POST')))) { |
|
66 | - redirect_header('admin.blog.php', 2, planet_constant('AM_BLOGEXISTS')); |
|
67 | - } |
|
68 | - $blog_obj = $blogHandler->create(); |
|
69 | - $blog_obj->setVar('blog_submitter', $xoopsUser->getVar('uid')); |
|
70 | - } |
|
71 | - |
|
72 | - $blog_obj->setVar('blog_title', Request::getString('blog_title', '', 'POST')); //$_POST['blog_title']); |
|
73 | - $blog_obj->setVar('blog_desc', Request::getString('blog_desc', '', 'POST')); //$_POST['blog_desc']); |
|
74 | - $blog_obj->setVar('blog_image', Request::getString('blog_image', '', 'POST')); //$_POST['blog_image']); |
|
75 | - $blog_obj->setVar('blog_feed', Request::getString('blog_feed', '', 'POST')); //$_POST['blog_feed']); |
|
76 | - $blog_obj->setVar('blog_link', Request::getString('blog_link', '', 'POST')); //$_POST['blog_link']); |
|
77 | - $blog_obj->setVar('blog_language', Request::getString('blog_language', '', 'POST')); //$_POST['blog_language']); |
|
78 | - $blog_obj->setVar('blog_charset', Request::getString('blog_charset', '', 'POST')); //$_POST['blog_charset']); |
|
79 | - $blog_obj->setVar('blog_trackback', Request::getString('blog_trackback', '', 'POST')); //$_POST['blog_trackback']); |
|
80 | - $blog_obj->setVar('blog_status', Request::getInt('blog_status', 0, 'POST')); //$_POST['blog_status']); |
|
81 | - |
|
82 | - if (!$blogHandler->insert($blog_obj)) { |
|
83 | - } elseif (!empty(Request::getArray('categories', [], 'POST'))) { |
|
84 | - $blog_id = $blog_obj->getVar('blog_id'); |
|
85 | - if (in_array(0, Request::getArray('categories', [], 'POST'))) { |
|
86 | - $_POST['categories'] = []; |
|
87 | - } |
|
88 | - $blogHandler->setCategories($blog_id, Request::getArray('categories', [], 'POST')); |
|
89 | - } |
|
90 | - $message = planet_constant('AM_DBUPDATED'); |
|
91 | - redirect_header('admin.blog.php', 2, $message); |
|
92 | - |
|
93 | - /* fetch and add a list of blogs to a category */ |
|
94 | - // no break |
|
95 | - case 'add': |
|
96 | - $links = PlanetUtility::planetParseLinks(Request::getArray('links', [], 'POST')); |
|
97 | - $blogs = []; |
|
98 | - foreach ($links as $link) { |
|
99 | - if ($blog_exist = $blogHandler->getCount(new Criteria('blog_feed', $link['url']))) { |
|
100 | - continue; |
|
101 | - } |
|
102 | - $blog_obj = $blogHandler->fetch($link['url']); |
|
103 | - if (!empty($link['title'])) { |
|
104 | - $blog_obj->setVar('blog_title', $link['title']); |
|
105 | - } |
|
106 | - $blogHandler->insert($blog_obj); |
|
107 | - $blogs[] = $blog_obj->getVar('blog_id'); |
|
108 | - unset($blog_obj); |
|
109 | - } |
|
110 | - if (!empty(Request::getArray('categories', [], 'POST'))) { |
|
111 | - $categoryHandler = xoops_getModuleHandler('category', $GLOBALS['moddirname']); |
|
112 | - foreach (Request::getArray('categories', [], 'POST') as $cat_id) { |
|
113 | - $categoryHandler->addBlogs($cat_id, $blogs); |
|
114 | - } |
|
115 | - } |
|
116 | - $message = planet_constant('AM_DBUPDATED'); |
|
117 | - redirect_header('admin.blog.php', 2, $message); |
|
118 | - |
|
119 | - /* update a list of blogs */ |
|
120 | - // no break |
|
121 | - case 'update': |
|
122 | - foreach ($blog_id as $bid) { |
|
123 | - $blog_obj = $blogHandler->fetch($bid); |
|
124 | - if (!$blogHandler->insert($blog_obj)) { |
|
125 | - } |
|
126 | - unset($blog_obj); |
|
127 | - } |
|
128 | - $message = planet_constant('AM_DBUPDATED'); |
|
129 | - redirect_header('admin.blog.php?category=' . $category_id . '&start=' . $start, 2, $message); |
|
130 | - |
|
131 | - /* add a list of blogs to a category */ |
|
132 | - // no break |
|
133 | - case 'register': |
|
134 | - if (!empty(Request::getArray('category_dest', [], 'POST'))) { |
|
135 | - if (!is_array($blog_id)) { |
|
136 | - $blog_id = [$blog_id]; |
|
137 | - } |
|
138 | - $categoryHandler = xoops_getModuleHandler('category', $GLOBALS['moddirname']); |
|
139 | - $categoryHandler->addBlogs(Request::getArray('category_dest', [], 'POST'), $blog_id); |
|
140 | - } |
|
141 | - $message = planet_constant('AM_DBUPDATED'); |
|
142 | - redirect_header('admin.blog.php?category=' . Request::getArray('category_dest', [], 'POST') . '&start=' . $start, 2, $message); |
|
143 | - |
|
144 | - /* remove a list of blogs from a category */ |
|
145 | - // no break |
|
146 | - case 'remove': |
|
147 | - if (!is_array($blog_id)) { |
|
148 | - $blog_id = [$blog_id]; |
|
149 | - } |
|
150 | - if (!empty($category_id)) { |
|
151 | - $categoryHandler = xoops_getModuleHandler('category', $GLOBALS['moddirname']); |
|
152 | - $categoryHandler->removeBlogs($category_id, $blog_id); |
|
153 | - } |
|
154 | - $message = planet_constant('AM_DBUPDATED'); |
|
155 | - redirect_header('admin.blog.php?category=' . $category_id . '&start=' . $start, 2, $message); |
|
156 | - |
|
157 | - /* delete a single blog or a list blogs */ |
|
158 | - // no break |
|
159 | - case 'del': |
|
160 | - if (!is_array($blog_id)) { |
|
161 | - $blog_id = [$blog_id]; |
|
162 | - } |
|
163 | - foreach ($blog_id as $bid) { |
|
164 | - $blog_obj = $blogHandler->get($bid); |
|
165 | - if (!$blogHandler->delete($blog_obj, true)) { |
|
166 | - } |
|
167 | - unset($blog_obj); |
|
168 | - } |
|
169 | - $message = planet_constant('AM_DBUPDATED'); |
|
170 | - redirect_header('admin.blog.php?category=' . $category_id . '&start=' . $start, 2, $message); |
|
171 | - |
|
172 | - /* empty a single blog or a list blogs */ |
|
173 | - // no break |
|
174 | - case 'empty': |
|
175 | - if (!is_array($blog_id)) { |
|
176 | - $blog_id = [$blog_id]; |
|
177 | - } |
|
178 | - foreach ($blog_id as $bid) { |
|
179 | - $blog_obj = $blogHandler->get($bid); |
|
180 | - if (!$blogHandler->do_empty($blog_obj)) { |
|
181 | - } |
|
182 | - } |
|
183 | - $message = planet_constant('AM_DBUPDATED'); |
|
184 | - redirect_header('admin.blog.php?category=' . $category_id . '&start=' . $start, 2, $message); |
|
185 | - |
|
186 | - /* approve a single blog or a list blogs */ |
|
187 | - // no break |
|
188 | - case 'approve': |
|
189 | - if (!is_array($blog_id)) { |
|
190 | - $blog_id = [$blog_id]; |
|
191 | - } |
|
192 | - $criteria = new Criteria('blog_id', '(' . implode(',', $blog_id) . ')', 'IN'); |
|
193 | - $blogHandler->updateAll('blog_status', 1, $criteria, true); |
|
194 | - $message = planet_constant('AM_DBUPDATED'); |
|
195 | - redirect_header('admin.blog.php?category=' . $category_id . '&start=' . $start, 2, $message); |
|
196 | - |
|
197 | - /* mark a single blog or a list blogs as featured */ |
|
198 | - // no break |
|
199 | - case 'feature': |
|
200 | - if (!is_array($blog_id)) { |
|
201 | - $blog_id = [$blog_id]; |
|
202 | - } |
|
203 | - $criteria = new Criteria('blog_id', '(' . implode(',', $blog_id) . ')', 'IN'); |
|
204 | - $blogHandler->updateAll('blog_status', 2, $criteria, true); |
|
205 | - $message = planet_constant('AM_DBUPDATED'); |
|
206 | - redirect_header('admin.blog.php?category=' . $category_id . '&start=' . $start, 2, $message); |
|
207 | - |
|
208 | - /* edit a single blog */ |
|
209 | - // no break |
|
210 | - case 'edit': |
|
211 | - if (!empty(Request::getString('fetch', '', 'POST'))) { |
|
212 | - $blog_obj = $blogHandler->fetch(Request::getString('blog_feed', '', 'POST')); |
|
213 | - $blog_obj->setVar('blog_id', $blog_id); |
|
214 | - } else { |
|
215 | - $blog_obj = $blogHandler->get($blog_id); |
|
216 | - } |
|
217 | - $categories = Request::getArray('categories', [], 'POST'); |
|
218 | - if (empty($categories) && $blog_id > 0) { |
|
219 | - $crit = new Criteria('bc.blog_id', $blog_id); |
|
220 | - $categories = array_keys($categoryHandler->getByBlog($crit)); |
|
221 | - } |
|
222 | - if (empty($categories)) { |
|
223 | - $categories = [0 => _NONE]; |
|
224 | - } |
|
225 | - |
|
226 | - echo "<fieldset><legend style='font-weight: bold; color: #900;'>" . _EDIT . '</legend>'; |
|
227 | - echo '<br>'; |
|
228 | - if (empty($blog_id) && $blog_obj->getVar('blog_feed')) { |
|
229 | - $criteria = new Criteria('blog_feed', $blog_obj->getVar('blog_feed')); |
|
230 | - $blogs_obj = $blogHandler->getList($criteria); |
|
231 | - if (count($blogs_obj) > 0) { |
|
232 | - echo "<div class=\"errorMsg\">" . planet_constant('AM_BLOGEXISTS'); |
|
233 | - foreach (array_keys($blogs_obj) as $bid) { |
|
234 | - echo "<br><a href=\"" . XOOPS_URL . '/modules/' . $GLOBALS['moddirname'] . '/index.php' . URL_DELIMITER . 'b' . $bid . "\" target=\"_blank\">" . $blogs_obj[$bid] . '</a>'; |
|
235 | - } |
|
236 | - echo '</div>'; |
|
237 | - } |
|
238 | - unset($blogs_obj, $criteria); |
|
239 | - } |
|
240 | - include XOOPS_ROOT_PATH . '/modules/' . $GLOBALS['moddirname'] . '/include/form.blog.php'; |
|
241 | - echo '</fieldset>'; |
|
242 | - break; |
|
243 | - |
|
244 | - default: |
|
245 | - |
|
246 | - $crit = new Criteria('1', 1); |
|
247 | - $crit->setSort('cat_order'); |
|
248 | - $crit->setOrder('ASC'); |
|
249 | - $categories = $categoryHandler->getList($crit); |
|
250 | - |
|
251 | - // Display category option form |
|
252 | - $opform = new XoopsSimpleForm('', 'opform', 'admin.blog.php', 'get'); |
|
253 | - $op_select = new XoopsFormSelect('', 'category', $category_id); |
|
254 | - $op_select->setExtra('onchange="document.forms.opform.submit()"'); |
|
255 | - $options = [ |
|
256 | - '0' => _ALL, |
|
257 | - '-1' => planet_constant('MD_ACTIVE'), |
|
258 | - '-2' => planet_constant('MD_FEATURED'), |
|
259 | - '-3' => planet_constant('MD_PENDING') |
|
260 | - ]; |
|
261 | - foreach (array_keys($categories) as $key) { |
|
262 | - $options[$key] = $categories[$key]; |
|
263 | - } |
|
264 | - $op_select->addOptionArray($options); |
|
265 | - $opform->addElement($op_select); |
|
266 | - $opform->display(); |
|
267 | - |
|
268 | - if ($category_id > 0) { |
|
269 | - $criteria = new CriteriaCompo(new Criteria('b.blog_status', 0, '>')); |
|
270 | - $criteria->add(new Criteria('bc.cat_id', $category_id)); |
|
271 | - $blog_count = $blogHandler->getCountByCategory($criteria); |
|
272 | - $criteria->setStart($start); |
|
273 | - $criteria->setLimit($xoopsModuleConfig['list_perpage']); |
|
274 | - $blog_objs = $blogHandler->getByCategory($criteria); |
|
275 | - } else { |
|
276 | - /* All active blogs */ |
|
277 | - if (0 == $category_id) { |
|
278 | - $criteria = new Criteria('1', 1); |
|
279 | - $criteria->setStart($start); |
|
280 | - $criteria->setLimit($xoopsModuleConfig['list_perpage']); |
|
281 | - /* Active blogs */ |
|
282 | - } elseif ($category_id == -1) { |
|
283 | - $criteria = new Criteria('blog_status', 1); |
|
284 | - $criteria->setStart($start); |
|
285 | - $criteria->setLimit($xoopsModuleConfig['list_perpage']); |
|
286 | - /* Featured blogs */ |
|
287 | - } elseif ($category_id == -2) { |
|
288 | - $criteria = new Criteria('blog_status', 2); |
|
289 | - $criteria->setStart($start); |
|
290 | - $criteria->setLimit($xoopsModuleConfig['list_perpage']); |
|
291 | - /* Pending blogs */ |
|
292 | - } else { |
|
293 | - $criteria = new Criteria('blog_status', 0); |
|
294 | - $criteria->setStart($start); |
|
295 | - $criteria->setLimit($xoopsModuleConfig['list_perpage']); |
|
296 | - } |
|
297 | - $blog_count = $blogHandler->getCount($criteria); |
|
298 | - $blog_objs = $blogHandler->getAll($criteria); |
|
299 | - } |
|
300 | - |
|
301 | - echo "<fieldset><legend style='font-weight: bold; color: #900;'>" . planet_constant('AM_LIST') . '</legend>'; |
|
302 | - echo "<br style=\"clear:both\">"; |
|
303 | - |
|
304 | - echo "<form name='list' id='list' method='post' action='" . xoops_getenv('PHP_SELF') . "'>"; |
|
305 | - echo "<table border='0' cellpadding='4' cellspacing='1' width='100%' class='outer'>"; |
|
306 | - echo "<tr align='center'>"; |
|
307 | - echo "<th class='bg3' width='5%'><input name='blog_check' id='blog_check' value='1' type='checkbox' onclick=\"xoopsCheckAll('list', 'blog_check');\"></td>"; |
|
308 | - echo "<th class='bg3'>" . planet_constant('AM_TITLE') . '</td>'; |
|
309 | - echo "<th class='bg3' width='5%'>" . planet_constant('AM_STATUS') . '</td>'; |
|
310 | - echo "<th class='bg3' width='40%'>" . planet_constant('AM_FEED') . '</td>'; |
|
311 | - // echo "<th class='bg3' width='5%'>" . _EDIT . "</td>"; |
|
312 | - // echo "<th class='bg3' width='5%'>" . _DELETE . "</td>"; |
|
313 | - echo "<th class='bg3' width='10%'>" . planet_constant('AM_ACTIONS') . '</td>'; |
|
314 | - echo '</tr>'; |
|
315 | - |
|
316 | - $status = [ |
|
317 | - '0' => planet_constant('MD_PENDING'), |
|
318 | - '1' => planet_constant('MD_ACTIVE'), |
|
319 | - '2' => planet_constant('MD_FEATURED') |
|
320 | - ]; |
|
321 | - foreach (array_keys($blog_objs) as $bid) { |
|
322 | - echo "<tr class='odd' align='left'>"; |
|
323 | - echo "<td align='center'><input name='blog[]' value='" . $bid . "' type='checkbox'></td>"; |
|
324 | - echo "<td><a href='" . XOOPS_URL . '/modules/' . $GLOBALS['moddirname'] . '/index.php' . URL_DELIMITER . 'b' . $bid . "'>" . $blog_objs[$bid]->getVar('blog_title') . '</a></td>'; |
|
325 | - echo "<td align='center'>" . $status[$blog_objs[$bid]->getVar('blog_status')] . '</td>'; |
|
326 | - echo '<td>' . $blog_objs[$bid]->getVar('blog_feed') . '</td>'; |
|
327 | - echo "<td align='center'><a href='admin.blog.php?op=edit&blog=" . $bid . "' title='" . _EDIT . "'><img src='" . $pathIcon16 . "/edit.png '" . "alt='" . _EDIT . " title='" . _EDIT . " </a> |
|
60 | + case 'save': |
|
61 | + |
|
62 | + if ($blog_id) { |
|
63 | + $blog_obj = $blogHandler->get($blog_id); |
|
64 | + } else { |
|
65 | + if ($blog_exists = $blogHandler->getCount(new Criteria('blog_feed', Request::getString('blog_feed', '', 'POST')))) { |
|
66 | + redirect_header('admin.blog.php', 2, planet_constant('AM_BLOGEXISTS')); |
|
67 | + } |
|
68 | + $blog_obj = $blogHandler->create(); |
|
69 | + $blog_obj->setVar('blog_submitter', $xoopsUser->getVar('uid')); |
|
70 | + } |
|
71 | + |
|
72 | + $blog_obj->setVar('blog_title', Request::getString('blog_title', '', 'POST')); //$_POST['blog_title']); |
|
73 | + $blog_obj->setVar('blog_desc', Request::getString('blog_desc', '', 'POST')); //$_POST['blog_desc']); |
|
74 | + $blog_obj->setVar('blog_image', Request::getString('blog_image', '', 'POST')); //$_POST['blog_image']); |
|
75 | + $blog_obj->setVar('blog_feed', Request::getString('blog_feed', '', 'POST')); //$_POST['blog_feed']); |
|
76 | + $blog_obj->setVar('blog_link', Request::getString('blog_link', '', 'POST')); //$_POST['blog_link']); |
|
77 | + $blog_obj->setVar('blog_language', Request::getString('blog_language', '', 'POST')); //$_POST['blog_language']); |
|
78 | + $blog_obj->setVar('blog_charset', Request::getString('blog_charset', '', 'POST')); //$_POST['blog_charset']); |
|
79 | + $blog_obj->setVar('blog_trackback', Request::getString('blog_trackback', '', 'POST')); //$_POST['blog_trackback']); |
|
80 | + $blog_obj->setVar('blog_status', Request::getInt('blog_status', 0, 'POST')); //$_POST['blog_status']); |
|
81 | + |
|
82 | + if (!$blogHandler->insert($blog_obj)) { |
|
83 | + } elseif (!empty(Request::getArray('categories', [], 'POST'))) { |
|
84 | + $blog_id = $blog_obj->getVar('blog_id'); |
|
85 | + if (in_array(0, Request::getArray('categories', [], 'POST'))) { |
|
86 | + $_POST['categories'] = []; |
|
87 | + } |
|
88 | + $blogHandler->setCategories($blog_id, Request::getArray('categories', [], 'POST')); |
|
89 | + } |
|
90 | + $message = planet_constant('AM_DBUPDATED'); |
|
91 | + redirect_header('admin.blog.php', 2, $message); |
|
92 | + |
|
93 | + /* fetch and add a list of blogs to a category */ |
|
94 | + // no break |
|
95 | + case 'add': |
|
96 | + $links = PlanetUtility::planetParseLinks(Request::getArray('links', [], 'POST')); |
|
97 | + $blogs = []; |
|
98 | + foreach ($links as $link) { |
|
99 | + if ($blog_exist = $blogHandler->getCount(new Criteria('blog_feed', $link['url']))) { |
|
100 | + continue; |
|
101 | + } |
|
102 | + $blog_obj = $blogHandler->fetch($link['url']); |
|
103 | + if (!empty($link['title'])) { |
|
104 | + $blog_obj->setVar('blog_title', $link['title']); |
|
105 | + } |
|
106 | + $blogHandler->insert($blog_obj); |
|
107 | + $blogs[] = $blog_obj->getVar('blog_id'); |
|
108 | + unset($blog_obj); |
|
109 | + } |
|
110 | + if (!empty(Request::getArray('categories', [], 'POST'))) { |
|
111 | + $categoryHandler = xoops_getModuleHandler('category', $GLOBALS['moddirname']); |
|
112 | + foreach (Request::getArray('categories', [], 'POST') as $cat_id) { |
|
113 | + $categoryHandler->addBlogs($cat_id, $blogs); |
|
114 | + } |
|
115 | + } |
|
116 | + $message = planet_constant('AM_DBUPDATED'); |
|
117 | + redirect_header('admin.blog.php', 2, $message); |
|
118 | + |
|
119 | + /* update a list of blogs */ |
|
120 | + // no break |
|
121 | + case 'update': |
|
122 | + foreach ($blog_id as $bid) { |
|
123 | + $blog_obj = $blogHandler->fetch($bid); |
|
124 | + if (!$blogHandler->insert($blog_obj)) { |
|
125 | + } |
|
126 | + unset($blog_obj); |
|
127 | + } |
|
128 | + $message = planet_constant('AM_DBUPDATED'); |
|
129 | + redirect_header('admin.blog.php?category=' . $category_id . '&start=' . $start, 2, $message); |
|
130 | + |
|
131 | + /* add a list of blogs to a category */ |
|
132 | + // no break |
|
133 | + case 'register': |
|
134 | + if (!empty(Request::getArray('category_dest', [], 'POST'))) { |
|
135 | + if (!is_array($blog_id)) { |
|
136 | + $blog_id = [$blog_id]; |
|
137 | + } |
|
138 | + $categoryHandler = xoops_getModuleHandler('category', $GLOBALS['moddirname']); |
|
139 | + $categoryHandler->addBlogs(Request::getArray('category_dest', [], 'POST'), $blog_id); |
|
140 | + } |
|
141 | + $message = planet_constant('AM_DBUPDATED'); |
|
142 | + redirect_header('admin.blog.php?category=' . Request::getArray('category_dest', [], 'POST') . '&start=' . $start, 2, $message); |
|
143 | + |
|
144 | + /* remove a list of blogs from a category */ |
|
145 | + // no break |
|
146 | + case 'remove': |
|
147 | + if (!is_array($blog_id)) { |
|
148 | + $blog_id = [$blog_id]; |
|
149 | + } |
|
150 | + if (!empty($category_id)) { |
|
151 | + $categoryHandler = xoops_getModuleHandler('category', $GLOBALS['moddirname']); |
|
152 | + $categoryHandler->removeBlogs($category_id, $blog_id); |
|
153 | + } |
|
154 | + $message = planet_constant('AM_DBUPDATED'); |
|
155 | + redirect_header('admin.blog.php?category=' . $category_id . '&start=' . $start, 2, $message); |
|
156 | + |
|
157 | + /* delete a single blog or a list blogs */ |
|
158 | + // no break |
|
159 | + case 'del': |
|
160 | + if (!is_array($blog_id)) { |
|
161 | + $blog_id = [$blog_id]; |
|
162 | + } |
|
163 | + foreach ($blog_id as $bid) { |
|
164 | + $blog_obj = $blogHandler->get($bid); |
|
165 | + if (!$blogHandler->delete($blog_obj, true)) { |
|
166 | + } |
|
167 | + unset($blog_obj); |
|
168 | + } |
|
169 | + $message = planet_constant('AM_DBUPDATED'); |
|
170 | + redirect_header('admin.blog.php?category=' . $category_id . '&start=' . $start, 2, $message); |
|
171 | + |
|
172 | + /* empty a single blog or a list blogs */ |
|
173 | + // no break |
|
174 | + case 'empty': |
|
175 | + if (!is_array($blog_id)) { |
|
176 | + $blog_id = [$blog_id]; |
|
177 | + } |
|
178 | + foreach ($blog_id as $bid) { |
|
179 | + $blog_obj = $blogHandler->get($bid); |
|
180 | + if (!$blogHandler->do_empty($blog_obj)) { |
|
181 | + } |
|
182 | + } |
|
183 | + $message = planet_constant('AM_DBUPDATED'); |
|
184 | + redirect_header('admin.blog.php?category=' . $category_id . '&start=' . $start, 2, $message); |
|
185 | + |
|
186 | + /* approve a single blog or a list blogs */ |
|
187 | + // no break |
|
188 | + case 'approve': |
|
189 | + if (!is_array($blog_id)) { |
|
190 | + $blog_id = [$blog_id]; |
|
191 | + } |
|
192 | + $criteria = new Criteria('blog_id', '(' . implode(',', $blog_id) . ')', 'IN'); |
|
193 | + $blogHandler->updateAll('blog_status', 1, $criteria, true); |
|
194 | + $message = planet_constant('AM_DBUPDATED'); |
|
195 | + redirect_header('admin.blog.php?category=' . $category_id . '&start=' . $start, 2, $message); |
|
196 | + |
|
197 | + /* mark a single blog or a list blogs as featured */ |
|
198 | + // no break |
|
199 | + case 'feature': |
|
200 | + if (!is_array($blog_id)) { |
|
201 | + $blog_id = [$blog_id]; |
|
202 | + } |
|
203 | + $criteria = new Criteria('blog_id', '(' . implode(',', $blog_id) . ')', 'IN'); |
|
204 | + $blogHandler->updateAll('blog_status', 2, $criteria, true); |
|
205 | + $message = planet_constant('AM_DBUPDATED'); |
|
206 | + redirect_header('admin.blog.php?category=' . $category_id . '&start=' . $start, 2, $message); |
|
207 | + |
|
208 | + /* edit a single blog */ |
|
209 | + // no break |
|
210 | + case 'edit': |
|
211 | + if (!empty(Request::getString('fetch', '', 'POST'))) { |
|
212 | + $blog_obj = $blogHandler->fetch(Request::getString('blog_feed', '', 'POST')); |
|
213 | + $blog_obj->setVar('blog_id', $blog_id); |
|
214 | + } else { |
|
215 | + $blog_obj = $blogHandler->get($blog_id); |
|
216 | + } |
|
217 | + $categories = Request::getArray('categories', [], 'POST'); |
|
218 | + if (empty($categories) && $blog_id > 0) { |
|
219 | + $crit = new Criteria('bc.blog_id', $blog_id); |
|
220 | + $categories = array_keys($categoryHandler->getByBlog($crit)); |
|
221 | + } |
|
222 | + if (empty($categories)) { |
|
223 | + $categories = [0 => _NONE]; |
|
224 | + } |
|
225 | + |
|
226 | + echo "<fieldset><legend style='font-weight: bold; color: #900;'>" . _EDIT . '</legend>'; |
|
227 | + echo '<br>'; |
|
228 | + if (empty($blog_id) && $blog_obj->getVar('blog_feed')) { |
|
229 | + $criteria = new Criteria('blog_feed', $blog_obj->getVar('blog_feed')); |
|
230 | + $blogs_obj = $blogHandler->getList($criteria); |
|
231 | + if (count($blogs_obj) > 0) { |
|
232 | + echo "<div class=\"errorMsg\">" . planet_constant('AM_BLOGEXISTS'); |
|
233 | + foreach (array_keys($blogs_obj) as $bid) { |
|
234 | + echo "<br><a href=\"" . XOOPS_URL . '/modules/' . $GLOBALS['moddirname'] . '/index.php' . URL_DELIMITER . 'b' . $bid . "\" target=\"_blank\">" . $blogs_obj[$bid] . '</a>'; |
|
235 | + } |
|
236 | + echo '</div>'; |
|
237 | + } |
|
238 | + unset($blogs_obj, $criteria); |
|
239 | + } |
|
240 | + include XOOPS_ROOT_PATH . '/modules/' . $GLOBALS['moddirname'] . '/include/form.blog.php'; |
|
241 | + echo '</fieldset>'; |
|
242 | + break; |
|
243 | + |
|
244 | + default: |
|
245 | + |
|
246 | + $crit = new Criteria('1', 1); |
|
247 | + $crit->setSort('cat_order'); |
|
248 | + $crit->setOrder('ASC'); |
|
249 | + $categories = $categoryHandler->getList($crit); |
|
250 | + |
|
251 | + // Display category option form |
|
252 | + $opform = new XoopsSimpleForm('', 'opform', 'admin.blog.php', 'get'); |
|
253 | + $op_select = new XoopsFormSelect('', 'category', $category_id); |
|
254 | + $op_select->setExtra('onchange="document.forms.opform.submit()"'); |
|
255 | + $options = [ |
|
256 | + '0' => _ALL, |
|
257 | + '-1' => planet_constant('MD_ACTIVE'), |
|
258 | + '-2' => planet_constant('MD_FEATURED'), |
|
259 | + '-3' => planet_constant('MD_PENDING') |
|
260 | + ]; |
|
261 | + foreach (array_keys($categories) as $key) { |
|
262 | + $options[$key] = $categories[$key]; |
|
263 | + } |
|
264 | + $op_select->addOptionArray($options); |
|
265 | + $opform->addElement($op_select); |
|
266 | + $opform->display(); |
|
267 | + |
|
268 | + if ($category_id > 0) { |
|
269 | + $criteria = new CriteriaCompo(new Criteria('b.blog_status', 0, '>')); |
|
270 | + $criteria->add(new Criteria('bc.cat_id', $category_id)); |
|
271 | + $blog_count = $blogHandler->getCountByCategory($criteria); |
|
272 | + $criteria->setStart($start); |
|
273 | + $criteria->setLimit($xoopsModuleConfig['list_perpage']); |
|
274 | + $blog_objs = $blogHandler->getByCategory($criteria); |
|
275 | + } else { |
|
276 | + /* All active blogs */ |
|
277 | + if (0 == $category_id) { |
|
278 | + $criteria = new Criteria('1', 1); |
|
279 | + $criteria->setStart($start); |
|
280 | + $criteria->setLimit($xoopsModuleConfig['list_perpage']); |
|
281 | + /* Active blogs */ |
|
282 | + } elseif ($category_id == -1) { |
|
283 | + $criteria = new Criteria('blog_status', 1); |
|
284 | + $criteria->setStart($start); |
|
285 | + $criteria->setLimit($xoopsModuleConfig['list_perpage']); |
|
286 | + /* Featured blogs */ |
|
287 | + } elseif ($category_id == -2) { |
|
288 | + $criteria = new Criteria('blog_status', 2); |
|
289 | + $criteria->setStart($start); |
|
290 | + $criteria->setLimit($xoopsModuleConfig['list_perpage']); |
|
291 | + /* Pending blogs */ |
|
292 | + } else { |
|
293 | + $criteria = new Criteria('blog_status', 0); |
|
294 | + $criteria->setStart($start); |
|
295 | + $criteria->setLimit($xoopsModuleConfig['list_perpage']); |
|
296 | + } |
|
297 | + $blog_count = $blogHandler->getCount($criteria); |
|
298 | + $blog_objs = $blogHandler->getAll($criteria); |
|
299 | + } |
|
300 | + |
|
301 | + echo "<fieldset><legend style='font-weight: bold; color: #900;'>" . planet_constant('AM_LIST') . '</legend>'; |
|
302 | + echo "<br style=\"clear:both\">"; |
|
303 | + |
|
304 | + echo "<form name='list' id='list' method='post' action='" . xoops_getenv('PHP_SELF') . "'>"; |
|
305 | + echo "<table border='0' cellpadding='4' cellspacing='1' width='100%' class='outer'>"; |
|
306 | + echo "<tr align='center'>"; |
|
307 | + echo "<th class='bg3' width='5%'><input name='blog_check' id='blog_check' value='1' type='checkbox' onclick=\"xoopsCheckAll('list', 'blog_check');\"></td>"; |
|
308 | + echo "<th class='bg3'>" . planet_constant('AM_TITLE') . '</td>'; |
|
309 | + echo "<th class='bg3' width='5%'>" . planet_constant('AM_STATUS') . '</td>'; |
|
310 | + echo "<th class='bg3' width='40%'>" . planet_constant('AM_FEED') . '</td>'; |
|
311 | + // echo "<th class='bg3' width='5%'>" . _EDIT . "</td>"; |
|
312 | + // echo "<th class='bg3' width='5%'>" . _DELETE . "</td>"; |
|
313 | + echo "<th class='bg3' width='10%'>" . planet_constant('AM_ACTIONS') . '</td>'; |
|
314 | + echo '</tr>'; |
|
315 | + |
|
316 | + $status = [ |
|
317 | + '0' => planet_constant('MD_PENDING'), |
|
318 | + '1' => planet_constant('MD_ACTIVE'), |
|
319 | + '2' => planet_constant('MD_FEATURED') |
|
320 | + ]; |
|
321 | + foreach (array_keys($blog_objs) as $bid) { |
|
322 | + echo "<tr class='odd' align='left'>"; |
|
323 | + echo "<td align='center'><input name='blog[]' value='" . $bid . "' type='checkbox'></td>"; |
|
324 | + echo "<td><a href='" . XOOPS_URL . '/modules/' . $GLOBALS['moddirname'] . '/index.php' . URL_DELIMITER . 'b' . $bid . "'>" . $blog_objs[$bid]->getVar('blog_title') . '</a></td>'; |
|
325 | + echo "<td align='center'>" . $status[$blog_objs[$bid]->getVar('blog_status')] . '</td>'; |
|
326 | + echo '<td>' . $blog_objs[$bid]->getVar('blog_feed') . '</td>'; |
|
327 | + echo "<td align='center'><a href='admin.blog.php?op=edit&blog=" . $bid . "' title='" . _EDIT . "'><img src='" . $pathIcon16 . "/edit.png '" . "alt='" . _EDIT . " title='" . _EDIT . " </a> |
|
328 | 328 | <a href='admin.blog.php?op=del&blog=" . $bid . "' title='" . _DELETE . "'><img src='" . $pathIcon16 . "/delete.png '" . " alt='" . _EDIT . " title='" . _DELETE . " </a> |
329 | 329 | <a href='admin.blog.php?op=empty&blog=" . $bid . "' title='" . planet_constant('MD_EMPTY_BLOG') . "'><img src='" . $pathIcon16 . "/empty.png '" . " alt='" . _EDIT . " title='" . planet_constant('MD_EMPTY_BLOG') . '</a></td>'; |
330 | 330 | |
331 | - echo '</tr>'; |
|
332 | - } |
|
333 | - echo "<tr class='even' align='center'>"; |
|
334 | - echo "<td colspan='7'>"; |
|
335 | - echo "<select name='op' onChange='if (this.options[this.selectedIndex].value==\"register\") {setVisible(\"catdiv\");} else {setHidden(\"catdiv\");}'>"; |
|
336 | - echo "<option value=''>" . _SELECT . '</option>'; |
|
337 | - echo "<option value='del'>" . _DELETE . '</option>'; |
|
338 | - echo "<option value='empty'>" . planet_constant('MD_EMPTY_BLOG') . '</option>'; |
|
339 | - echo "<option value='register'>" . planet_constant('AM_REGISTER') . '</option>'; |
|
340 | - if ($category_id > 0) { |
|
341 | - echo "<option value='remove'>" . planet_constant('AM_REMOVE') . '</option>'; |
|
342 | - } |
|
343 | - echo "<option value='approve'>" . planet_constant('AM_APPROVE') . '</option>'; |
|
344 | - echo "<option value='feature'>" . planet_constant('AM_FEATURE') . '</option>'; |
|
345 | - echo "<option value='update'>" . planet_constant('AM_UPDATE') . '</option>'; |
|
346 | - |
|
347 | - echo "<option value='pending'>" . planet_constant('AM_PENDING') . '</option>'; |
|
348 | - echo "<option value='active'>" . planet_constant('AM_ACTIVE') . '</option>'; |
|
349 | - |
|
350 | - echo '</select>'; |
|
351 | - echo "<div id='catdiv' style='visibility:hidden;display:inline;'>"; |
|
352 | - echo "<select name='category_dest'>"; |
|
353 | - echo "<option value=''>" . _SELECT . '</option>'; |
|
354 | - foreach ($categories as $cid => $name) { |
|
355 | - echo "<option value='" . $cid . "'>" . $name . '</option>'; |
|
356 | - } |
|
357 | - echo '</select>'; |
|
358 | - echo '</div>'; |
|
359 | - echo "<input name='start' value='" . $start . "' type='hidden'>"; |
|
360 | - echo "<input name='category' value='" . $category_id . "' type='hidden'>"; |
|
361 | - echo "<input name='submit' value='" . _SUBMIT . "' type='submit'>"; |
|
362 | - echo "<input name='' value='" . _CANCEL . "' type='reset'>"; |
|
363 | - echo '</td>'; |
|
364 | - echo '</tr>'; |
|
365 | - if ($blog_count > $xoopsModuleConfig['list_perpage']) { |
|
366 | - include XOOPS_ROOT_PATH . '/class/pagenav.php'; |
|
367 | - $nav = new XoopsPageNav($blog_count, $xoopsModuleConfig['list_perpage'], $start, 'start', 'category=' . $category_id); |
|
368 | - $pagenav = $nav->renderNav(4); |
|
369 | - echo "<tr align='right'><td colspan='6'>" . $pagenav . '</td></tr>'; |
|
370 | - } |
|
371 | - echo '</table></form>'; |
|
372 | - echo "</fieldset><br style='clear:both;'>"; |
|
373 | - |
|
374 | - if (empty($start) && empty($category_id)) { |
|
375 | - $form = new XoopsThemeForm(_ADD, 'edit', xoops_getenv('PHP_SELF'), 'post', true); |
|
376 | - $form->addElement(new XoopsFormText(planet_constant('AM_FEED'), 'blog_feed', 50, 255), true); |
|
377 | - $form->addElement(new XoopsFormHidden('op', 'edit')); |
|
378 | - $button_tray = new XoopsFormElementTray('', ''); |
|
379 | - $butt_save = new XoopsFormButton('', 'fetch', _SUBMIT, 'submit'); |
|
380 | - $button_tray->addElement($butt_save); |
|
381 | - $butt_cancel = new XoopsFormButton('', '', _CANCEL, 'reset'); |
|
382 | - $button_tray->addElement($butt_cancel); |
|
383 | - $form->addElement($button_tray); |
|
384 | - |
|
385 | - $form_add = new XoopsThemeForm(_ADD, 'add', xoops_getenv('PHP_SELF'), 'post', true); |
|
386 | - $form_add->addElement(new XoopsFormTextArea(planet_constant('AM_FEED'), 'links')); |
|
387 | - $form_add->addElement(new XoopsFormHidden('op', 'add')); |
|
388 | - $button_tray = new XoopsFormElementTray('', ''); |
|
389 | - $butt_save = new XoopsFormButton('', 'submit', _SUBMIT, 'submit'); |
|
390 | - $button_tray->addElement($butt_save); |
|
391 | - $butt_cancel = new XoopsFormButton('', '', _CANCEL, 'reset'); |
|
392 | - $button_tray->addElement($butt_cancel); |
|
393 | - $form_add->addElement($button_tray); |
|
394 | - |
|
395 | - echo "<fieldset><legend style='font-weight: bold; color: #900;'>" . _ADD . '</legend>'; |
|
396 | - echo '<br>'; |
|
397 | - $form->display(); |
|
398 | - $form_add->display(); |
|
399 | - echo '</fieldset>'; |
|
400 | - } |
|
401 | - break; |
|
331 | + echo '</tr>'; |
|
332 | + } |
|
333 | + echo "<tr class='even' align='center'>"; |
|
334 | + echo "<td colspan='7'>"; |
|
335 | + echo "<select name='op' onChange='if (this.options[this.selectedIndex].value==\"register\") {setVisible(\"catdiv\");} else {setHidden(\"catdiv\");}'>"; |
|
336 | + echo "<option value=''>" . _SELECT . '</option>'; |
|
337 | + echo "<option value='del'>" . _DELETE . '</option>'; |
|
338 | + echo "<option value='empty'>" . planet_constant('MD_EMPTY_BLOG') . '</option>'; |
|
339 | + echo "<option value='register'>" . planet_constant('AM_REGISTER') . '</option>'; |
|
340 | + if ($category_id > 0) { |
|
341 | + echo "<option value='remove'>" . planet_constant('AM_REMOVE') . '</option>'; |
|
342 | + } |
|
343 | + echo "<option value='approve'>" . planet_constant('AM_APPROVE') . '</option>'; |
|
344 | + echo "<option value='feature'>" . planet_constant('AM_FEATURE') . '</option>'; |
|
345 | + echo "<option value='update'>" . planet_constant('AM_UPDATE') . '</option>'; |
|
346 | + |
|
347 | + echo "<option value='pending'>" . planet_constant('AM_PENDING') . '</option>'; |
|
348 | + echo "<option value='active'>" . planet_constant('AM_ACTIVE') . '</option>'; |
|
349 | + |
|
350 | + echo '</select>'; |
|
351 | + echo "<div id='catdiv' style='visibility:hidden;display:inline;'>"; |
|
352 | + echo "<select name='category_dest'>"; |
|
353 | + echo "<option value=''>" . _SELECT . '</option>'; |
|
354 | + foreach ($categories as $cid => $name) { |
|
355 | + echo "<option value='" . $cid . "'>" . $name . '</option>'; |
|
356 | + } |
|
357 | + echo '</select>'; |
|
358 | + echo '</div>'; |
|
359 | + echo "<input name='start' value='" . $start . "' type='hidden'>"; |
|
360 | + echo "<input name='category' value='" . $category_id . "' type='hidden'>"; |
|
361 | + echo "<input name='submit' value='" . _SUBMIT . "' type='submit'>"; |
|
362 | + echo "<input name='' value='" . _CANCEL . "' type='reset'>"; |
|
363 | + echo '</td>'; |
|
364 | + echo '</tr>'; |
|
365 | + if ($blog_count > $xoopsModuleConfig['list_perpage']) { |
|
366 | + include XOOPS_ROOT_PATH . '/class/pagenav.php'; |
|
367 | + $nav = new XoopsPageNav($blog_count, $xoopsModuleConfig['list_perpage'], $start, 'start', 'category=' . $category_id); |
|
368 | + $pagenav = $nav->renderNav(4); |
|
369 | + echo "<tr align='right'><td colspan='6'>" . $pagenav . '</td></tr>'; |
|
370 | + } |
|
371 | + echo '</table></form>'; |
|
372 | + echo "</fieldset><br style='clear:both;'>"; |
|
373 | + |
|
374 | + if (empty($start) && empty($category_id)) { |
|
375 | + $form = new XoopsThemeForm(_ADD, 'edit', xoops_getenv('PHP_SELF'), 'post', true); |
|
376 | + $form->addElement(new XoopsFormText(planet_constant('AM_FEED'), 'blog_feed', 50, 255), true); |
|
377 | + $form->addElement(new XoopsFormHidden('op', 'edit')); |
|
378 | + $button_tray = new XoopsFormElementTray('', ''); |
|
379 | + $butt_save = new XoopsFormButton('', 'fetch', _SUBMIT, 'submit'); |
|
380 | + $button_tray->addElement($butt_save); |
|
381 | + $butt_cancel = new XoopsFormButton('', '', _CANCEL, 'reset'); |
|
382 | + $button_tray->addElement($butt_cancel); |
|
383 | + $form->addElement($button_tray); |
|
384 | + |
|
385 | + $form_add = new XoopsThemeForm(_ADD, 'add', xoops_getenv('PHP_SELF'), 'post', true); |
|
386 | + $form_add->addElement(new XoopsFormTextArea(planet_constant('AM_FEED'), 'links')); |
|
387 | + $form_add->addElement(new XoopsFormHidden('op', 'add')); |
|
388 | + $button_tray = new XoopsFormElementTray('', ''); |
|
389 | + $butt_save = new XoopsFormButton('', 'submit', _SUBMIT, 'submit'); |
|
390 | + $button_tray->addElement($butt_save); |
|
391 | + $butt_cancel = new XoopsFormButton('', '', _CANCEL, 'reset'); |
|
392 | + $button_tray->addElement($butt_cancel); |
|
393 | + $form_add->addElement($button_tray); |
|
394 | + |
|
395 | + echo "<fieldset><legend style='font-weight: bold; color: #900;'>" . _ADD . '</legend>'; |
|
396 | + echo '<br>'; |
|
397 | + $form->display(); |
|
398 | + $form_add->display(); |
|
399 | + echo '</fieldset>'; |
|
400 | + } |
|
401 | + break; |
|
402 | 402 | } |
403 | 403 | |
404 | 404 | xoops_cp_footer(); |