Skip to content

Commit

Permalink
Feature/symfony upgrade to.3.4 (#251)
Browse files Browse the repository at this point in the history
* fix install of grunt-cli to only install the 1.3.2 so that it does not brake with older versions of node

* Renew SSL certs until 2026

* Removed symfony/security-csrf package since it was colliding with symfony/security which replaces thr former one. Thanks to that, symfony/security can be safely updated to 2.8.52 .

* Removed enforcement to keep some Symfony package in v2.8.0 so they are now updatable to 2.8.52

* Added (un)zip packages to Dockerfile so we remove Composer warning (#170)

* Bug/fix unit tests (#171)

* Added missing PDO dependency which is in fact needed

* Fixed Sponsor model unit tests

* Removed pointless comments and deprecated method on Mail model

* Fixed Mail model unit tests

* Fixed TextTest translations tests due to missing and/or incorrect HTML tags/attributes

* Updated Matcher model tests

* Enforce PHP 7.1 as minimum PHP version in Composer

* Fixed HTML structure on newsletter template and removed commented CSS classes

* Improved readability, added parameter types and some small refactors on Mail model

* Improved readability and added parameter types on MatcherTest class

* Further cleanup on User and MatcherTest classes

* Downgraded minimum PHP version to the production one

* Reintroduced sqlWhere variable so we don't get errors since it's used in the code

* Fully reintroduced the Sponsor 'type' property and fixed related failing test

* Refactored call to obtain Sponsors list into a method

* Fix SQL query to obtain Sponsors list

* Fix Mail model tests along with issues on the HTML formatting with 2 related templates

* Changed method syntax so is PHP 7.0 compliant (it was using PHP 7.1 syntax)

* Fix Matcher model tests (some translations were missing when querying for them)

* Reduced tests verbosity (we don't need to know if users, projects, etc were removed when running tests)

* Ignored .idea (Jetbrains IDEs) folder

* Bumped PHPMailer to 6.x and fixed Mail model and test with related changes

* Bumped Mockery to 1.x

* Added OpenSSL extension, since it's used by AmazonSns and AuthListener classes

* Updated amazon-s3-php-class with many changes (last updated on 2015)

* Assure PHPMailer minimum version is 6.4

* Updated to PHPUnit 6.5

* Removed empty test along with unused imports

* Moved PHP extensions on composer file right after the PHP version for easy spotting

* Reduced verbosity on tests output so we can focus on seeing if the focus passed, failed, errored or were skipped

* Remove deprecated asserts and upgrade PHPUnit from 6.x to 7.x

* Bumped min PHP version to 7.1

* Upgrade PHP from 7.0/7.1 to 7.4

* Upgraded PHPUnit to 8.x (depends on PR that enforces PHP 7.4)

* Removed deprecated expectedException (will be removed on PHPUnit 9.x). Flipped assertEquals comparators to be compliant with expected/actual order.

* Removed deprecated class

* Got rid of last array curly braces access

* Removed duplicated key

* Removed deprecated (and unused) FlattenException import

* Removed last noisy message on PHPUnit so we only have test results status

* WIP Upgrade to Symfony 3.x

* Tidy index(_env).php files so they have less differences between them, for a future merge

* Got rid of index_dev.php in favor of index.php that read ENV DEBUG parameter

* Added import, rewritten some PHPDocs and added some return types

* Clean container.php

* Refactor getName() method from custom Symfony Form Types, so they just have getBlockPrefix() method

* Refactor to add Form Types as is required in Symfony 3

* Fix install of migrations on PHP 7.4 and latest Composer dependencies

* Fix RouteListener initialization. Fix DB setup.

* Use ::class to register services in the ServiceContainer instead of strings

* Fix composer.json so it reckognizes goteo-private tests

* Fix tests for App class (due to having renamed a property)

* Updated Omnipay dependency to the new one from league

* Grouped Composer dependencies

* Used Symfony HttpKernel class instead of HttpKernel\HttpKernel

* Removed unneeded package

* Cleanup Omnipay classes and fix some issues while initilizing the Payment Gateway

* Made final changes to support all Omnipay payment methods using Omnipay v3

* Deprecated static AbstractPaymentMethod::getId() method in favor of non static one

* Converted static calculateComission method into non-static calculateCommission

* Converted static AbstractPaymentMethod::isInternal() into a non-static method

* Add parameter / return types and import used classes

* Updated TelegramBot so it doesn't use deprecated code

* Reviewed controllers to ensure they follow Symfony 3 convention

* Add User property type

* Removed unused code

* Tidy up classes

* Removed unused parameters from PHPDoc

* Upgraded Symfony from 3.0 to 3.1

* Included some used classes

* Finalize migration to symfony/forms 3.x (there must be a getBlockPrefix() method on a new Type, even if their parents have the method

* Enforce getModelForm() & createFormBuilder() from controllers to return FormProcessorInterface & FormFactory respectively

* Fix return parameter of Controller::createFormBuilder() method and the controllers that inherit it

* Upgraded to Symfony 3.2

* Symfony packages upgraded to 3.3

* WIP Migration to Symfony 3.4 almost completed

* Fix call to Mail::renderEmailTemplate (got renamed recently)

* Fix Settings Dashboard form (ChoiceType elements had flipped key / values)

* Fix loading of ChoiceType and some minor refactors

* Fix ChoiceType for some forms related to Contract PersonDocumentTypes

* Revert BooleanType::getBlockPrefix() method so it returns 'boolean' which to match it's class name

* Refactor ProjectOverviewForm to fix it and to ease its reading

* Fix import of PDOException (it was written incorrectly)

* Fix ChoiceTypes on several Project related forms

* Refactor to use the new Controller:getModelForm() method that requires a class instead of just a string. Fixed some Symfony Forms due to incomplete migration when Symfony 3.0 upgrade.

* Refactored last controller that used the deprecated method to guess SymfonyForm class

* Tiny refactors

* Removed unnecessary EventDispatcher from Console class

* Clean up of some classes

* Change test to testLegacy, since the deprecation notice is due to Symfony code (and is due to expire on Symfony 4.3)

* Fix some Symfony Forms with unfinished migration to Symfony 3.x. Remove some unused code / comments.

* General cleanup of controllers

* Tiny cleanup

* Fix access to some admin pages

* Fix usage of DatepickerType so it actually replaces the Symfony type while keeping all it's parents features

* Fix admin blog add/edit form

* Fix behaviour of some custom Symfony Form Types

* Fix FilterForm so it conforms to Symfony 3.x standards

* Readd workshop_location table since it got removed sometime ago by mistake

* Fix Symfony Console (probably due to some incomplete step after migrating to Symfony 3.x)

* Fix admin workshop add/edit form

* Fix some translations

* Refactor Sponsors controller

* Fix broken CSS on Call edit form for rewards items

* Fix admin Stories add/edit form

* Fix CSS error while displaying TypeaheadType form elements

* Fix Controller::redirect() parameter types

* Fix admin Channel Questionnaire and Channel Section forms to add/edit

* Fix Admin Charts API controller

* Cleanup SessionListener

* Reformatted Filter and Project models

* Simplify public/index.php

* Cleanup main PHP classes

* Minor refactors on controllers

* Removed deprecated mcrypt PHP extension

* Removed deprecated mcrypt PHP extension from composer.lock

* Fix SQL migration

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Improved Docker readme

* make loggin resilient to Gelf updates failures (#225)

* make loggin resilient to Gelf updates failures

* ignore redundant exception thrown

* fix on deprecated implode call (#229)

* update oauth library for linkedin (#226)

* add deployer script

* refactor subdomain processing and add test to it (#205)

* fix/var subs (#215)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix/var subs (#216)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix namespace

* update oauth library for linkedin

* update up to a working commit

* fix linkedin call

* remove orphan location stats (#230)

* Moved Omnipay/Mock/Gateway class to goteo repository (is needed to run PHPUnits successfully)

* Upgraded to PHPUnit 9

* Removed Rector file since it's no longer needed

* Minor fix to use constant instead of hardcoded text

* fix on deprecated implode call in Check (#233)

* Feature: Project can share a url to a signature platform (#234)

* Add sign_url field to Project and to Project Forms

* Make new project fields not required

* Add signture button in project skin

* Fix signature css

* Fix css and target blank link

Co-authored-by: Javier Carrillo <javier@goteo.org>
Co-authored-by: David Igón <david@goteo.org>

* make new project sign fields not required in translate overview form (#236)

* update aws-sns script (#241)

* Display cursor at current tab projects' button on homepage (#237)

* Display cursor at current tab projects' button on homepage

* Display cursor at current tab projects' button on homepage

* Fix dropfiles type after symfony BC in 2.8.31 (#199)

* add deployer script

* update symfony to ^2.8

* remove url from dropfiles in forms

* make uploadimagetransformer save image so that it updates the file name

* some fixes

* fix user profile form to save avatar

* rework of dropfiles type and js

* rework of all forms with dropfiles

* small fixes in model transformers

* refactor subdomain processing and add test to it (#205)

* fix/var subs (#215)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix/var subs (#216)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix namespace

* update oauth library for linkedin

* fix/linkedin (#227)

* Update live base code with latest fixes (#218)

* add project name to project translate overview

* fix route of poster in project dashboard

* Upgraded Symfony packages to v2.8.30 (last working version)

* Fix call to render method since it was renamed

(cherry picked from commit 5d93afab554e8211c59ed1f1ab21a2eb4ac75ad2)

* add composer.lock

* restore a early die if misconfiguration

* Updated Dockerfile to use an Ubuntu image that's not deprecated (#181)

* Updated Dockerfile to use an Ubuntu image that's not deprecated

* Removed Docker image based on date in favour of one that won't change

* fix/composer lock (#185)

* Fix call to render method since it was renamed

(cherry picked from commit 5d93afab554e8211c59ed1f1ab21a2eb4ac75ad2)

* remove lock to force deploy

Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>

* Twitter card meta description fix

* change projects to be shown in map when a matcher is selected to use node configuration if available

* improve filters in discover and fix ajax query

(cherry picked from commit 0432ebb325b99d68c42e300493fca974a6142c0f)

* fix use of query parameters when they are not being used

* fix project filters in discover and use of inner joins in project get list function

* Add matcher completed status

* Fix icons size

* Fix user leave exceptions

* remove comment on sql project name selects

* fix missing ) on fallback lang in Project published

* fix on config test yaml with env parameters

* add entries in docker settings to be used in yaml test

* change in config test to use real yaml instead of inserting env variables

* fix removing log in public index since its done via plugin

Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* specify region before connecting to s3 (#219)

* fix on deprecated parse_str without  variable (#221)

* make loggin resilient to Gelf updates failures (#225)

* make loggin resilient to Gelf updates failures

* ignore redundant exception thrown

* update oauth library for linkedin

Co-authored-by: David <david.igon@riseup.net>
Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>
Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* update up to a working commit

* fix linkedin call

* remove unnecessary comments from Forms

* Fix AdminStoryEdit form so it can properly add, save and remove the 3 types of images it has

* Refactor to have a unique place where to handle additions, changes or removals of pictures on a form

* Fix ProjectPostForm so it adds, edits and removes pictures correctly

* add sign_url field to Project and to Project Forms

* make new project fields not required

* Add signture button in project skin

* [STAGING deploy] Feature: Project can share a url to a signature platform (#235)

* fix on deprecated implode call (#229)

* update oauth library for linkedin (#226)

* add deployer script

* refactor subdomain processing and add test to it (#205)

* fix/var subs (#215)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix/var subs (#216)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix namespace

* update oauth library for linkedin

* update up to a working commit

* fix linkedin call

* remove orphan location stats (#230)

* fix on deprecated implode call in Check (#233)

* add sign_url field to Project and to Project Forms

* make new project fields not required

* Add signture button in project skin

Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* Fix signature css

* Fix css and target blank link

* update composer.lock to symfony 2.8.52

* Fix AdminSdgEdit form in order to allow removing the Sdf icon

* Fix ProjectStory form, since it wasn't possible to upload, update or remove images to the ProjectStory

* Fix Questionnaire form so it saves the uploaded image ID as the answer for Dropfiles

* fixes on questionnaire form to handle upload of documents instead of images

* Refactor on DropfilesType to include constant and to separate the different view elements added as a DropfilesType

Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>
Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* Renamed test file in order to comply with PSR-12 and PHPUnit 9

* Feature/symfony upgrade to.3.4 (#243)

* fix install of grunt-cli to only install the 1.3.2 so that it does not brake with older versions of node

* Renew SSL certs until 2026

* Removed symfony/security-csrf package since it was colliding with symfony/security which replaces thr former one. Thanks to that, symfony/security can be safely updated to 2.8.52 .

* Removed enforcement to keep some Symfony package in v2.8.0 so they are now updatable to 2.8.52

* Added (un)zip packages to Dockerfile so we remove Composer warning (#170)

* Bug/fix unit tests (#171)

* Added missing PDO dependency which is in fact needed

* Fixed Sponsor model unit tests

* Removed pointless comments and deprecated method on Mail model

* Fixed Mail model unit tests

* Fixed TextTest translations tests due to missing and/or incorrect HTML tags/attributes

* Updated Matcher model tests

* Enforce PHP 7.1 as minimum PHP version in Composer

* Fixed HTML structure on newsletter template and removed commented CSS classes

* Improved readability, added parameter types and some small refactors on Mail model

* Improved readability and added parameter types on MatcherTest class

* Further cleanup on User and MatcherTest classes

* Downgraded minimum PHP version to the production one

* Reintroduced sqlWhere variable so we don't get errors since it's used in the code

* Fully reintroduced the Sponsor 'type' property and fixed related failing test

* Refactored call to obtain Sponsors list into a method

* Fix SQL query to obtain Sponsors list

* Fix Mail model tests along with issues on the HTML formatting with 2 related templates

* Changed method syntax so is PHP 7.0 compliant (it was using PHP 7.1 syntax)

* Fix Matcher model tests (some translations were missing when querying for them)

* Reduced tests verbosity (we don't need to know if users, projects, etc were removed when running tests)

* Ignored .idea (Jetbrains IDEs) folder

* Bumped PHPMailer to 6.x and fixed Mail model and test with related changes

* Bumped Mockery to 1.x

* Added OpenSSL extension, since it's used by AmazonSns and AuthListener classes

* Updated amazon-s3-php-class with many changes (last updated on 2015)

* Assure PHPMailer minimum version is 6.4

* Updated to PHPUnit 6.5

* Removed empty test along with unused imports

* Moved PHP extensions on composer file right after the PHP version for easy spotting

* Reduced verbosity on tests output so we can focus on seeing if the focus passed, failed, errored or were skipped

* Remove deprecated asserts and upgrade PHPUnit from 6.x to 7.x

* Bumped min PHP version to 7.1

* Upgrade PHP from 7.0/7.1 to 7.4

* Upgraded PHPUnit to 8.x (depends on PR that enforces PHP 7.4)

* Removed deprecated expectedException (will be removed on PHPUnit 9.x). Flipped assertEquals comparators to be compliant with expected/actual order.

* Removed deprecated class

* Got rid of last array curly braces access

* Removed duplicated key

* Removed deprecated (and unused) FlattenException import

* Removed last noisy message on PHPUnit so we only have test results status

* WIP Upgrade to Symfony 3.x

* Tidy index(_env).php files so they have less differences between them, for a future merge

* Got rid of index_dev.php in favor of index.php that read ENV DEBUG parameter

* Added import, rewritten some PHPDocs and added some return types

* Clean container.php

* Refactor getName() method from custom Symfony Form Types, so they just have getBlockPrefix() method

* Refactor to add Form Types as is required in Symfony 3

* Fix install of migrations on PHP 7.4 and latest Composer dependencies

* Fix RouteListener initialization. Fix DB setup.

* Use ::class to register services in the ServiceContainer instead of strings

* Fix composer.json so it reckognizes goteo-private tests

* Fix tests for App class (due to having renamed a property)

* Updated Omnipay dependency to the new one from league

* Grouped Composer dependencies

* Used Symfony HttpKernel class instead of HttpKernel\HttpKernel

* Removed unneeded package

* Cleanup Omnipay classes and fix some issues while initilizing the Payment Gateway

* Made final changes to support all Omnipay payment methods using Omnipay v3

* Deprecated static AbstractPaymentMethod::getId() method in favor of non static one

* Converted static calculateComission method into non-static calculateCommission

* Converted static AbstractPaymentMethod::isInternal() into a non-static method

* Add parameter / return types and import used classes

* Updated TelegramBot so it doesn't use deprecated code

* Reviewed controllers to ensure they follow Symfony 3 convention

* Add User property type

* Removed unused code

* Tidy up classes

* Removed unused parameters from PHPDoc

* Upgraded Symfony from 3.0 to 3.1

* Included some used classes

* Finalize migration to symfony/forms 3.x (there must be a getBlockPrefix() method on a new Type, even if their parents have the method

* Enforce getModelForm() & createFormBuilder() from controllers to return FormProcessorInterface & FormFactory respectively

* Fix return parameter of Controller::createFormBuilder() method and the controllers that inherit it

* Upgraded to Symfony 3.2

* Symfony packages upgraded to 3.3

* WIP Migration to Symfony 3.4 almost completed

* Fix call to Mail::renderEmailTemplate (got renamed recently)

* Fix Settings Dashboard form (ChoiceType elements had flipped key / values)

* Fix loading of ChoiceType and some minor refactors

* Fix ChoiceType for some forms related to Contract PersonDocumentTypes

* Revert BooleanType::getBlockPrefix() method so it returns 'boolean' which to match it's class name

* Refactor ProjectOverviewForm to fix it and to ease its reading

* Fix import of PDOException (it was written incorrectly)

* Fix ChoiceTypes on several Project related forms

* Refactor to use the new Controller:getModelForm() method that requires a class instead of just a string. Fixed some Symfony Forms due to incomplete migration when Symfony 3.0 upgrade.

* Refactored last controller that used the deprecated method to guess SymfonyForm class

* Tiny refactors

* Removed unnecessary EventDispatcher from Console class

* Clean up of some classes

* Change test to testLegacy, since the deprecation notice is due to Symfony code (and is due to expire on Symfony 4.3)

* Fix some Symfony Forms with unfinished migration to Symfony 3.x. Remove some unused code / comments.

* General cleanup of controllers

* Tiny cleanup

* Fix access to some admin pages

* Fix usage of DatepickerType so it actually replaces the Symfony type while keeping all it's parents features

* Fix admin blog add/edit form

* Fix behaviour of some custom Symfony Form Types

* Fix FilterForm so it conforms to Symfony 3.x standards

* Readd workshop_location table since it got removed sometime ago by mistake

* Fix Symfony Console (probably due to some incomplete step after migrating to Symfony 3.x)

* Fix admin workshop add/edit form

* Fix some translations

* Refactor Sponsors controller

* Fix broken CSS on Call edit form for rewards items

* Fix admin Stories add/edit form

* Fix CSS error while displaying TypeaheadType form elements

* Fix Controller::redirect() parameter types

* Fix admin Channel Questionnaire and Channel Section forms to add/edit

* Fix Admin Charts API controller

* Update live base code with latest fixes (#218)

* add project name to project translate overview

* fix route of poster in project dashboard

* Upgraded Symfony packages to v2.8.30 (last working version)

* Fix call to render method since it was renamed

(cherry picked from commit 5d93afab554e8211c59ed1f1ab21a2eb4ac75ad2)

* add composer.lock

* restore a early die if misconfiguration

* Updated Dockerfile to use an Ubuntu image that's not deprecated (#181)

* Updated Dockerfile to use an Ubuntu image that's not deprecated

* Removed Docker image based on date in favour of one that won't change

* fix/composer lock (#185)

* Fix call to render method since it was renamed

(cherry picked from commit 5d93afab554e8211c59ed1f1ab21a2eb4ac75ad2)

* remove lock to force deploy

Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>

* Twitter card meta description fix

* change projects to be shown in map when a matcher is selected to use node configuration if available

* improve filters in discover and fix ajax query

(cherry picked from commit 0432ebb325b99d68c42e300493fca974a6142c0f)

* fix use of query parameters when they are not being used

* fix project filters in discover and use of inner joins in project get list function

* Add matcher completed status

* Fix icons size

* Fix user leave exceptions

* remove comment on sql project name selects

* fix missing ) on fallback lang in Project published

* fix on config test yaml with env parameters

* add entries in docker settings to be used in yaml test

* change in config test to use real yaml instead of inserting env variables

* fix removing log in public index since its done via plugin

Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* specify region before connecting to s3 (#219)

* fix on deprecated parse_str without  variable (#221)

* Cleanup SessionListener

* Reformatted Filter and Project models

* Simplify public/index.php

* Cleanup main PHP classes

* Minor refactors on controllers

* Removed deprecated mcrypt PHP extension

* Removed deprecated mcrypt PHP extension from composer.lock

* Fix SQL migration

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Improved Docker readme

* make loggin resilient to Gelf updates failures (#225)

* make loggin resilient to Gelf updates failures

* ignore redundant exception thrown

* fix on deprecated implode call (#229)

* update oauth library for linkedin (#226)

* add deployer script

* refactor subdomain processing and add test to it (#205)

* fix/var subs (#215)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix/var subs (#216)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix namespace

* update oauth library for linkedin

* update up to a working commit

* fix linkedin call

* remove orphan location stats (#230)

* Moved Omnipay/Mock/Gateway class to goteo repository (is needed to run PHPUnits successfully)

* Feature/symfony upgrade to.3.4 (#222)

* fix install of grunt-cli to only install the 1.3.2 so that it does not brake with older versions of node

* Renew SSL certs until 2026

* Removed symfony/security-csrf package since it was colliding with symfony/security which replaces thr former one. Thanks to that, symfony/security can be safely updated to 2.8.52 .

* Removed enforcement to keep some Symfony package in v2.8.0 so they are now updatable to 2.8.52

* Added (un)zip packages to Dockerfile so we remove Composer warning (#170)

* Bug/fix unit tests (#171)

* Added missing PDO dependency which is in fact needed

* Fixed Sponsor model unit tests

* Removed pointless comments and deprecated method on Mail model

* Fixed Mail model unit tests

* Fixed TextTest translations tests due to missing and/or incorrect HTML tags/attributes

* Updated Matcher model tests

* Enforce PHP 7.1 as minimum PHP version in Composer

* Fixed HTML structure on newsletter template and removed commented CSS classes

* Improved readability, added parameter types and some small refactors on Mail model

* Improved readability and added parameter types on MatcherTest class

* Further cleanup on User and MatcherTest classes

* Downgraded minimum PHP version to the production one

* Reintroduced sqlWhere variable so we don't get errors since it's used in the code

* Fully reintroduced the Sponsor 'type' property and fixed related failing test

* Refactored call to obtain Sponsors list into a method

* Fix SQL query to obtain Sponsors list

* Fix Mail model tests along with issues on the HTML formatting with 2 related templates

* Changed method syntax so is PHP 7.0 compliant (it was using PHP 7.1 syntax)

* Fix Matcher model tests (some translations were missing when querying for them)

* Reduced tests verbosity (we don't need to know if users, projects, etc were removed when running tests)

* Ignored .idea (Jetbrains IDEs) folder

* Bumped PHPMailer to 6.x and fixed Mail model and test with related changes

* Bumped Mockery to 1.x

* Added OpenSSL extension, since it's used by AmazonSns and AuthListener classes

* Updated amazon-s3-php-class with many changes (last updated on 2015)

* Assure PHPMailer minimum version is 6.4

* Updated to PHPUnit 6.5

* Removed empty test along with unused imports

* Moved PHP extensions on composer file right after the PHP version for easy spotting

* Reduced verbosity on tests output so we can focus on seeing if the focus passed, failed, errored or were skipped

* Remove deprecated asserts and upgrade PHPUnit from 6.x to 7.x

* Bumped min PHP version to 7.1

* Upgrade PHP from 7.0/7.1 to 7.4

* Upgraded PHPUnit to 8.x (depends on PR that enforces PHP 7.4)

* Removed deprecated expectedException (will be removed on PHPUnit 9.x). Flipped assertEquals comparators to be compliant with expected/actual order.

* Removed deprecated class

* Got rid of last array curly braces access

* Removed duplicated key

* Removed deprecated (and unused) FlattenException import

* Removed last noisy message on PHPUnit so we only have test results status

* WIP Upgrade to Symfony 3.x

* Tidy index(_env).php files so they have less differences between them, for a future merge

* Got rid of index_dev.php in favor of index.php that read ENV DEBUG parameter

* Added import, rewritten some PHPDocs and added some return types

* Clean container.php

* Refactor getName() method from custom Symfony Form Types, so they just have getBlockPrefix() method

* Refactor to add Form Types as is required in Symfony 3

* Fix install of migrations on PHP 7.4 and latest Composer dependencies

* Fix RouteListener initialization. Fix DB setup.

* Use ::class to register services in the ServiceContainer instead of strings

* Fix composer.json so it reckognizes goteo-private tests

* Fix tests for App class (due to having renamed a property)

* Updated Omnipay dependency to the new one from league

* Grouped Composer dependencies

* Used Symfony HttpKernel class instead of HttpKernel\HttpKernel

* Removed unneeded package

* Cleanup Omnipay classes and fix some issues while initilizing the Payment Gateway

* Made final changes to support all Omnipay payment methods using Omnipay v3

* Deprecated static AbstractPaymentMethod::getId() method in favor of non static one

* Converted static calculateComission method into non-static calculateCommission

* Converted static AbstractPaymentMethod::isInternal() into a non-static method

* Add parameter / return types and import used classes

* Updated TelegramBot so it doesn't use deprecated code

* Reviewed controllers to ensure they follow Symfony 3 convention

* Add User property type

* Removed unused code

* Tidy up classes

* Removed unused parameters from PHPDoc

* Upgraded Symfony from 3.0 to 3.1

* Included some used classes

* Finalize migration to symfony/forms 3.x (there must be a getBlockPrefix() method on a new Type, even if their parents have the method

* Enforce getModelForm() & createFormBuilder() from controllers to return FormProcessorInterface & FormFactory respectively

* Fix return parameter of Controller::createFormBuilder() method and the controllers that inherit it

* Upgraded to Symfony 3.2

* Symfony packages upgraded to 3.3

* WIP Migration to Symfony 3.4 almost completed

* Fix call to Mail::renderEmailTemplate (got renamed recently)

* Fix Settings Dashboard form (ChoiceType elements had flipped key / values)

* Fix loading of ChoiceType and some minor refactors

* Fix ChoiceType for some forms related to Contract PersonDocumentTypes

* Revert BooleanType::getBlockPrefix() method so it returns 'boolean' which to match it's class name

* Refactor ProjectOverviewForm to fix it and to ease its reading

* Fix import of PDOException (it was written incorrectly)

* Fix ChoiceTypes on several Project related forms

* Refactor to use the new Controller:getModelForm() method that requires a class instead of just a string. Fixed some Symfony Forms due to incomplete migration when Symfony 3.0 upgrade.

* Refactored last controller that used the deprecated method to guess SymfonyForm class

* Tiny refactors

* Removed unnecessary EventDispatcher from Console class

* Clean up of some classes

* Change test to testLegacy, since the deprecation notice is due to Symfony code (and is due to expire on Symfony 4.3)

* Fix some Symfony Forms with unfinished migration to Symfony 3.x. Remove some unused code / comments.

* General cleanup of controllers

* Tiny cleanup

* Fix access to some admin pages

* Fix usage of DatepickerType so it actually replaces the Symfony type while keeping all it's parents features

* Fix admin blog add/edit form

* Fix behaviour of some custom Symfony Form Types

* Fix FilterForm so it conforms to Symfony 3.x standards

* Readd workshop_location table since it got removed sometime ago by mistake

* Fix Symfony Console (probably due to some incomplete step after migrating to Symfony 3.x)

* Fix admin workshop add/edit form

* Fix some translations

* Refactor Sponsors controller

* Fix broken CSS on Call edit form for rewards items

* Fix admin Stories add/edit form

* Fix CSS error while displaying TypeaheadType form elements

* Fix Controller::redirect() parameter types

* Fix admin Channel Questionnaire and Channel Section forms to add/edit

* Fix Admin Charts API controller

* Cleanup SessionListener

* Reformatted Filter and Project models

* Simplify public/index.php

* Cleanup main PHP classes

* Minor refactors on controllers

* Removed deprecated mcrypt PHP extension

* Removed deprecated mcrypt PHP extension from composer.lock

* Fix SQL migration

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Improved Docker readme

* Moved Omnipay/Mock/Gateway class to goteo repository (is needed to run PHPUnits successfully)

Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: David Igón <david@goteo.org>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>

* Feature/symfony upgrade to.3.4 (#231)

* fix install of grunt-cli to only install the 1.3.2 so that it does not brake with older versions of node

* Renew SSL certs until 2026

* Removed symfony/security-csrf package since it was colliding with symfony/security which replaces thr former one. Thanks to that, symfony/security can be safely updated to 2.8.52 .

* Removed enforcement to keep some Symfony package in v2.8.0 so they are now updatable to 2.8.52

* Added (un)zip packages to Dockerfile so we remove Composer warning (#170)

* Bug/fix unit tests (#171)

* Added missing PDO dependency which is in fact needed

* Fixed Sponsor model unit tests

* Removed pointless comments and deprecated method on Mail model

* Fixed Mail model unit tests

* Fixed TextTest translations tests due to missing and/or incorrect HTML tags/attributes

* Updated Matcher model tests

* Enforce PHP 7.1 as minimum PHP version in Composer

* Fixed HTML structure on newsletter template and removed commented CSS classes

* Improved readability, added parameter types and some small refactors on Mail model

* Improved readability and added parameter types on MatcherTest class

* Further cleanup on User and MatcherTest classes

* Downgraded minimum PHP version to the production one

* Reintroduced sqlWhere variable so we don't get errors since it's used in the code

* Fully reintroduced the Sponsor 'type' property and fixed related failing test

* Refactored call to obtain Sponsors list into a method

* Fix SQL query to obtain Sponsors list

* Fix Mail model tests along with issues on the HTML formatting with 2 related templates

* Changed method syntax so is PHP 7.0 compliant (it was using PHP 7.1 syntax)

* Fix Matcher model tests (some translations were missing when querying for them)

* Reduced tests verbosity (we don't need to know if users, projects, etc were removed when running tests)

* Ignored .idea (Jetbrains IDEs) folder

* Bumped PHPMailer to 6.x and fixed Mail model and test with related changes

* Bumped Mockery to 1.x

* Added OpenSSL extension, since it's used by AmazonSns and AuthListener classes

* Updated amazon-s3-php-class with many changes (last updated on 2015)

* Assure PHPMailer minimum version is 6.4

* Updated to PHPUnit 6.5

* Removed empty test along with unused imports

* Moved PHP extensions on composer file right after the PHP version for easy spotting

* Reduced verbosity on tests output so we can focus on seeing if the focus passed, failed, errored or were skipped

* Remove deprecated asserts and upgrade PHPUnit from 6.x to 7.x

* Bumped min PHP version to 7.1

* Upgrade PHP from 7.0/7.1 to 7.4

* Upgraded PHPUnit to 8.x (depends on PR that enforces PHP 7.4)

* Removed deprecated expectedException (will be removed on PHPUnit 9.x). Flipped assertEquals comparators to be compliant with expected/actual order.

* Removed deprecated class

* Got rid of last array curly braces access

* Removed duplicated key

* Removed deprecated (and unused) FlattenException import

* Removed last noisy message on PHPUnit so we only have test results status

* WIP Upgrade to Symfony 3.x

* Tidy index(_env).php files so they have less differences between them, for a future merge

* Got rid of index_dev.php in favor of index.php that read ENV DEBUG parameter

* Added import, rewritten some PHPDocs and added some return types

* Clean container.php

* Refactor getName() method from custom Symfony Form Types, so they just have getBlockPrefix() method

* Refactor to add Form Types as is required in Symfony 3

* Fix install of migrations on PHP 7.4 and latest Composer dependencies

* Fix RouteListener initialization. Fix DB setup.

* Use ::class to register services in the ServiceContainer instead of strings

* Fix composer.json so it reckognizes goteo-private tests

* Fix tests for App class (due to having renamed a property)

* Updated Omnipay dependency to the new one from league

* Grouped Composer dependencies

* Used Symfony HttpKernel class instead of HttpKernel\HttpKernel

* Removed unneeded package

* Cleanup Omnipay classes and fix some issues while initilizing the Payment Gateway

* Made final changes to support all Omnipay payment methods using Omnipay v3

* Deprecated static AbstractPaymentMethod::getId() method in favor of non static one

* Converted static calculateComission method into non-static calculateCommission

* Converted static AbstractPaymentMethod::isInternal() into a non-static method

* Add parameter / return types and import used classes

* Updated TelegramBot so it doesn't use deprecated code

* Reviewed controllers to ensure they follow Symfony 3 convention

* Add User property type

* Removed unused code

* Tidy up classes

* Removed unused parameters from PHPDoc

* Upgraded Symfony from 3.0 to 3.1

* Included some used classes

* Finalize migration to symfony/forms 3.x (there must be a getBlockPrefix() method on a new Type, even if their parents have the method

* Enforce getModelForm() & createFormBuilder() from controllers to return FormProcessorInterface & FormFactory respectively

* Fix return parameter of Controller::createFormBuilder() method and the controllers that inherit it

* Upgraded to Symfony 3.2

* Symfony packages upgraded to 3.3

* WIP Migration to Symfony 3.4 almost completed

* Fix call to Mail::renderEmailTemplate (got renamed recently)

* Fix Settings Dashboard form (ChoiceType elements had flipped key / values)

* Fix loading of ChoiceType and some minor refactors

* Fix ChoiceType for some forms related to Contract PersonDocumentTypes

* Revert BooleanType::getBlockPrefix() method so it returns 'boolean' which to match it's class name

* Refactor ProjectOverviewForm to fix it and to ease its reading

* Fix import of PDOException (it was written incorrectly)

* Fix ChoiceTypes on several Project related forms

* Refactor to use the new Controller:getModelForm() method that requires a class instead of just a string. Fixed some Symfony Forms due to incomplete migration when Symfony 3.0 upgrade.

* Refactored last controller that used the deprecated method to guess SymfonyForm class

* Tiny refactors

* Removed unnecessary EventDispatcher from Console class

* Clean up of some classes

* Change test to testLegacy, since the deprecation notice is due to Symfony code (and is due to expire on Symfony 4.3)

* Fix some Symfony Forms with unfinished migration to Symfony 3.x. Remove some unused code / comments.

* General cleanup of controllers

* Tiny cleanup

* Fix access to some admin pages

* Fix usage of DatepickerType so it actually replaces the Symfony type while keeping all it's parents features

* Fix admin blog add/edit form

* Fix behaviour of some custom Symfony Form Types

* Fix FilterForm so it conforms to Symfony 3.x standards

* Readd workshop_location table since it got removed sometime ago by mistake

* Fix Symfony Console (probably due to some incomplete step after migrating to Symfony 3.x)

* Fix admin workshop add/edit form

* Fix some translations

* Refactor Sponsors controller

* Fix broken CSS on Call edit form for rewards items

* Fix admin Stories add/edit form

* Fix CSS error while displaying TypeaheadType form elements

* Fix Controller::redirect() parameter types

* Fix admin Channel Questionnaire and Channel Section forms to add/edit

* Fix Admin Charts API controller

* Cleanup SessionListener

* Reformatted Filter and Project models

* Simplify public/index.php

* Cleanup main PHP classes

* Minor refactors on controllers

* Removed deprecated mcrypt PHP extension

* Removed deprecated mcrypt PHP extension from composer.lock

* Fix SQL migration

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Fix SQL migration related to mail table

* Improved Docker readme

* make loggin resilient to Gelf updates failures (#225)

* make loggin resilient to Gelf updates failures

* ignore redundant exception thrown

* fix on deprecated implode call (#229)

* update oauth library for linkedin (#226)

* add deployer script

* refactor subdomain processing and add test to it (#205)

* fix/var subs (#215)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix/var subs (#216)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix namespace

* update oauth library for linkedin

* update up to a working commit

* fix linkedin call

* remove orphan location stats (#230)

* Moved Omnipay/Mock/Gateway class to goteo repository (is needed to run PHPUnits successfully)

Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: David Igón <david@goteo.org>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: David <david.igon@riseup.net>

* Upgraded to PHPUnit 9

* Removed Rector file since it's no longer needed

* Minor fix to use constant instead of hardcoded text

* fix on deprecated implode call in Check (#233)

* Feature: Project can share a url to a signature platform (#234)

* Add sign_url field to Project and to Project Forms

* Make new project fields not required

* Add signture button in project skin

* Fix signature css

* Fix css and target blank link

Co-authored-by: Javier Carrillo <javier@goteo.org>
Co-authored-by: David Igón <david@goteo.org>

* make new project sign fields not required in translate overview form (#236)

* update aws-sns script (#241)

* Display cursor at current tab projects' button on homepage (#237)

* Display cursor at current tab projects' button on homepage

* Display cursor at current tab projects' button on homepage

* Fix dropfiles type after symfony BC in 2.8.31 (#199)

* add deployer script

* update symfony to ^2.8

* remove url from dropfiles in forms

* make uploadimagetransformer save image so that it updates the file name

* some fixes

* fix user profile form to save avatar

* rework of dropfiles type and js

* rework of all forms with dropfiles

* small fixes in model transformers

* refactor subdomain processing and add test to it (#205)

* fix/var subs (#215)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix/var subs (#216)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix namespace

* update oauth library for linkedin

* fix/linkedin (#227)

* Update live base code with latest fixes (#218)

* add project name to project translate overview

* fix route of poster in project dashboard

* Upgraded Symfony packages to v2.8.30 (last working version)

* Fix call to render method since it was renamed

(cherry picked from commit 5d93afab554e8211c59ed1f1ab21a2eb4ac75ad2)

* add composer.lock

* restore a early die if misconfiguration

* Updated Dockerfile to use an Ubuntu image that's not deprecated (#181)

* Updated Dockerfile to use an Ubuntu image that's not deprecated

* Removed Docker image based on date in favour of one that won't change

* fix/composer lock (#185)

* Fix call to render method since it was renamed

(cherry picked from commit 5d93afab554e8211c59ed1f1ab21a2eb4ac75ad2)

* remove lock to force deploy

Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>

* Twitter card meta description fix

* change projects to be shown in map when a matcher is selected to use node configuration if available

* improve filters in discover and fix ajax query

(cherry picked from commit 0432ebb325b99d68c42e300493fca974a6142c0f)

* fix use of query parameters when they are not being used

* fix project filters in discover and use of inner joins in project get list function

* Add matcher completed status

* Fix icons size

* Fix user leave exceptions

* remove comment on sql project name selects

* fix missing ) on fallback lang in Project published

* fix on config test yaml with env parameters

* add entries in docker settings to be used in yaml test

* change in config test to use real yaml instead of inserting env variables

* fix removing log in public index since its done via plugin

Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* specify region before connecting to s3 (#219)

* fix on deprecated parse_str without  variable (#221)

* make loggin resilient to Gelf updates failures (#225)

* make loggin resilient to Gelf updates failures

* ignore redundant exception thrown

* update oauth library for linkedin

Co-authored-by: David <david.igon@riseup.net>
Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>
Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* update up to a working commit

* fix linkedin call

* remove unnecessary comments from Forms

* Fix AdminStoryEdit form so it can properly add, save and remove the 3 types of images it has

* Refactor to have a unique place where to handle additions, changes or removals of pictures on a form

* Fix ProjectPostForm so it adds, edits and removes pictures correctly

* add sign_url field to Project and to Project Forms

* make new project fields not required

* Add signture button in project skin

* [STAGING deploy] Feature: Project can share a url to a signature platform (#235)

* fix on deprecated implode call (#229)

* update oauth library for linkedin (#226)

* add deployer script

* refactor subdomain processing and add test to it (#205)

* fix/var subs (#215)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix/var subs (#216)

* refactor subdomain processing and add test to it (#204)

* refactor subdomain processing and add test to it

* add other envs to deployment

* make config process deep ENV substitution

* fix namespace

* update oauth library for linkedin

* update up to a working commit

* fix linkedin call

* remove orphan location stats (#230)

* fix on deprecated implode call in Check (#233)

* add sign_url field to Project and to Project Forms

* make new project fields not required

* Add signture button in project skin

Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* Fix signature css

* Fix css and target blank link

* update composer.lock to symfony 2.8.52

* Fix AdminSdgEdit form in order to allow removing the Sdf icon

* Fix ProjectStory form, since it wasn't possible to upload, update or remove images to the ProjectStory

* Fix Questionnaire form so it saves the uploaded image ID as the answer for Dropfiles

* fixes on questionnaire form to handle upload of documents instead of images

* Refactor on DropfilesType to include constant and to separate the different view elements added as a DropfilesType

Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: Carlos Alberto Martínez Gadea <carlosmartinezgadea@gmail.com>
Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* Renamed test file in order to comply with PSR-12 and PHPUnit 9

Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: David Igón <david@goteo.org>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: David <david.igon@riseup.net>
Co-authored-by: Javier Carrillo <javier@goteo.org>

* Fix public/index.php

* Refactored Symfony EventDispatcher's Event class to use the newer namespace

* Test to prevent redirection to URL without language subdomain

* Test to prevent redirection to URL without language subdomain

* Restore redirection to non-language URL

* Remove duplicated initiation of debug mode

* Little refactor to tidy up SessionListener and UrlLang classes

* Trying fix of infinite redirections

Co-authored-by: Javier <javicarrillo83@gmail.com>
Co-authored-by: David Igón <david@goteo.org>
Co-authored-by: Ivan Vergés <ivan@platoniq.net>
Co-authored-by: David <david.igon@riseup.net>
Co-authored-by: Javier Carrillo <javier@goteo.org>
  • Loading branch information
6 people committed Oct 4, 2021
1 parent 0b61f42 commit c176af9
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 23 deletions.
5 changes: 4 additions & 1 deletion public/index.php
Expand Up @@ -23,6 +23,9 @@

ini_set('display_errors', 0);
error_reporting(E_ALL & ~E_NOTICE & ~E_USER_DEPRECATED); // for symfony user deprecated errors

// Bored? Try the hard way and fix some notices:
//Symfony\Component\Debug\Debug::enable();
// error handle needs to go after autoload
set_error_handler('Goteo\Application\App::errorHandler');

Expand All @@ -40,7 +43,7 @@
if (is_array(Config::get('proxies'))) {
$request->setTrustedProxies(
Config::get('proxies'),
Request::HEADER_FORWARDED
Request::HEADER_X_FORWARDED_ALL
);
}

Expand Down
23 changes: 12 additions & 11 deletions src/Goteo/Application/EventListener/SessionListener.php
Expand Up @@ -72,7 +72,7 @@ public function onRequest(GetResponseEvent $event) {
});

$lang = Lang::setFromGlobals($request);
// $host = $parser->getHost($lang);
$host = $parser->getHost($lang);
// Maintain user in secure environment if logged and ssl config on
if (Config::get('ssl') && Session::isLogged() && !$request->isSecure()) {
$host = 'https://' . $host;
Expand All @@ -81,11 +81,11 @@ public function onRequest(GetResponseEvent $event) {
}

// Redirect if needed
// if ($host != $request->getScheme() . '://' . $request->getHttpHost()) {
// $query = http_build_query($request->query->all());
// $event->setResponse(new RedirectResponse($host . $request->getPathInfo() . ($query ? "?$query" : '')));
// return;
// }
if ($host != $request->getScheme() . '://' . $request->getHttpHost()) {
$query = http_build_query($request->query->all());
$event->setResponse(new RedirectResponse($host . $request->getPathInfo() . ($query ? "?$query" : '')));
return;
}

// the stupid cookie EU law
if (!Cookie::exists('goteo_cookies')) {
Expand Down Expand Up @@ -230,10 +230,11 @@ public function onResponse(FilterResponseEvent $event) {
}
}

public static function getSubscribedEvents() {
return array(
KernelEvents::REQUEST => array('onRequest', 50), // High priority
KernelEvents::RESPONSE => array('onResponse', -50), // low priority: after headers are processed by symfony
);
public static function getSubscribedEvents(): array
{
return [
KernelEvents::REQUEST => ['onRequest', 50], // High priority
KernelEvents::RESPONSE => ['onResponse', -50], // low priority: after headers are processed by symfony
];
}
}
22 changes: 11 additions & 11 deletions src/Goteo/Util/Parsers/UrlLang.php
Expand Up @@ -15,9 +15,9 @@
use Symfony\Component\HttpFoundation\Request;

class UrlLang {
public $request;
protected $path;
protected $host;
public Request $request;
protected string $path;
protected string $host;

public function __construct(Request $request) {
$this->request = $request;
Expand Down Expand Up @@ -63,6 +63,7 @@ public function getHost($lang) {
array_shift($parts);
$host = implode('.', $parts);
}

// if reduced URL is the main domain, redirect to sub-level lang
if($host === Config::get("url.url_lang")) {
if($this->request->query->has('lang')) {
Expand All @@ -72,22 +73,21 @@ public function getHost($lang) {
if($this->matchPrefix($this->path, $fixed)) {
// $host = "$host";
$this->request->query->set('lang', $lang);
}
else {
} else {
$host = preg_replace('!https?://|/$!i', '', Lang::getUrl($lang));
}

}

return $host;
}

/**
* Chechsk if any of the elements in array $prefixes starts with the same chars as $full_str
* @param string $full_str full string
* @param array $prefixes array of prexixes
* @return boolean found or not
* Checks if any of the elements in array $prefixes starts with the same chars as $full_str
* @param array $prefixes
* @return boolean found or not
*/
protected function matchPrefix($full_str, $prefixes) {
protected function matchPrefix(string $full_str, $prefixes): bool
{
if(!is_array($prefixes)) {
$prefixes = [$prefixes];
}
Expand Down

0 comments on commit c176af9

Please sign in to comment.