Running Task i18n Textcollector Task
GET /dev/tasks/i18nTextCollectorTaskSource
804 $entity = ['default' => $default];
805 } else {
806 $entity = $default;
807 }
808 if ($comment) {
809 $entity['comment'] = $comment;
810 }
811 $entities[$key] = $entity;
812 } elseif ($this->getWarnOnEmptyDefault()) {
813 trigger_error("Missing localisation default for key " . $currentEntity[0], E_USER_NOTICE);
814 }
815 }
816 $currentEntity = [];
817 $inArrayClosedBy = false;
818 break;
819 }
Trace
- trigger_error(Missing localisation default for key RS\EventCalendar\Helpers\CalendarUtil.CLOCKTYPE, 1024)
i18nTextCollector.php:813
- SilverStripe\i18n\TextCollection\i18nTextCollector->collectFromCode(<?php
namespace RS\EventCalendar\Helpers;
use Carbon\Carbon;
use DateTime;
use RS\Utils\Log;
use IntlDateFormatter;
use RS\EventCalendar\Model\CalendarDateTime;
use RS\EventCalendar\Model\Calendar;
class CalendarUtil
{
/**
* @var string
*/
const ONE_DAY = "OneDay";
/**
* @var string
*/
const ONE_DAY_NUMERIC = "OneDayNumeric";
/**
* @var string
*/
const SAME_MONTH_SAME_YEAR = "SameMonthSameYear";
/**
* @var string
*/
const DIFF_MONTH_SAME_YEAR = "DiffMonthSameYear";
/**
* @var string
*/
const DIFF_MONTH_DIFF_YEAR = "DiffMonthDiffYear";
/**
* @var string
*/
const ONE_DAY_HEADER = "OneDayHeader";
/**
* @var string
*/
const MONTH_HEADER = "MonthHeader";
/**
* @var string
*/
const YEAR_HEADER = "YearHeader";
/**
* @var int
*/
const CLOCK_TYPE = 12;
/**
* @var string
*/
const TIMEFORMAT_24 = 'HH:mm';
/**
* @var string
*/
const TIMEFORMAT_12 = 'h:mm a';
/**
* @return array
*/
private static array $format_character_placeholders = [
'$StartDayNameShort',
'$StartDayNameLong',
'$StartDayNumberShort',
'$StartDayNumberLong',
'$StartDaySuffix',
'$StartMonthNumberShort',
'$StartMonthNumberLong',
'$StartMonthNameShort',
'$StartMonthNameLong',
'$StartYearShort',
'$StartYearLong',
'$EndDayNameShort',
'$EndDayNameLong',
'$EndDayNumberShort',
'$EndDayNumberLong',
'$EndDaySuffix',
'$EndMonthNumberShort',
'$EndMonthNumberLong',
'$EndMonthNameShort',
'$EndMonthNameLong',
'$EndYearShort',
'$EndYearLong'
];
public static function getDateDefaultTimezone()
{
return new \DateTimeZone(date_default_timezone_get() ?: 'America/Vancouver');
}
public static function getDateTimeInst(int $date)
{
return new \DateTime(date('Y-m-d H:i:s', $date), self::getDateDefaultTimezone());
}
/**
* @link https://www.php.net/manual/en/datetime.format.php
* @link https://www.php.net/manual/en/function.strftime.php
* @return array
*/
public static function format_character_replacements($start, $end)
{
$dt_start = self::getDateTimeInst($start);
$dt_end = self::getDateTimeInst($end);
return [
$dt_start->format('D'),
$dt_start->format('l'),
date('j', $start),
date('d', $start),
date('S', $start),
date('n', $start),
date('m', $start),
$dt_start->format('M'),
$dt_start->format('F'),
date('y', $start),
date('Y', $start),
$dt_end->format('D'),
$dt_end->format('l'),
date('j', $end),
date('d', $end),
date('S', $end),
date('n', $end),
date('m', $end),
$dt_end->format('M'),
$dt_end->format('F'),
date('y', $end),
date('Y', $end),
];
}
/**
* @return string
*/
public static function localize($start, $end, $key, $as_array = false)
{
$template = _t(Calendar::class.sprintf('.%s', $key), $key);
$local_format = str_replace(
self::$format_character_placeholders,
self::format_character_replacements($start, $end),
$template
);
if( (bool) ($as_array && $key == self::ONE_DAY_NUMERIC) ) {
$local_format = explode("|",$local_format);
$local_format = array_map(static fn($n) => str_pad( (string) $n, 2, '0', STR_PAD_LEFT ),$local_format);
}
return $local_format;
}
/**
* @return string
*/
public static function get_date_from_string($str)
{
$str = str_replace('-', '', (string) $str);
if (is_numeric($str)) {
$missing = (8 - strlen($str));
if ($missing > 0) {
while ($missing > 0) {
$str .= "01";
$missing -= 2;
}
}
return substr($str, 0, 4) . "-" . substr($str, 4, 2) . "-" . substr($str, 6, 2);
}
return date('Y-m-d');
}
/**
* @return array|null
*/
public static function get_date_string($startDate, $endDate)
{
$strStartDate = null;
$strEndDate = null;
$start = strtotime((string) $startDate);
$end = strtotime((string) $endDate);
$startYear = date("Y", $start);
$startMonth = date("m", $start);
$endYear = date("Y", $end);
$endMonth = date("m", $end);
// Invalid date. Get me out of here!
if ($start < 1) {
return;
}
// Only one day long!
$key = null;
$as_array = false;
if ($start == $end || !$end || $end < 1) {
$key = self::ONE_DAY_NUMERIC;
$as_array = true;
} elseif ($startYear === $endYear) {
$key = ($startMonth === $endMonth) ? self::SAME_MONTH_SAME_YEAR : self::DIFF_MONTH_SAME_YEAR;
} else {
$key = self::DIFF_MONTH_DIFF_YEAR;
}
$date_format = self::localize($start, $end, $key, $as_array);
$break = $as_array ? \in_array('$End', is_array($date_format) ? $date_format : []) : strpos($date_format, '$End');
if ($break !== false) {
$strStartDate = substr($date_format, 0, $break);
$strEndDate = substr($date_format, $break+1, strlen($date_format) - strlen($strStartDate));
return [$strStartDate, $strEndDate];
}
$date_format = (bool) $as_array && is_array($date_format) ? '<span class="datesegment">' . \implode('</span><span class="datesegment">',$date_format) . '</span>' : $date_format;
return [$date_format, ""];
}
/**
* @return string
*/
public static function microformat($date, $time, $offset = null)
{
if (!$date) {
return "";
}
$ts = strtotime($date . " " . $time);
if ($ts < 1) {
return "";
}
$ret = date('c', $ts); // ISO 8601 datetime
if ($offset) {
// Swap out timezine with specified $offset
$ret = preg_replace('#((\+)|(-))[\d:]*$#', (string) $offset, $ret);
}
return $ret;
}
/**
* @return array
*/
public static function get_months_map($key = '%b')
{
$formatter = new IntlDateFormatter('en_US', IntlDateFormatter::LONG, IntlDateFormatter::NONE, null, null, 'MMMM');
$time_keys = [];
array_map( static function ($i) use (&$time_keys, $formatter) {
$n = str_pad( $i, 2, '0', STR_PAD_LEFT );
$time_keys[ $n ] = $formatter->format(new DateTime(sprintf('2000-%s-01', $n)));
}, range(1,12));
return $time_keys;
}
/**
* @return string
*/
public static function get_date_format()
{
if ($dateFormat = CalendarDateTime::config()->date_format_override) {
return $dateFormat;
}
return _t(self::class.'.DATEFORMAT', 'mdy');
}
/**
* @return string
*/
public static function get_time_format()
{
if ($clock_type = CalendarDateTime::config()->time_format_override) {
return $clock_type;
}
return _t(self::class.'.CLOCKTYPE', self::CLOCK_TYPE);
}
/**
* @return int
*/
public static function get_first_day_of_week()
{
$result = strtolower(_t(self::class.'.FIRSTDAYOFWEEK', 'monday'));
return ($result == "monday") ? Carbon::MONDAY : Carbon::SUNDAY;
}
public static function date_sort(&$data)
{
uasort($data, [self::class,'date_sort_callback']);
}
/**
* Callback used by column_sort
*/
public static function date_sort_callback($a, $b)
{
if ($a->StartDate == $b->StartDate) {
if ($a->StartTime == $b->StartTime) {
return 0;
} elseif (strtotime((string) $a->StartTime) > strtotime((string) $b->StartTime)) {
return 1;
}
return -1;
} elseif (strtotime((string) $a->StartDate) > strtotime((string) $b->StartDate)) {
return 1;
}
return -1;
}
/**
* @return string
*/
public static function format_time($timeObj)
{
return self::get_time_format() == self::CLOCK_TYPE ? $timeObj->Format(self::TIMEFORMAT_12) : $timeObj->Format(self::TIMEFORMAT_24);
}
}
, /home/dlitd/staging.dontloveittodeath.com/releases/14/vendor/raspberryswwwirl/silverstripe-calendar/src/Helpers/CalendarUtil.php, SilverStripe\Core\Manifest\Module)
i18nTextCollector.php:485
- SilverStripe\i18n\TextCollection\i18nTextCollector->processModule(SilverStripe\Core\Manifest\Module)
i18nTextCollector.php:402
- SilverStripe\i18n\TextCollection\i18nTextCollector->getEntitiesByModule()
i18nTextCollector.php:200
- SilverStripe\i18n\TextCollection\i18nTextCollector->collect(, 1)
i18nTextCollector.php:172
- SilverStripe\i18n\TextCollection\i18nTextCollector->run(, 1)
i18nTextCollectorTask.php:61
- SilverStripe\Dev\Tasks\i18nTextCollectorTask->run(SilverStripe\Control\HTTPRequest)
TaskRunner.php:127
- SilverStripe\Dev\TaskRunner->runTask(SilverStripe\Control\HTTPRequest)
RequestHandler.php:323
- SilverStripe\Control\RequestHandler->handleAction(SilverStripe\Control\HTTPRequest, runTask)
Controller.php:286
- SilverStripe\Control\Controller->handleAction(SilverStripe\Control\HTTPRequest, runTask)
RequestHandler.php:202
- SilverStripe\Control\RequestHandler->handleRequest(SilverStripe\Control\HTTPRequest)
Controller.php:212
- SilverStripe\Control\Controller->handleRequest(SilverStripe\Control\HTTPRequest)
RequestHandler.php:226
- SilverStripe\Control\RequestHandler->handleRequest(SilverStripe\Control\HTTPRequest)
Controller.php:212
- SilverStripe\Control\Controller->handleRequest(SilverStripe\Control\HTTPRequest)
Director.php:361
- SilverStripe\Control\Director->SilverStripe\Control\{closure}(SilverStripe\Control\HTTPRequest)
VersionedHTTPMiddleware.php:41
- SilverStripe\Versioned\VersionedHTTPMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
LoginSessionMiddleware.php:29
- SilverStripe\SessionManager\Middleware\LoginSessionMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
ExecMetricMiddleware.php:20
- SilverStripe\Control\Middleware\ExecMetricMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
ConfirmationMiddleware.php:254
- SilverStripe\Control\Middleware\ConfirmationMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
ConfirmationMiddleware.php:254
- SilverStripe\Control\Middleware\ConfirmationMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
PasswordExpirationMiddleware.php:84
- SilverStripe\Security\PasswordExpirationMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
BasicAuthMiddleware.php:68
- SilverStripe\Security\BasicAuthMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
AuthenticationMiddleware.php:61
- SilverStripe\Security\AuthenticationMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
RequestFilter.php:35
- Heyday\SilverStripeRedirects\Source\RequestFilter->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
CanonicalURLMiddleware.php:190
- SilverStripe\Control\Middleware\CanonicalURLMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
HTTPCacheControlMiddleware.php:43
- SilverStripe\Control\Middleware\HTTPCacheControlMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
ChangeDetectionMiddleware.php:28
- SilverStripe\Control\Middleware\ChangeDetectionMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
FlushMiddleware.php:31
- SilverStripe\Control\Middleware\FlushMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
RequestProcessor.php:69
- SilverStripe\Control\RequestProcessor->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
SessionMiddleware.php:20
- SilverStripe\Control\Middleware\SessionMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
AllowedHostsMiddleware.php:60
- SilverStripe\Control\Middleware\AllowedHostsMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
TrustedProxyMiddleware.php:176
- SilverStripe\Control\Middleware\TrustedProxyMiddleware->process(SilverStripe\Control\HTTPRequest, Closure)
HTTPMiddlewareAware.php:62
- SilverStripe\Control\Director->SilverStripe\Control\Middleware\{closure}(SilverStripe\Control\HTTPRequest)
HTTPMiddlewareAware.php:65
- SilverStripe\Control\Director->callMiddleware(SilverStripe\Control\HTTPRequest, Closure)
Director.php:370
- SilverStripe\Control\Director->handleRequest(SilverStripe\Control\HTTPRequest)
HTTPApplication.php:120
- SilverStripe\Control\HTTPApplication::SilverStripe\Control\{closure}(SilverStripe\Control\HTTPRequest)
- call_user_func(Closure, SilverStripe\Control\HTTPRequest)
HTTPApplication.php:143
- SilverStripe\Control\HTTPApplication->SilverStripe\Control\{closure}(SilverStripe\Control\HTTPRequest)
HTTPMiddlewareAware.php:65
- SilverStripe\Control\HTTPApplication->callMiddleware(SilverStripe\Control\HTTPRequest, Closure)
HTTPApplication.php:144
- SilverStripe\Control\HTTPApplication->execute(SilverStripe\Control\HTTPRequest, Closure, )
HTTPApplication.php:119
- SilverStripe\Control\HTTPApplication->handle(SilverStripe\Control\HTTPRequest)
index.php:24
Duplicate key SilverStripe\SiteConfig\SiteConfigLeftAndMain_SilverStripeNavigator.EDIT detected in no / multiple modules with no obvious owner
SilverStripe\Dev\Tasks\i18nTextCollectorTask completed!