Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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 7.6.14中,如何将同一页面中的月视图和列表视图与日历基础扩展混合_Typo3_Extbase_Typo3 7.6.x - Fatal编程技术网

在TYPO3 7.6.14中,如何将同一页面中的月视图和列表视图与日历基础扩展混合

在TYPO3 7.6.14中,如何将同一页面中的月视图和列表视图与日历基础扩展混合,typo3,extbase,typo3-7.6.x,Typo3,Extbase,Typo3 7.6.x,我已经看到了Calendar Base的代码,但我还没有理解作为工作标记的方式及其在代码中的功能 我想知道是否有可能创建一个迷你日历,在我点击某一天的时候,列表下面会显示事件 请告诉我解决方法,不要给我代码。EXT:cal有很多可能的配置。 我将只给出TYPO3 CMS 7.6中EXT:cal版本1.10.3所需的最低配置,因为我在我的一个项目中使用了该版本(不是滑动版本,如我第一次评论中所述) 您已经安装了EXT:cal并包含静态打字脚本(“基于CSS的标准模板”和“标准CSS样式”) 在TY

我已经看到了Calendar Base的代码,但我还没有理解作为工作标记的方式及其在代码中的功能

我想知道是否有可能创建一个迷你日历,在我点击某一天的时候,列表下面会显示事件


请告诉我解决方法,不要给我代码。

EXT:cal有很多可能的配置。 我将只给出TYPO3 CMS 7.6中EXT:cal版本1.10.3所需的最低配置,因为我在我的一个项目中使用了该版本(不是滑动版本,如我第一次评论中所述)

您已经安装了EXT:cal并包含静态打字脚本(“基于CSS的标准模板”和“标准CSS样式”)

