Jump to the post that solved this thread.
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Solved: 12 Years, 9 Months, 2 Weeks ago Disable "Friendly Redirect Pages" on certain pages?
#11
Solved: 12 Years, 9 Months, 2 Weeks ago
Ah, I missed the curly bracket. try this instead:

/**
 * Redirect the user to a given URL with a given message
 *
 * @param string The URL to redirect the user to
 * @param string The redirection message to be shown
 */
function redirect($url, $message="", $title="")
{
    global $header, $footer, $mybb, $theme, $headerinclude, $templates, $lang, $plugins;

    $redirect_args = array('url' => &$url, 'message' => &$message, 'title' => &$title);
    
    $plugins->run_hooks("redirect", $redirect_args);

    if($mybb->input['ajax'])
    {
        // Send our headers.
        @header("Content-type: text/html; charset={$lang->settings['charset']}");
        echo "<script type=\"text/javascript\">\n";
        if($message != "")
        {
            echo 'alert("'.addslashes($message).'");';
        }
        $url = str_replace("#", "&#", $url);
        $url = htmlspecialchars_decode($url);
        $url = str_replace(array("\n","\r",";"), "", $url);
        echo 'window.location = "'.addslashes($url).'";'."\n";
        echo "</script>\n";
        exit;
    }

    if(!$message)
    {
        $message = $lang->redirect;
    }

    $time = TIME_NOW;
    $timenow = my_date($mybb->settings['dateformat'], $time) . " " . my_date($mybb->settings['timeformat'], $time);

    if(!$title)
    {
        $title = $mybb->settings['bbname'];
    }
    
    // Show redirects only if both ACP and UCP settings are enabled, or ACP is enabled, and user is a guest.
    if($mybb->settings['redirects'] == 1 && ($mybb->user['showredirect'] != 0 || !$mybb->user['uid']) && (THIS_SCRIPT != 'search.php'))
    {
        $url = htmlspecialchars($url);

        eval("\$redirectpage = \"".$templates->get("redirect")."\";");
        output_page($redirectpage);
    }
    else
    {
        $url = htmlspecialchars_decode($url);
        $url = str_replace(array("\n","\r",";"), "", $url);

        run_shutdown();
        
        if(my_substr($url, 0, 7) !== 'http://' && my_substr($url, 0, 8) !== 'https://')
        {
            header("Location: {$mybb->settings['bburl']}/{$url}");
        }
        else
        {
            header("Location: {$url}");
        }
    }

    exit;
} 
#12
Solved: 12 Years, 9 Months, 2 Weeks ago
(2012-04-12, 02:17 PM)euantor Wrote: Ah, I missed the curly bracket. try this instead:

/**
 * Redirect the user to a given URL with a given message
 *
 * @param string The URL to redirect the user to
 * @param string The redirection message to be shown
 */
function redirect($url, $message="", $title="")
{
    global $header, $footer, $mybb, $theme, $headerinclude, $templates, $lang, $plugins;

    $redirect_args = array('url' => &$url, 'message' => &$message, 'title' => &$title);
    
    $plugins->run_hooks("redirect", $redirect_args);

    if($mybb->input['ajax'])
    {
        // Send our headers.
        @header("Content-type: text/html; charset={$lang->settings['charset']}");
        echo "<script type=\"text/javascript\">\n";
        if($message != "")
        {
            echo 'alert("'.addslashes($message).'");';
        }
        $url = str_replace("#", "&#", $url);
        $url = htmlspecialchars_decode($url);
        $url = str_replace(array("\n","\r",";"), "", $url);
        echo 'window.location = "'.addslashes($url).'";'."\n";
        echo "</script>\n";
        exit;
    }

    if(!$message)
    {
        $message = $lang->redirect;
    }

    $time = TIME_NOW;
    $timenow = my_date($mybb->settings['dateformat'], $time) . " " . my_date($mybb->settings['timeformat'], $time);

    if(!$title)
    {
        $title = $mybb->settings['bbname'];
    }
    
    // Show redirects only if both ACP and UCP settings are enabled, or ACP is enabled, and user is a guest.
    if($mybb->settings['redirects'] == 1 && ($mybb->user['showredirect'] != 0 || !$mybb->user['uid']) && (THIS_SCRIPT != 'search.php'))
    {
        $url = htmlspecialchars($url);

        eval("\$redirectpage = \"".$templates->get("redirect")."\";");
        output_page($redirectpage);
    }
    else
    {
        $url = htmlspecialchars_decode($url);
        $url = str_replace(array("\n","\r",";"), "", $url);

        run_shutdown();
        
        if(my_substr($url, 0, 7) !== 'http://' && my_substr($url, 0, 8) !== 'https://')
        {
            header("Location: {$mybb->settings['bburl']}/{$url}");
        }
        else
        {
            header("Location: {$url}");
        }
    }

    exit;
} 

Works like a charm. I owe you one.

