Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 类型3外部校准:调整搜索表单_Typo3_Typo3 Extensions - Fatal编程技术网

Typo3 类型3外部校准:调整搜索表单

Typo3 类型3外部校准:调整搜索表单,typo3,typo3-extensions,Typo3,Typo3 Extensions,默认情况下,搜索表单包含以下输入: 我想要一个带有月份选项的选择框,而不是两个输入“Startdatum”和“Enddatum” 在 typo3conf\ext\cal\Resources\Private\Templates\v2\search\u event.tmpl 对于搜索,只有post参数start_day和end_date 如果我只能选择并发布一个月值,如何实现am MOUNT selextbox 我必须在这里更改吗? typo3conf\ext\cal\Classes\View\s

默认情况下,搜索表单包含以下输入:

我想要一个带有月份选项的选择框,而不是两个输入“Startdatum”和“Enddatum”

在 typo3conf\ext\cal\Resources\Private\Templates\v2\search\u event.tmpl

对于搜索,只有post参数start_day和end_date

如果我只能选择并发布一个月值,如何实现am MOUNT selextbox

我必须在这里更改吗? typo3conf\ext\cal\Classes\View\searchview.php


我可以通过自己的cal extend扩展来实现这一点吗?

假设您使用类型为plugin的内容元素,并将视图设置为“list”,并添加您自己的表单select for month,它会生成带有如下参数的请求

?tx_cal_controller[month]=08
?tx_cal_controller[category]=2
然后,您可以使用打字条件操纵列表结果,以仅显示当前年度请求月份的事件:

[globalVar = GP:tx_cal_controller|month >0]
    plugin.tx_cal_controller.view.list.useCustomStarttime = 1
    plugin.tx_cal_controller.view.list.useCustomEndtime = 1
    plugin.tx_cal_controller.view.list.customStarttimeRelativeToGetdate = 1
    plugin.tx_cal_controller.view.list.customEndtimeRelativeToGetdate = 1
    plugin.tx_cal_controller.view.list.starttime = monthstart
    plugin.tx_cal_controller.view.list.endtime = monthend
[global]
要对列表视图使用您自己的类别过滤器,您需要调整/扩展class\TYPO3\CMS\Cal\Controller\Controller::initConfigs()以调用如下参数

?tx_cal_controller[month]=08
?tx_cal_controller[category]=2
进入全局配置,如

/**
 * Init configurations
 * Change category mode in listview, if category given in GET params
 * Used for category filter by selection
 */
public function initConfigs() {
    parent::initConfigs();
    if ($this->piVars['category'] && $this->conf ['view'] === 'list') {
        $this->conf ['view.'] ['categoryMode'] = 4;
        $this->conf ['view.'] ['category'] = $this->piVars['category'];
    }
} 

对于事件所有者的工作过滤器,我没有示例。

您至少需要哪个cal插件视图(搜索、月、周、日列表等)?您可以尝试使用参数tx\u cal\u controller[month]编写自己的月份选择表单。我可以构建一个选择宽度tx\u cal\u controller[month],而不是tx\u cal\u controller[start\u day]和tx\u cal\u controller[end\u day]。但是我必须更改searchview.php中的函数drawSearchEventResult(),因为有了新参数。我不知道如何在cal扩展扩展中实现这一点。但是你真的需要searchView吗?searchView列出与搜索筛选器匹配的事件。ListView也列出事件,但如果您添加一些打字脚本,则可以处理诸如tx_cal_controller[month]之类的参数。我可以在这里添加一个示例。请添加一个示例。我需要一个带有类别、事件所有者和月份的事件过滤器。我也可以使用listView,但是为什么listView更好呢?例如,如果我在列表视图中将其作为get参数添加,它将不起作用:&tx\u cal\u controller[month]=08I使用TYPO3 7.6.18和cal 1.10.3。基本css样式和无流体模板。这个月的例子不适合我。添加?tx_cal_controller[月]=08时列表视图中没有更改我可以在视图控制器中调试此项吗?第二个示例适用于我,但不扩展您的类。如果我将其添加到我的ts:
plugin.tx\u cal\u controller.view.list.useGetdate=1
我可以通过?tx\u cal\u controller[month]=08更改月份,但在列表视图中,目标仅为一天,而不是一个月。[globalVar=GP:tx\u cal\u controller | month>0]。。。plugin.tx\u cal\u controller.view.list.useGetdate=1。。。[其他]。。。plugin.tx\u cal\u controller.view.list.useGetdate=0。。。[环球]好的,谢谢。现在它起作用了。但是如果我添加我的第三个参数:tx\u cal\u controller[organizer]=1,这将不起作用。与tx_cal_控制器相同[organizer_ids]=1。使用此参数的唯一方法是我提到的search_view yetAs,对于事件所有者的工作筛选器,我没有示例。也可用于进一步过滤(位置等)。您应该尝试在-initConfigs()方法中调用它。但请记住,您确实开始要求仅进行月份筛选。