对于使用Pages构建的更高级的站点,您可能希望根据用户正在查看的页面更改自定义HTML或PHP块的输出。例如,如果您有一个自定义菜单,您可能希望突出显示活动项。
我们可以通过检查底层页面URL参数在Pages中实现这一点。尽管你访问一个友好的URL (FURL)的页面http:// < yourcommunity > /部分/页面,在幕后,它被映射到一个原始URL,例如http:// < yourcommunity > / index . php ?应用程序= cms&module =页面控制器= page&path = /部分/页面. 注意路径参数允许我们识别正在访问的页面。当我们访问\IPS\Request::i()对象时,我们可以比较这个参数,像这样:
{{如果大小写敏感(\ IPS \要求::我()——>路径,部分/页)! = = FALSE}}<!——我们知道用户在/section/page——>{{elseif strpos(\IPS\Request::i()->path, 'othersection/otherpage') !== FALSE}}<!——我们知道用户在/othersection/otherpage上——>{{endif}}
请注意,为了可靠性,我们使用PHP的大小写敏感用于检查页面URL是否存在于路径参数,而不是简单的比较。
例子
假设我们已经创建了一个手动HTML块,我们正在添加HTML以显示菜单,并且我们希望根据页面突出显示正确的项目。下面是我们的块内容的外观:
类=“ipsList_inline cMyMenu”><李{{如果大小写敏感(\“诱导多能性”\要求::我() ->路径,帮助/ home) ! = = = FALSE}}类“活跃”{{endif}} ><一个href=' /帮助/ home '>首页< / >李< / ><李{{如果大小写敏感(\“诱导多能性”\要求::我() ->路径,帮助/ faq) ! = = = FALSE}}类“活跃”{{endif}} ><一个href=“/帮助/常见问题解答”>常见问题解答< / >李< / ><李{{如果大小写敏感(\“诱导多能性”\要求::我() ->路径,帮助/教程)! = = = FALSE}}类“活跃”{{endif}} ><一个href=“/帮助/教程”>教程< / >李< / >< / ul >
如果我们有许多项目要展示,那么像这样把它们全部列出来会很乏味。我们可以将其作为一个循环来执行:
$myPages = array('help/home' => " home ", 'help/faq' => " faq ", 'help/tutorials' => " tutorials ", 'help/qna/listing' => "Questions", 'help/qna/recent' => " recent Questions", 'help/qna/listing' => "Questions", 'help/qna/recent' => " recent Questions",);“帮助/接触”= >“联系我们”);}}< ul类=“ipsList_inline cMyMenu ' > {{foreach myPages美元$ url = > $ title}} <李{{如果大小写敏感(\ IPS \要求::我()——>路径,url)美元! = = FALSE}}类=“活跃”{{endif}} > < a href =‘{$ url} > {$ title} < / > < /李> {{endforeach}} < / ul >
现在要向自定义菜单中添加新项,我们只需要将它们添加到数组中。
报告指南< / >