Parameters TYPO3:使用另一个GET参数的值通过Typoscript设置GET参数

Parameters TYPO3:使用另一个GET参数的值通过Typoscript设置GET参数,parameters,get,typo3,Parameters,Get,Typo3,似乎被困在一个非常简单的点上:-(: 在TYPO3项目中,我希望/必须重用一个GET参数,就像它也被设置为另一个参数一样。例如:我有my.tld/page/?param1=abc,但最后一切都应该像我有my.tld/page/?param1=abc¶m2=abc一样工作 原因是我必须使用两个插件在一个目标页面上搜索结果(使用一个输入字段进行快速搜索的结果),其中一个插件只是标准的tx_indexedsearch(使用paramtx_indexedsearch[sware]),另一个插件(

似乎被困在一个非常简单的点上:-(:

在TYPO3项目中,我希望/必须重用一个GET参数,就像它也被设置为另一个参数一样。例如:我有
my.tld/page/?param1=abc
,但最后一切都应该像我有
my.tld/page/?param1=abc¶m2=abc
一样工作

原因是我必须使用两个插件在一个目标页面上搜索结果(使用一个输入字段进行快速搜索的结果),其中一个插件只是标准的
tx_indexedsearch
(使用param
tx_indexedsearch[sware]
),另一个插件(使用param
mysearchword
)是具有自己数据的特定解决方案,
tx\u indexedsearch

因此,我的想法是使用输入字段中的GET值作为这些参数之一(
tx_indexedsearch[swarm]
),并在呈现/执行页面之前通过打字脚本将另一个(
mysearch
)设置为相同的值

基本上,我可以通过
config.defaultGetVars
轻松地设置一个GET值(或者,根据
tx\u extension.\u DEFAULT\u PI\u VARS.param=abc
),但我只是无法让它与某个变量值(我从现有参数获得的变量值)一起工作

如果我尝试以下方法,我永远不会得到想要的结果(不同的替代方法尝试,请参见代码块中的注释)

#获取现有的GET param tx_indexedsearch[剑]
lib.mysearchword=文本
lib.mysearch.data=GP:tx_indexedsearch |剑
#尝试使用它来设置GET param mysearchword
config.defaultGetVars{
#下一行是输出“lib.mysearchword”(不是值)
tx_otherextension.mysearchword=lib.mysearchword
#下一行导致空输出“”
#tx_otherextension.mysearchword
我几乎假设我真的是个瞎子(或者愚蠢,或者两者兼而有之)——我怎么解决这个问题呢?我应该在打字脚本中工作,我不想在提交搜索表单时使用JS为第二个参数设置一些隐藏的输入字段。如果可能的话(因为我只需要在一个目标页面上运行两个插件/显示结果)我也不想尝试通过
realurl
来模拟这种情况

希望我的描述不是太奇怪-否则请要求澄清


提前谢谢。

事实上,我认为最简单的方法是在发送表单之前修改搜索框本身并设置隐藏字段的值,这样您就不需要进行任何重定向或包含其他参数、伪代码:

<script>
    function sendSearchForm() {
        $('#mySearchWord').val($('#indexedSearchWord').val());
        $('#searchBox').submit();
        return false;
    }
</script>
<form action="/your/search/page.html" method="get" id="searchBox" onsubmit="sendSearchForm(); return false;">
    <input type="text" name="tx_indexedsearch[sword]" id="indexedSearchWord"/>
    <input type="hidden" name="mysearchword" id="mySearchWord"/>
    <input type="submit" value="search"/>
</form>

函数sendSearchForm(){
$('mySearchWord').val($('indexedSearchWord').val());
$(“#搜索框”).submit();
返回false;
}

Cite:“另一个(使用param mysearchword)是使用自身数据的特定解决方案”这是否意味着你有自己的插件?如果它用于2搜索“扩展”。我假设两个值都是相同的?如果是这样,为什么要使用两个参数来设置两次值?你不能对两个插件使用相同的值,而不是从同一个参数读取相同的值…?@biesior:是的,这是一个额外的插件(“封闭源代码”)对我来说)处理一些自己的数据模型/逻辑(比如说一个图书数据库)。所以我既不能影响插件的搜索部分需要/使用的参数,也不能通过标准的tx_indexedsearch来管理“特殊”数据的索引。@rob ot:当然,一般来说你是对的,这有点“愚蠢”,因为实际上这两个值都应该(必须是)同样。如果我对它有更大的影响,或者如果它是我自己的插件,我肯定会以对两者调用相同的参数的方式来处理它——但我真的不能这样做。当然,我可以尝试在测试系统上摆弄tx_indexedsearch或tx_myotherplugin的代码,但这最终会非常麻烦,导致要解决未来更新的问题,请移动到另一个系统,等等。您可以修改页面上的搜索框吗?或者它也是来自“不可触碰”的文本吗?感谢您的snipplet-如果真的没有其他搜索框,请将其记为“回退”(直接)方法,但仍然希望找到一些避免JS的解决方案。我想到的另一件讨厌的事情可能是iframe,我可能可以在打字稿中轻松地构建src属性,但不是-这可能是最糟糕的方法。@biesior解决方案是最好的。您可以将搜索框的路径设置为自己的模板te,这样你就可以在更新扩展时编辑它而不丢失你的更改。是的,太糟糕了,似乎真的不可能通过打字脚本来解决这个问题,不过-我不太明白,为什么可以在那里设置GET参数,但不使用一些变量。无论如何,我必须让我的东西运行,所以我选择了我心目中的JS东西作为fallback和@biesior在他的回答中显示了现在。所以我将其标记为"解决方案,只要没有其他100%适合的解决方案出现。谢谢大家的帮助和想法。@Falcon2014当然可以通过引导您的小型FE插件来实现,该插件将创建重定向到URL中带有新参数的页面,无论如何,just JS更快。可选的是,您可以使用这两种技术来确保用户不会手动更改它
<script>
    function sendSearchForm() {
        $('#mySearchWord').val($('#indexedSearchWord').val());
        $('#searchBox').submit();
        return false;
    }
</script>
<form action="/your/search/page.html" method="get" id="searchBox" onsubmit="sendSearchForm(); return false;">
    <input type="text" name="tx_indexedsearch[sword]" id="indexedSearchWord"/>
    <input type="hidden" name="mysearchword" id="mySearchWord"/>
    <input type="submit" value="search"/>
</form>