Sous le CMS Xoops, peut être avez-vous déjà souhaité mettre en place une page de redirection... avec une allure un peu "2.0" ? Si tel est le cas, il vous faut un petit coup de Ajax, et ce tutoriel :
Round 1 :Editez le fichier include\functions.php, ligne 418 après
$xoopsTpl->assign('message', $message)Ajoutez
if( ! headers_sent() ) {
$_SESSION['redirect_message'] = $message ;
//$_SESSION['redirect_time'] = $time * 6000 ;
header( "Location: ".preg_replace("/[&]amp;/i",'&',$url) ) ;
exit ;
}
Round 2 :Ouvrez le fichier includes\cp_functions.php, ligne 151 après
echo "
</body>
</html>
";
Ajoutez
if( ! empty( $_SESSION['redirect_message'] ) ) {
echo "<div id='divLoading'>";
echo '<div align="right"><a href="#" onclick="document.getElementById(\'divLoading\').style.display=\'none\'">[X]</a> </div>';
echo "<p>".htmlspecialchars($_SESSION['redirect_message'],ENT_QUOTES)."</p>
</div>";
unset( $_SESSION['redirect_message'] ) ;
}
Round 3 :Ouvrez le fichier votretheme/theme.html et ajoutez au tout début :
<{php}>
if( ! empty( $_SESSION['redirect_message'] ) ) {
$this->_tpl_vars['xoops_msg'] = $_SESSION['redirect_message'];
$this->_tpl_vars['wait_time'] = $_SESSION['redirect_time'];
unset( $_SESSION['redirect_message'] ) ;
}
<{/php}> Round 4 :Ouvrez le fichier votretheme/theme.html et ajoutez avant </head> :
<script type="text/javascript">
function init( ) {
// .... other command
Tag = document.getElementById("divLoading");
Tag.style.display = "none";
}
window.setTimeout(init, <{$wait_time|default:1000}>); //default loadding 1 second
</script>
<style type="text/css" media="all">
#divLoading {
position:absolute;
left:50%;
top:50%;
z-order=0;
z-index=100;
width: 300px;
margin-left: -150px;
height: 100px;
margin-top: -50px;
filter:alpha(opacity=90);
-moz-opacity: 0.9;
opacity: 0.9;
border:1px #FF8811 solid;
background-color:#FFEFC9;
color:#CC6600;
text-align:center;
vertical-align:middle;
}
#divLoading p {
vertical-align:middle;
padding:20px;
}
#divLoading p img {
vertical-align:middle;
padding:5px;
}
</style> Round 5 :Toujours dans votre fichier theme.html, après <body>, ajoutez :
<{if $xoops_msg}>
<div id="divLoading">
<p><{$xoops_msg}></p>
</div>
<{/if}>Cela fonctionne sous Xoops 2.0.0.16 actuellement, je n'ai pas fait de tests ailleurs.
Merci à
Xoops.org &
Peak Xoops