【问题标题】:PHP foreach get part of URL and match to linkPHP foreach 获取 URL 的一部分并匹配到链接
【发布时间】:2014-01-11 17:57:16
【问题描述】:

我有一个 Joomla 网站,我正在尝试根据 foreach 语句中的链接检查部分 URL。

在网络浏览器中查看时,唯一改变的是 URL 中涉及布局的部分。以下是一些示例:

在 Joomla 3 中,您可以使用以下 php 字符串获取布局:

<?php
$app = JFactory::getApplication();
$layout = $app->input->getCmd('layout', '');
?>

在我的 php 文件中,我有以下 foreach 循环:

<?php foreach($this->employerlinks as $lnk) { ?>
<li><a href="<?php echo $lnk[0]; ?>"><?php echo $lnk[1]; ?></a></li>
<?php } ?>

基本上,如果&lt;?php echo $lnk[0]; ?&gt; 的“布局”与页面 URL 的“布局”部分相同,我想向列表项添加一个“活动”类。

我尝试过使用:

<?php foreach($this->employerlinks as $lnk) { ?>
<li class="<?php if ($layout == 'controlpanel'){echo ' active';}; ?>"><a href="<?php echo $lnk[0]; ?>"><?php echo $lnk[1]; ?></a></li>
<?php } ?>

如果页面的布局是“控制面板”,那么显然它会将“活动”类添加到所有列表项中,但这不是我真正想要的。我希望这个问题有意义。

谢谢

【问题讨论】:

  • Iirc Joomla 开箱即用。

标签: php url joomla foreach


【解决方案1】:

这将在 $lnk[0] 的每个实例中搜索字符串“控制面板”:

<?php foreach($this->employerlinks as $lnk) { ?>
<li class="<?php if (strpos($lnk[0],'controlpanel')){echo ' active';}; ?>"><a href="<?php echo $lnk[0]; ?>"><?php echo $lnk[1]; ?></a></li>
<?php } ?>

显然,如果您不想硬编码“控制面板”,请将其替换为 $_GET['layout'] 或您定义的 $layout

【讨论】:

    猜你喜欢
    • 2022-08-03
    • 1970-01-01
    • 2021-08-15
    • 2011-11-15
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    相关资源
    最近更新 更多