function pluginNews_button($buttons) { if (isset($_REQUEST['pluginNews'])) { XSRFdefender('pluginNews'); processPlugins(); } $buttons[] = array('enable' => true, 'button_text' => gettext('Plugin Articles'), 'formname' => 'pluginNews_button', 'action' => '?pluginNews=gen', 'icon' => 'images/add.png', 'title' => gettext('Generate plugin articles'), 'alt' => '', 'hidden' => '<input type="hidden" name="pluginNews" value="gen" />', 'rights' => ADMIN_RIGHTS, 'XSRFTag' => 'pluginNews'); return $buttons; }
} } else { $page .= '<li>Database has been repaired</li>'; } $page .= '</ul>'; $page .= '</div>'; } $page .= getNewPaths($group); break; case 'saveplugins': $results = savePlugins(); $page .= '<div class="uk-alert uk-alert-success" data-uk-alert>'; $page .= '<a href="" class="uk-alert-close uk-close"></a>'; $page .= $results; $page .= '</div>'; $page .= processPlugins(); break; case 'cancel': session_start(); session_unset(); session_destroy(); header("location:fusionrescue.php"); exit; break; default: $page = getNewPaths($group); break; } } $display = rescue_header($authenticated); $display .= $page;
exit(1); } // handle '--examples' option $show_examples = ($OPTS->has('x') or $OPTS->has('examples')) ? true : false; // handle '--help' option if ($OPTS->has('h') or $OPTS->has('help')) { usage($show_examples); exit(0); } // handle both '--keep' and '--english' options if ($OPTS->has('k') or $OPTS->has('keep')) { $preserved_langs = getSuppliedArgument($OPTS, 'k', 'keep'); $langs = explode(',', $preserved_langs); // ! always enforce 'en' lang when using '--keep' (DW relies on it) if (!isset($langs['en'])) { $langs[] = 'en'; } } elseif ($OPTS->has('e') or $OPTS->has('english')) { // '--english' was specified strip everything besides 'en' $langs = array('en'); } else { // no option was specified, print usage but don't do anything as // this run might not be intented usage(); print "\n\n ERROR\n No option specified, use either -h -x to get more info,\n or -e to strip every language besides english.\n"; exit(1); } // Kill all language directories in /inc/lang and /lib/plugins besides those in $langs array stripDirLangs(realpath(dirname(__FILE__) . '/../inc/lang'), $langs); processPlugins(realpath(dirname(__FILE__) . '/../lib/plugins'), $langs);
function getNewPaths($dbserver, $dbuser, $dbpass, $dbname, $dbprefix, $group = 'Core') { global $rescueFields; if ($group == 'plugin') { return processPlugins($dbserver, $dbuser, $dbpass, $dbname, $dbprefix, $group); } if ($group == 'Core') { $where = "group_name='" . $group . "' AND "; } else { $where = ''; } $group = addslashes($group); $db = @mysql_connect($dbserver, $dbuser, $dbpass) or die('Cannot connect to DB server'); @mysql_select_db($dbname) or die('error selecting database'); $sql = "SELECT * FROM " . $dbprefix . "conf_values WHERE name='allow_embed_object' OR name='use_safe_html'"; $result = @mysql_query($sql, $db) or die('Cannot execute query'); if (@mysql_num_rows($result) < 1) { die('Invalid glFusion Database'); } $sql = "SELECT * FROM " . $dbprefix . "conf_values WHERE group_name='" . $group . "' AND ((type <> 'subgroup') AND (type <> 'fieldset')) ORDER BY subgroup,sort_order ASC"; $result = @mysql_query($sql, $db) or die('Cannot execute query'); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { if ($group != 'Core' || in_array($row['name'], $rescueFields)) { $config[$row['name']] = $row['value']; $configDetail[$row['name']]['type'] = $row['type']; if ($row['name'] == 'site_url' || $row['name'] == 'site_admin_url') { $configDetail[$row['name']]['type'] = 'text'; } $configDetail[$row['name']]['selectionArray'] = $row['selectionArray']; } } echo ' <form method="post" action="fusionrescue.php"> <center>Group: <select name="group"> <option value="Core"' . ($group == 'Core' ? ' selected="selected"' : '') . '>Core</option> <option value="calendar"' . ($group == 'calendar' ? ' selected="selected"' : '') . '>Calendar</option> <option value="captcha"' . ($group == 'captcha' ? ' selected="selected"' : '') . '>CAPTCHA</option> <option value="filemgmt"' . ($group == 'filemgmt' ? ' selected="selected"' : '') . '>FileMgmt</option> <option value="forum"' . ($group == 'forum' ? ' selected="selected"' : '') . '>Forum</option> <option value="links"' . ($group == 'links' ? ' selected="selected"' : '') . '>Links</option> <option value="polls"' . ($group == 'polls' ? ' selected="selected"' : '') . '>Polls</option> <option value="spamx"' . ($group == 'spamx' ? ' selected="selected"' : '') . '>Spamx</option> <option value="staticpages"' . ($group == 'staticpages' ? ' selected="selected"' : '') . '>Staticpages</option> <option value="plugin"' . ($group == 'plugin' ? ' selected="selected"' : '') . '>Plugin Admin</option> </select> <input type="submit" value="submit" name="mode" /> </center> <br /> <input type="hidden" name="dbserver" value="' . $dbserver . '" /> <input type="hidden" name="dbuser" value="' . $dbuser . '" /> <input type="hidden" name="dbpass" value="' . $dbpass . '" /> <input type="hidden" name="dbname" value="' . $dbname . '" /> <input type="hidden" name="dbprefix" value="' . $dbprefix . '" /> <div class="important">To Repair the Sessions Table - Select the repair button</div> <table style="width:100%;border:none;padding:5px;" cellspacing="5" cellpadding="5"> <tr><th style="text-align:right;width:20%;">Option</th><th style="text-align:middle; width:60%;">Value</th><th style="text-align:middle;width:20%;">Reset Default</th></tr> '; foreach ($config as $option => $value) { if (is_bool(@unserialize($value))) { echo '<tr onmouseover="this.className=\'hover\';" onmouseout="this.className=\'\';"><td style="text-align:right;width:20%;">' . $option . '</td><td>'; echo '<select name="cfgvalue[' . $option . ']">'; echo '<option ' . (@unserialize($value) == 0 ? ' selected="selected"' : '') . ' value="b:0">False</option>'; echo '<option ' . (@unserialize($value) == 1 ? ' selected="selected"' : '') . ' value="b:1">True</option>'; echo '</select>'; echo '</td><td style="text-align:center;width:20%;"><input type="checkbox" name="default[' . $option . ']" value="1" /></td></tr>'; } elseif ($configDetail[$option]['type'] == 'select' && ($configDetail[$option]['selectionArray'] == 0 || $configDetail[$option]['selectionArray'] == 1)) { echo '<tr onmouseover="this.className=\'hover\';" onmouseout="this.className=\'\';"><td style="text-align:right;width:20%;">' . $option . '</td><td>'; echo '<select name="cfgvalue[' . $option . ']">'; echo '<option ' . (@unserialize($value) == 0 ? ' selected="selected"' : '') . ' value="b:0">False</option>'; echo '<option ' . (@unserialize($value) == 1 ? ' selected="selected"' : '') . ' value="b:1">True</option>'; echo '</select>'; echo '</td><td style="text-align:center;width:20%;"><input type="checkbox" name="default[' . $option . ']" value="1" /></td></tr>'; } elseif ($configDetail[$option]['type'] != '@text' && $configDetail[$option]['type'] != '%text' && $configDetail[$option]['type'] != '@select' && $configDetail[$option]['type'] != '*text' && $configDetail[$option]['type'] != '**placeholder') { echo '<tr onmouseover="this.className=\'hover\';" onmouseout="this.className=\'\';"><td style="text-align:right;width:20%;">' . $option . '</td><td><input type="text" name="cfgvalue[' . $option . ']" size="90" value="' . @unserialize($value) . '" /></td><td style="text-align:center;width:20%;"><input type="checkbox" name="default[' . $option . ']" value="1" /></td></tr>'; } else { echo '<tr onmouseover="this.className=\'hover\';" onmouseout="this.className=\'\';"><td style="text-align:right;width:20%;">' . $option . '</td><td><input disabled="disabled" type="text" name="cfgvalue[' . $option . ']" size="90" value="' . @unserialize($value) . '" /></td><td style="text-align:center;width:20%;"><input type="checkbox" name="default[' . $option . ']" value="1" /></td></tr>'; } } echo ' </table> <center><input type="submit" name="mode" value="save" /> <input type="submit" name="mode" value="repair" /> <input type="submit" name="mode" value="cancel" /></center> </form> '; }