Php 选择用户所在的选项卡,跨多个页面访问

Php 选择用户所在的选项卡,跨多个页面访问,php,menu,tabs,modx,Php,Menu,Tabs,Modx,我目前正在创建一个带有标签的网站 (它不允许我嵌入图像) 如您所见,有一个名为classPvP的选项卡处于选中状态,它是通过在标记的类中添加一个“selected”来完成的。 然而,这个网站将像一个维基,因此有许多不同的页面,我不想为每个页面创建一个单独的“模板”(如果你愿意的话),每个页面都有一个不同的选项卡,因为在所有这些模板中更新或更改某些内容将非常困难 当您选择一个选项卡时,我尝试使用此代码添加到所需的类中: <?php //Defining the variables $a="[

我目前正在创建一个带有标签的网站

(它不允许我嵌入图像)

如您所见,有一个名为classPvP的选项卡处于选中状态,它是通过在标记的类中添加一个“selected”来完成的。 然而,这个网站将像一个维基,因此有许多不同的页面,我不想为每个页面创建一个单独的“模板”(如果你愿意的话),每个页面都有一个不同的选项卡,因为在所有这些模板中更新或更改某些内容将非常困难

当您选择一个选项卡时,我尝试使用此代码添加到所需的类中:

<?php
//Defining the variables
$a="[[*menutitle]]";
if ($a=="classpvp"){
echo "selected";
} else {
echo $a;
} ?>

在我使用的CMS(MODx)中,[[[*menutitle]]被我想要“选择”的任何选项卡所取代。但是,由于某些原因,if语句没有运行,但是echo输出$a的值是classpvp

这让我很困惑,为什么if语句没有运行,而值是正确的——我是否存储了一些糟糕的东西? (对不起,我对PHP非常陌生)

(请记住,[[TabSelectClassPvP]]将替换为php代码) 当使用var_dump($a)(如建议)时,该类从:

<li class="navTab [[TabSelectClassPvP]]">
ClassPvP
</li>
  • 致:


    将WAyFinder软件包用于菜单,它会自动将“活动”规则放置在类属性中。如果您想使用不同的东西,&hereClass是您想在WayFinder调用中指定的c=值

    更新

    如果要在代码段中使用当前资源的菜单项,有两种方法,请从代码段调用传入:

    <li class="navTab [[!TabSelectClassPvP? &a='[[*menutitle]]']]">
    
  • 您的代码片段如下所示:

    <?php
    // Defining the variables
    // $a="[[*menutitle]]";
    // var_dump($a);
    
    if ($a=="classpvp"){
    echo "selected";
    } else {
    echo $a;
    }
    

    您能发布var_dump($a)的输出吗;在if语句完成之前!将它添加到问题中,@AydinHassan,谢谢!请注意字符串开头的空格:)@AydinHassan Nope,不是这样:(@Crisp,我如何使它成为可用字符串?呃,我不太懂如何使用WayFinder,请给我一个片段示例,在这种情况下?:)谢谢!我一定会投票给你,你的最小wayfinder呼叫是[[wayfinder?&startId='0']],如果你把它放在模板中,它会为你的站点输出一个[勉强]格式的导航菜单如果您要使用modx,您需要阅读并理解wayfinder文档,因为这是自动构建导航栏/菜单的唯一方法。幸运的是,wayfinder也是记录最好的临时演员之一。嗯,谢谢你让我知道。我肯定会做大量的研究,看看我是否可以让它工作,如果推到了紧要关头。现在我要看看我的静态菜单是否能正常工作,因为我没有足够的时间学习wayfinder:/无论如何,是时候批准你的答案了!:)只需快速查看一下您的代码片段,$a=“[[*menutitle]]”;永远不会为$a传递值~您必须将该值传递到调用的代码段中
  • o.o是否介意再扩展一点?因此,我将只使用php当前脚本,但不定义&a的值(在实际调用本身中),当我这样做时,它将正确地分配值并运行'if'语句?
    <li class="navTab [[!TabSelectClassPvP? &a='[[*menutitle]]']]">
    
    <?php
    // Defining the variables
    // $a="[[*menutitle]]";
    // var_dump($a);
    
    if ($a=="classpvp"){
    echo "selected";
    } else {
    echo $a;
    }
    
    <?php
    // Defining the variables
    // $a="[[*menutitle]]";
    // var_dump($a);
    
    $a = $modx->resource->get('menutitle');
    
    if ($a=="classpvp"){
    echo "selected";
    } else {
    echo $a;
    }