Closed shortyxs closed 1 year ago
Please check the following:
?tx_mdfullcalendar_cal[action]=detail&tx_mdfullcalendar_cal[controller]=Cal&tx_mdfullcalendar_cal[index]=32&type=1573760945&cHash=05ecba3790faad06ed3c36aad1bc5e3a
. Does this request return the HTML for the modal?/typo3temp/var/log says
Mon, 20 Jun 2022 20:22:38 +0200 [WARNING] request="bd1e06ca46c9f" component="TYPO3.CMS.Frontend.Controller.TypoScriptFrontendController": $TSFE->set_no_cache() was triggered. Reason: no_cache has been set before the page was generated - safety check. Caching is disabled!
The link prduced looks like https://www.domain.de/sendeplan/sendeplan-einzelansicht/calendar-ajax.html?tx_mdfullcalendar_cal%5Baction%5D=detail&tx_mdfullcalendar_cal%5Bcontroller%5D=Cal&tx_mdfullcalendar_cal%5Bindex%5D=18764&cHash=d7dea49211c152930c8ce7771711da4e
And gives back a white page.
The links should look like https://www.domain.de/sendeplan/sendeplan-einzelansicht/termin/hit-factory-20220620
I don't see any error messages appearing.
Try to remove the follwong routeEnhancer:
routeEnhancers:
PageTypeSuffix:
type: PageType
map:
'/calendar-ajax.html': 1573760945
Flush the cache in the install tool an try again.
Is the link now correctly pointing to https://www.domain.de/sendeplan/sendeplan-einzelansicht/termin/hit-factory-20220620
? If not, check, if settings.pid.defaultDetailPid
is set to the page hit-factory-20220620
.
I have removed all the speaking url settings for calendarize
The Detailview that works when linked from calendarizelist view looks like
https://www.domain.de/sendeplan/sendeplan-einzelansicht?tx_calendarize_calendar%5Baction%5D=detail&tx_calendarize_calendar%5Bcontroller%5D=Calendar&tx_calendarize_calendar%5Bindex%5D=25878&cHash=274b924cb8d0032f4376801695908818
and for the same event from md_fullcalendar
https://www.domain.de/sendeplan/sendeplan-einzelansicht/calendar-ajax.html?tx_mdfullcalendar_cal%5Baction%5D=detail&tx_mdfullcalendar_cal%5Bcontroller%5D=Cal&tx_mdfullcalendar_cal%5Bindex%5D=25878&cHash=02dab2815e96aea81541cc1707448c2a
That leads into a 404 error. I assume, because there is not caledar-ajax.html file.
The segemen sendeplan-einzelansicht
has the id I set in the Typoscript as my Detail-View.
As I understand the documentation md_fullcalender takes my Detailview from Calendarize and renders it into the modal. Did I get that wrong?
Please flush the cache in the install tool and reload the page. After that, the link should not go to .../calendar-ajax.html?...
any more.
The ajax call from the calendar, which opens the modal, gets the data from ext:md_fullcalendar
(detailAction).
Hello Chris, that is exactly what I did before and this Is the result. By the way, I don't think we can solve this until Friday, that is the launch date of the new website. Is there any way to disable the modal and l ink to the calendarize detail page instead?
Is there already a preview of the website, so I could have a look and give some more advices?
https://test.radio-zoom.de/ On the start page you see a Calendarize List View, that links to the detailview. And here https://test.radio-zoom.de/sendeplan You can see the fullcalendar, that should open the same detailview in the Modal.
I have removed any router enhancements. Cache was cleared.
I also Noticed, that when I now put pack int he
routeEnhancers: PageTypeSuffix: type: PageType map: '/calendar-ajax.html': 1573760945
Typo3 throws an error, not saying what is wrong, just the first line of my yaml config for calendar-ajax.
Could you please temporary add \TYPO3\CMS\Core\Utility\DebugUtility::debug($index);
in the detailAction()
of the CalController
? Do you get any output when calling
https://test.radio-zoom.de/sendeplan/sendeplan-einzelansicht?tx_mdfullcalendar_cal%5Baction%5D=detail&tx_mdfullcalendar_cal%5Bcontroller%5D=Cal&tx_mdfullcalendar_cal%5Bindex%5D=4696&type=1573760945&cHash=54411fcebbc2e9945baec2ccd030a41a
HDNET\Calendarize\Domain\Model\Indexprototypepersistent entity (uid=4696, pid=98)
uniqueRegisterKey => protected'Event' (5 chars)
foreignTable => protected'tx_calendarize_domain_model_event' (33 chars)
foreignUid => protected9 (integer)
startDate => protectedDateTimeprototypeobject (2022-06-29T02:00:00+02:00, 1656460800)
endDate => protectedDateTimeprototypeobject (2022-06-29T02:00:00+02:00, 1656460800)
startTime => protected25200 (integer)
endTime => protected28800 (integer)
allDay => protectedFALSE
openEndTime => protectedFALSE
state => protected'default' (7 chars)
originalObject => protectedNULL
slug => protected'die-mittwoch-morgaehn-meditation-20220629' (41 chars)
uid => protected4696 (integer)
_localizedUid => protected4696 (integer)modified
_languageUid => protected0 (integer)modified
_versionedUid => protected4696 (integer)modified
pid => protected98 (integer)
Ok, data is available, at least in the controller.
Now add <f:debug>{_all}</f:debug>
in ext:md_fullcalendar/Resources/Private/Templates/Cal/Detail.html
right after <f:section name="content">
(Line 8).
Do you get an array with data for settings
and index
? If so, please check, if you have changed the path to the templates of ext:md_fullcalendar
. If you use your own templates, please try using the originals and if that works, check your custom templates.
Yes I had changed the path with the templates, that is now reverted to the default.
I get the array when adding <f:debug>{_all}</f:debug>
but still get an empty modal, as soon as I remove it.
EDIT: I see a 2nd set of settings that sets the defaultSetailPid to blalnk in this array ...?
array(3 items)
settings => array(9 items)
dateFormat => 'd.m.Y' (5 chars)
timeFormat => 'H:i' (3 chars)
showIcsIcalButton => '0' (1 chars)
pid => array(1 item)
defaultDetailPid => '176' (3 chars)
view => array(3 items)
templateRootPaths => array(2 items)
0 => 'EXT:{extension.shortExtensionKey}/Resources/Private/Templates/' (62 chars)
1 => 'EXT:md_fullcalendar/Resources/Private/Templates/' (48 chars)
partialRootPaths => array(2 items)
0 => 'EXT:md_fullcalendar/Resources/Private/Partials/' (47 chars)
1 => 'EXT:md_fullcalendar/Resources/Private/Partials/' (47 chars)
layoutRootPaths => array(2 items)
0 => 'EXT:tx_mdfullcalendar/Resources/Private/Layouts/' (48 chars)
1 => 'EXT:md_fullcalendar/Resources/Private/Layouts/' (46 chars)
persistence => array(1 item)
storagePid => '98' (2 chars)
features => array(2 items)
ignoreAllEnableFieldsInBe => '0' (1 chars)
requireCHashArgumentForActionArguments => '1' (1 chars)
mvc => array(empty)
settings => array(4 items)
dateFormat => 'd.m.Y' (5 chars)
timeFormat => 'H:i' (3 chars)
showIcsIcalButton => '0' (1 chars)
pid => array(1 item)
defaultDetailPid => '' (0 chars)
Another EDIT: I found that 2nd setting in the TypoScript Object Browser, it belongs to the CALENDAR_DETAIL_AJAX. I added the PID here as well but does not change anything. Kept the Debug view enabled, so you can have a look.
[CALENDAR_DETAIL_AJAX] = PAGE
[10] = USER_INT
[userFunc] = TYPO3\CMS\Extbase\Core\Bootstrap->run
[extensionName] = MdFullcalendar
[pluginName] = Cal
[vendorName] = Mediadreams
[switchableControllerActions]
[settings]
[view]
[persistence]
[features]
[mvc]
[settings]
[dateFormat] = d.m.Y
[timeFormat] = H:i
[pid]
[defaultDetailPid] = 176
[showIcsIcalButton] = 0 # if you enable this, make sure that you have set "defaultDetailPid" and there is a # ext:calendarize plugin inserted on that page.
[persistence]
[storagePid] = 98
The settings array is not relevant at this moment. But if you have data index
in the array, it should be shown in the modal.
As you can see, the debug data is shown in the modal. Don't ask me, why the rest is missing...
I would try to reduce the HTML in ext:md_fullcalendar/Resources/Private/Templates/Cal/Detail.html
to a minimum, for example to the following:
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:c="http://typo3.org/ns/HDNET/Calendarize/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:layout name="Default" />
<f:section name="content">
<f:alias map="{event: index.originalObject}">
<div class="modal-header">
<h2 class="modal-title" id="calModalLabel">
{index.originalObject.title}
</h2>
</div>
</f:alias>
</f:section>
</html>
No it should show the title of the event. If this is working, I would add part after part of the template and see, how long it is working.
Even with this simplified Detailview I don't get any output I added Some Fixed text to in the Headline and even this is not rendered.
Strange...
So for your launch, you can disable the modal and link to the "normal" detail page by temporary removing the following code from ext:md_fullcalendar/Resources/Private/Templates/Cal/Show.html
Thanks a lot. After the official reveal, I will setup a new dev instance of Typo3 and try to reproduce the problem.
Hello Chris (@cdaecke), thank you for releasing this nice Typo3 extension.
However, I run into a problem that I can't fix.
We have set the UID for the Calendarize Storage and we have set the UID for the Page that contains the detail view. When clicking on an event, the modal opens but does not show any content except the close button.
Can you give me any hint what is probably wrong?
Any help is much appreciated.