function EditSpider()
{
    global $context, $smcFunc, $txt;
    // Some standard stuff.
    $context['id_spider'] = !empty($_GET['sid']) ? (int) $_GET['sid'] : 0;
    $context['page_title'] = $context['id_spider'] ? $txt['spiders_edit'] : $txt['spiders_add'];
    $context['sub_template'] = 'spider_edit';
    // Are we saving?
    if (!empty($_POST['save'])) {
        checkSession();
        $ips = array();
        // Check the IP range is valid.
        $ip_sets = explode(',', $_POST['spider_ip']);
        foreach ($ip_sets as $set) {
            $test = ip2range(trim($set));
            if (!empty($test)) {
                $ips[] = $set;
            }
        }
        $ips = implode(',', $ips);
        // Goes in as it is...
        if ($context['id_spider']) {
            $smcFunc['db_query']('', '
				UPDATE {db_prefix}spiders
				SET spider_name = {string:spider_name}, user_agent = {string:spider_agent},
					ip_info = {string:ip_info}
				WHERE id_spider = {int:current_spider}', array('current_spider' => $context['id_spider'], 'spider_name' => $_POST['spider_name'], 'spider_agent' => $_POST['spider_agent'], 'ip_info' => $ips));
        } else {
            $smcFunc['db_insert']('insert', '{db_prefix}spiders', array('spider_name' => 'string', 'user_agent' => 'string', 'ip_info' => 'string'), array($_POST['spider_name'], $_POST['spider_agent'], $ips), array('id_spider'));
        }
        // Order by user agent length.
        sortSpiderTable();
        cache_put_data('spider_search', null, 300);
        recacheSpiderNames();
        redirectexit('action=admin;area=sengines;sa=spiders');
    }
    // The default is new.
    $context['spider'] = array('id' => 0, 'name' => '', 'agent' => '', 'ip_info' => '');
    // An edit?
    if ($context['id_spider']) {
        $request = $smcFunc['db_query']('', '
			SELECT id_spider, spider_name, user_agent, ip_info
			FROM {db_prefix}spiders
			WHERE id_spider = {int:current_spider}', array('current_spider' => $context['id_spider']));
        if ($row = $smcFunc['db_fetch_assoc']($request)) {
            $context['spider'] = array('id' => $row['id_spider'], 'name' => $row['spider_name'], 'agent' => $row['user_agent'], 'ip_info' => $row['ip_info']);
        }
        $smcFunc['db_free_result']($request);
    }
}
 /**
  * Here we can add, and edit, spider info!
  */
 public function action_editspiders()
 {
     global $context, $txt;
     // Some standard stuff.
     $context['id_spider'] = !empty($_GET['sid']) ? (int) $_GET['sid'] : 0;
     $context['page_title'] = $context['id_spider'] ? $txt['spiders_edit'] : $txt['spiders_add'];
     $context['sub_template'] = 'spider_edit';
     require_once SUBSDIR . '/SearchEngines.subs.php';
     // Are we saving?
     if (!empty($_POST['save'])) {
         checkSession();
         validateToken('admin-ses');
         // Check the IP range is valid.
         $ips = array();
         $ip_sets = explode(',', $_POST['spider_ip']);
         foreach ($ip_sets as $set) {
             $test = ip2range(trim($set));
             if (!empty($test)) {
                 $ips[] = $set;
             }
         }
         $ips = implode(',', $ips);
         // Goes in as it is...
         updateSpider($context['id_spider'], $_POST['spider_name'], $_POST['spider_agent'], $ips);
         // Order by user agent length.
         sortSpiderTable();
         cache_put_data('spider_search', null, 300);
         recacheSpiderNames();
         redirectexit('action=admin;area=sengines;sa=spiders');
     }
     // The default is new.
     $context['spider'] = array('id' => 0, 'name' => '', 'agent' => '', 'ip_info' => '');
     // An edit?
     if ($context['id_spider']) {
         $context['spider'] = getSpiderDetails($context['id_spider']);
     }
     createToken('admin-ses');
 }