function save() { $data = $_POST['redirect']; if (empty($data['url'])) { Flash::set('error', __('You have to specify a url!')); redirect(get_url('plugin/redirector/')); } if (empty($data['destination'])) { Flash::set('error', __('You have to specify a destination url!')); redirect(get_url('plugin/redirector/')); } if ($existing_redirect = Record::findOneFrom('RedirectorRedirects', 'url = \'' . ($data['url'] . '\''))) { Record::update('RedirectorRedirects', array('url' => $data['url'], 'destination' => $data['destination']), 'url = \'' . ($data['url'] . '\'')); } else { $entry = new RedirectorRedirects($data); if (!$entry->save()) { Flash::set('error', __('There was a problem adding your redirect.')); } else { if ($error = Record::findOneFrom('Redirector404s', 'url = \'' . ($data['url'] . '\''))) { $error->delete(); } Flash::set('success', __('Redirect has been added!')); } } redirect(get_url('plugin/redirector/')); }
function redirector_catch_redirect(&$args) { if ( $redirect = RedirectorRedirects::findByURL($_SERVER['REQUEST_URI']) ) { $redirect->hits++; $redirect->updated = date('Y-m-d H:i:s'); $redirect->save(); header ('HTTP/1.1 301 Moved Permanently', true); header ("Location: {$redirect->dest}"); exit(); } return $args; }
function remove($type,$id) { self::__checkPermission('redirector_delete'); switch ($type) { case 'redirect': $record = RedirectorRedirects::findById($id); break; case '404': $record = Redirector404s::findById($id); break; default: $record = false; break; } if ( $record === false ) { Flash::set( 'error', __('Could not find :type record!', array( ':type' => $type ) ) ); redirect( get_url('plugin/redirector/') ); } if ( ! $record->delete() ) { Flash::set( 'error', __('Could not delete :type record!', array( ':type' => $type ) ) ); redirect( get_url('plugin/redirector/') ); } Flash::set( 'success', __('Redirect has been deleted!') ); redirect( get_url('plugin/redirector/') ); }