Hallo zesamm!
Ich habe die Eingabemaske für Eventeinstellungen um eine zusätzliche Checkbox "Privat" erweitert. Wenn "Privat" angehakt ist, soll dieser Termin unsichtbar sein. Oder besser formuliert: Tage sollen nur dann als "aktiv" markiert und anklickbar sein, wenn es (mindestens) einen öffentlichen Termin an diesem Tag gibt.
Die einzelne Woche wird in ical_mini.html5 so aufgebaut (Original):
PHP-Code:
<tr class="<?= $class ?>">
<?php foreach ($week as $day): ?>
<?php if ($day['href']): ?>
<td class="<?= $day['class'] ?>"><a href="<?= $day['href'] ?>" title="<?= $day['title'] ?>"><?= $day['label'] ?></a></td>
<?php else: ?>
<td class="<?= $day['class'] ?>"><?= $day['label'] ?></td>
<?php endif; ?>
<?php endforeach; ?>
</tr>
Ich habe eine zusätzliche Abfrageschleife eingebaut, die pro Tag alle Arrays der einzelnen Events durchforstet. Bei mir sieht's nun so aus:
PHP-Code:
<tr class="<?= $class ?>">
<?php foreach ($week as $day): ?>
<?php //Abfrage privater Events und Gesamtzahl Events für jeden Tag
foreach($day as $tag) {
foreach($tag as $event) {
$private = $private + $event['private'];
$gesamt++;
}
}
$public = $gesamt-$private;
?>
<?php if ($day['href'] && ($public > 0 || FrontendUser::getInstance()->groups[0] == 1)): ?>
<td class="<?= $day['class'] ?>"><a href="<?= $day['href'] ?>" title="<?= $day['title'] ?>"><?= $day['label'] ?></a></td>
<?php else: ?>
<?php $day['class'] = str_replace("days active", "days", $day['class']); ?>
<td class="<?= $day['class'] ?>"><?= $day['label'] ?></td>
<?php endif; ?>
<?php endforeach; ?>
</tr>
Ich könnte mir vorstellen, es gibt einen geschmeidigeren (und erst recht professionelleren) Workflow, doch es funktioniert prima :-). Nur die error.log, die wächst zusehends, und das würde ich gerne ausmerzen.
Und so sieht ein Eintrag in der error.log aus:
Code:
[10-Mar-2016 13:55:03 Europe/Berlin]
PHP Warning: Invalid argument supplied for foreach() in /home/www/contao/templates/health_navigator/cal_mini.html5 on line 26
#0 /home/www/contao/templates/health_navigator/cal_mini.html5(26): __error(2, 'Invalid argumen...', '/home/www/conta...', 26, Array)
#1 /home/www/contao/system/modules/core/library/Contao/BaseTemplate.php(88): include('/home/www/conta...')
#2 /home/www/contao/system/modules/core/library/Contao/Template.php(277): Contao\BaseTemplate->parse()
#3 /home/www/contao/system/modules/core/classes/FrontendTemplate.php(46): Contao\Template->parse()
#4 /home/www/contao/system/modules/calendar/modules/ModuleCalendar.php(171): Contao\FrontendTemplate->parse()
#5 /home/www/contao/system/modules/core/modules/Module.php(283): Contao\ModuleCalendar->compile()
#6 /home/www/contao/system/modules/calendar/modules/ModuleCalendar.php(79): Contao\Module->generate()
#7 /home/www/contao/system/modules/core/elements/ContentModule.php(59): Contao\ModuleCalendar->generate()
#8 /home/www/contao/system/modules/core/library/Contao/Controller.php(476): Contao\ContentModule->generate()
#9 /home/www/contao/system/modules/core/modules/ModuleArticle.php(213): Contao\Controller::getContentElement(Object(Contao\ContentModel), 'right')
#10 /home/www/contao/system/modules/core/modules/Module.php(283): Contao\ModuleArticle->compile()
#11 /home/www/contao/system/modules/core/modules/ModuleArticle.php(67): Contao\Module->generate()
#12 /home/www/contao/system/modules/core/library/Contao/Controller.php(409): Contao\ModuleArticle->generate(false)
#13 /home/www/contao/system/modules/core/library/Contao/Controller.php(269): Contao\Controller::getArticle(Object(Contao\ArticleModel), false, false, 'right')
#14 /home/www/contao/system/modules/core/pages/PageRegular.php(133): Contao\Controller::getFrontendModule('0', 'right')
#15 /home/www/contao/system/modules/core/controllers/FrontendIndex.php(267): Contao\PageRegular->generate(Object(Contao\PageModel), true)
#16 /home/www/contao/index.php(20): Contao\FrontendIndex->run()
#17 {main}
Wüsste da draußen jemand eine Lösung, die diese Fehlermeldung verhindert (mir ist auch nicht klar, woher die Fehlermeldung überhaupt kommt)?
Lesezeichen