77
88namespace PhpMyAdmin ;
99
10+ use DateTimeImmutable ;
1011use PhpMyAdmin \ConfigStorage \Relation ;
1112use PhpMyAdmin \Dbal \ResultInterface ;
1213use PhpMyAdmin \Html \Generator ;
@@ -68,18 +69,20 @@ public function __construct(
6869 *
6970 * @return array filtered entries
7071 */
71- public function filter (array $ data , array $ filter_users , string $ dateFrom , string $ dateTo ): array
72- {
73- $ dateFromTimestamp = strtotime ($ dateFrom );
74- $ dateToTimestamp = strtotime ($ dateTo );
72+ public function filter (
73+ array $ data ,
74+ array $ filter_users ,
75+ DateTimeImmutable $ dateFrom ,
76+ DateTimeImmutable $ dateTo
77+ ): array {
7578 $ tmp_entries = [];
7679 $ id = 0 ;
7780 foreach ($ data as $ entry ) {
7881 $ timestamp = strtotime ($ entry ['date ' ]);
7982 $ filtered_user = in_array ($ entry ['username ' ], $ filter_users );
8083 if (
81- $ timestamp >= $ dateFromTimestamp
82- && $ timestamp <= $ dateToTimestamp
84+ $ timestamp >= $ dateFrom -> getTimestamp ()
85+ && $ timestamp <= $ dateTo -> getTimestamp ()
8386 && (in_array ('* ' , $ filter_users ) || $ filtered_user )
8487 ) {
8588 $ tmp_entries [] = [
@@ -218,8 +221,8 @@ public function getHtmlForTrackingReport(
218221 string $ logType ,
219222 array $ filter_users ,
220223 string $ version ,
221- string $ dateFrom ,
222- string $ dateTo ,
224+ DateTimeImmutable $ dateFrom ,
225+ DateTimeImmutable $ dateTo ,
223226 string $ users
224227 ) {
225228 $ html = '<h3> ' . __ ('Tracking report ' )
@@ -300,8 +303,8 @@ public function getHtmlForTrackingReport(
300303 */
301304 public function getHtmlForElementsOfTrackingReport (
302305 string $ logType ,
303- string $ dateFrom ,
304- string $ dateTo ,
306+ DateTimeImmutable $ dateFrom ,
307+ DateTimeImmutable $ dateTo ,
305308 string $ users
306309 ): array {
307310 $ str1 = '<select name="log_type"> '
@@ -316,9 +319,9 @@ public function getHtmlForElementsOfTrackingReport(
316319 . __ ('Structure and data ' ) . '</option> '
317320 . '</select> ' ;
318321 $ str2 = '<input type="text" name="date_from" value=" '
319- . htmlspecialchars ($ dateFrom ) . '" size="19"> ' ;
322+ . htmlspecialchars ($ dateFrom-> format ( ' Y-m-d H:i:s ' ) ) . '" size="19"> ' ;
320323 $ str3 = '<input type="text" name="date_to" value=" '
321- . htmlspecialchars ($ dateTo ) . '" size="19"> ' ;
324+ . htmlspecialchars ($ dateTo-> format ( ' Y-m-d H:i:s ' ) ) . '" size="19"> ' ;
322325 $ str4 = '<input type="text" name="users" value=" '
323326 . htmlspecialchars ($ users ) . '"> ' ;
324327 $ str5 = '<input type="hidden" name="list_report" value="1"> '
@@ -361,8 +364,8 @@ public function getHtmlForTrackingReportExportForm1(
361364 $ str5 ,
362365 $ drop_image_or_text ,
363366 string $ version ,
364- string $ dateFrom ,
365- string $ dateTo
367+ DateTimeImmutable $ dateFrom ,
368+ DateTimeImmutable $ dateTo
366369 ) {
367370 $ ddlog_count = 0 ;
368371
@@ -436,8 +439,8 @@ public function getHtmlForTrackingReportExportForm2(
436439 $ str5 ,
437440 string $ logType ,
438441 string $ version ,
439- string $ dateFrom ,
440- string $ dateTo ,
442+ DateTimeImmutable $ dateFrom ,
443+ DateTimeImmutable $ dateTo ,
441444 string $ users
442445 ) {
443446 $ html = '<form method="post" action=" ' . Url::getFromRoute ('/table/tracking ' ) . '"> ' ;
@@ -461,8 +464,8 @@ public function getHtmlForTrackingReportExportForm2(
461464 'report ' => 'true ' ,
462465 'version ' => $ version ,
463466 'log_type ' => $ logType ,
464- 'date_from ' => $ dateFrom ,
465- 'date_to ' => $ dateTo ,
467+ 'date_from ' => $ dateFrom-> format ( ' Y-m-d H:i:s ' ) ,
468+ 'date_to ' => $ dateTo-> format ( ' Y-m-d H:i:s ' ) ,
466469 'users ' => $ users ,
467470 'report_export ' => 'true ' ,
468471 ]);
@@ -504,8 +507,8 @@ public function getHtmlForDataManipulationStatements(
504507 $ ddlog_count ,
505508 $ drop_image_or_text ,
506509 string $ version ,
507- string $ dateFrom ,
508- string $ dateTo
510+ DateTimeImmutable $ dateFrom ,
511+ DateTimeImmutable $ dateTo
509512 ) {
510513 // no need for the second returned parameter
511514 [$ html ] = $ this ->getHtmlForDataStatements (
@@ -541,8 +544,8 @@ public function getHtmlForDataDefinitionStatements(
541544 array $ url_params ,
542545 $ drop_image_or_text ,
543546 string $ version ,
544- string $ dateFrom ,
545- string $ dateTo
547+ DateTimeImmutable $ dateFrom ,
548+ DateTimeImmutable $ dateTo
546549 ) {
547550 [$ html , $ line_number ] = $ this ->getHtmlForDataStatements (
548551 $ data ,
@@ -588,18 +591,16 @@ private function getHtmlForDataStatements(
588591 $ lineNumber ,
589592 $ tableId ,
590593 string $ version ,
591- string $ dateFrom ,
592- string $ dateTo
594+ DateTimeImmutable $ dateFrom ,
595+ DateTimeImmutable $ dateTo
593596 ) {
594- $ dateFromTimestamp = strtotime ($ dateFrom );
595- $ dateToTimestamp = strtotime ($ dateTo );
596597 $ offset = $ lineNumber ;
597598 $ entries = [];
598599 foreach ($ data [$ whichLog ] as $ entry ) {
599600 $ timestamp = strtotime ($ entry ['date ' ]);
600601 if (
601- $ timestamp >= $ dateFromTimestamp
602- && $ timestamp <= $ dateToTimestamp
602+ $ timestamp >= $ dateFrom -> getTimestamp ()
603+ && $ timestamp <= $ dateTo -> getTimestamp ()
603604 && (in_array ('* ' , $ filterUsers )
604605 || in_array ($ entry ['username ' ], $ filterUsers ))
605606 ) {
@@ -1062,8 +1063,13 @@ public function createTrackingForMultipleTables(string $db, array $selected, str
10621063 *
10631064 * @return array
10641065 */
1065- public function getEntries (array $ data , array $ filter_users , string $ logType , string $ dateFrom , string $ dateTo )
1066- {
1066+ public function getEntries (
1067+ array $ data ,
1068+ array $ filter_users ,
1069+ string $ logType ,
1070+ DateTimeImmutable $ dateFrom ,
1071+ DateTimeImmutable $ dateTo
1072+ ) {
10671073 $ entries = [];
10681074 // Filtering data definition statements
10691075 if ($ logType === 'schema ' || $ logType === 'schema_and_data ' ) {
0 commit comments