Posts: 42
Threads: 7
Joined: Mar 2012
Reputation:
0
2012-04-11, 06:52 AM
Hi. Is it possible to disable "Friendly Redirect Pages" on certain pages? I want to disable on "View New Posts" "View Today's Posts" and "View Unread Posts ( http://mods.mybb.com/view/view-unreads-posts)."
Any help will be appreciated.
Posts: 42
Threads: 7
Joined: Mar 2012
Reputation:
0
2012-04-12, 09:06 AM
Posts: 306
Threads: 22
Joined: Oct 2010
Reputation:
10
2012-04-12, 09:52 AM
I think you can only fully disable them by changing the setting in your ACP > Configuration > Server and Optimization Options > Friendly Redirection Pages.
Posts: 416
Threads: 10
Joined: May 2010
Reputation:
12
2012-04-12, 10:40 AM
(2012-04-12, 09:52 AM)king_og Wrote: I think you can only fully disable them by changing the setting in your ACP > Configuration > Server and Optimization Options > Friendly Redirection Pages.
He doesn't wants to fully disable it. Read the thread.
^^ Click to check my rank.
Posts: 306
Threads: 22
Joined: Oct 2010
Reputation:
10
2012-04-12, 11:16 AM
(This post was last modified: 2012-04-12, 11:17 AM by king_og.)
I did, but that's the only option.
That's why I said he could only fully disable them.
Posts: 42
Threads: 7
Joined: Mar 2012
Reputation:
0
2012-04-12, 12:56 PM
So, maybe someone could write a script, which will do the thing?
Posts: 416
Threads: 10
Joined: May 2010
Reputation:
12
2012-04-12, 12:57 PM
(This post was last modified: 2012-04-12, 12:58 PM by Mr.Kewl.)
It can be done by core editing.
I suppose.
^^ Click to check my rank.
Posts: 138
Threads: 59
Joined: Jan 2012
Reputation:
0
2012-04-12, 12:59 PM
i think core editing is not recommended by MyBB team. specially you may face something gonna wrong when updating for next updated version files etc.
With Regards and many thanks.
------------------------------------------
Posts: 15,129
Threads: 240
Joined: Jun 2009
Reputation:
703
2012-04-12, 01:04 PM
(This post was last modified: 2012-04-12, 01:05 PM by Euan T.)
It isn't possible as standard, though you could do it by modifying the core redirect() function found in ./inc/functions.php
Here's a quick example of something that MAY work - though I haven't tested it:
/**
* 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;
}
Notice the part that reads
&& (THIS_SCRIPT != 'search.php')
That basically should disable the friendly redirect on any page relating to searching. As I said, it hasn't been tested, but that's the way to go about doing what you want to do. Also, i'd advise using the patches plugin by frostschutz in order to make core edits as you can then enable and disable the changes you make more easily.
Posts: 42
Threads: 7
Joined: Mar 2012
Reputation:
0
2012-04-12, 02:10 PM
(2012-04-12, 01:04 PM)euantor Wrote: It isn't possible as standard, though you could do it by modifying the core redirect() function found in ./inc/functions.php
Here's a quick example of something that MAY work - though I haven't tested it:
/**
* 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;
}
Notice the part that reads
&& (THIS_SCRIPT != 'search.php')
That basically should disable the friendly redirect on any page relating to searching. As I said, it hasn't been tested, but that's the way to go about doing what you want to do. Also, i'd advise using the patches plugin by frostschutz in order to make core edits as you can then enable and disable the changes you make more easily.
I changed the code and it gives error when entering the site:
Quote:Parse error: syntax error, unexpected T_ELSE in .../inc/functions.php on line 827
|