mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge branch '4.1' into 4.2
This commit is contained in:
commit
79e44b42fa
127
.upgrade.yml
127
.upgrade.yml
@ -1368,3 +1368,130 @@ warnings:
|
||||
'THIRDPARTY_DIR':
|
||||
message: 'Path constants have been deprecated. Use the Requirements and ModuleResourceLoader APIs'
|
||||
url: 'https://docs.silverstripe.org/en/4/changelogs/4.0.0#module-paths'
|
||||
visibilities:
|
||||
'SilverStripe\ORM\DataObject::db':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::singular_name':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::plural_name':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::api_access':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::default_classname':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject->destroyed':
|
||||
visibility: public
|
||||
'SilverStripe\ORM\DataObject->record':
|
||||
visibility: protected
|
||||
'SilverStripe\ORM\DataObject->joinRecord':
|
||||
visibility: protected
|
||||
'SilverStripe\ORM\DataObject->changed':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject->changeForced':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject->original':
|
||||
visibility: protected
|
||||
'SilverStripe\ORM\DataObject->brokenOnDelete':
|
||||
visibility: protected
|
||||
'SilverStripe\ORM\DataObject->brokenOnWrite':
|
||||
visibility: protected
|
||||
'SilverStripe\ORM\DataObject::validation_enabled':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::_cache_get_one':
|
||||
visibility: protected
|
||||
'SilverStripe\ORM\DataObject::_cache_field_labels':
|
||||
visibility: protected
|
||||
'SilverStripe\ORM\DataObject::fixed_fields':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::table_name':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject->components':
|
||||
visibility: protected
|
||||
'SilverStripe\ORM\DataObject->unsavedRelations':
|
||||
visibility: protected
|
||||
'SilverStripe\ORM\DataObject::cascade_deletes':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::cascade_duplicates':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::sourceQueryParams':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::subclass_access':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::casting':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::create_table_options':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::indexes':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::defaults':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::default_records':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::has_one':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::belongs_to':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::has_many':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::many_many':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::many_many_extraFields':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::belongs_many_many':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::default_sort':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::searchable_fields':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::field_labels':
|
||||
visibility: private
|
||||
'SilverStripe\ORM\DataObject::summary_fields':
|
||||
visibility: private
|
||||
'SilverStripe\Control\Director::rules':
|
||||
visibility: private
|
||||
'SilverStripe\Control\Director::current_page':
|
||||
visibility: private
|
||||
'SilverStripe\Control\Director::alternate_base_folder':
|
||||
visibility: private
|
||||
'SilverStripe\Control\Director::alternate_public_dir':
|
||||
visibility: private
|
||||
'SilverStripe\Control\Director::default_base_url':
|
||||
visibility: private
|
||||
'SilverStripe\Forms\GridField\GridFieldPaginator::default_items_per_page':
|
||||
visibility: private
|
||||
'SilverStripe\View\SSViewer::themes':
|
||||
visibility: private
|
||||
'SilverStripe\View\SSViewer::current_themes':
|
||||
visibility: protected
|
||||
'SilverStripe\View\SSViewer::theme':
|
||||
visibility: private
|
||||
'SilverStripe\View\SSViewer::theme_enabled':
|
||||
visibility: private
|
||||
'SilverStripe\View\SSViewer::global_key':
|
||||
visibility: private
|
||||
'SilverStripe\View\SSViewer::source_file_comments':
|
||||
visibility: private
|
||||
'SilverStripe\View\SSViewer::rewrite_hash_links':
|
||||
visibility: private
|
||||
'SilverStripe\View\SSViewer::current_rewrite_hash_links':
|
||||
visibility: protected
|
||||
'SilverStripe\View\SSViewer::rewriteHashlinks':
|
||||
visibility: protected
|
||||
'SilverStripe\View\SSViewer::template_cache_flushed':
|
||||
visibility: private
|
||||
'SilverStripe\View\SSViewer::cacheblock_cache_flushed':
|
||||
visibility: private
|
||||
'SilverStripe\View\SSViewer::topLevel':
|
||||
visibility: protected
|
||||
'SilverStripe\View\SSViewer::templates':
|
||||
visibility: protected
|
||||
'SilverStripe\View\SSViewer::chosen':
|
||||
visibility: protected
|
||||
'SilverStripe\View\SSViewer::subTemplates':
|
||||
visibility: protected
|
||||
'SilverStripe\View\SSViewer::includeRequirements':
|
||||
visibility: protected
|
||||
'SilverStripe\View\SSViewer::parser':
|
||||
visibility: protected
|
||||
'SilverStripe\View\SSViewer::partialCacheStore':
|
||||
visibility: protected
|
||||
|
@ -2,24 +2,27 @@ title: Lessons
|
||||
introduction: The lessons take a step by step look at how to build a SilverStripe application.
|
||||
|
||||
* [How to set up a local development environment in SilverStripe](https://vimeo.com/108861537)
|
||||
* [Lesson 1: Creating your first theme](http://www.silverstripe.org/learn/lessons/creating-your-first-theme)
|
||||
* [Lesson 2: Migrating static templates into your theme](http://www.silverstripe.org/learn/lessons/migrating-static-templates-into-your-theme)
|
||||
* [Lesson 3: Adding dynamic content](http://www.silverstripe.org/learn/lessons/adding-dynamic-content)
|
||||
* [Lesson 4: Working with multiple templates](http://www.silverstripe.org/learn/lessons/working-with-multiple-templates)
|
||||
* [Lesson 5: The holder/page pattern](http://www.silverstripe.org/learn/lessons/the-holderpage-pattern)
|
||||
* [Lesson 6: Adding Custom Fields to a Page](http://www.silverstripe.org/learn/lessons/adding-custom-fields-to-a-page)
|
||||
* [Lesson 7: Working with Files and Images](http://www.silverstripe.org/learn/lessons/working-with-files-and-images)
|
||||
* [Lesson 8: Introduction to the ORM](http://www.silverstripe.org/learn/lessons/introduction-to-the-orm)
|
||||
* [Lesson 9: Data Relationships - $has_many](http://www.silverstripe.org/learn/lessons/working-with-data-relationships-has-many)
|
||||
* [Lesson 10: Introduction to the ORM](http://www.silverstripe.org/learn/lessons/working-with-data-relationships-many-many)
|
||||
* [Lesson 11: Introduction to frontend forms](http://www.silverstripe.org/learn/lessons/introduction-to-frontend-forms)
|
||||
* [Lesson 12: Data Extensions and SiteConfig](http://www.silverstripe.org/learn/lessons/data-extensions-and-siteconfig)
|
||||
* [Lesson 13: Introduction to ModelAdmin](http://www.silverstripe.org/learn/lessons/introduction-to-modeladmin)
|
||||
* [Lesson 14: Controller Actions/DataObjects as Pages](http://www.silverstripe.org/learn/lessons/controller-actions-dataobjects-as-pages)
|
||||
* [Lesson 15: Building a Search Form](http://www.silverstripe.org/learn/lessons/building-a-search-form)
|
||||
* [Lesson 16: Lists and Pagination](http://www.silverstripe.org/learn/lessons/lists-and-pagination)
|
||||
* [Lesson 17: Ajax Behaviour and Viewable Data](http://www.silverstripe.org/learn/lessons/ajax-behaviour-and-viewabledata)
|
||||
* [Lesson 18: Dealing with Arbitrary Template Data](http://www.silverstripe.org/learn/lessons/dealing-with-arbitrary-template-data)
|
||||
* [Lesson 1: Creating your first project](https://www.silverstripe.org/learn/lessons/v4/creating-your-first-project)
|
||||
* [Lesson 2: Migrating static templates into your theme](https://www.silverstripe.org/learn/lessons/v4/migrating-static-templates-into-your-theme-1)
|
||||
* [Lesson 3: Adding dynamic content](https://www.silverstripe.org/learn/lessons/v4/adding-dynamic-content-1)
|
||||
* [Lesson 4: Working with multiple templates](https://www.silverstripe.org/learn/lessons/v4/working-with-multiple-templates-1)
|
||||
* [Lesson 5: The holder/page pattern](https://www.silverstripe.org/learn/lessons/v4/the-holderpage-pattern-1)
|
||||
* [Lesson 6: Adding Custom Fields to a Page](https://www.silverstripe.org/learn/lessons/v4/adding-custom-fields-to-a-page-1)
|
||||
* [Lesson 7: Working with Files and Images](https://www.silverstripe.org/learn/lessons/v4/working-with-files-and-images-1)
|
||||
* [Lesson 8: Introduction to the ORM](https://www.silverstripe.org/learn/lessons/v4/introduction-to-the-orm-1)
|
||||
* [Lesson 9: Data Relationships - $has_many](https://www.silverstripe.org/learn/lessons/v4/working-with-data-relationships-has-many-1)
|
||||
* [Lesson 10: Data Relationships - $many_many](https://www.silverstripe.org/learn/lessons/v4/working-with-data-relationships-many-many-1)
|
||||
* [Lesson 11: Introduction to frontend forms](https://www.silverstripe.org/learn/lessons/v4/introduction-to-frontend-forms-1)
|
||||
* [Lesson 12: Data Extensions and SiteConfig](https://www.silverstripe.org/learn/lessons/v4/data-extensions-and-siteconfig-1)
|
||||
* [Lesson 13: Introduction to ModelAdmin](https://www.silverstripe.org/learn/lessons/v4/introduction-to-modeladmin-1)
|
||||
* [Lesson 14: Controller Actions/DataObjects as Pages](https://www.silverstripe.org/learn/lessons/v4/controller-actions-dataobjects-as-pages-1)
|
||||
* [Lesson 15: Building a Search Form](https://www.silverstripe.org/learn/lessons/v4/building-a-search-form-1)
|
||||
* [Lesson 16: Lists and Pagination](https://www.silverstripe.org/learn/lessons/v4/lists-and-pagination-1)
|
||||
* [Lesson 17: Ajax Behaviour and Viewable Data](https://www.silverstripe.org/learn/lessons/v4/ajax-behaviour-and-viewabledata-1)
|
||||
* [Lesson 18: Dealing with Arbitrary Template Data](https://www.silverstripe.org/learn/lessons/v4/dealing-with-arbitrary-template-data-1)
|
||||
* [Lesson 19: Creating Filtered Views](https://www.silverstripe.org/learn/lessons/v4/creating-filtered-views-1)
|
||||
* [Lesson 20: Beyond the ORM: Building Custom SQL](https://www.silverstripe.org/learn/lessons/v4/beyond-the-orm-building-custom-sql-1)
|
||||
* [Lesson 21: Advanced Environment Configuration](https://www.silverstripe.org/learn/lessons/v4/advanced-environment-configuration-1)
|
||||
|
||||
## Help: If you get stuck
|
||||
|
||||
|
21
docs/en/04_Changelogs/3.6.7.md
Normal file
21
docs/en/04_Changelogs/3.6.7.md
Normal file
@ -0,0 +1,21 @@
|
||||
# 3.6.7
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2019-01-10 [c44f06cdf](https://github.com/silverstripe/silverstripe-framework/commit/c44f06cdf10387a987e4efb096ff06b3bb4495ef) Patch SQL Injection vulnerability when arrays are assigned to DataObject Fields (Aaron Carlino) - See [ss-2018-021](https://www.silverstripe.org/download/security-releases/ss-2018-021)
|
||||
* 2018-09-26 [598edd913](https://github.com/silverstripe/silverstripe-framework/commit/598edd91341f389d7b919ec1201e03d2aba4d284) Add confirmation token to dev/build (Loz Calver) - See [ss-2018-019](https://www.silverstripe.org/download/security-releases/ss-2018-019)
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2019-01-23 [746c0679a](https://github.com/silverstripe/silverstripe-framework/commit/746c0679ad1d6ceac03d2adf167367f0ca2259cd) Injector may instantiate prototypes as if they're singletons (fixes #8567) (Loz Calver)
|
||||
* 2018-11-15 [86701b8cd](https://github.com/silverstripe/silverstripe-framework/commit/86701b8cd0cd5f8de813a7c9347e7c8055d878f4) Redirect loop with multiple URL tokens (fixes #8607) (Loz Calver)
|
||||
* 2018-06-04 [41e601a03](https://github.com/silverstripe/silverstripe-framework/commit/41e601a036307065d9ea2ba8862f67be738d402f) Regression from #8009 (Daniel Hensby)
|
||||
* 2018-05-29 [1cbf27e0f](https://github.com/silverstripe/silverstripe-framework/commit/1cbf27e0f47c3547914b03193d0f5f77c87ff8d5) PHP 5.3 compat for referencing $this in closure, and make method public for same reason (Robbie Averill)
|
||||
* 2018-04-17 [af3a9f3ec](https://github.com/silverstripe/silverstripe-framework/commit/af3a9f3ec8a5465f841c5aa8ee1faf40c1b76bf4) Duplicating many_many relationships looses the extra fields (fixes #7973) (UndefinedOffset)
|
||||
* 2018-03-15 [d17d93f7](https://github.com/silverstripe/silverstripe-cms/commit/d17d93f784a6e01f3d396c55adc623d69a90261a) Remove SearchForm results() function from allowed_actions (Steve Dixon)
|
||||
* 2018-02-16 [86addea1d](https://github.com/silverstripe/silverstripe-framework/commit/86addea1d2a7b2e28ae8115279ae358bcb46648a) Split HTML manipulation to onadd, so elements are not accidentally duplicated (Christopher Joe)
|
||||
* 2018-02-13 [c767e472d](https://github.com/silverstripe/silverstripe-framework/commit/c767e472dc494408460ef47c27b8d34475da4ac6) DataObject singleton creation (Jonathon Menz)
|
16
docs/en/04_Changelogs/3.7.3.md
Normal file
16
docs/en/04_Changelogs/3.7.3.md
Normal file
@ -0,0 +1,16 @@
|
||||
# 3.7.3
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2019-01-10 [6bf9542d6](https://github.com/silverstripe/silverstripe-framework/commit/6bf9542d664ac7935691c8055505b7ad8ea26e9a) Patch SQL Injection vulnerability when arrays are assigned to DataObject Fields (Maxime Rainville) - See [ss-2018-021](https://www.silverstripe.org/download/security-releases/ss-2018-021)
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2019-01-30 [8e6e70335](https://github.com/silverstripe/silverstripe-framework/commit/8e6e70335895063c6e6cfd99cfcfb50c6f9c2ad9) Block Manifest of the compatibility class Object and lean on model/fieldtypes/compat/autoload.php (UndefinedOffset)
|
||||
* 2019-01-23 [746c0679a](https://github.com/silverstripe/silverstripe-framework/commit/746c0679ad1d6ceac03d2adf167367f0ca2259cd) Injector may instantiate prototypes as if they're singletons (fixes #8567) (Loz Calver)
|
||||
* 2019-01-11 [16a837d6a](https://github.com/silverstripe/silverstripe-framework/commit/16a837d6a093115755cd821c63be1e3be088645b) fix [Warning] on count() with PHP >= 7.2 (lerni)
|
||||
* 2018-11-15 [86701b8cd](https://github.com/silverstripe/silverstripe-framework/commit/86701b8cd0cd5f8de813a7c9347e7c8055d878f4) Redirect loop with multiple URL tokens (fixes #8607) (Loz Calver)
|
24
docs/en/04_Changelogs/4.0.7.md
Normal file
24
docs/en/04_Changelogs/4.0.7.md
Normal file
@ -0,0 +1,24 @@
|
||||
# 4.0.7
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2018-12-18 [95505db7d](https://github.com/silverstripe/silverstripe-framework/commit/95505db7d666a75f249f65cb1af74dca01d39add) Fix potential SQL vulnerability in non-scalar value hyrdation (Maxime Rainville) - See [ss-2018-021](https://www.silverstripe.org/download/security-releases/ss-2018-021)
|
||||
|
||||
### Features and Enhancements
|
||||
|
||||
* 2018-11-27 [a8f4f23c6](https://github.com/silverstripe/silverstripe-framework/commit/a8f4f23c660474e965b510ba1bb04bf7a145d5b0) Add visibility updates to `upgrade.yml`. (bergice)
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2019-01-31 [cda9eef](https://github.com/silverstripe/silverstripe-assets/commit/cda9eef992b70fd46377be6d4459260d31ea2215) Fix for issue #212 (Joe Madden)
|
||||
* 2019-01-29 [f918dcd36](https://github.com/silverstripe/silverstripe-framework/commit/f918dcd36a177adb8abee751d27a809f25a0afab) Escape wildcard characters when matching database name in databaseExists (Guy Marriott)
|
||||
* 2019-01-28 [dc9d1b9cc](https://github.com/silverstripe/silverstripe-framework/commit/dc9d1b9cc0d3b14929fe2675282980a2750fb4cf) GridFieldPrintButton no longer assumes that children of GridField would implement their own print template (Robbie Averill)
|
||||
* 2019-01-25 [0797ab7](https://github.com/silverstripe/silverstripe-asset-admin/commit/0797ab7762a4a64f2dc89c754a6bb04216b96fe1) Fix GraphQL FolderTypeCreator::resolveChildrenConnection on PostgreSQL (#901) (Serge Latyntcev)
|
||||
* 2019-01-24 [d530bc2fb](https://github.com/silverstripe/silverstripe-framework/commit/d530bc2fb6c8c290f1f75f39bc4ec898cc326cf1) fix user feedback when jquery could not be loaded (Benedikt Seidl)
|
||||
* 2019-01-13 [5c3b95ac](https://github.com/silverstripe/silverstripe-cms/commit/5c3b95ac8977f77e7d95d4da6333ca12b5ef465f) Multibyte URL routing (Ingo Schommer)
|
||||
* 2019-01-11 [2cb49ea](https://github.com/silverstripe/silverstripe-versioned/commit/2cb49ea79d6babb80289f170dc6102c82f5b0d69) [Warning] on count() with PHP >= 7.2 (Lukas)
|
||||
* 2018-12-12 [0491ca03c](https://github.com/silverstripe/silverstripe-framework/commit/0491ca03cfcbd81690c54cc00f6234675978ef39) prevent death on urls with querystrings & anchors (mikeyc7m)
|
18
docs/en/04_Changelogs/4.1.5.md
Normal file
18
docs/en/04_Changelogs/4.1.5.md
Normal file
@ -0,0 +1,18 @@
|
||||
# 4.1.5
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2018-12-18 [fd90cf6ce](https://github.com/silverstripe/silverstripe-framework/commit/fd90cf6ceb346142eee6ba620599ab36c2d18cbb) Fix potential SQL vulnerability in non-scalar value hyrdation (Maxime Rainville) - See [ss-2018-021](https://www.silverstripe.org/download/security-releases/ss-2018-021)
|
||||
s
|
||||
### Bugfixes
|
||||
|
||||
* 2019-01-31 [cda9eef](https://github.com/silverstripe/silverstripe-assets/commit/cda9eef992b70fd46377be6d4459260d31ea2215) Fix for issue #212 (Joe Madden)
|
||||
* 2019-01-25 [0797ab7](https://github.com/silverstripe/silverstripe-asset-admin/commit/0797ab7762a4a64f2dc89c754a6bb04216b96fe1) Fix GraphQL FolderTypeCreator::resolveChildrenConnection on PostgreSQL (#901) (Serge Latyntcev)
|
||||
* 2019-01-13 [5c3b95ac](https://github.com/silverstripe/silverstripe-cms/commit/5c3b95ac8977f77e7d95d4da6333ca12b5ef465f) Multibyte URL routing (Ingo Schommer)
|
||||
* 2019-01-11 [2cb49ea](https://github.com/silverstripe/silverstripe-versioned/commit/2cb49ea79d6babb80289f170dc6102c82f5b0d69) [Warning] on count() with PHP >= 7.2 (Lukas)
|
||||
* 2018-12-18 [3d841a4](https://github.com/silverstripe/silverstripe-installer/commit/3d841a409c43752a8192afea5ebc48327e2ac3d3) / Behat tests (Serge Latyntcev)
|
||||
* 2018-12-13 [c4a0d5f0](https://github.com/silverstripe/silverstripe-cms/commit/c4a0d5f0831f0f27022905700a0ffb86cc56aceb) Publish button text merge regression (Aaron Carlino)
|
15
lang/da.yml
15
lang/da.yml
@ -84,7 +84,6 @@ da:
|
||||
RelationSearch: Relationssøgning
|
||||
ResetFilter: Nulstil
|
||||
SilverStripe\Forms\GridField\GridFieldDeleteAction:
|
||||
DELETE_DESCRIPTION: Slet
|
||||
Delete: Slet
|
||||
DeletePermissionsFailure: 'Ingen slette rettigheder'
|
||||
EditPermissionsFailure: 'Ingen rettighed til at fjerne emnet'
|
||||
@ -96,23 +95,12 @@ da:
|
||||
DeletePermissionsFailure: 'Ingen slette rettigheder'
|
||||
Deleted: 'Slet {type} {name}'
|
||||
Save: Gem
|
||||
SilverStripe\Forms\GridField\GridFieldEditButton_ss:
|
||||
EDIT: Rediger
|
||||
SilverStripe\Forms\GridField\GridFieldGroupDeleteAction:
|
||||
UnlinkSelfFailure: 'Kan ikke fjerne dig selv fra denne gruppe, du vil miste administrator rettigheder'
|
||||
SilverStripe\Forms\GridField\GridFieldPaginator:
|
||||
OF: af
|
||||
Page: Side
|
||||
View: Vis
|
||||
SilverStripe\Forms\GridField\GridFieldVersionedState:
|
||||
ADDEDTODRAFTHELP: 'Elementet er endnu ikke udgivet'
|
||||
ADDEDTODRAFTSHORT: Kladde
|
||||
ARCHIVEDPAGEHELP: 'Elementet er fjernet fra kladde og udgivet version'
|
||||
ARCHIVEDPAGESHORT: Arkiveret
|
||||
MODIFIEDONDRAFTHELP: 'Elementet har ikke udgivne ændringer'
|
||||
MODIFIEDONDRAFTSHORT: Ændret
|
||||
ONLIVEONLYSHORT: 'Kun på udgivet version'
|
||||
ONLIVEONLYSHORTHELP: 'Elementet er udgivet, men er slette fra kladde'
|
||||
SilverStripe\Forms\MoneyField:
|
||||
FIELDLABELAMOUNT: Beløb
|
||||
FIELDLABELCURRENCY: Valuta
|
||||
@ -331,7 +319,4 @@ da:
|
||||
LOGOUT: 'Log ud'
|
||||
LOSTPASSWORDHEADER: 'Glemt kodeord'
|
||||
NOTEPAGESECURED: 'Denne side er beskyttet. Indtast dine loginoplysninger herunder for at få adgang.'
|
||||
NOTERESETLINKINVALID: '<p>Kodeordets nulstillingslink er ugyldigt eller udløbet.</p><p>Du kan anmode om et nyt link <a href="{link1}">her</a> eller skifte dit kodeord efter du er <a href="{link2}">logget ind</a>.</p>'
|
||||
NOTERESETPASSWORD: 'Indtast din email adresse, så sender vi dig et link som du kan nulstille dit kodeord med'
|
||||
PASSWORDSENTHEADER: 'Link til nulstilling af kodeord er sendt til ''{email}'''
|
||||
PASSWORDSENTTEXT: 'Tak for det! Et link til at nulstille kodeordet er sendt til ''{email}'', forudsat at en konto eksisterer med denne email adresse.'
|
||||
|
127
lang/de.yml
127
lang/de.yml
@ -1,10 +1,35 @@
|
||||
de:
|
||||
SilverStripe\Admin\LeftAndMain:
|
||||
VersionUnknown: unbekannt
|
||||
SilverStripe\AssetAdmin\Forms\UploadField:
|
||||
Dimensions: Dimensionen
|
||||
EDIT: Bearbeiten
|
||||
EDITINFO: 'Diese Datei bearbeiten'
|
||||
REMOVE: Entfernen
|
||||
SilverStripe\Control\ChangePasswordEmail_ss:
|
||||
CHANGEPASSWORDTEXT1: 'Sie haben Ihr Passwort geändert für'
|
||||
CHANGEPASSWORDTEXT3: 'Passwort ändern'
|
||||
HELLO: Hallo
|
||||
SilverStripe\Control\Email\ForgotPasswordEmail_ss:
|
||||
HELLO: Hallo
|
||||
TEXT1: 'Hier ist Ihr'
|
||||
TEXT2: 'Link zum Zurücksetzen des Passworts'
|
||||
TEXT3: für
|
||||
SilverStripe\Control\RequestProcessor:
|
||||
INVALID_REQUEST: 'Ungültige Anfrage'
|
||||
REQUEST_ABORTED: 'Anfrage abgebrochen'
|
||||
SilverStripe\Core\Manifest\VersionProvider:
|
||||
VERSIONUNKNOWN: Unbekannt
|
||||
SilverStripe\Forms\CheckboxField:
|
||||
NOANSWER: Nein
|
||||
YESANSWER: Ja
|
||||
SilverStripe\Forms\CheckboxSetField_ss:
|
||||
NOOPTIONSAVAILABLE: 'Keine Optionen verfügbar'
|
||||
SilverStripe\Forms\ConfirmedPasswordField:
|
||||
ATLEAST: 'Passwörter müssen mindestens {min} Zeichen lang sein.'
|
||||
BETWEEN: 'Passwörter müssen zwischen {min} und {max} Zeichen lang sein.'
|
||||
CURRENT_PASSWORD_ERROR: 'Das derzeitige Passwort ist nicht richtig.'
|
||||
CURRENT_PASSWORD_MISSING: 'Bitte geben Sie Ihr derzeitiges Passwort ein.'
|
||||
LOGGED_IN_ERROR: 'Sie müssen eingeloggt sein, um Ihr Passwort ändern zu können!'
|
||||
MAXIMUM: 'Passwörter dürfen maximal {max} Zeichen lang sein.'
|
||||
SHOWONCLICKTITLE: 'Passwort ändern'
|
||||
@ -14,12 +39,18 @@ de:
|
||||
VALIDDATEFORMAT2: 'Bitte geben sie das Datum im korrekten Format ein ({format})'
|
||||
VALIDDATEMAXDATE: 'Ihr Datum muss vor dem erlaubtem Datum ({date}) liegen oder gleich sein'
|
||||
VALIDDATEMINDATE: 'Ihr Datum muss nach dem erlaubtem Datum ({date}) liegen oder gleich sein'
|
||||
SilverStripe\Forms\DatetimeField:
|
||||
VALIDDATEMAXDATETIME: 'Ihr Datum muss vor dem erlaubtem Datum ({datetime}) liegen oder gleich sein'
|
||||
VALIDDATETIMEFORMAT: 'Bitte geben Sie ein gültiges Datums- und Zeitformat ein ({format})'
|
||||
VALIDDATETIMEMINDATE: 'Ihr Datum muss nach dem erlaubtem Datum ({datetime}) liegen oder gleich sein'
|
||||
SilverStripe\Forms\DropdownField:
|
||||
CHOOSE: (Auswahl)
|
||||
CHOOSE_MODEL: '({name} auswählen)'
|
||||
SOURCE_VALIDATION: 'Bitte wählen Sie aus der Liste. {value} ist kein gültiger Wert'
|
||||
SilverStripe\Forms\EmailField:
|
||||
VALIDATION: 'Bitte geben Sie eine E-Mail-Adresse ein'
|
||||
SilverStripe\Forms\FileUploadReceiver:
|
||||
FIELDNOTSET: 'Dateiinformation nicht gefunden'
|
||||
SilverStripe\Forms\Form:
|
||||
CSRF_EXPIRED_MESSAGE: 'Ihre Sitzung ist abgelaufen. Bitte schicken Sie das Formular erneut ab.'
|
||||
CSRF_FAILED_MESSAGE: 'Es gab ein technisches Problem. Bitte versuchen Sie es erneut, nachdem sie die vorherige Seite neu geladen haben.'
|
||||
@ -29,10 +60,14 @@ de:
|
||||
VALIDATOR: Prüfer
|
||||
VALIDCURRENCY: 'Bitte geben Sie einen korrekten Betrag ein'
|
||||
SilverStripe\Forms\FormField:
|
||||
EXAMPLE: 'z.B. {format}'
|
||||
NONE: keine
|
||||
SilverStripe\Forms\FormScaffolder:
|
||||
TABMAIN: Hauptteil
|
||||
SilverStripe\Forms\GridField\GridField:
|
||||
Add: '{name} hinzufügen'
|
||||
CSVEXPORT: 'Als CSV-Datei exportieren'
|
||||
CSVIMPORT: 'CSV importieren'
|
||||
Filter: Filter
|
||||
FilterBy: 'Filtern nach'
|
||||
Find: Suchen
|
||||
@ -58,9 +93,18 @@ de:
|
||||
DeletePermissionsFailure: 'Keine Berechtigungen zum löschen'
|
||||
Deleted: 'Gelöscht {type} {name}'
|
||||
Save: Speichern
|
||||
SilverStripe\Forms\GridField\GridFieldEditButton:
|
||||
EDIT: Bearbeiten
|
||||
SilverStripe\Forms\GridField\GridFieldPaginator:
|
||||
OF: von
|
||||
Page: Seite
|
||||
View: Anzeigen
|
||||
SilverStripe\Forms\MoneyField:
|
||||
FIELDLABELAMOUNT: Betrag
|
||||
FIELDLABELCURRENCY: Währung
|
||||
INVALID_CURRENCY: 'Währung {currency} ist nicht in der Liste der erlaubten Währungen'
|
||||
SilverStripe\Forms\MultiSelectField:
|
||||
SOURCE_VALIDATION: 'Bitte wählen Sie aus der Liste. {value} ist ungültig.'
|
||||
SilverStripe\Forms\NullableField:
|
||||
IsNullLabel: 'ist NULL'
|
||||
SilverStripe\Forms\NumericField:
|
||||
@ -69,19 +113,45 @@ de:
|
||||
VALIDATEFORMAT: 'Bitte geben Sie die Uhrzeit im korrekten Format ein ({format})'
|
||||
SilverStripe\ORM\DataObject:
|
||||
PLURALNAME: DatenObjekte
|
||||
PLURALS:
|
||||
one: 'Ein DatenObjekt'
|
||||
other: '{count} DatenObjekte'
|
||||
SINGULARNAME: DatenObjekt
|
||||
SilverStripe\ORM\FieldType\DBBoolean:
|
||||
ANY: alle
|
||||
NOANSWER: Nein
|
||||
YESANSWER: Ja
|
||||
SilverStripe\ORM\FieldType\DBDate:
|
||||
DAYS_SHORT_PLURALS:
|
||||
one: '{count} Tag'
|
||||
other: '{count} Tage'
|
||||
HOURS_SHORT_PLURALS:
|
||||
one: '{count} Stunde'
|
||||
other: '{count} Stunden'
|
||||
LessThanMinuteAgo: 'weniger als eine Minute'
|
||||
MINUTES_SHORT_PLURALS:
|
||||
one: '{count} Minute'
|
||||
other: '{count} Minuten'
|
||||
MONTHS_SHORT_PLURALS:
|
||||
one: '{count} Monat'
|
||||
other: '{count} Monate'
|
||||
SECONDS_SHORT_PLURALS:
|
||||
one: '{count} Sekunde'
|
||||
other: '{count} Sekunden'
|
||||
TIMEDIFFAGO: 'vor {difference}'
|
||||
TIMEDIFFIN: 'in {difference}'
|
||||
YEARS_SHORT_PLURALS:
|
||||
one: '{count} Jahr'
|
||||
other: '{count} Jahre'
|
||||
SilverStripe\ORM\FieldType\DBEnum:
|
||||
ANY: alle
|
||||
SilverStripe\ORM\Hierarchy:
|
||||
LIMITED_TITLE: 'Zu viele Kindelemente ({count})'
|
||||
SilverStripe\ORM\Hierarchy\Hierarchy:
|
||||
InfiniteLoopNotAllowed: 'Es wurde eine Endlosschleife innerhalb der "{type}"-Hierarchie gefunden. Bitte ändern Sie die übergeordnete Seite, um den Fehler zu beheben'
|
||||
LIMITED_TITLE: 'Zu viele Kindelemente ({count})'
|
||||
SilverStripe\ORM\ValidationException:
|
||||
DEFAULT_ERROR: Validierungsfehler
|
||||
SilverStripe\Security\BasicAuth:
|
||||
ENTERINFO: 'Bitte geben Sie einen Nutzernamen und ein Passwort ein'
|
||||
ERRORNOTADMIN: 'Dieser Nutzer ist kein Administrator'
|
||||
@ -90,28 +160,46 @@ de:
|
||||
PASSWORDEXPIRED: '<p>Ihr Passwort ist abgelaufen. <a target="_top" href="{link}">Bitte wählen Sie ein neues Passwort.</a></p>'
|
||||
SilverStripe\Security\CMSSecurity:
|
||||
INVALIDUSER: '<p>Ungültiger Benutzer. <a target="_top" href="{link}">Bitte melden Sie sich hier an</a> um fortzufahren.</p>'
|
||||
LOGIN_MESSAGE: '<p>Ihre Sitzung ist wegen Inaktivität abgelaufen.</p>'
|
||||
SUCCESS: Erfolg
|
||||
SUCCESSCONTENT: '<p>Login erfolgreich. Falls Sie nicht automatisch weitergeleitet werden, bitte <a target="_top" href="{link}">hier klicken</a></p>'
|
||||
SUCCESS_TITLE: 'Login erfolgreich'
|
||||
SilverStripe\Security\DefaultAdminService:
|
||||
DefaultAdminFirstname: Standardadmin
|
||||
SilverStripe\Security\Group:
|
||||
AddRole: 'Rolle zur Gruppe hinzufügen'
|
||||
Code: 'Gruppen Code'
|
||||
DefaultGroupTitleAdministrators: Administratoren
|
||||
DefaultGroupTitleContentAuthors: Inhaltsautoren
|
||||
Description: Beschreibung
|
||||
GROUPNAME: Gruppenname
|
||||
GroupReminder: 'Diese Gruppe übernimmt automatisch die Rollen der Elterngruppe'
|
||||
HierarchyPermsError: 'Kann Berechtigungen der Eltern-Gruppe "{group}" nicht hinzufügen (erfordert Administratorrechte)'
|
||||
Locked: 'Gesperrt?'
|
||||
MEMBERS: Mitglieder
|
||||
NEWGROUP: 'Neue Gruppe'
|
||||
NoRoles: 'Keine Rollen gefunden'
|
||||
PERMISSIONS: Berechtigungen
|
||||
PLURALNAME: Gruppen
|
||||
PLURALS:
|
||||
one: 'Eine Gruppe'
|
||||
other: '{count} Gruppen'
|
||||
Parent: Elterngruppe
|
||||
ROLES: Rollen
|
||||
ROLESDESCRIPTION: 'Hier können Sie der Gruppe Rollen zuweisen.<br />Rollen sind logische Gruppierungen von Berechtigungen.'
|
||||
RolesAddEditLink: 'Rollen hinzufügen/editieren'
|
||||
SINGULARNAME: Gruppe
|
||||
Sort: Sortierreihenfolge
|
||||
has_many_Permissions: Berechtigungen
|
||||
many_many_Members: Mitglieder
|
||||
SilverStripe\Security\LoginAttempt:
|
||||
Email: E-Mail-Adresse
|
||||
EmailHashed: 'E-Mail-Adresse (gehashed)'
|
||||
IP: IP-Adresse
|
||||
PLURALNAME: Loginversuche
|
||||
PLURALS:
|
||||
one: 'Ein Loginversuch'
|
||||
other: '{count} Loginversuche'
|
||||
SINGULARNAME: Loginversuch
|
||||
Status: Status
|
||||
SilverStripe\Security\Member:
|
||||
@ -119,6 +207,7 @@ de:
|
||||
BUTTONCHANGEPASSWORD: 'Passwort ändern'
|
||||
BUTTONLOGIN: Einloggen
|
||||
BUTTONLOGINOTHER: 'Als jemand anderes einloggen'
|
||||
BUTTONLOGOUT: Abmelden
|
||||
BUTTONLOSTPASSWORD: 'Ich habe mein Passwort vergessen'
|
||||
CONFIRMNEWPASSWORD: 'Neues Passwort bestätigen'
|
||||
CONFIRMPASSWORD: 'Passwort bestätigen'
|
||||
@ -139,6 +228,10 @@ de:
|
||||
PASSWORD: Passwort
|
||||
PASSWORDEXPIRED: 'Ihr Passwort ist abgelaufen. Bitte wählen Sie ein neues Passwort.'
|
||||
PLURALNAME: Benutzer
|
||||
PLURALS:
|
||||
one: 'Ein Mitglied'
|
||||
other: '{count} Mitglieder'
|
||||
REMEMBERME: 'Für das nächste Mal merken? (für {count} Tage auf diesem Gerät)'
|
||||
SINGULARNAME: Benutzer
|
||||
SUBJECTPASSWORDCHANGED: 'Ihr Passwort wurde geändert'
|
||||
SUBJECTPASSWORDRESET: 'Ihr Link zur Passwortrücksetzung'
|
||||
@ -151,8 +244,21 @@ de:
|
||||
db_LockedOutUntil: 'Gesperrt bis'
|
||||
db_Password: Passwort
|
||||
db_PasswordExpiry: 'Ablaufdatum des Passworts'
|
||||
SilverStripe\Security\MemberAuthenticator\CMSMemberLoginForm:
|
||||
AUTHENTICATORNAME: 'CMS Benutzer Login Formular'
|
||||
BUTTONFORGOTPASSWORD: 'Passwort vergessen'
|
||||
BUTTONLOGIN: 'Wieder einloggen'
|
||||
BUTTONLOGOUT: Abmelden
|
||||
SilverStripe\Security\MemberAuthenticator\MemberAuthenticator:
|
||||
ERRORWRONGCRED: 'Ihre Eingaben scheinen nicht richtig zu sein. Bitte versuchen Sie es erneut.'
|
||||
NoPassword: 'Dieser Benutzer hat kein Passwort.'
|
||||
SilverStripe\Security\MemberAuthenticator\MemberLoginForm:
|
||||
AUTHENTICATORNAME: 'E-Mail & Passwort'
|
||||
SilverStripe\Security\MemberPassword:
|
||||
PLURALNAME: Benutzerpasswörter
|
||||
PLURALS:
|
||||
one: 'Ein Benutzerpasswort'
|
||||
other: '{count} Benutzerpasswörter'
|
||||
SINGULARNAME: Benutzerpasswort
|
||||
SilverStripe\Security\PasswordValidator:
|
||||
LOWCHARSTRENGTH: 'Bitte erhöhen Sie die Sicherheit des Passworts, indem Sie auch einige der folgenden Zeichen verwenden: {chars}'
|
||||
@ -160,10 +266,15 @@ de:
|
||||
TOOSHORT: 'Das Passwort ist zu kurz, es muss mindestens {minimum} Zeichen lang sein'
|
||||
SilverStripe\Security\Permission:
|
||||
AdminGroup: Administrator
|
||||
CMS_ACCESS_CATEGORY: 'CMS Zugriff'
|
||||
CONTENT_CATEGORY: Inhaltsberechtigungen
|
||||
FULLADMINRIGHTS: 'Unbeschränkte Administratorenrechte'
|
||||
FULLADMINRIGHTS_HELP: 'Schließt alle anderen verfügbaren Berechtigungen ein'
|
||||
PERMISSIONS_CATEGORY: 'Rollen und Zugriffsberechtigungen'
|
||||
PLURALNAME: Berechtigungen
|
||||
PLURALS:
|
||||
one: 'Eine Berechtigung'
|
||||
other: '{count} Berechtigungen'
|
||||
SINGULARNAME: Zugriffsberechtigung
|
||||
UserPermissionsIntro: 'Durch das Hinzufügen von Benutzern zu Gruppen, werden dessen Rechte angepasst. Mehr Informationen über die Berechtigungen der einzelnen Gruppen erhältst Du im Abschnitt Gruppen.'
|
||||
SilverStripe\Security\PermissionCheckboxSetField:
|
||||
@ -174,12 +285,24 @@ de:
|
||||
SilverStripe\Security\PermissionRole:
|
||||
OnlyAdminCanApply: 'Nur Adminstratoren können beitreten'
|
||||
PLURALNAME: Rollen
|
||||
PLURALS:
|
||||
one: 'Eine Rolle'
|
||||
other: '{count} Rollen'
|
||||
SINGULARNAME: Rolle
|
||||
Title: Titel
|
||||
SilverStripe\Security\PermissionRoleCode:
|
||||
PLURALNAME: Berechtigungsrollencodes
|
||||
PLURALS:
|
||||
one: 'Ein Berechtigungsrollencode'
|
||||
other: '{count} Berechtigungsrollencodes'
|
||||
PermsError: 'Kann Berechtigungen dem Code "{code}" nicht hinzufügen (erfordert Administratorrechte)'
|
||||
SINGULARNAME: Berechtigungsrollencode
|
||||
SilverStripe\Security\RememberLoginHash:
|
||||
PLURALNAME: 'Login Hashes'
|
||||
PLURALS:
|
||||
one: 'Ein Login Hash'
|
||||
other: '{count} Login Hashes'
|
||||
SINGULARNAME: 'Login Hash'
|
||||
SilverStripe\Security\Security:
|
||||
ALREADYLOGGEDIN: 'Sie haben keinen Zugriff auf diese Seite. Wenn Sie ein anderes Konto besitzen, mit dem Sie auf diese Seite zugreifen können, melden Sie sich bitte unten an.'
|
||||
BUTTONSEND: 'Senden Sie mir den Link zur Passwortrücksetzung'
|
||||
@ -188,6 +311,10 @@ de:
|
||||
ENTERNEWPASSWORD: 'Bitte geben Sie ein neues Passwort ein'
|
||||
ERRORPASSWORDPERMISSION: 'Sie müssen eingeloggt sein, um Ihr Passwort ändern zu können!'
|
||||
LOGIN: Anmelden
|
||||
LOGOUT: Abmelden
|
||||
LOSTPASSWORDHEADER: 'Passwort vergessen'
|
||||
NOTEPAGESECURED: 'Diese Seite ist geschützt. Bitte melden Sie sich an und Sie werden sofort weitergeleitet.'
|
||||
NOTERESETLINKINVALID: '<p>Der Link zum Zurücksetzen des Passworts ist entweder nicht korrekt oder abgelaufen</p><p>Sie können <a href="{link1}">einen neuen Link anfordern</a> oder Ihr Passwort nach dem <a href="{link2}">einloggen</a> ändern.</p>'
|
||||
NOTERESETPASSWORD: 'Geben Sie Ihre E-Mail-Adresse ein und wir werden Ihnen einen Link zuschicken, mit dem Sie Ihr Passwort zurücksetzen können.'
|
||||
PASSWORDRESETSENTHEADER: 'Der Link zum Zurücksetzen des Passworts wurde gesendet'
|
||||
PASSWORDRESETSENTTEXT: 'Vielen Dank! Wenn ein Account zu der E-Mail Adresse existiert, wurde eine E-Mail mit dem Link zum Zurücksetzen des Passworts verschickt.'
|
||||
|
@ -104,15 +104,6 @@ en:
|
||||
OF: of
|
||||
Page: Page
|
||||
View: View
|
||||
SilverStripe\Forms\GridField\GridFieldVersionedState:
|
||||
ADDEDTODRAFTHELP: 'Item has not been published yet'
|
||||
ADDEDTODRAFTSHORT: Draft
|
||||
ARCHIVEDPAGEHELP: 'Item is removed from draft and live'
|
||||
ARCHIVEDPAGESHORT: Archived
|
||||
MODIFIEDONDRAFTHELP: 'Item has unpublished changes'
|
||||
MODIFIEDONDRAFTSHORT: Modified
|
||||
ONLIVEONLYSHORT: 'On live only'
|
||||
ONLIVEONLYSHORTHELP: 'Item is published, but has been deleted from draft'
|
||||
SilverStripe\Forms\MoneyField:
|
||||
FIELDLABELAMOUNT: Amount
|
||||
FIELDLABELCURRENCY: Currency
|
||||
|
15
lang/eo.yml
15
lang/eo.yml
@ -84,7 +84,6 @@ eo:
|
||||
RelationSearch: 'Serĉi rilatojn'
|
||||
ResetFilter: Restartigi
|
||||
SilverStripe\Forms\GridField\GridFieldDeleteAction:
|
||||
DELETE_DESCRIPTION: Forigi
|
||||
Delete: Forigi
|
||||
DeletePermissionsFailure: 'Mankas permeso forigi'
|
||||
EditPermissionsFailure: 'Mankas permeso malligi rikordon'
|
||||
@ -96,23 +95,12 @@ eo:
|
||||
DeletePermissionsFailure: 'Mankas permeso forigi'
|
||||
Deleted: 'Forigita {type} {name}'
|
||||
Save: Konservi
|
||||
SilverStripe\Forms\GridField\GridFieldEditButton_ss:
|
||||
EDIT: Redakti
|
||||
SilverStripe\Forms\GridField\GridFieldGroupDeleteAction:
|
||||
UnlinkSelfFailure: 'Ne povas forigi vin el ĉi tiu grupo; vi perdus administrajn rajtojn'
|
||||
SilverStripe\Forms\GridField\GridFieldPaginator:
|
||||
OF: de
|
||||
Page: Paĝo
|
||||
View: Vido
|
||||
SilverStripe\Forms\GridField\GridFieldVersionedState:
|
||||
ADDEDTODRAFTHELP: 'Ero ankoraŭ estas ne publikigita'
|
||||
ADDEDTODRAFTSHORT: Malneto
|
||||
ARCHIVEDPAGEHELP: 'Ero estas forigita el malneta kaj publika'
|
||||
ARCHIVEDPAGESHORT: Enarkivigita
|
||||
MODIFIEDONDRAFTHELP: 'Ero enhavas nepublikigitajn ŝanĝojn'
|
||||
MODIFIEDONDRAFTSHORT: Ŝanĝita
|
||||
ONLIVEONLYSHORT: 'Nur ĉe publika'
|
||||
ONLIVEONLYSHORTHELP: 'Ero estas publikigita, sed ĝi estas forigita el malneto'
|
||||
SilverStripe\Forms\MoneyField:
|
||||
FIELDLABELAMOUNT: Kvanto
|
||||
FIELDLABELCURRENCY: Kurzo
|
||||
@ -331,7 +319,4 @@ eo:
|
||||
LOGOUT: Elsaluti
|
||||
LOSTPASSWORDHEADER: 'Perdis pasvorton'
|
||||
NOTEPAGESECURED: 'Tiu paĝo estas sekurigita. Enigu viajn akreditaĵojn sube kaj vi aliros pluen.'
|
||||
NOTERESETLINKINVALID: '<p>La pasvorta reagorda ligilo estas malvalida aŭ finiĝis.</p><p>Vi povas peti novan <a href="{link1}">ĉi tie</a> aŭ ŝanĝi vian pasvorton post <a href="{link2}">vi ensalutis</a>.</p>'
|
||||
NOTERESETPASSWORD: 'Enigu vian retpoŝtan adreson kaj ni sendos al vi ligilon per kiu vi povas reagordi vian pasvorton'
|
||||
PASSWORDSENTHEADER: 'Pasvorta reagorda ligilo sendiĝis al ''{email}'''
|
||||
PASSWORDSENTTEXT: 'Dankon! Reagordita ligilo sendiĝis al ''{email}'', kondiĉe ke konto ekzistas por tiu retadreso.'
|
||||
|
19
lang/nl.yml
19
lang/nl.yml
@ -84,7 +84,6 @@ nl:
|
||||
RelationSearch: 'Zoek relatie'
|
||||
ResetFilter: Resetten
|
||||
SilverStripe\Forms\GridField\GridFieldDeleteAction:
|
||||
DELETE_DESCRIPTION: Verwijder
|
||||
Delete: Verwijder
|
||||
DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen'
|
||||
EditPermissionsFailure: 'Geen toelating om te ontkoppelen'
|
||||
@ -96,23 +95,12 @@ nl:
|
||||
DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen'
|
||||
Deleted: '{type} {name} verwijderd'
|
||||
Save: Opslaan
|
||||
SilverStripe\Forms\GridField\GridFieldEditButton_ss:
|
||||
EDIT: Edit
|
||||
SilverStripe\Forms\GridField\GridFieldGroupDeleteAction:
|
||||
UnlinkSelfFailure: 'U kunt uzelf niet verwijderen van deze groep, omdat u dan geen admin-rechten meer heeft.'
|
||||
SilverStripe\Forms\GridField\GridFieldPaginator:
|
||||
OF: van
|
||||
Page: Pagina
|
||||
View: Bekijk
|
||||
SilverStripe\Forms\GridField\GridFieldVersionedState:
|
||||
ADDEDTODRAFTHELP: 'Item is nog niet gepubliceerd'
|
||||
ADDEDTODRAFTSHORT: Concept
|
||||
ARCHIVEDPAGEHELP: 'Het item is verwijderd van de concept- en de live site'
|
||||
ARCHIVEDPAGESHORT: Gearchiveerd
|
||||
MODIFIEDONDRAFTHELP: 'Item heeft wijzigingen die nog niet gepubliceerd zijn'
|
||||
MODIFIEDONDRAFTSHORT: Aangepast
|
||||
ONLIVEONLYSHORT: 'Alleen op de live site'
|
||||
ONLIVEONLYSHORTHELP: 'Item is gepubliceerd, maar verwijderd van de concept site'
|
||||
SilverStripe\Forms\MoneyField:
|
||||
FIELDLABELAMOUNT: Aantal
|
||||
FIELDLABELCURRENCY: Munteenheid
|
||||
@ -174,8 +162,8 @@ nl:
|
||||
PASSWORDEXPIRED: '<p>Uw wachtwoord is verlopen. <a target="_top" href="{link}">Kies een nieuw wachtwoord.</a></p>'
|
||||
SilverStripe\Security\CMSSecurity:
|
||||
INVALIDUSER: '<p>Ongeldige gebruiker <a target="_top" href="{link}">Log hier opnieuw in</a> om verder te gaan.</p>'
|
||||
LOGIN_MESSAGE: 'Sessie is verlopen'
|
||||
LOGIN_TITLE: '<p>U kunt verder met wat u aan het doen was, door opnieuw in te loggen.</p>'
|
||||
LOGIN_MESSAGE: '<p>De browsersessie is verlopen wegens inactiviteit</p>'
|
||||
LOGIN_TITLE: 'Log opnieuw in om verder te gaan.'
|
||||
SUCCESS: Succes
|
||||
SUCCESSCONTENT: '<p>U bent ingelogd. <a target="_top" href="{link}">Klik hier</a> als u niet automatisch wordt doorgestuurd.</p>'
|
||||
SUCCESS_TITLE: 'Inloggen is gelukt'
|
||||
@ -331,7 +319,4 @@ nl:
|
||||
LOGOUT: Uitloggen
|
||||
LOSTPASSWORDHEADER: 'Wachtwoord vergeten'
|
||||
NOTEPAGESECURED: 'Deze pagina is beveiligd. Voer uw gegevens in en u wordt automatisch doorgestuurd.'
|
||||
NOTERESETLINKINVALID: '<p>De link om uw wachtwoord te kunnen wijzigen is niet meer geldig.</p><p>U kunt <a href="{link1}">een nieuwe link aanvragen</a> of uw wachtwoord aanpassen door <a href="{link2}">in te loggen</a>.</p>'
|
||||
NOTERESETPASSWORD: 'Voer uw e-mailadres in en we sturen een link waarmee u een nieuw wachtwoord kunt instellen.'
|
||||
PASSWORDSENTHEADER: 'Wachtwoord herstel link verzonden naar {email}'
|
||||
PASSWORDSENTTEXT: 'Bedankt! Er is een link verstuurd naar {email} om uw wachtwoord opnieuw in te stellen, in de veronderstelling dat er een account bestaat voor dit e-mailadres.'
|
||||
|
@ -611,7 +611,7 @@ TEXT;
|
||||
<li id="ModRewriteResult">Testing...</li>
|
||||
<script>
|
||||
if (typeof $ == 'undefined') {
|
||||
document.getElemenyById('ModeRewriteResult').innerHTML = "I can't run jQuery ajax to set rewriting; I will redirect you to the homepage to see if everything is working.";
|
||||
document.getElementById('ModeRewriteResult').innerHTML = "I can't run jQuery ajax to set rewriting; I will redirect you to the homepage to see if everything is working.";
|
||||
setTimeout(function() {
|
||||
window.location = "$destinationURL";
|
||||
}, 10000);
|
||||
|
@ -133,7 +133,10 @@ class GridFieldPrintButton implements GridField_HTMLProvider, GridField_ActionPr
|
||||
$this->extend('updatePrintData', $data);
|
||||
|
||||
if ($data) {
|
||||
return $data->renderWith(get_class($gridField) . "_print");
|
||||
return $data->renderWith([
|
||||
get_class($gridField) . '_print',
|
||||
GridField::class . '_print',
|
||||
]);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
@ -207,7 +207,7 @@ class MySQLSchemaManager extends DBSchemaManager
|
||||
public function databaseExists($name)
|
||||
{
|
||||
// MySQLi doesn't like parameterised queries for some queries
|
||||
$sqlName = $this->database->quoteString($name);
|
||||
$sqlName = addcslashes($this->database->quoteString($name), '%_');
|
||||
return !!($this->query("SHOW DATABASES LIKE $sqlName")->value());
|
||||
}
|
||||
|
||||
|
@ -1447,6 +1447,7 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
|
||||
* @param string $baseTable Base table
|
||||
* @param string $now Timestamp to use for the current time
|
||||
* @param bool $isNewRecord If this is a new record
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
protected function writeManipulation($baseTable, $now, $isNewRecord)
|
||||
{
|
||||
@ -1465,6 +1466,20 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
|
||||
$manipulation[$baseTable]['command'] = 'update';
|
||||
}
|
||||
|
||||
// Make sure none of our field assignment are arrays
|
||||
foreach ($manipulation as $tableManipulation) {
|
||||
if (!isset($tableManipulation['fields'])) {
|
||||
continue;
|
||||
}
|
||||
foreach ($tableManipulation['fields'] as $fieldValue) {
|
||||
if (is_array($fieldValue)) {
|
||||
throw new InvalidArgumentException(
|
||||
'DataObject::writeManipulation: parameterised field assignments are disallowed'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Perform the manipulation
|
||||
DB::manipulate($manipulation);
|
||||
}
|
||||
@ -2618,6 +2633,18 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
|
||||
throw new InvalidArgumentException('DataObject::setField: passed an object that is not a DBField');
|
||||
}
|
||||
|
||||
if (!empty($val) && !is_scalar($val)) {
|
||||
$dbField = $this->dbObject($fieldName);
|
||||
if ($dbField && $dbField->scalarValueOnly()) {
|
||||
throw new InvalidArgumentException(
|
||||
sprintf(
|
||||
'DataObject::setField: %s only accepts scalars',
|
||||
$fieldName
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// if a field is not existing or has strictly changed
|
||||
if (!isset($this->record[$fieldName]) || $this->record[$fieldName] !== $val) {
|
||||
// TODO Add check for php-level defaults which are not set in the db
|
||||
|
@ -329,4 +329,9 @@ abstract class DBComposite extends DBField
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function scalarValueOnly()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -335,18 +335,16 @@ abstract class DBField extends ViewableData implements DBIndexable
|
||||
* will be escaped automatically by the prepared query processor, so it
|
||||
* should not be escaped or quoted at all.
|
||||
*
|
||||
* The field values could also be in paramaterised format, such as
|
||||
* array('MAX(?,?)' => array(42, 69)), allowing the use of raw SQL values such as
|
||||
* array('NOW()' => array()).
|
||||
*
|
||||
* @see SQLWriteExpression::addAssignments for syntax examples
|
||||
*
|
||||
* @param $value mixed The value to check
|
||||
* @return mixed The raw value, or escaped parameterised details
|
||||
*/
|
||||
public function prepValueForDB($value)
|
||||
{
|
||||
if ($value === null || $value === "" || $value === false) {
|
||||
if ($value === null ||
|
||||
$value === "" ||
|
||||
$value === false ||
|
||||
($this->scalarValueOnly() && !is_scalar($value))
|
||||
) {
|
||||
return null;
|
||||
} else {
|
||||
return $value;
|
||||
@ -653,4 +651,15 @@ DBG;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether or not this DBField only accepts scalar values.
|
||||
*
|
||||
* Composite DBFields can override this method and return `false` so they can accept arrays of values.
|
||||
* @return boolean
|
||||
*/
|
||||
public function scalarValueOnly()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -94,7 +94,7 @@ abstract class DBString extends DBField
|
||||
public function prepValueForDB($value)
|
||||
{
|
||||
// Cast non-empty value
|
||||
if (strlen($value)) {
|
||||
if (is_scalar($value) && strlen($value)) {
|
||||
return (string)$value;
|
||||
}
|
||||
|
||||
|
@ -299,6 +299,20 @@ class ManyManyList extends RelationList
|
||||
$manipulation[$this->joinTable]['fields'][$this->localKey] = $itemID;
|
||||
$manipulation[$this->joinTable]['fields'][$this->foreignKey] = $foreignID;
|
||||
|
||||
// Make sure none of our field assignments are arrays
|
||||
foreach ($manipulation as $tableManipulation) {
|
||||
if (!isset($tableManipulation['fields'])) {
|
||||
continue;
|
||||
}
|
||||
foreach ($tableManipulation['fields'] as $fieldValue) {
|
||||
if (is_array($fieldValue)) {
|
||||
throw new InvalidArgumentException(
|
||||
'ManyManyList::add: parameterised field assignments are disallowed'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DB::manipulate($manipulation);
|
||||
}
|
||||
}
|
||||
|
@ -476,7 +476,7 @@ class ShortcodeParser
|
||||
|
||||
if ($tags) {
|
||||
$node->nodeValue = $this->replaceTagsWithText(
|
||||
$node->nodeValue,
|
||||
htmlspecialchars($node->nodeValue),
|
||||
$tags,
|
||||
function ($idx, $tag) use ($parser, $extra) {
|
||||
return $parser->getShortcodeReplacementText($tag, $extra, false);
|
||||
|
@ -2,17 +2,32 @@
|
||||
|
||||
namespace SilverStripe\ORM\Tests;
|
||||
|
||||
use SilverStripe\Assets\Image;
|
||||
use SilverStripe\ORM\FieldType\DBBigInt;
|
||||
use SilverStripe\ORM\FieldType\DBBoolean;
|
||||
use SilverStripe\ORM\FieldType\DBCurrency;
|
||||
use SilverStripe\ORM\FieldType\DBDate;
|
||||
use SilverStripe\ORM\FieldType\DBDatetime;
|
||||
use SilverStripe\ORM\FieldType\DBDecimal;
|
||||
use SilverStripe\ORM\FieldType\DBDouble;
|
||||
use SilverStripe\ORM\FieldType\DBEnum;
|
||||
use SilverStripe\ORM\FieldType\DBFloat;
|
||||
use SilverStripe\ORM\FieldType\DBForeignKey;
|
||||
use SilverStripe\ORM\FieldType\DBHTMLText;
|
||||
use SilverStripe\ORM\FieldType\DBHTMLVarchar;
|
||||
use SilverStripe\ORM\FieldType\DBInt;
|
||||
use SilverStripe\ORM\FieldType\DBLocale;
|
||||
use SilverStripe\ORM\FieldType\DBMoney;
|
||||
use SilverStripe\ORM\FieldType\DBMultiEnum;
|
||||
use SilverStripe\ORM\FieldType\DBPercentage;
|
||||
use SilverStripe\ORM\FieldType\DBPolymorphicForeignKey;
|
||||
use SilverStripe\ORM\FieldType\DBPrimaryKey;
|
||||
use SilverStripe\ORM\FieldType\DBString;
|
||||
use SilverStripe\ORM\FieldType\DBTime;
|
||||
use SilverStripe\ORM\FieldType\DBVarchar;
|
||||
use SilverStripe\ORM\FieldType\DBText;
|
||||
use SilverStripe\Dev\SapphireTest;
|
||||
use SilverStripe\ORM\FieldType\DBYear;
|
||||
|
||||
/**
|
||||
* Tests for DBField objects.
|
||||
@ -189,6 +204,54 @@ class DBFieldTest extends SapphireTest
|
||||
$this->assertEquals(PHP_INT_MAX, $bigInt->getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataProviderPrepValueForDBArrayValue
|
||||
*/
|
||||
public function testPrepValueForDBArrayValue($dbFieldName, $scalarValueOnly, $extraArgs = [])
|
||||
{
|
||||
$reflection = new \ReflectionClass($dbFieldName);
|
||||
/**
|
||||
* @var DBField
|
||||
*/
|
||||
$dbField = $reflection->newInstanceArgs($extraArgs);
|
||||
$dbField->setName('SomeField');
|
||||
$payload = ['GREATEST(0,?)' => '2'];
|
||||
$preparedValue = $dbField->prepValueForDB($payload);
|
||||
$this->assertTrue(
|
||||
!$scalarValueOnly || !is_array($preparedValue),
|
||||
'`prepValueForDB` can not return an array if scalarValueOnly is true'
|
||||
);
|
||||
$this->assertEquals($scalarValueOnly, $dbField->scalarValueOnly());
|
||||
}
|
||||
|
||||
public function dataProviderPrepValueForDBArrayValue()
|
||||
{
|
||||
return [
|
||||
[DBBigInt::class, true],
|
||||
[DBBoolean::class, true],
|
||||
[DBCurrency::class, true],
|
||||
[DBDate::class, true],
|
||||
[DBDatetime::class, true],
|
||||
[DBDecimal::class, true],
|
||||
[DBDouble::class, true],
|
||||
[DBEnum::class, true],
|
||||
[DBFloat::class, true],
|
||||
[DBForeignKey::class, true, ['SomeField']],
|
||||
[DBHTMLText::class, true],
|
||||
[DBHTMLVarchar::class, true],
|
||||
[DBInt::class, true],
|
||||
[DBLocale::class, true],
|
||||
[DBMoney::class, false],
|
||||
[DBMultiEnum::class, true, ['SomeField', ['One', 'Two', 'Three']]],
|
||||
[DBPercentage::class, true],
|
||||
[DBPolymorphicForeignKey::class, false, ['SomeField']],
|
||||
[DBText::class, true],
|
||||
[DBTime::class, true],
|
||||
[DBVarchar::class, true],
|
||||
[DBYear::class, true],
|
||||
];
|
||||
}
|
||||
|
||||
public function testExists()
|
||||
{
|
||||
$varcharField = new DBVarchar("testfield");
|
||||
|
@ -17,7 +17,9 @@ use SilverStripe\ORM\FieldType\DBField;
|
||||
use SilverStripe\ORM\FieldType\DBPolymorphicForeignKey;
|
||||
use SilverStripe\ORM\FieldType\DBVarchar;
|
||||
use SilverStripe\ORM\ManyManyList;
|
||||
use SilverStripe\ORM\Tests\DataObjectTest\Company;
|
||||
use SilverStripe\ORM\Tests\DataObjectTest\Player;
|
||||
use SilverStripe\ORM\Tests\DataObjectTest\Team;
|
||||
use SilverStripe\View\ViewableData;
|
||||
use stdClass;
|
||||
|
||||
@ -2235,4 +2237,20 @@ class DataObjectTest extends SapphireTest
|
||||
['"DataObjectTest_TeamComment"."Name"' => 'does not exists']
|
||||
));
|
||||
}
|
||||
|
||||
public function testSetFieldWithArrayOnScalarOnlyField()
|
||||
{
|
||||
$this->expectException(InvalidArgumentException::class);
|
||||
$do = Company::singleton();
|
||||
$do->FoundationYear = '1984';
|
||||
$do->FoundationYear = array('Amount' => 123, 'Currency' => 'CAD');
|
||||
$this->assertEmpty($do->FoundationYear);
|
||||
}
|
||||
|
||||
public function testSetFieldWithArrayOnCompositeField()
|
||||
{
|
||||
$do = Company::singleton();
|
||||
$do->SalaryCap = array('Amount' => 123456, 'Currency' => 'CAD');
|
||||
$this->assertNotEmpty($do->SalaryCap);
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,9 @@ class Company extends DataObject implements TestOnly
|
||||
private static $table_name = 'DataObjectTest_Company';
|
||||
|
||||
private static $db = [
|
||||
'Name' => 'Varchar'
|
||||
'Name' => 'Varchar',
|
||||
'MarketValue' => 'Money',
|
||||
'FoundationYear' => 'Year'
|
||||
];
|
||||
|
||||
private static $has_one = [
|
||||
|
@ -10,6 +10,8 @@ use SilverStripe\ORM\ManyManyList;
|
||||
/**
|
||||
* @property string Title
|
||||
* @property string DatabaseField
|
||||
* @property array SalaryCap
|
||||
* @property string FoundationYear
|
||||
* @method Player Captain()
|
||||
* @method Player Founder()
|
||||
* @method Player HasOneRelationship()
|
||||
@ -27,7 +29,7 @@ class Team extends DataObject implements TestOnly
|
||||
|
||||
private static $db = array(
|
||||
'Title' => 'Varchar',
|
||||
'DatabaseField' => 'HTMLVarchar'
|
||||
'DatabaseField' => 'HTMLVarchar',
|
||||
);
|
||||
|
||||
private static $has_one = array(
|
||||
|
@ -311,6 +311,15 @@ class ShortcodeParserTest extends SapphireTest
|
||||
$this->assertEquals($this->extra['element']->tagName, 'a');
|
||||
}
|
||||
|
||||
public function testShortcodeWithAnchorAndQuerystring()
|
||||
{
|
||||
$result = $this->parser->parse('<a href="[test_shortcode]?my-string=this&thing=2#my-anchor">Link</a>');
|
||||
|
||||
$this->assertContains('my-string=this', $result);
|
||||
$this->assertContains('thing=2', $result);
|
||||
$this->assertContains('my-anchor', $result);
|
||||
}
|
||||
|
||||
public function testNoParseAttemptIfNoCode()
|
||||
{
|
||||
$stub = $this->getMockBuilder(ShortcodeParser::class)->setMethods(array('replaceElementTagsWithMarkers'))
|
||||
|
Loading…
Reference in New Issue
Block a user