예제 #1
0
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 save() {

        self::__checkPermission('redirector_edit');
		
		$data = $_POST['redirect'];

        if ( empty($data['url']) ) {
            Flash::set( 'error', __('You must specify a url!') );
            redirect( get_url('plugin/redirector/') );
        }

        if ( empty($data['dest']) ) {
            Flash::set( 'error', __('You must specify a destination url!') );
            redirect( get_url('plugin/redirector/') );
        }
		
		if ( ! $redirect = RedirectorRedirects::findByURL($data['url']) ) {
		
			$redirect = new RedirectorRedirects;
			$redirect->created = date('Y-m-d H:i:s');
		
		}

		$redirect->url = $data['url'];
		$redirect->dest = $data['dest'];
		$redirect->updated = date('Y-m-d H:i:s');
		
		if ( ! $redirect->save() )
			Flash::set('error', __('There was a problem adding your redirect.'));

		if ( $error = Redirector404s::findByURL($data['url']) )
			$error->delete();
		
		Flash::set('success', __('Redirect has been added!'));
		redirect(get_url('plugin/redirector/'));
	}