function admin_screen_modules() { if (isset($_POST['create']) && check_admin_referer('redirection-module_add')) { $data = stripslashes_deep($_POST); if ($module = Red_Module::create($data)) { $moduleid = 0; if (isset($_POST['module'])) { $moduleid = intval($_POST['module']); } $this->render_message(__('Your module was successfully created', 'redirection')); Red_Module::flush($moduleid); } else { $this->render_error(__('Your module was not created - did you provide a name?', 'redirection')); } } $options = $this->get_options(); $this->render_admin('module_list', array('modules' => Red_Module::get_all(), 'module_types' => Red_Module::get_types(), 'token' => $options['token'])); }
function load($group, $data) { $count = 0; if (function_exists('simplexml_load_string')) { global $wpdb; $xml = simplexml_load_string($data); // Extract module $moduledata = array('type' => (string) $xml->module['type'], 'name' => sprintf(__('%s imported on %s at %s', 'redirection'), (string) $xml->module['name'], date('M d Y'), date('H:i'))); if (isset($xml->module->options)) { foreach ($xml->module->options->option as $option) { $options[(string) $option['name']] = trim((string) $option); } $moduledata['options'] = $options; } $module = Red_Module::create($moduledata); // Look at groups if (count($xml->module->group) > 0) { foreach ($xml->module->group as $group) { $id = Red_Group::create(array('module_id' => $module, 'name' => (string) $group['name'], 'status' => (string) $group['status'], 'position' => (string) $group['position'])); // Look at items if (count($group->item) > 0) { foreach ($group->item as $item) { $actiondata = array(); if (isset($item->action->option) && count($item->action->option) > 0) { foreach ($item->action->option as $option) { $actiondata[(string) $option['key']] = trim((string) $option); } $actiondata = serialize($actiondata); } else { $actiondata = trim((string) $item->action); } $data = array('group_id' => $id, 'url' => trim((string) $item->source), 'position' => intval((string) $item['position']), 'status' => (string) $item['status'], 'regex' => (string) $item->match['regex'], 'match_type' => (string) $item->match['type'], 'action_type' => (string) $item->action['type'], 'action_code' => (string) $item->action['code'], 'action_data' => $actiondata); foreach ($data as $key => $value) { $data[$key] = "'" . $wpdb->escape($value) . "'"; } // Easier to insert it directly here $wpdb->query("INSERT INTO {$wpdb->prefix}redirection_items (" . implode(',', array_keys($data)) . ") VALUES (" . implode(',', $data) . ")"); $count++; } } } } } else { global $redirection; $redirection->render_error(__('XML importing is only available with PHP5 - you have PHP4.', 'redirection')); } return $count; }