Ejemplo n.º 1
0
 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']));
 }
Ejemplo n.º 2
0
 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;
 }