Показать полную графическую версию : [решено] подставлять значения в зависимости от открытой страницы PhP
раньше у HTML сайта было такое меню
<div id="iefix">
<div id="horiz-menu" class="splitmenu">
<ul class="menu">
<li id="current" class="active"><span class="top"><a href="index.php">Главная</a><span class="selector"><br />
</span></span></li>
<li><span class="top"><a href="rules.php">Правила</a><span class="selector"><br />
</span></span></li>
<li><span class="top"><a href="reg.php">Регистрация</a><span class="selector"><br />
</span></span></li>
<li><span class="top"><a href="login.php">Аккаунт</a><span class="selector"><br />
</span></span></li>
<li><span class="top"><a href="faq.php">FAQ</a><span class="selector"><br />
</span></span></li>
<li><span class="top"><a href="gb.php">Гостевая</a><span class="selector"><br />
</span></span></li>
</ul>
</div>
где если вставить в тег <li id="current" class="active"> то менюшка становилась активной
а теперь сайт переехал на PHP и всё это перенесено в header.php
вобщем исчезла красота
мож есть возможность подставлять id и class в зависимости от открытой страницы
можно в PHP с помощью str_replace или preg_replace (парсить код меню с PHP_SELF)...
и javascript`ом тоже просто...
А если я чайник в php
можно обьяснить по подробней ?
так примерно
$PHP_SELF = basename($_SERVER['PHP_SELF']);
// $menu содержит код меню
$menu = str_replace
(
'<li><span class="top"><a href="'.$PHP_SELF.'">',
'<li id="current" class="active"><span class="top"><a href="'.$PHP_SELF.'">',
$menu
);
я конешно извиняюсь но опять нечего не не понял :not-me:
я не просто чайник а кипятильник
если можно ещо подробней
и всё это перенесено в header.php »
там чистый хтмл-код? Выложите, посмотрим...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<?
include("setup.php");
require ("inc/connect.inc.php");
$sql=mysql_query("select*from pages");
$row=mysql_fetch_array($sql);
$sql=mysql_query("select*from sysvals");
$row1=mysql_fetch_array($sql);
$selectedpravactive=$row1['prav_active'];
?>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<?=$row['head_meta'];?>
<title><?=$row['head_title'];?></title>
<link href="css/template_css.css" rel="stylesheet" type="text/css" />
<link href="css/style<?=$row['style'];?>.css" rel="stylesheet" type="text/css" />
<link href="css/rokmoomenu.css" rel="stylesheet" type="text/css" />
<link href="css/template_ie7.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon">
<style type="text/css">
div.wrapper { margin: 0 auto; width: <? if($selectedpravactive==NO): echo"1000"; endif; ?>
<? if($selectedpravactive==YES): echo"1200"; endif; ?>
px;padding:0;}
td.secondcol { width: 235px;}
td.thirdcol { width: 235px;}
</style>
<script type="text/javascript" src="js/mootools-release-1.11.js"></script>
<script type="text/javascript">
window.addEvent('domready', function(){ var FlipTip = new Tips($$('.fliptip'), { className: 'fliptip' });});
</script>
<!--[if IE]>
<script type="text/javascript">
sfHover = function() {
var sfEls = document.getElementById("horiz-menu").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfHover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfHover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
</script>
<![endif]-->
</head>
<script language=JavaScript>
var h=(new Date()).getHours();
if (h > 23 || h < 7) document.write("<body id='night' class='f-default'>");
if (h > 6 && h < 12) document.write("<body id='dawn' class='f-default'>");
if (h > 11 && h < 19) document.write("<body id='day' class='f-default'>");
if (h > 18 && h < 24) document. write("<body id='dusk' class='f-default'>");
</script>
<!-- begin top part -->
<div id="bg-top">
<div id="bg-top-overlay"></div>
</div>
<!-- end top part -->
<!-- start overall frame -->
<div id="overall-frame">
<!-- begin bottom part IE ONLY -->
<div id="bg-bottom-ie">
<div id="bg-bottom-overlay-ie"></div>
</div>
<!-- end bottom part ie -->
<!-- start bottom part OTHER BROWSERS -->
<div id="bg-bottom">
<div id="bg-bottom-overlay">
<!-- begin wrapper -->
<div class="wrapper">
<div id="top-shadow">
<!-- begin header -->
<div id="header">
<div id="logo-space"><a href="index.php" class="nounder"><img src="images/logo.png" style="border:0;" alt="" id="logo" /></a><br /><span><i><?=$row1['slogan'];?></i></span></div>
</div> </div>
<div id="iefix">
<div id="horiz-menu" class="splitmenu">
<ul class="menu">
<li class="item"><span class="top"><a href="index.php">Главная</a><span class="selector"><br /></span></span></li>
<li class="item"><span class="top"><a href="rules.php">Правила</a><span class="selector"><br /></span></span></li>
<li class="item"><span class="top"><a href="reg.php">Регистрация</a><span class="selector"><br /></span></span></li>
<li class="item"><span class="top"><a href="account.php">Аккаунт</a><span class="selector"><br /></span></span></li>
<li><span class="top"><a href="faq.php">FAQ</a><span class="selector"><br /></span></span></li>
<?
$sqlgbactive=mysql_query("select*from sysvals where gb_active='YES'");
$rowgbactive=mysql_fetch_array($sqlgbactive);
if($rowgbactive>0):
?>
<li class="item"><span class="top"><a href="gb.php?page=0">Гостевая</a><span class="selector"><br /></span></span></li>
<?
endif;
?>
</ul></div></div>
<br>
<div align="center" id="inset">
<span><?
include("inc/banners1.inc.php");
?>
<div id='out'></div>
</span> </div>
<!-- end inset -->
<!-- begin mainbody -->
<div id="body-shadow-left">
<div id="body-shadow-right">
<div id="body">
<table class="mainbody" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<?
$sqlgbactive=mysql_query("select*from sysvals where prav_active='YES'");
$rowgbactive=mysql_fetch_array($sqlgbactive);
if($rowgbactive>0):
?>
<td class="secondcol"><div id="secondcol">
<div class="accent">
<div class="accent-left"></div>
<div class="accent-right"></div>
</div>
<?include("inc/stat.inc.php");?>
</div></td>
<?
endif;
?>
<td class="maincol">
<div id="maincol">
<div class="accent">
<div class="accent-left"></div>
<div class="accent-right"></div>
</div>
<div id="component">
<div class="padding">
подключаю через include ко всем другим страницам
пробуйте
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<?
include("setup.php");
require ("inc/connect.inc.php");
$sql=mysql_query("select*from pages");
$row=mysql_fetch_array($sql);
$sql=mysql_query("select*from sysvals");
$row1=mysql_fetch_array($sql);
$selectedpravactive=$row1['prav_active'];
?>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<?=$row['head_meta'];?>
<title><?=$row['head_title'];?></title>
<link href="css/template_css.css" rel="stylesheet" type="text/css" />
<link href="css/style<?=$row['style'];?>.css" rel="stylesheet" type="text/css" />
<link href="css/rokmoomenu.css" rel="stylesheet" type="text/css" />
<link href="css/template_ie7.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon">
<style type="text/css">
div.wrapper { margin: 0 auto; width: <? if($selectedpravactive==NO): echo"1000"; endif; ?>
<? if($selectedpravactive==YES): echo"1200"; endif; ?>
px;padding:0;}
td.secondcol { width: 235px;}
td.thirdcol { width: 235px;}
</style>
<script type="text/javascript" src="js/mootools-release-1.11.js"></script>
<script type="text/javascript">
window.addEvent('domready', function(){ var FlipTip = new Tips($$('.fliptip'), { className: 'fliptip' });});
</script>
<!--[if IE]>
<script type="text/javascript">
sfHover = function() {
var sfEls = document.getElementById("horiz-menu").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfHover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfHover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
</script>
<![endif]-->
</head>
<script language=JavaScript>
var h=(new Date()).getHours();
if (h > 23 || h < 7) document.write("<body id='night' class='f-default'>");
if (h > 6 && h < 12) document.write("<body id='dawn' class='f-default'>");
if (h > 11 && h < 19) document.write("<body id='day' class='f-default'>");
if (h > 18 && h < 24) document. write("<body id='dusk' class='f-default'>");
</script>
<!-- begin top part -->
<div id="bg-top">
<div id="bg-top-overlay"></div>
</div>
<!-- end top part -->
<!-- start overall frame -->
<div id="overall-frame">
<!-- begin bottom part IE ONLY -->
<div id="bg-bottom-ie">
<div id="bg-bottom-overlay-ie"></div>
</div>
<!-- end bottom part ie -->
<!-- start bottom part OTHER BROWSERS -->
<div id="bg-bottom">
<div id="bg-bottom-overlay">
<!-- begin wrapper -->
<div class="wrapper">
<div id="top-shadow">
<!-- begin header -->
<div id="header">
<div id="logo-space"><a href="index.php" class="nounder"><img src="images/logo.png" style="border:0;" alt="" id="logo" /></a><br /><span><i><?=$row1['slogan'];?></i></span></div>
</div> </div>
<?
$menu =
'
<div id="iefix">
<div id="horiz-menu" class="splitmenu">
<ul class="menu">
<li class="item"><span class="top"><a href="index.php">Главная</a><span class="selector"><br /></span></span></li>
<li class="item"><span class="top"><a href="rules.php">Правила</a><span class="selector"><br /></span></span></li>
<li class="item"><span class="top"><a href="reg.php">Регистрация</a><span class="selector"><br /></span></span></li>
<li class="item"><span class="top"><a href="account.php">Аккаунт</a><span class="selector"><br /></span></span></li>
<li><span class="top"><a href="faq.php">FAQ</a><span class="selector"><br /></span></span></li>
';
$sqlgbactive=mysql_query("select*from sysvals where gb_active='YES'");
$rowgbactive=mysql_fetch_array($sqlgbactive);
if($rowgbactive>0):
$menu .= '<li class="item"><span class="top"><a href="gb.php?page=0">Гостевая</a><span class="selector"><br /></span></span></li>';
endif;
$menu .= '</ul></div></div>';
$PHP_SELF = basename($_SERVER['PHP_SELF']);
echo str_replace
(
'<li class="item"><span class="top"><a href="'.$PHP_SELF,
'<li id="current" class="active"><span class="top"><a href="'.$PHP_SELF,
$menu
);
?>
<br>
<div align="center" id="inset">
<span><?
include("inc/banners1.inc.php");
?>
<div id='out'></div>
</span> </div>
<!-- end inset -->
<!-- begin mainbody -->
<div id="body-shadow-left">
<div id="body-shadow-right">
<div id="body">
<table class="mainbody" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<?
$sqlgbactive=mysql_query("select*from sysvals where prav_active='YES'");
$rowgbactive=mysql_fetch_array($sqlgbactive);
if($rowgbactive>0):
?>
<td class="secondcol"><div id="secondcol">
<div class="accent">
<div class="accent-left"></div>
<div class="accent-right"></div>
</div>
<?include("inc/stat.inc.php");?>
</div></td>
<?
endif;
?>
<td class="maincol">
<div id="maincol">
<div class="accent">
<div class="accent-left"></div>
<div class="accent-right"></div>
</div>
<div id="component">
<div class="padding">
СПАСИБО заработало :yahoo: :oszone:
Решено то оно решено но как сделать чтоб страницы
не прописаные в коде ниже выбрали
переключали меню как активное
пример
страница profile.php
относится к менюшке Аккаунт
совсем запутался :sorry:
<?
$menu =
'
<div id="iefix">
<div id="horiz-menu" class="splitmenu">
<ul class="menu">
<li class="item"><span class="top"><a href="index.php">Главная</a><span class="selector"><br /></span></span></li>
<li class="item"><span class="top"><a href="rules.php">Правила</a><span class="selector"><br /></span></span></li>
<li class="item"><span class="top"><a href="reg.php">Регистрация</a><span class="selector"><br /></span></span></li>
<li class="item"><span class="top"><a href="account.php">Аккаунт</a><span class="selector"><br /></span></span></li>
<li><span class="top"><a href="faq.php">FAQ</a><span class="selector"><br /></span></span></li>
';
$sqlgbactive=mysql_query("select*from sysvals where gb_active='YES'");
$rowgbactive=mysql_fetch_array($sqlgbactive);
if($rowgbactive>0):
$menu .= '<li class="item"><span class="top"><a href="gb.php?page=0">Гостевая</a><span class="selector"><br /></span></span></li>';
endif;
$menu .= '</ul></div></div>';
$PHP_SELF = basename($_SERVER['PHP_SELF']);
echo str_replace
(
'<li class="item"><span class="top"><a href="'.$PHP_SELF,
'<li id="current" class="active"><span class="top"><a href="'.$PHP_SELF,
$menu
);
?>
если я правильно понял, перед echo добавьте
if($PHP_SELF == 'profile.php') $PHP_SELF = 'account.php';
str_replace расчитан на то, что хтмл-код будет именно в таком виде без изменений, иначе регексп и preg_replace...
конечно, все это можно и симпатичнее реализовать....
всё правильно всё работает
конечно, все это можно и симпатичнее реализовать... »
а как это буду очень признателен
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.