在TYPO3中的日历页面上,您创建了两个类型为plugin的contentelements,其中您选择“TYPO3日历”作为插件。 月份小视图的第一个contentelement,列表视图的第二个contentelement,具有以下配置:

  • Contentelement插件月迷你视图:
  • 选项卡“常规设置” 字段“允许的视图” 仅选择“月份”

    “月视图”选项卡 字段“显示为迷你日历” 激活复选框

  • Contentelement插件列表视图:
  • 选项卡“常规设置” 字段“允许的视图” 按此顺序选择“列表”和“单个事件”

    插件配置中的所有其他字段为空或具有默认值。为了不使用字段记录存储页面,我更喜欢使用typoscript“plugin.tx\u cal\u controller.pidList”

    在前端,您应该已经看到一个月迷你和一个列表视图

    将以下打字脚本配置(设置)添加到页面树中,我发现结合使用mont mini和列表视图时,这很有用:

    // General
    plugin.tx_cal_controller.pidList = [!!!-FILL_HERE_YOUR_CAL_STORAGE-PIDS-PLEASE-!!!]
    
    // List view
    plugin.tx_cal_controller.view.list.starttime = today
    // Use getdate and custom start&end date to use link from minical inside listview
    [globalVar = GP:tx_cal_controller|year >0]
      plugin.tx_cal_controller.view.list.useGetdate = 1
    [else]
      plugin.tx_cal_controller.view.list.useGetdate = 0
    [global]
    // Adapt list view for urls from monthMini view
    // year-view: if (yaer=true && month=false && week=false && day=false)
    [globalVar = GP:tx_cal_controller|year >0] && [globalVar = GP:tx_cal_controller|month <1] && [globalVar = GP:tx_cal_controller|week <1] && [globalVar = GP:tx_cal_controller|day <1]
      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 = yearstart
      plugin.tx_cal_controller.view.list.endtime = yearend
    [global]
    // month-view: if (month=true && day=false)
    [globalVar = GP:tx_cal_controller|month >0] && [globalVar = GP:tx_cal_controller|day <1]
      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]
    // week-view: if (week=true && (weekday=0 OR weekday=1 OR weekday>1)) // weekday>0 doesnt worx at all
    [globalVar = GP:tx_cal_controller|week >0]
      plugin.tx_cal_controller.view.list.useCustomEndtime = 1
      plugin.tx_cal_controller.view.list.customEndtimeRelativeToGetdate = 1
      plugin.tx_cal_controller.view.list.endtime = +1 week
    [global]
    // day-view: if (day=true && week=false (&& weekday=false))
    [globalVar = GP:tx_cal_controller|day >0] && [globalVar = GP:tx_cal_controller|week <1]
      # hide ' - enddate' in header (startdate - enddate)
      plugin.tx_cal_controller.view.list.heading.2 >
    [global]
    
    // Month view
    plugin.tx_cal_controller.view.month.monthMakeMiniCal = 1
    plugin.tx_cal_controller.view.month.endPointCorrection = 9024000
    plugin.tx_cal_controller.view.month.dayViewLink.prioriCalc >
    
    如果月视图中包含有效的事件日或期间,则月视图中的所有数字都应该是链接

    您将丢失指向下一个月或上一个月的链接,该链接将保留为当前月份的mini和列表视图的组合。 然后您需要调整一些模板。看看:

    plugin.tx\u cal\u controller.view.month.monthMiniTemplate 以及###############和#下一个#蒙特林克##的标记


    我可以用另一个问题来描述这一点。

    我会写我的解决方案,但这需要一段时间。请告诉我文章什么时候可以阅读。ID答案帮助?我一直在使用您的指南进行这方面的工作。我想对第一个输入错误脚本的许多内容进行评论。第一个条件始终为false,因此
    plugin.tx\u cal\u controller.view.list.useGetdate
    为0,因此我无法查看今天的事件。删除条件并将值设置为1。其他条件也是错误的。因此,当我删除所有条件时,
    year view
    部分的plugin.tx\u cal\u controller.view.list.useCustomEndtime=1,因此我出现了这一行。我有所有的代码,但我没有看到链接,新的php文件控制器没有运行,我尝试了
    echo
    尝试我的测试扩展,它已经在TYPO3 CMS 7.6中使用EXT:cal 1.10.3版进行了测试和运行,谢谢!现在可以了。我将寻找以前为什么不工作。另一方面,我使用了我自己的站点扩展,包括源代码,现在是一个单独的扩展,可以使用您自己的扩展。也许我忘记了我描述中的一些细节,或者你在你的描述中忘记了
    <?php
    namespace Vendorname\Mysitepackage\Xclass;
    
    /**
     * Extended main controller for calendar base
     *
     * @package TYPO3
     * @subpackage tx_mysitepackage
     * @copyright Copyright belongs to the respective authors
     * @license http://www.gnu.org/licenses/gpl.html GNU General Public License, version 3 or later
     */
    class CalController extends \TYPO3\CMS\Cal\Controller\Controller {
    
        /**
         * Override main controller function that serves as the entry point from TYPO3.
         * 
         * @param array The content array
         * @param array The conf array
         * @return string of calendar data
         */
        public function main($content, $conf) {
            /**
             * Use dynamic viewPid for links in month-mini view (day, week, month, year), as used in \TYPO3\CMS\Cal\View\New[VIEW]View->get[VIEW]Link().
             * Fx: Each monthMini view has dayLinks. These links are only enabled, if [VIEW]ViewPid is set (should be set to current page id).
             * TS setup configuration for 'plugin.tx_cal_controller.view.[VIEW].[VIEW]ViewPid' is not stdWrap'able.
             * 
             * See TS:
             * plugin.tx_cal_controller.view.[VIEW].[VIEW]ViewPid = TEXT
             * plugin.tx_cal_controller.view.[VIEW].[VIEW]ViewPid.data = TSFE:id
             * plugin.tx_cal_controller.view.[VIEW].[VIEW]ViewPid.insertData = 1
             */
            // Day
            if ($conf ['view.'] ['day.'] ['dayViewPid.']) {
                $conf ['view.'] ['day.'] ['dayViewPid'] = $this->cObj->cObjGetSingle($conf ['view.'] ['day.'] ['dayViewPid'], $conf ['view.'] ['day.'] ['dayViewPid.']);
            }
            // Week
            if ($conf ['view.'] ['week.'] ['weekViewPid.']) {
                $conf ['view.'] ['week.'] ['weekViewPid'] = $this->cObj->cObjGetSingle($conf ['view.'] ['week.'] ['weekViewPid'], $conf ['view.'] ['week.'] ['weekViewPid.']);
            }
            // Month
            if ($conf ['view.'] ['month.'] ['monthViewPid.']) {
                $conf ['view.'] ['month.'] ['monthViewPid'] = $this->cObj->cObjGetSingle($conf ['view.'] ['month.'] ['monthViewPid'], $conf ['view.'] ['month.'] ['monthViewPid.']);
            }
            // Year
            if ($conf ['view.'] ['year.'] ['yearViewPid.']) {
                $conf ['view.'] ['year.'] ['yearViewPid'] = $this->cObj->cObjGetSingle($conf ['view.'] ['year.'] ['yearViewPid'], $conf ['view.'] ['year.'] ['yearViewPid.']);
            }
            return parent::main($content, $conf);
        }
    }
    
    <?php
    if (!defined ('TYPO3_MODE')) die ('Access denied.');
    
    // XClass main controller class to adjust $conf. See EXT:mysitepackage/Classes/Xclass/CalController.php
    $GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['TYPO3\\CMS\\Cal\\Controller\\Controller'] = array(
        'className' => 'Vendorname\\Mysitepackage\\Xclass\\CalController',
    );
    
    /**
     * Xclass special
     *
     * Use dynamic viewPid for links in month-mini view (day, week, month, year), as used in \TYPO3\CMS\Cal\View\New[VIEW]View->get[VIEW]Link().
     * Fx: Each monthMini view has dayLinks. These links are only enabled, if [VIEW]ViewPid is set (should be set to current page id).
     * TS setup configuration for 'plugin.tx_cal_controller.view.[VIEW].[VIEW]ViewPid' is not stdWrap'able.
     *
     * XClass main controller class to adjust $conf. See EXT:mysitepackage/Classes/Xclass/CalController.php
     */
    # day
    plugin.tx_cal_controller.view.day.dayViewPid = TEXT
    plugin.tx_cal_controller.view.day.dayViewPid.data = TSFE:id
    plugin.tx_cal_controller.view.day.dayViewPid.insertData = 1
    # week
    plugin.tx_cal_controller.view.week.weekViewPid = TEXT
    plugin.tx_cal_controller.view.week.weekViewPid.data = TSFE:id
    plugin.tx_cal_controller.view.week.weekViewPid.insertData = 1
    # month
    plugin.tx_cal_controller.view.month.monthViewPid = TEXT
    plugin.tx_cal_controller.view.month.monthViewPid.data = TSFE:id
    plugin.tx_cal_controller.view.month.monthViewPid.insertData = 1
    # year
    plugin.tx_cal_controller.view.year.yearViewPid = TEXT
    plugin.tx_cal_controller.view.year.yearViewPid.data = TSFE:id
    plugin.tx_cal_controller.view.year.yearViewPid.insertData = 1