Contao-Camp 2024
Ergebnis 1 bis 10 von 10

Thema: Templates anpassen bei Update auf 4.12.x

  1. #1
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard Templates anpassen bei Update auf 4.12.x

    Hallo zusammen,

    ich habe eine recht alte Installation die natürlich auch immer geupdated wird. Leider stehe ich jetzt beim Update auf 4.12.x vor einem Problem. Und zwar fliegen ja bei 4.12 die itemscope Elemente im Template raus und dafür kommen teils PHP Befehle rein. Wenn ich das allerdings vom Originaltemplate z.B. "event_full.html5" nehme und es in mein custom event_full_registration.html5" packe, ist die Seite weg mit dem folgenden Fehler.

    [2021-09-20T10:16:23.539103+02:00] request.INFO: Matched route "tl_page.418". {"route":"tl_page.418","route_parameters":{"_token _check":true,"_controller":"Contao\\FrontendIndex: :renderPage","_scope":"frontend","_locale":"de","_ format":"html","parameters":"/test-jagdpraxis-29-09-2021-6800","pageModel":{"Contao\\PageModel":[]},"_route":"tl_page.418","_route_object":{"Contao\ \CoreBundle\\Routing\\Page\\PageRoute":[]}},"request_uri":"https://dev.xxx.de/preview.php/intern/termin/test-jagdpraxis-29-09-2021-6800.html","method":"GET"} [][2021-09-20T10:16:24.134664+02:00] request.CRITICAL: Uncaught PHP Exception InvalidArgumentException: "getSchemaOrgData is not set or not a callable" at /homepages/46/d346729057/htdocs/xxx-dev/vendor/contao/core-bundle/src/Resources/contao/library/Contao/Template.php line 180 {"exception":"[object] (InvalidArgumentException(code: 0): getSchemaOrgData is not set or not a callable at /homepages/46/d346729057/htdocs/xxx-dev/vendor/contao/core-bundle/src/Resources/contao/library/Contao/Template.php:180)"} []

    Er scheint die PHP Funktion getSchemaOrgData() nicht zu kennen.

    Dieser Code wurde vom event_full (Core) am Ende eingefügt
    Code:
    <?php
    
    
    $schemaOrg = $this->getSchemaOrgData();
    
    
    if ($this->hasDetails()) {
        $schemaOrg['description'] = $this->rawHtmlToPlainText($this->details);
    }
    
    
    $this->addSchemaOrg($schemaOrg);

    Gleiches passiert wenn ich das mod_breadcrumb.html mit dem folgenden Snipped aus dem Core ergänze.

    Code:
    <?php
    
    
    $this->addSchemaOrg($this->getSchemaOrgData());
    Meine DEV ist bereits auf 4.12. Die müsste das doch kennen!?

    VG Frank

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Poste den Inhalt deiner vendor/contao/calendar-bundle/src/Resources/contao/modules/ModuleEventReader.php Datei.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Habe gerade mal den vendor ORdner gelöscht und via Composer install alles frisch gezogen. Fehler bleibt. Ich finde im Template aber "getSchemaOrgData"

    Code:
    <?php
    
    
    /*
     * This file is part of Contao.
     *
     * (c) Leo Feyer
     *
     * @license LGPL-3.0-or-later
     */
    
    
    namespace Contao;
    
    
    use Contao\CoreBundle\Exception\InternalServerErrorException;
    use Contao\CoreBundle\Exception\PageNotFoundException;
    use Contao\CoreBundle\Exception\RedirectResponseException;
    use Contao\CoreBundle\Image\Studio\Studio;
    use Contao\CoreBundle\Routing\ResponseContext\HtmlHeadBag\HtmlHeadBag;
    use Contao\CoreBundle\Routing\ResponseContext\ResponseContextAccessor;
    use Patchwork\Utf8;
    
    
    /**
     * Front end module "event reader".
     *
     * @property Comments $Comments
     * @property string   $com_template
     * @property string   $cal_template
     * @property array    $cal_calendar
     *
     * @author Leo Feyer <https://github.com/leofeyer>
     */
    class ModuleEventReader extends Events
    {
        /**
         * Template
         * @var string
         */
        protected $strTemplate = 'mod_eventreader';
    
    
        /**
         * Display a wildcard in the back end
         *
         * @throws InternalServerErrorException
         *
         * @return string
         */
        public function generate()
        {
            $request = System::getContainer()->get('request_stack')->getCurrentRequest();
    
    
            if ($request && System::getContainer()->get('contao.routing.scope_matcher')->isBackendRequest($request))
            {
                $objTemplate = new BackendTemplate('be_wildcard');
                $objTemplate->wildcard = '### ' . Utf8::strtoupper($GLOBALS['TL_LANG']['FMD']['eventreader'][0]) . ' ###';
                $objTemplate->title = $this->headline;
                $objTemplate->id = $this->id;
                $objTemplate->link = $this->name;
                $objTemplate->href = 'contao/main.php?do=themes&amp;table=tl_module&amp;act=edit&amp;id=' . $this->id;
    
    
                return $objTemplate->parse();
            }
    
    
            // Set the item from the auto_item parameter
            if (!isset($_GET['events']) && isset($_GET['auto_item']) && Config::get('useAutoItem'))
            {
                Input::setGet('events', Input::get('auto_item'));
            }
    
    
            // Return an empty string if "events" is not set (to combine list and reader on same page)
            if (!Input::get('events'))
            {
                return '';
            }
    
    
            $this->cal_calendar = $this->sortOutProtected(StringUtil::deserialize($this->cal_calendar));
    
    
            if (empty($this->cal_calendar) || !\is_array($this->cal_calendar))
            {
                throw new InternalServerErrorException('The event reader ID ' . $this->id . ' has no calendars specified.');
            }
    
    
            return parent::generate();
        }
    
    
        /**
         * Generate the module
         */
        protected function compile()
        {
            /** @var PageModel $objPage */
            global $objPage;
    
    
            $this->Template->event = '';
            $this->Template->referer = 'javascript:history.go(-1)';
            $this->Template->back = $GLOBALS['TL_LANG']['MSC']['goBack'];
    
    
            // Get the current event
            $objEvent = CalendarEventsModel::findPublishedByParentAndIdOrAlias(Input::get('events'), $this->cal_calendar);
    
    
            // The event does not exist (see #33)
            if ($objEvent === null)
            {
                throw new PageNotFoundException('Page not found: ' . Environment::get('uri'));
            }
    
    
            // Redirect if the event has a target URL (see #1498)
            switch ($objEvent->source) {
                case 'internal':
                    if ($page = PageModel::findPublishedById($objEvent->jumpTo))
                    {
                        throw new RedirectResponseException($page->getAbsoluteUrl(), 301);
                    }
    
    
                    throw new InternalServerErrorException('Invalid "jumpTo" value or target page not public');
    
    
                case 'article':
                    if (($article = ArticleModel::findByPk($objEvent->articleId)) && ($page = PageModel::findPublishedById($article->pid)))
                    {
                        throw new RedirectResponseException($page->getAbsoluteUrl('/articles/' . ($article->alias ?: $article->id)), 301);
                    }
    
    
                    throw new InternalServerErrorException('Invalid "articleId" value or target page not public');
    
    
                case 'external':
                    if ($objEvent->url)
                    {
                        throw new RedirectResponseException($objEvent->url, 301);
                    }
    
    
                    throw new InternalServerErrorException('Empty target URL');
            }
    
    
            // Overwrite the page meta data (see #2853, #4955 and #87)
            $responseContext = System::getContainer()->get(ResponseContextAccessor::class)->getResponseContext();
    
    
            if ($responseContext && $responseContext->has(HtmlHeadBag::class))
            {
                /** @var HtmlHeadBag $htmlHeadBag */
                $htmlHeadBag = $responseContext->get(HtmlHeadBag::class);
    
    
                if ($objEvent->pageTitle)
                {
                    $htmlHeadBag->setTitle($objEvent->pageTitle); // Already stored decoded
                }
                elseif ($objEvent->title)
                {
                    $htmlHeadBag->setTitle(StringUtil::inputEncodedToPlainText($objEvent->title));
                }
    
    
                if ($objEvent->description)
                {
                    $htmlHeadBag->setMetaDescription(StringUtil::inputEncodedToPlainText($objEvent->description));
                }
                elseif ($objEvent->teaser)
                {
                    $htmlHeadBag->setMetaDescription(StringUtil::htmlToPlainText($objEvent->teaser));
                }
    
    
                if ($objEvent->robots)
                {
                    $htmlHeadBag->setMetaRobots($objEvent->robots);
                }
            }
    
    
            $intStartTime = $objEvent->startTime;
            $intEndTime = $objEvent->endTime;
            $span = Calendar::calculateSpan($intStartTime, $intEndTime);
    
    
            // Do not show dates in the past if the event is recurring (see #923)
            if ($objEvent->recurring)
            {
                $arrRange = StringUtil::deserialize($objEvent->repeatEach);
    
    
                if (isset($arrRange['unit'], $arrRange['value']))
                {
                    while (($this->cal_hideRunning ? $intStartTime : $intEndTime) < time() && $intEndTime < $objEvent->repeatEnd)
                    {
                        $intStartTime = strtotime('+' . $arrRange['value'] . ' ' . $arrRange['unit'], $intStartTime);
                        $intEndTime = strtotime('+' . $arrRange['value'] . ' ' . $arrRange['unit'], $intEndTime);
                    }
                }
            }
    
    
            // Mark past and upcoming events (see #187)
            if ($intEndTime < strtotime('00:00:00'))
            {
                $objEvent->cssClass .= ' bygone';
            }
            elseif ($intStartTime > strtotime('23:59:59'))
            {
                $objEvent->cssClass .= ' upcoming';
            }
            else
            {
                $objEvent->cssClass .= ' current';
            }
    
    
            list($strDate, $strTime) = $this->getDateAndTime($objEvent, $objPage, $intStartTime, $intEndTime, $span);
    
    
            $until = '';
            $recurring = '';
            $arrRange = array();
    
    
            // Recurring event
            if ($objEvent->recurring)
            {
                $arrRange = StringUtil::deserialize($objEvent->repeatEach);
    
    
                if (isset($arrRange['unit'], $arrRange['value']))
                {
                    if ($arrRange['value'] == 1)
                    {
                        $repeat = $GLOBALS['TL_LANG']['MSC']['cal_single_' . $arrRange['unit']];
                    }
                    else
                    {
                        $repeat = sprintf($GLOBALS['TL_LANG']['MSC']['cal_multiple_' . $arrRange['unit']], $arrRange['value']);
                    }
    
    
                    if ($objEvent->recurrences > 0)
                    {
                        $until = ' ' . sprintf($GLOBALS['TL_LANG']['MSC']['cal_until'], Date::parse($objPage->dateFormat, $objEvent->repeatEnd));
                    }
    
    
                    if ($objEvent->recurrences > 0 && $intEndTime <= time())
                    {
                        $recurring = sprintf($GLOBALS['TL_LANG']['MSC']['cal_repeat_ended'], $repeat, $until);
                    }
                    elseif ($objEvent->addTime)
                    {
                        $recurring = sprintf($GLOBALS['TL_LANG']['MSC']['cal_repeat'], $repeat, $until, date('Y-m-d\TH:i:sP', $intStartTime), $strDate . ($strTime ? ' ' . $strTime : ''));
                    }
                    else
                    {
                        $recurring = sprintf($GLOBALS['TL_LANG']['MSC']['cal_repeat'], $repeat, $until, date('Y-m-d', $intStartTime), $strDate);
                    }
                }
            }
    
    
            $objTemplate = new FrontendTemplate($this->cal_template ?: 'event_full');
            $objTemplate->setData($objEvent->row());
            $objTemplate->date = $strDate;
            $objTemplate->time = $strTime;
            $objTemplate->datetime = $objEvent->addTime ? date('Y-m-d\TH:i:sP', $intStartTime) : date('Y-m-d', $intStartTime);
            $objTemplate->begin = $intStartTime;
            $objTemplate->end = $intEndTime;
            $objTemplate->class = $objEvent->cssClass ? ' ' . trim($objEvent->cssClass) : '';
            $objTemplate->recurring = $recurring;
            $objTemplate->until = $until;
            $objTemplate->locationLabel = $GLOBALS['TL_LANG']['MSC']['location'];
            $objTemplate->calendar = $objEvent->getRelated('pid');
            $objTemplate->details = '';
            $objTemplate->hasDetails = false;
            $objTemplate->hasTeaser = false;
            $objTemplate->hasReader = true;
    
    
            // Clean the RTE output
            if ($objEvent->teaser)
            {
                $objTemplate->hasTeaser = true;
                $objTemplate->teaser = StringUtil::toHtml5($objEvent->teaser);
                $objTemplate->teaser = StringUtil::encodeEmail($objTemplate->teaser);
            }
    
    
            // Display the "read more" button for external/article links
            if ($objEvent->source != 'default')
            {
                $objTemplate->hasDetails = true;
                $objTemplate->hasReader = false;
            }
    
    
            // Compile the event text
            else
            {
                $id = $objEvent->id;
    
    
                $objTemplate->details = function () use ($id)
                {
                    $strDetails = '';
                    $objElement = ContentModel::findPublishedByPidAndTable($id, 'tl_calendar_events');
    
    
                    if ($objElement !== null)
                    {
                        while ($objElement->next())
                        {
                            $strDetails .= $this->getContentElement($objElement->current());
                        }
                    }
    
    
                    return $strDetails;
                };
    
    
                $objTemplate->hasDetails = static function () use ($id)
                {
                    return ContentModel::countPublishedByPidAndTable($id, 'tl_calendar_events') > 0;
                };
            }
    
    
            $objTemplate->addImage = false;
            $objTemplate->addBefore = false;
    
    
            // Add an image
            if ($objEvent->addImage)
            {
                $imgSize = $objEvent->size ?: null;
    
    
                // Override the default image size
                if ($this->imgSize)
                {
                    $size = StringUtil::deserialize($this->imgSize);
    
    
                    if ($size[0] > 0 || $size[1] > 0 || is_numeric($size[2]) || ($size[2][0] ?? null) === '_')
                    {
                        $imgSize = $this->imgSize;
                    }
                }
    
    
                $figure = System::getContainer()
                    ->get(Studio::class)
                    ->createFigureBuilder()
                    ->from($objEvent->singleSRC)
                    ->setSize($imgSize)
                    ->setMetadata($objEvent->getOverwriteMetadata())
                    ->enableLightbox((bool) $objEvent->fullsize)
                    ->buildIfResourceExists();
    
    
                if (null !== $figure)
                {
                    $figure->applyLegacyTemplateData($objTemplate, $objEvent->imagemargin, $objEvent->floating);
                }
            }
    
    
            $objTemplate->enclosure = array();
    
    
            // Add enclosures
            if ($objEvent->addEnclosure)
            {
                $this->addEnclosuresToTemplate($objTemplate, $objEvent->row());
            }
    
    
            // Add a function to retrieve upcoming dates (see #175)
            $objTemplate->getUpcomingDates = function ($recurrences) use ($objEvent, $objPage, $intStartTime, $intEndTime, $arrRange, $span)
            {
                if (!$objEvent->recurring || !isset($arrRange['unit'], $arrRange['value']))
                {
                    return array();
                }
    
    
                $dates = array();
                $startTime = $intStartTime;
                $endTime = $intEndTime;
                $strtotime = '+ ' . $arrRange['value'] . ' ' . $arrRange['unit'];
    
    
                for ($i=0; $i<$recurrences; $i++)
                {
                    $startTime = strtotime($strtotime, $startTime);
                    $endTime = strtotime($strtotime, $endTime);
    
    
                    if ($endTime > $objEvent->repeatEnd)
                    {
                        break;
                    }
    
    
                    list($strDate, $strTime) = $this->getDateAndTime($objEvent, $objPage, $startTime, $endTime, $span);
    
    
                    $dates[] = array
                    (
                        'date' => $strDate,
                        'time' => $strTime,
                        'datetime' => $objEvent->addTime ? date('Y-m-d\TH:i:sP', $startTime) : date('Y-m-d', $endTime),
                        'begin' => $startTime,
                        'end' => $endTime
                    );
                }
    
    
                return $dates;
            };
    
    
            // Add a function to retrieve past dates (see #175)
            $objTemplate->getPastDates = function ($recurrences) use ($objEvent, $objPage, $intStartTime, $intEndTime, $arrRange, $span)
            {
                if (!$objEvent->recurring || !isset($arrRange['unit'], $arrRange['value']))
                {
                    return array();
                }
    
    
                $dates = array();
                $startTime = $intStartTime;
                $endTime = $intEndTime;
                $strtotime = '- ' . $arrRange['value'] . ' ' . $arrRange['unit'];
    
    
                for ($i=0; $i<$recurrences; $i++)
                {
                    $startTime = strtotime($strtotime, $startTime);
                    $endTime = strtotime($strtotime, $endTime);
    
    
                    if ($startTime < $objEvent->startDate)
                    {
                        break;
                    }
    
    
                    list($strDate, $strTime) = $this->getDateAndTime($objEvent, $objPage, $startTime, $endTime, $span);
    
    
                    $dates[] = array
                    (
                        'date' => $strDate,
                        'time' => $strTime,
                        'datetime' => $objEvent->addTime ? date('Y-m-d\TH:i:sP', $startTime) : date('Y-m-d', $endTime),
                        'begin' => $startTime,
                        'end' => $endTime
                    );
                }
    
    
                return $dates;
            };
    
    
            // schema.org information
            $objTemplate->getSchemaOrgData = static function () use ($objTemplate, $objEvent): array
            {
                $jsonLd = Events::getSchemaOrgData($objEvent);
    
    
                if ($objTemplate->addImage && $objTemplate->figure)
                {
                    $jsonLd['image'] = $objTemplate->figure->getSchemaOrgData();
                }
    
    
                return $jsonLd;
            };
    
    
            $this->Template->event = $objTemplate->parse();
    
    
            // Tag the event (see #2137)
            if (System::getContainer()->has('fos_http_cache.http.symfony_response_tagger'))
            {
                $responseTagger = System::getContainer()->get('fos_http_cache.http.symfony_response_tagger');
                $responseTagger->addTags(array('contao.db.tl_calendar_events.' . $objEvent->id));
            }
    
    
            $bundles = System::getContainer()->getParameter('kernel.bundles');
    
    
            // HOOK: comments extension required
            if ($objEvent->noComments || !isset($bundles['ContaoCommentsBundle']))
            {
                $this->Template->allowComments = false;
    
    
                return;
            }
    
    
            /** @var CalendarModel $objCalendar */
            $objCalendar = $objEvent->getRelated('pid');
            $this->Template->allowComments = $objCalendar->allowComments;
    
    
            // Comments are not allowed
            if (!$objCalendar->allowComments)
            {
                return;
            }
    
    
            // Adjust the comments headline level
            $intHl = min((int) str_replace('h', '', $this->hl), 5);
            $this->Template->hlc = 'h' . ($intHl + 1);
    
    
            $this->import(Comments::class, 'Comments');
            $arrNotifies = array();
    
    
            // Notify the system administrator
            if ($objCalendar->notify != 'notify_author')
            {
                $arrNotifies[] = $GLOBALS['TL_ADMIN_EMAIL'];
            }
    
    
            /** @var UserModel $objAuthor */
            if ($objCalendar->notify != 'notify_admin' && ($objAuthor = $objEvent->getRelated('author')) instanceof UserModel && $objAuthor->email)
            {
                $arrNotifies[] = $objAuthor->email;
            }
    
    
            $objConfig = new \stdClass();
    
    
            $objConfig->perPage = $objCalendar->perPage;
            $objConfig->order = $objCalendar->sortOrder;
            $objConfig->template = $this->com_template;
            $objConfig->requireLogin = $objCalendar->requireLogin;
            $objConfig->disableCaptcha = $objCalendar->disableCaptcha;
            $objConfig->bbcode = $objCalendar->bbcode;
            $objConfig->moderate = $objCalendar->moderate;
    
    
            $this->Comments->addCommentsToTemplate($this->Template, $objConfig, 'tl_calendar_events', $objEvent->id, $arrNotifies);
        }
    
    
        /**
         * Return the date and time strings
         *
         * @param CalendarEventsModel $objEvent
         * @param PageModel           $objPage
         * @param integer             $intStartTime
         * @param integer             $intEndTime
         * @param integer             $span
         *
         * @return array
         */
        private function getDateAndTime(CalendarEventsModel $objEvent, PageModel $objPage, $intStartTime, $intEndTime, $span)
        {
            $strDate = Date::parse($objPage->dateFormat, $intStartTime);
    
    
            if ($span > 0)
            {
                $strDate = Date::parse($objPage->dateFormat, $intStartTime) . $GLOBALS['TL_LANG']['MSC']['cal_timeSeparator'] . Date::parse($objPage->dateFormat, $intEndTime);
            }
    
    
            $strTime = '';
    
    
            if ($objEvent->addTime)
            {
                if ($span > 0)
                {
                    $strDate = Date::parse($objPage->datimFormat, $intStartTime) . $GLOBALS['TL_LANG']['MSC']['cal_timeSeparator'] . Date::parse($objPage->datimFormat, $intEndTime);
                }
                elseif ($intStartTime == $intEndTime)
                {
                    $strTime = Date::parse($objPage->timeFormat, $intStartTime);
                }
                else
                {
                    $strTime = Date::parse($objPage->timeFormat, $intStartTime) . $GLOBALS['TL_LANG']['MSC']['cal_timeSeparator'] . Date::parse($objPage->timeFormat, $intEndTime);
                }
            }
    
    
            return array($strDate, $strTime);
        }
    }
    
    
    class_alias(ModuleEventReader::class, 'ModuleEventReader');

    [2021-09-20T10:35:11.904053+02:00] request.CRITICAL: Uncaught PHP Exception InvalidArgumentException: "getSchemaOrgData is not set or not a callable" at /homepages/46/d346729057/htdocs/xxx-dev/vendor/contao/core-bundle/src/Resources/contao/library/Contao/Template.php line 180 {"exception":"[object] (InvalidArgumentException(code: 0): getSchemaOrgData is not set or not a callable at /homepages/46/d346729057/htdocs/xxx-dev/vendor/contao/core-bundle/src/Resources/contao/library/Contao/Template.php:180)"} []

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Poste mal die Ausgabe von
    PHP-Code:
    <?php $this->dumpTemplateVars(); ?>
    in deinem event_full.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Code:
    ^ array:105 [?
      "id" => "6800"
      "pid" => "151"
      "tstamp" => "1631172204"
      "title" => "Test (Jagdpraxis)"
      "alias" => "test-jagdpraxis-29-09-2021-6800"
      "author" => "1"
      "addTime" => ""
      "startTime" => "1632866400"
      "endTime" => "1632952799"
      "startDate" => "1632866400"
      "endDate" => null
      "teaser" => null
      "addImage" => false
      "singleSRC" => null
      "alt" => ""
      "size" => ""
      "imagemargin" => ""
      "imageUrl" => ""
      "fullsize" => ""
      "caption" => ""
      "floating" => "above"
      "recurring" => ""
      "repeatEach" => "1"
      "repeatEnd" => "1632952799"
      "recurrences" => "0"
      "addEnclosure" => ""
      "enclosure" => []
      "source" => "default"
      "jumpTo" => "0"
      "articleId" => "0"
      "url" => ""
      "target" => ""
      "cssClass" => "jagdpraxis"
      "noComments" => ""
      "published" => "1"
      "start" => ""
      "stop" => ""
      "location" => "Onlineseminar"
      "overwriteMeta" => ""
      "subscription_waitingListLimit" => "0"
      "subscription_waitingList" => ""
      "subscription_unsubscribeEndTime" => "a:2:{s:4:"unit";s:7:"seconds";s:5:"value";s:1:"1";}"
      "subscription_subscribeEndTime" => "a:2:{s:4:"unit";s:7:"seconds";s:5:"value";s:1:"1";}"
      "subscription_maximum" => "77"
      "subscription_types" => "a:1:{i:0;s:6:"member";}"
      "subscription_override" => "1"
      "exceptionList" => null
      "allRecurrences" => "a:0:{}"
      "repeatDates" => null
      "repeatExceptionsPer" => null
      "repeatExceptionsInt" => null
      "repeatExceptions" => null
      "repeatEachExt" => "wednesday"
      "location_mail" => ""
      "location_contact" => "xx"
      "location_link" => ""
      "location_ort" => ""
      "location_plz" => ""
      "location_str" => ""
      "location_name" => ""
      "recurringExt" => ""
      "regenddate" => "1631172085"
      "regstartdate" => "1631172085"
      "regform" => "0"
      "regperson" => "0"
      "regconfirm" => "0"
      "useRegistration" => ""
      "hideOnWeekend" => ""
      "weekday" => "3"
      "showOnFreeDay" => ""
      "useExceptions" => ""
      "ignoreEndTime" => ""
      "repeatFixedDates" => "a:1:{i:0;a:4:{s:10:"new_repeat";s:0:"";s:9:"new_start";s:0:"";s:7:"new_end";s:0:"";s:6:"reason";s:0:"";}}"
      "repeatWeekday" => ""
      "imageTitle" => ""
      "address" => ""
      "subscription_memberGroups" => null
      "subscription_memberGroupsLimit" => ""
      "description" => null
      "pageTitle" => ""
      "subscription_lastNotificationSent" => ""
      "subscription_numberOfParticipants" => ""
      "featured" => ""
      "robots" => ""
      "subscriptionWaitingList" => false
      "subscriptionWaitingListLimit" => 0
      "isEventPast" => false
      "subscribeEndTime" => array:4 [?]
      "unsubscribeEndTime" => array:4 [?]
      "subscribers" => array:3 [?]
      "subscriptionMaximum" => 77
      "subscriptionTypes" => array:1 [?
        "member" => array:5 [?
          "form" => {#1293 ?
            +"action": "preview.php/intern/termin/test-jagdpraxis-29-09-2021-6800.html"
            +"formId": "event-subscription-member-6800"
            +"method": "post"
            +"enctype": "application/x-www-form-urlencoded"
            +"widgets": array:3 [?
              "FORM_SUBMIT" => Contao\FormHidden {#1292 ?
                #blnSubmitInput: true
                #strTemplate: "form_hidden"
                #strId: "FORM_SUBMIT"
                #strName: "FORM_SUBMIT"
                #strLabel: ""
                #varValue: "event-subscription-member-6800"
                #inputCallback: null
                #strClass: null
                #strPrefix: null
                #strWizard: null
                #arrErrors: []
                #arrAttributes: []
                #arrConfiguration: array:9 [?]
                #arrOptions: []
                #blnForAttribute: false
                #objDca: {#1291 ?}
                #arrCache: []
                #arrObjects: array:2 [?
                  "Config" => Contao\Config {#488 ?}
                  "rocksolid_frontend_helper.frontend_hooks" => MadeYourDay\RockSolidFrontendHelper\FrontendHooks {#857 ?
                    -elementBuilder: MadeYourDay\RockSolidFrontendHelper\ElementBuilder {#858 ?
                      -providers: array:1 [?
                        0 => MadeYourDay\RockSolidFrontendHelper\ElementProvider {#859 ?
                          #framework: Contao\CoreBundle\Framework\ContaoFramework {#440 ?
                            -requestStack: Symfony\Component\HttpFoundation\RequestStack {#300 ?}
                            -scopeMatcher: Contao\CoreBundle\Routing\ScopeMatcher {#304 ?}
                            -tokenChecker: Contao\CoreBundle\Security\Authentication\Token\TokenChecker {#432 ?
                              -requestStack: Symfony\Component\HttpFoundation\RequestStack {#300 ?}
                              -firewallMap: Symfony\Bundle\SecurityBundle\Security\FirewallMap {#433 ?}
                              -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#301 ?
                                -storage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#302 ?
                                  -token: Contao\CoreBundle\Security\Authentication\Token\FrontendPreviewToken {#709 ?
                                    -showUnpublished: false
                                    -user: Contao\FrontendUser {#716 ?
                                      #strTable: "tl_member"
                                      #strCookie: "FE_USER_AUTH"
                                      #strLoginPage: "409"
                                      #arrGroups: "a:2:{i:0;s:2:"18";i:1;s:2:"92";}"
                                      #roles: array:1 [?]
                                      #intId: "502"
                                      #strIp: "2a02:810d:9c0:83c8:a9b7:bc75:9e0b:48c8"
                                      #strHash: null
                                      #arrData: array:52 [?]
                                      #salt: null
                                      #arrCache: []
                                      #arrObjects: array:2 [?
                                        "Config" => Contao\Config {#488 ?}
                                        "Database" => Contao\Database {#518 ?
                                          #resConnection: Doctrine\DBAL\Connection {#404 ?
                                            #_conn: Doctrine\DBAL\Driver\PDO\Connection {#520 …2}
                                            #_config: Doctrine\DBAL\Configuration {#372 …1}
                                            #_eventManager: Symfony\Bridge\Doctrine\ContainerAwareEventManager {#366 …7}
                                            #_expr: Doctrine\DBAL\Query\Expression\ExpressionBuilder {#405 …1}
                                            -autoCommit: true
                                            -transactionNestingLevel: 0
                                            -transactionIsolationLevel: null
                                            -nestTransactionsWithSavepoints: false
                                            -params: array:10 [ …10]
                                            -platform: Doctrine\DBAL\Platforms\MySQL57Platform {#527 …4}
                                            #_schemaManager: null
                                            #_driver: Doctrine\DBAL\Driver\PDO\MySQL\Driver {#403}
                                            -isRollbackOnly: false
                                            #defaultFetchMode: 2
                                          }
                                          #blnDisableAutocommit: false
                                          #arrCache: []
                                        }
                                      ]
                                    }
                                    -roles: array:1 [?]
                                    -roleNames: array:1 [?]
                                    -authenticated: true
                                    -attributes: []
                                  }
                                  -initializer: null
                                }
                                -sessionLocator: Symfony\Component\DependencyInjection\Argument\ServiceLocator {#303 ?}
                                -enableUsageTracking: true
                              }
                              -session: Symfony\Component\HttpFoundation\Session\Session {#423 ?}
                              -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#437 ?}
                              -roleVoter: Symfony\Component\Security\Core\Authorization\Voter\RoleVoter {#439 ?}
                            }
                            -filesystem: Symfony\Component\Filesystem\Filesystem {#441}
                            -projectDir: "/homepages/46/d346729057/htdocs/jagdbildungszentrum-dev"
                            -errorLevel: 8183
                            -legacyRouting: true
                            -request: Symfony\Component\HttpFoundation\Request {#96 ?}
                            -isFrontend: true
                            -adapterCache: array:5 [?]
                            -hookListeners: array:5 [?]
                            #container: ContainerCpDGXlq\appContao_ManagerBundle_HttpKernel_ContaoKernelProdContainer {#162 …20}
                          }
                        }
                      ]
                    }
                    -elementTypeSettings: []
                    -backendModules: array:12 [?]
                  }
                ]
                #strParent: null
                #strDefault: null
                #strFormat: "html5"
                #strTagEnding: ">"
                #arrBlocks: []
                #arrBlockNames: []
                #intBufferLevel: 1
                #blnDebug: null
              }
              "REQUEST_TOKEN" => Contao\FormHidden {#1283 ?}
              "enableReminders" => Contao\FormCheckBox {#1295 ?}
            ]
            +"valid": true
            +"submitted": false
            +"hasUploads": false
            +"novalidate": ""
            +"tableless": true
            +"hidden": """
              \r\n
              <input type="hidden" id="FORM_SUBMIT" name="FORM_SUBMIT" value="event-subscription-member-6800" data-frontend-helper="{&quot;toolbar&quot;:true,&quot;templ ?
              \r\n
              <input type="hidden" id="REQUEST_TOKEN" name="REQUEST_TOKEN" value="Et48tzUir2BrRqLCbu9TjjJvhZZoz6vUj0r9QnUjZRE" data-frontend-helper="{&quot;toolbar&quot; ?
              """
            +"fields": """
              \n
              <div class="widget widget-checkbox" data-frontend-helper="{&quot;toolbar&quot;:true,&quot;template&quot;:&quot;form_checkbox&quot;,&quot;templatePath&quot; ?
                  \n
                  <fieldset id="ctrl_enableReminders" class="checkbox_container">\r\n
              \r\n
                  \r\n
                  \r\n
                  <input type="hidden" name="enableReminders" value="">\r\n
              \r\n
                        \r\n
                            <span><input type="checkbox" name="enableReminders" id="opt_enableReminders_0" class="checkbox" value="1" checked> <label id="lbl_enableReminders_ ?
                    \r\n
                        \r\n
                </fieldset>\r\n
              </div>\n
              """
            +"hiddenWidgets": array:2 [?]
            +"visibleWidgets": array:1 [?]
            +"hasteFormInstance": Haste\Form\Form {#1289 ?}
          }
          "canSubscribe" => true
          "canUnsubscribe" => false
          "isSubscribed" => false
          "isOnWaitingList" => false
        ]
      ]
      "subscribeWaitingList" => false
      "subscribeMessage" => null
      "date" => "29.09.2021"
      "time" => ""
      "datetime" => "2021-09-29"
      "begin" => "1632866400"
      "end" => "1632952799"
      "class" => " jagdpraxis"
      "until" => ""
      "locationLabel" => "Ort"
      "details" => Closure() {#1285 ?}
      "hasDetails" => Closure() {#1186 ?}
      "hasTeaser" => false
    ]]
    Edit: hier fehlte noch was

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Aus irgendeinem Grund fehlt bei dir die getSchemaOrgData Funktion für das Template. Evt. hast du eine Extension oder Applikationsanpassung, die die "event" Variable des mod_eventreader Templates überschreibt? Evt. die Event Subscription Extension, die du verwendest? Welche ist das?
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Es könnte https://github.com/codefog/contao-events_subscriptions sein. Ansonsten calendar_extended.

    Code:
    {
        "type": "project",
        "require": {
            "bugbuster/contao-dlstats-bundle": "^1.0",
            "codefog/contao-cookiebar": "^2.1",
            "codefog/contao-events_subscriptions": "^2.11",
            "contao-bootstrap/core": "^2.0",
            "contao-bootstrap/grid": "^2.3",
            "contao-bootstrap/layout": "^2.0",
            "contao-bootstrap/navbar": "^2.1",
            "contao/calendar-bundle": "4.12.*",
            "contao/comments-bundle": "4.12.*",
            "contao/conflicts": "*@dev",
            "contao/faq-bundle": "4.12.*",
            "contao/listing-bundle": "4.12.*",
            "contao/manager-bundle": "4.12.*",
            "contao/news-bundle": "4.12.*",
            "contao/newsletter-bundle": "4.12.*",
            "dklemmt/contao_dk_mmenu": "^3.2",
            "do-while/contao-backupdb-bundle": "^1.3",
            "erdmannfreunde/euf_overlay": "^1.3",
            "frank-berger/events-subscriptions": "1.0.5",
            "heimrichhannot/contao-teaser-bundle": "^1.0.0",
            "hofff/contao-calendarfield": "^3.0",
            "jrgregory/m17-sticky-backend-footer": "^2.0",
            "kmielke/calendar-extended-bundle": "^1.0",
            "madeyourday/contao-rocksolid-custom-elements": "^2.2",
            "madeyourday/contao-rocksolid-frontend-helper": "^2.0",
            "markocupic/resource-booking-bundle": "^2.4",
            "netzmacht/contao-font-awesome-inserttag": "^2.0",
            "omosde/contao-om-backend": "^1.6",
            "oneup/contao-ical-export": "^2.0",
            "phpoffice/phpspreadsheet": "^1.14",
            "terminal42/contao-easy_themes": "^2.2",
            "terminal42/contao-leads": ">=1.4.10.0,<1.5-dev",
            "terminal42/contao-pageimage": "^4.1",
            "terminal42/notification_center": "^1.4"
        },
        "extra": {
            "contao-component-dir": "assets"
        },
        "conflict": {
            "doctrine/doctrine-bundle": "<1.12.8"
        },
        "scripts": {
            "post-install-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ],
            "post-update-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ]
        }
    }

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.879
    Partner-ID
    10107

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Ja, diese Extension bringt ihr eigenes Event Reader Modul mit - und daher fehlt das dann. Das muss in der Extension noch nachgezogen werden, mach am besten zumindest auf GitHub ein Ticket auf. Und am besten finanzierst du gleich ein Update über ein Sponsorship bei Codefog
    » sponsor me via GitHub or PayPal or Revolut

  9. #9
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Fast alle Änderungen die dieses Modul in letzter Zeit bekommen hat, sind von uns bereits finanziert und weitere sind bereits beauftragt :-)

    Ich mache ein Ticket...ich hoffe ich kann das entsprechend erklären.

    Edit: https://github.com/codefog/contao-ev...ions/issues/73
    Geändert von Kahmoon (20.09.2021 um 10:47 Uhr)

  10. #10
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Noch ne Frage um weitere Templates zu kontrollieren. Wo liegen denn die Core Templates? Dann könnte ich es einfacher suchen ;-)

    Edit:
    vendor/contao/core-bundle/src/Resources/contao/templates

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •