Rozšíření pro definování filtrů na datumy

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
h4kuna
Backer | 740
+
+2
-

Ahoj,

připravil jsem doplněk, který vám pomůže pracovat s filtry pro datumy. Github

Mnohokrát jsem v šablonách viděl něco takového:

Dnes je {$datum|date:'j. n. Y'} <br>
Naposledy přihlášen {$logDate|date:'Y-m-d H:i'}
Registrace {$registrationDate|date:'d.m.Y'}

Formátování je nekonzistentní, nedrží formátování podle státu.

Proto jsem napsal jednoduché rozšíření, které Vám pomůže toto řešit.

Instalace je jednoduchá přes composer, následuje registrace doplňku a spíše popíšu zápis do neonu.

extensions:
	dateFilterExtension: h4kuna\DateFilter\DI\DateFilterExtension

Minimálně jedna skupina formátování je povinná. Zápis je ve stylu – název filtru: formát

dateFilterExtension:
	formats:
		cze: # název skupiny třeba státu
			day: D
			date: j. n. Y # tímto přepíšete původní date
			dateTime: j. n. Y H:i:s
		uk:
			day: D
			date: d/m/Y
			dateTime: d/m/Y H:i:s

Tím se do latte zaregistrují filtry day, date, dateTime. Původní date je přepsán, je to na vás zda si ho přepíšete. A pro zformátování datumu použijeme jeden z filrů např:

Naposledy přihlášen {$logDate|dateTime}

Přepnutí skupiny jde takto

/* @var $dateTimeFormat h4kuna\DateFilter\DateTimeFormat */
$dateTimeFormat = $container->getService('dateFilterExtension.dateTimeFormat');
$dateTimeFormat->setFormatsGroup('uk');

Moudří už vědí že pokud nepřepnete locale tak D se pokaždé vypíše v anglickém jazyce. Podpora je na dosah :) Upravit jsou tato písmenka D, l (malé L), F, M

	dayMonth:
		cs: # opět název skupiny, ale jedná se o jiné skupiny, zvolil jsem jazyk
			D: # short
				Mon: Po
				Tue: Út
				Wed: St
				Thu: Čt
				Fri: Pá
				Sat: So
				Sun: Ne

A teď bude fungovat i filter day, který jsem si definovali výše.

Editoval h4kuna (5. 5. 2017 16:55)