MyBB should do something about this thing. Especially on Lost Password Recovery when Friendly Redirect Pages are disabled, cause users are redirected straight to the index page and has no feedback about whether their password recovery procedure worked (or how it's supposed to work).
#13
Solved: 12 Years, 9 Months, 2 Weeks ago
Yeah, it would be nice to have some kind of feedback where feedback really is necessary (such as the password recovery as you mentioned).
#14
Solved: 12 Years, 9 Months, 2 Weeks ago
Sorry if I bump such an old thread, but I'd like to inform you I've just begun a plugin development which will feature inline success messages. This is as far as I've tried pretty simple to do and it won't require too much development.
[Image: fSGNVQj.png]
#15
Solved: 12 Years, 9 Months, 2 Weeks ago
(2012-04-12, 02:17 PM)Euan T Wrote: Ah, I missed the curly bracket. try this instead:

/**
 * Redirect the user to a given URL with a given message
 *
 * @param string The URL to redirect the user to
 * @param string The redirection message to be shown
 */
function redirect($url, $message="", $title="")
{
    global $header, $footer, $mybb, $theme, $headerinclude, $templates, $lang, $plugins;

    $redirect_args = array('url' => &$url, 'message' => &$message, 'title' => &$title);
    
    $plugins->run_hooks("redirect", $redirect_args);

    if($mybb->input['ajax'])
    {
        // Send our headers.
        @header("Content-type: text/html; charset={$lang->settings['charset']}");
        echo "<script type=\"text/javascript\">\n";
        if($message != "")
        {
            echo 'alert("'.addslashes($message).'");';
        }
        $url = str_replace("#", "&#", $url);
        $url = htmlspecialchars_decode($url);
        $url = str_replace(array("\n","\r",";"), "", $url);
        echo 'window.location = "'.addslashes($url).'";'."\n";
        echo "</script>\n";
        exit;
    }

    if(!$message)
    {
        $message = $lang->redirect;
    }

    $time = TIME_NOW;
    $timenow = my_date($mybb->settings['dateformat'], $time) . " " . my_date($mybb->settings['timeformat'], $time);

    if(!$title)
    {
        $title = $mybb->settings['bbname'];
    }
    
    // Show redirects only if both ACP and UCP settings are enabled, or ACP is enabled, and user is a guest.
    if($mybb->settings['redirects'] == 1 && ($mybb->user['showredirect'] != 0 || !$mybb->user['uid']) && (THIS_SCRIPT != 'search.php'))
    {
        $url = htmlspecialchars($url);

        eval("\$redirectpage = \"".$templates->get("redirect")."\";");
        output_page($redirectpage);
    }
    else
    {
        $url = htmlspecialchars_decode($url);
        $url = str_replace(array("\n","\r",";"), "", $url);

        run_shutdown();
        
        if(my_substr($url, 0, 7) !== 'http://' && my_substr($url, 0, 8) !== 'https://')
        {
            header("Location: {$mybb->settings['bburl']}/{$url}");
        }
        else
        {
            header("Location: {$url}");
        }
    }

    exit;
} 

What code would I have to use if I only want friendly redirects for new threads? And can I edit the time duration of the friendly redirect, longer messages are impossible to read within 5seconds?
#16
Solved: 12 Years, 9 Months, 2 Weeks ago
Try this Gobee:

/**
 * Redirect the user to a given URL with a given message
 *
 * @param string The URL to redirect the user to
 * @param string The redirection message to be shown
 */
function redirect($url, $message="", $title="")
{
    global $header, $footer, $mybb, $theme, $headerinclude, $templates, $lang, $plugins;

    $redirect_args = array('url' => &$url, 'message' => &$message, 'title' => &$title);
    
    $plugins->run_hooks("redirect", $redirect_args);

    if($mybb->input['ajax'])
    {
        // Send our headers.
        @header("Content-type: text/html; charset={$lang->settings['charset']}");
        echo "<script type=\"text/javascript\">\n";
        if($message != "")
        {
            echo 'alert("'.addslashes($message).'");';
        }
        $url = str_replace("#", "&#", $url);
        $url = htmlspecialchars_decode($url);
        $url = str_replace(array("\n","\r",";"), "", $url);
        echo 'window.location = "'.addslashes($url).'";'."\n";
        echo "</script>\n";
        exit;
    }

    if(!$message)
    {
        $message = $lang->redirect;
    }

    $time = TIME_NOW;
    $timenow = my_date($mybb->settings['dateformat'], $time) . " " . my_date($mybb->settings['timeformat'], $time);

    if(!$title)
    {
        $title = $mybb->settings['bbname'];
    }
    
    // Show redirects only if both ACP and UCP settings are enabled, or ACP is enabled, and user is a guest.
    if($mybb->settings['redirects'] == 1 && ($mybb->user['showredirect'] != 0 || !$mybb->user['uid']) && (THIS_SCRIPT == 'new thread.php'))
    {
        $url = htmlspecialchars($url);

        eval("\$redirectpage = \"".$templates->get("redirect")."\";");
        output_page($redirectpage);
    }
    else
    {
        $url = htmlspecialchars_decode($url);
        $url = str_replace(array("\n","\r",";"), "", $url);

        run_shutdown();
        
        if(my_substr($url, 0, 7) !== 'http://' && my_substr($url, 0, 8) !== 'https://')
        {
            header("Location: {$mybb->settings['bburl']}/{$url}");
        }
        else
        {
            header("Location: {$url}");
        }
    }

    exit;
} 

I'm not entirely sure where the duration is specified actually. It may be within the "redirect" template itself.
Jump to the post that solved this thread.


Forum Jump:


Users browsing this thread: 5 Guest(s)