source: temp/test-xoops.ec-cube.net/html/modules/rssj/admin/index.php @ 405

Revision 405, 12.4 KB checked in by root, 20 years ago (diff)
Line 
1<?php
2###############################################################################
3##                RSSFit - Extendable XML news feed generator                ##
4##                   Copyright (c) 2004 NS Tai (aka tuff)                    ##
5##                       <http://www.brandycoke.com/>                        ##
6##                      Modified By 2005 CACHE RSSfitJ                       ##
7##                       <http://gyakubiki.kir.jp/>                          ##
8###############################################################################
9##                    XOOPS - PHP Content Management System                  ##
10##                       Copyright (c) 2000 XOOPS.org                        ##
11##                          <http://www.xoops.org/>                          ##
12###############################################################################
13##  This program is free software; you can redistribute it and/or modify     ##
14##  it under the terms of the GNU General Public License as published by     ##
15##  the Free Software Foundation; either version 2 of the License, or        ##
16##  (at your option) any later version.                                      ##
17##                                                                           ##
18##  You may not change or alter any portion of this comment or credits       ##
19##  of supporting developers from this source code or any supporting         ##
20##  source code which is considered copyrighted (c) material of the          ##
21##  original comment or credit authors.                                      ##
22##                                                                           ##
23##  This program is distributed in the hope that it will be useful,          ##
24##  but WITHOUT ANY WARRANTY; without even the implied warranty of           ##
25##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            ##
26##  GNU General Public License for more details.                             ##
27##                                                                           ##
28##  You should have received a copy of the GNU General Public License        ##
29##  along with this program; if not, write to the Free Software              ##
30##  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA ##
31###############################################################################
32##  Author of this file: CACHE                                               ##
33##  URL: http://gyakubiki.kir.jp/                                            ##
34##  Project: RSSFitJ                                                         ##
35###############################################################################
36include 'admin_header.php';
37include_once XOOPS_ROOT_PATH.'/class/xoopsformloader.php';
38define('_THIS_PAGE', RSSFITJ_URL.'admin/index.php');
39$op = '';
40if( isset($_POST['op']) ){
41    $op = trim($_POST['op']);
42}elseif( isset($_GET['op']) ){
43    $op = trim($_GET['op']);
44}
45
46switch($op){
47default:
48    adminHtmlHeader();
49break;
50
51case 'intro':
52    adminHtmlHeader();
53    $intro = grabIntro();
54    $myts =& MyTextSanitizer::getInstance();
55    $title = $myts->makeTboxData4Edit($intro['title']);
56    $content = $myts->makeTareaData4Edit($intro['content']);
57    $text = new XoopsFormText(_AM_EDIT_INTRO_TITLE, 'title', 50, 255, $title);
58    $text->setDescription(_AM_EDIT_INTRO_TITLE_DESC);
59    $tarea = new XoopsFormDhtmlTextArea(_AM_EDIT_INTRO_TEXT, 'content', $content, 15, 60);
60    $tarea->setDescription(_AM_EDIT_INTRO_TEXT_DESC);
61    $button = new XoopsFormButton('', 'submit', _AM_SUBMIT, 'submit');
62    $hidden = new XoopsFormHidden('op', 'saveintro');
63    $form = new XoopsThemeForm(_AM_EDIT_INTRO, 'editintro', _THIS_PAGE);
64    $form->addElement($text);
65    $form->addElement($tarea);
66    $form->addElement($button);
67    $form->addElement($hidden);
68    $form->display();
69break;
70
71case 'saveintro':
72    $myts =& MyTextSanitizer::getInstance();
73    $title = $myts->makeTboxData4Save($_POST['title']);
74    $content = $myts->makeTareaData4Save($_POST['content']);
75    $sql = 'UPDATE '.$xoopsDB->prefix('rssfitJ_misc')." SET misc_title = '".$title."', misc_content = '".$content."'  WHERE misc_category = 'intro'";
76    if( !$result = $xoopsDB->query($sql) ){
77        $err = $xoopsDB->error();
78        adminHtmlHeader();
79        echo $err.'<br />'.$sql;
80    }else{
81        redirect_header(_THIS_PAGE.'?op=intro', 0, _AM_DBUPDATED);
82    }
83break;
84
85case 'plugins':
86    $ret = '';
87    adminHtmlHeader();
88    // activated plugins
89    $criteria = new Criteria('rssfj_activated', 1);
90    $criteria->setSort('rssfj_order');
91    if( $plugins =& $rssfj_mgr->getObjects($criteria) ){
92        $ret .= "<table class='outer' width='100%'>\n"
93            ."<tr><th colspan='5'>"._AM_PLUGIN_ACTIVATED."</th></tr>\n"
94            ."<tr>\n<td class='head' align='center' width='33%'>"._AM_PLUGIN_FILENAME."</td>\n"
95            ."<td class='head' align='center'>"._AM_PLUGIN_MODNAME."</td>\n"
96            ."<td class='head' align='center'>"._AM_PLUGIN_SHOWXENTRIES."</td>\n"
97            ."<td class='head' align='center'>"._AM_PLUGIN_ORDER."</td>\n"
98            ."<td class='head' align='center' width='20%'>"._AM_ACTION."</td>\n"
99            ."</tr>\n";
100        foreach( $plugins as $p ){
101            if( $handler =& $rssfj_mgr->checkPlugin($p) ){
102                $id = $p->getVar('rssfj_conf_id');
103                $entries =& new XoopsFormText('', 'rssfj_grab['.$id.']', 3, 2, $p->getVar('rssfj_grab'));
104                $order =& new XoopsFormText('', 'rssfj_order['.$id.']', 3, 2, $p->getVar('rssfj_order'));
105                $action =& new XoopsFormSelect('', 'action['.$id.']', '');
106                $action->addOption('', _SELECT);
107                $action->addOption('d', _AM_PLUGIN_DEACTIVATE);
108                $action->addOption('u', _AM_PLUGIN_UNINSTALL);
109                $ret .= "<tr>\n"
110                    ."<td class='odd' align='center'>"
111                        .$p->getVar('rssfj_filename')."</td>\n"
112                    ."<td class='even' align='center'>"
113                        .$handler->modname."</td>\n"
114                    ."<td class='odd' align='center'>"
115                        .$entries->render()."</td>\n"
116                    ."<td class='odd' align='center'>"
117                        .$order->render()."</td>\n"
118                    ."<td class='odd' align='center'>"
119                        .$action->render()."</td>\n"
120                    ;
121                $ret .= "</tr>\n";
122            }else{
123                $rssfj_mgr->forceDeactivate($p);
124            }
125        }
126        $ret .= "</table>\n";
127    }
128
129    // inactive plugins
130    if( $plugins =& $rssfj_mgr->getObjects(new Criteria('rssfj_activated', 0)) ){
131        $ret .= "<br />\n<table class='outer' width='100%'>\n"
132            ."<tr><th colspan='3'>"._AM_PLUGIN_INACTIVE."</th></tr>\n"
133            ."<tr>\n<td class='head' align='center' width='33%'>"._AM_PLUGIN_FILENAME."</td>\n"
134            ."<td class='head' align='center'>"._AM_PLUGIN_MODNAME."</td>\n"
135            ."<td class='head' align='center' width='20%'>"._AM_ACTION."</td>\n"
136            ."</tr>\n";
137        foreach( $plugins as $p ){
138            $id = $p->getVar('rssfj_conf_id');
139            $action =& new XoopsFormSelect('', 'action['.$id.']', '');
140            $action->addOption('', _SELECT);
141            $ret .= "<tr>\n"
142                ."<td class='odd' align='center'>"
143                    .$p->getVar('rssfj_filename')."</td>\n"
144                ."<td class='even' align='center'>";
145            if( $handler =& $rssfj_mgr->checkPlugin($p) ){
146                $ret .= $handler->modname;
147                $action->addOption('a', _AM_PLUGIN_ACTIVATE);
148            }else{
149                if( count($p->getErrors()) > 0 ){
150                    $ret .= '<b>'._ERRORS."</b>\n";
151                    foreach( $p->getErrors() as $e ){
152                        $ret .= '<br />'.$e;
153                    }
154                }else{
155                    $ret .= '<b>'._AM_PLUGIN_UNKNOWNERROR."</b>";
156                }
157            }
158            $ret .= "</td>\n";
159            $action->addOption('u', _AM_PLUGIN_UNINSTALL);
160            $ret .= "<td class='odd' align='center'>"
161                .$action->render()."</td>\n";
162        }
163        $ret .= "</table>\n";
164    }
165
166    // Non-installed plugins
167    if( !$filelist =& $rssfj_mgr->getPluginFileList() ){
168        $filelist = array();
169    }
170    $list =& XoopsLists::getFileListAsArray(RSSFITJ_ROOT_PATH.'plugins');
171    $installable = array();
172    foreach( $list as $f ){
173        if( preg_match('/rssfitj\.+[a-zA-Z0-9_]+\.php/', $f) && !in_array($f, $filelist) ){
174            $installable[] = $f;
175        }
176    }
177    if( count($installable) > 0 ){
178        $ret .= "<br />\n<table class='outer' width='100%'>\n"
179            ."<tr><th colspan='3'>"._AM_PLUGIN_NONINSTALLED."</th></tr>\n"
180            ."<tr>\n<td class='head' align='center' width='33%'>"._AM_PLUGIN_FILENAME."</td>\n"
181            ."<td class='head' align='center'>"._AM_PLUGIN_MODNAME."</td>\n"
182            ."<td class='head' align='center' width='20%'>"._AM_PLUGIN_INSTALL."</td>\n"
183            ."</tr>\n";
184        foreach( $installable as $i ){
185            $action =& new XoopsFormCheckbox('', 'install['.$i.']');
186            $action->addOption('i', ' ');
187            $ret .= "<tr>\n"
188                ."<td class='odd' align='center'>"
189                    .$i."</td>\n"
190                ."<td class='even' align='center'>";
191            $p =& $rssfj_mgr->create();
192            $p->setVar('rssfj_filename', $i);
193            if( $handler =& $rssfj_mgr->checkPlugin($p) ){
194                $ret .= $handler->modname;
195            }else{
196                if( count($p->getErrors()) > 0 ){
197                    $ret .= '<b>'._ERRORS."</b>\n";
198                    foreach( $p->getErrors() as $e ){
199                        $ret .= '<br />'.$e;
200                    }
201                }else{
202                    $ret .= '<b>'._AM_PLUGIN_UNKNOWNERROR."</b>";
203                }
204                $action->setExtra('disabled="disabled"');
205            }
206            $ret .= "</td>\n";
207            $ret .= "<td class='odd' align='center'>"
208                .$action->render()."</td>\n";
209        }
210        $ret .= "</table>\n";
211    }
212   
213    if( !empty($ret) ){
214        $button = new XoopsFormButton('', 'submit', _AM_SUBMIT, 'submit');
215        $hidden = new XoopsFormHidden('op', 'saveplugins');
216        $ret = "<form action='"._THIS_PAGE."' method='post'>\n".$ret
217                ."<br /><table class='outer' width='100%'><tr><td class='foot' align='center'>\n"
218                .$button->render()."\n".$hidden->render()."\n</td></tr></table></form>"
219                ;
220        echo $ret;
221    }
222break;
223
224case 'saveplugins':
225    extract($_POST);
226    $err = '';
227    if (isset($action))
228        $keys = array_keys($action);
229    else
230        $keys = array();
231    foreach( $keys as $k ){
232        $plugin =& $rssfj_mgr->get($k);
233        if( isset($rssfj_grab[$k]) ){
234            $plugin->setVar('rssfj_grab', $rssfj_grab[$k]);
235        }
236        if (isset($rssfj_order[$k]))
237            $plugin->setVar('rssfj_order', $rssfj_order[$k]);
238        switch($action[$k]){
239        default:
240            $result = $rssfj_mgr->insert($plugin);
241        break;
242
243        case 'u':   // uninstall
244            $result = $rssfj_mgr->delete($plugin);
245        break;
246       
247        case 'd':   // deactivate
248            $plugin->setVar('rssfj_activated', 0);
249            $result = $rssfj_mgr->insert($plugin);
250        break;
251       
252        case 'a':   // activate
253            $plugin->setVar('rssfj_activated', 1);
254            $result = $rssfj_mgr->insert($plugin);
255        break;
256        }
257        if( !$result ){
258            $err .= $plugin->getHtmlErrors();
259        }
260    }
261    if( !empty($install) ){
262        $files = array_keys($install);
263        foreach( $files as $f ){
264            $p =& $rssfj_mgr->create();
265            $p->setVar('rssfj_filename', $f);
266            $p->setVar('rssfj_activated', 1);
267            $p->setVar('rssfj_grab', $xoopsModuleConfig['plugin_entries']);
268            if( !$result = $rssfj_mgr->insert($p) ){
269                $err .= $p->getHtmlErrors();
270            }
271        }
272    }
273    if( !empty($err) ){
274        adminHtmlHeader();
275        echo $err;
276    }else{
277        redirect_header(_THIS_PAGE.'?op=plugins', 0, _AM_DBUPDATED);
278    }
279break;
280
281case 'param' :
282    $ret = '';
283    adminHtmlHeader();
284    // activated plugins
285    $criteria = new Criteria('rssfj_activated', 1);
286    $criteria->setSort('rssfj_order');
287    if( $plugins =& $rssfj_mgr->getObjects($criteria) ){
288        $ret .= "<table class='outer' width='100%'>\n"
289            ."<tr><th colspan='5'>"._AM_PLUGIN_ACTIVATED."</th></tr>\n"
290            ."<tr>\n<td class='head' align='center' width='33%'>"._AM_PLUGIN_FILENAME."</td>\n"
291            ."<td class='head' align='center'>"._AM_PLUGIN_MODNAME."</td>\n"
292            ."<td class='head' align='center'>"._AM_PLUGIN_PARAMETERS."</td>\n"
293            ."</tr>\n";
294        foreach( $plugins as $p ){
295            if( $handler =& $rssfj_mgr->checkPlugin($p) ){
296                $id = $p->getVar('rssfj_conf_id');
297                $entries =& new XoopsFormTextArea('', 'rssfj_param['.$id.']', $p->getVar('rssfj_param'), 5, 60);
298                $ret .= "<tr>\n"
299                    ."<td class='odd' align='center'>"
300                        .$p->getVar('rssfj_filename')."</td>\n"
301                    ."<td class='even' align='center'>"
302                        .$handler->modname."</td>\n"
303                    ."<td class='odd' align='center'>"
304                        .$entries->render()."</td>\n"
305                    ;
306                $ret .= "</tr>\n";
307            }else{
308                $rssfj_mgr->forceDeactivate($p);
309            }
310        }
311        $ret .= "</table>\n";
312    }
313    if( !empty($ret) ){
314        $button = new XoopsFormButton('', 'submit', _AM_SUBMIT, 'submit');
315        $hidden = new XoopsFormHidden('op', 'saveparam');
316        $ret = "<form action='"._THIS_PAGE."' method='post'>\n".$ret
317                ."<br /><table class='outer' width='100%'><tr><td class='foot' align='center'>\n"
318                .$button->render()."\n".$hidden->render()."\n</td></tr></table></form>"
319                ;
320        echo $ret;
321    }
322break;
323
324case 'saveparam' :
325    extract($_POST);
326    $err = '';
327    if( !empty($rssfj_param) ){
328        $files = array_keys($rssfj_param);
329        foreach( $files as $f ){
330            $p =& $rssfj_mgr->get($f);
331            $p->setVar('rssfj_param', $rssfj_param[$f]);
332            if( !$result = $rssfj_mgr->insert($p) ){
333                $err .= $p->getHtmlErrors();
334            }
335        }
336    }
337    if( !empty($err) ){
338        adminHtmlHeader();
339        echo $err;
340    }else{
341        redirect_header(_THIS_PAGE.'?op=param', 0, _AM_DBUPDATED);
342    }
343break;
344
345}
346include 'footer.php';
347xoops_cp_footer();
348?>
Note: See TracBrowser for help on using the repository browser.