如果页面别名与菜单别名匹配(在 foreach 中),则将菜单项的 class 更改为活动状态
Change class of a menuitem to active if page alias matches menu alias (in a foreach)
我得到了一个使用 foreach 显示的简单侧边菜单:
<?
if($contentcr[0]['catid'] == '9'){
foreach($pagecr as $page){
$landingnospace = str_replace(' ', '_', $page['alias']);
$title = $page['title'];
if($title != '') {
$contentje .= '<li><a href="http://www.website.nl/_extern/website1/'.$landingnospace.'.html">'.$title.'</a></li>';
}
}
echo $contentje;
}
else{
echo 'Alternatief sidemenu';
}
?>
页面的别名显示在 url using .htaccess:
DirectoryIndex
RewriteEngine on
RewriteBase /_extern/website1/
#Indexes uitzetten
Options -Indexes
#Website1
RewriteRule ^(.*).html content.php?alias= [L]
我目前在页面上使用两个查询,一个用于 db_content,一个用于 db_categories
db_content:
// content
$content = "SELECT * FROM `db_content` WHERE alias = '".$_GET['alias']."' ";
$contentcon = $conn->query($content);
$contentcr = array();
while ($contentcr[] = $contentcon->fetch_array());
db_categories
// Pages
$page = "SELECT con.title, con.alias, con.images, con.introtext
FROM db_content con
LEFT JOIN db_categories cat ON con.catid = cat.id
AND cat.alias = '".$_GET['alias']."' WHERE con.state = 1 ORDER BY `ordering` DESC";
$pagecon = $conn->query($page);
$pagecr = array();
while ($pagecr[] = $pagecon->fetch_array());
那么我怎样才能将 foreach 中的结果与 url 中的别名进行比较,如果它们匹配,则将 class: current-menu-item
添加到列表标记中?
您可以引入一个 $class
变量并查看当前 $page["alias"]
是否等于 $_GET["alias"]
。如果是,请应用 class current-menu-item
,如果不是,请留空。
<?
if($contentcr[0]['catid'] == '9'){
$alias = $_GET["alias"];
foreach($pagecr as $page){
$landingnospace = str_replace(' ', '_', $page['alias']);
$title = $page['title'];
if($title != '') {
// magic happens here
$class = ($page["alias"] == $alias)?"current-menu-item":"";
$contentje .= '<li><a class="'.$class.'" href="http://www.website.nl/_extern/website1/'.$landingnospace.'.html">'.$title.'</a></li>';
}
}
echo $contentje;
}
else{
echo 'Alternatief sidemenu';
}
?>
我得到了一个使用 foreach 显示的简单侧边菜单:
<?
if($contentcr[0]['catid'] == '9'){
foreach($pagecr as $page){
$landingnospace = str_replace(' ', '_', $page['alias']);
$title = $page['title'];
if($title != '') {
$contentje .= '<li><a href="http://www.website.nl/_extern/website1/'.$landingnospace.'.html">'.$title.'</a></li>';
}
}
echo $contentje;
}
else{
echo 'Alternatief sidemenu';
}
?>
页面的别名显示在 url using .htaccess:
DirectoryIndex
RewriteEngine on
RewriteBase /_extern/website1/
#Indexes uitzetten
Options -Indexes
#Website1
RewriteRule ^(.*).html content.php?alias= [L]
我目前在页面上使用两个查询,一个用于 db_content,一个用于 db_categories
db_content:
// content
$content = "SELECT * FROM `db_content` WHERE alias = '".$_GET['alias']."' ";
$contentcon = $conn->query($content);
$contentcr = array();
while ($contentcr[] = $contentcon->fetch_array());
db_categories
// Pages
$page = "SELECT con.title, con.alias, con.images, con.introtext
FROM db_content con
LEFT JOIN db_categories cat ON con.catid = cat.id
AND cat.alias = '".$_GET['alias']."' WHERE con.state = 1 ORDER BY `ordering` DESC";
$pagecon = $conn->query($page);
$pagecr = array();
while ($pagecr[] = $pagecon->fetch_array());
那么我怎样才能将 foreach 中的结果与 url 中的别名进行比较,如果它们匹配,则将 class: current-menu-item
添加到列表标记中?
您可以引入一个 $class
变量并查看当前 $page["alias"]
是否等于 $_GET["alias"]
。如果是,请应用 class current-menu-item
,如果不是,请留空。
<?
if($contentcr[0]['catid'] == '9'){
$alias = $_GET["alias"];
foreach($pagecr as $page){
$landingnospace = str_replace(' ', '_', $page['alias']);
$title = $page['title'];
if($title != '') {
// magic happens here
$class = ($page["alias"] == $alias)?"current-menu-item":"";
$contentje .= '<li><a class="'.$class.'" href="http://www.website.nl/_extern/website1/'.$landingnospace.'.html">'.$title.'</a></li>';
}
}
echo $contentje;
}
else{
echo 'Alternatief sidemenu';
}
?>