Ingo Schommer
fa2057bcd9
Merge remote-tracking branch 'origin/3.0'
...
Conflicts:
search/FulltextSearchable.php
2012-11-30 14:25:06 +01:00
Ingo Schommer
3f67404a8a
Revert "BUGFIX: ArrayList now discards keys of the array passed in and keeps the numerically indexed array sequential."
...
This reverts commit b6017a7c90
.
It breaks SelectionGroup, and its most prominent usage,
the "add page" dialog.
2012-11-30 14:24:03 +01:00
João Martins
cc3e500f82
return $this, for do things like this: new DropdownField('XPTOName', 'XPTO Label', XPTOModel::get()->map("ID", "Name")->unshift(0,'- Select -'))
...
This does not break anything and makes things more natural
2012-11-30 01:37:36 +00:00
Simon Welsh
bbc4443af7
NEW: Allows setting of has_many and many_many relations before writing
...
Adds a new wrapper list, UnsavedRelationList, that maintains the relations until
writing, where it is converted into the correct RelationList.
2012-11-28 09:37:08 +13:00
jean
fbfff8df28
FIX 7934 When lazy loading fields respect version of the record
2012-11-27 17:31:45 +01:00
Ingo Schommer
15a687f1e7
Merge remote-tracking branch 'origin/3.0'
2012-11-23 15:31:08 +01:00
Ingo Schommer
aa72425e84
Fixed PHPUnit assertions for incomplete tests in core
...
Avoid PHPUnit throwing "test didn't run any assertions"
notices in PHP. If nothing else, it keeps test output
looking less broken by default, making it more likely
that actual errors do get noticed.
2012-11-23 15:16:39 +01:00
Ingo Schommer
c55c7c33f8
Merge branch '3.0'
...
Conflicts:
admin/code/CMSProfileController.php
composer.json
tests/model/DataObjectTest.php
2012-11-22 23:51:28 +01:00
Sean Harvey
477cf6b793
Removing redundant DatabaseAdmin::testinstall()
...
The original intention of this method was to be a rewrite
check by the installer, but it doesn't belong in
DatabaseAdmin, nor is it used by the installer anymore,
since the rewrite test is done by the installer directly.
2012-11-22 17:07:28 +13:00
Sean Harvey
8168a7db09
Remove deprecated DBField::create(), use create_field() instead
2012-11-16 14:36:26 +13:00
Sean Harvey
b3d5b68019
Remove deprecated SQLQuery::setWhere() multiple arguments
2012-11-16 14:35:30 +13:00
Sean Harvey
a2bd378d46
Remove deprecated ArrayList::getRange(), use limit() instead
2012-11-16 14:35:05 +13:00
Damian Mooyman
76c63fe4a4
BUG Fixed issue with SQLQuery::lastRow crashing on empty set. Added test cases for lastRow and firstRow.
...
Quoted table / column names to make test cases work in postgres
BUG Fixed issue with SQLQuery::lastRow crashing on empty set. Added test cases for lastRow and firstRow.
Quoted table / column names to make test cases work in postgres
Merge branch '3.0-sqlquery-lastrow-fix' of github.com:tractorcow/sapphire into 3.0-sqlquery-lastrow-fix
2012-11-16 13:27:51 +13:00
Andrew O'Neil
b6017a7c90
BUGFIX: ArrayList now discards keys of the array passed in and keeps the numerically indexed array sequential.
...
This fixes FirstLast and EvenOdd in templates, and makes ArrayList more consistent, as several methods already discarded the keys.
2012-11-16 09:39:01 +13:00
Sean Harvey
e1c5f084ad
Removing deprecated container class argument to DataObject::get()
2012-11-15 14:43:20 +13:00
Sean Harvey
3a198c32d5
Removing deprecated DataObject::databaseFields() and customDatabaseFields()
...
Use database_fields() and custom_database_fields() instead
2012-11-15 14:43:19 +13:00
Sean Harvey
e4088feb46
Removing deprecated instance_get_one() and instance_get()
...
Use DataList API instead
2012-11-15 14:43:19 +13:00
Sean Harvey
a8d779b4de
Removing deprecated DataObject::buildDataObjectSet()
...
Use DataList API instead
2012-11-15 14:43:19 +13:00
Sean Harvey
dde820d87d
Extend deprecation of DataObject::Aggregate() and RelationshipAggregate()
2012-11-15 14:43:19 +13:00
Sean Harvey
0db33f7f04
Removing DataObject::buildSQL() and extendedSQL(), use DataList instead
2012-11-15 14:43:19 +13:00
Sean Harvey
651d4b3d41
Removing DataObject::getAllFields(), use toMap() instead
2012-11-15 14:43:18 +13:00
Sean Harvey
5f852ae7bc
Removing deprecated DataObject::setComponent()
...
This is not used internally any longer
2012-11-15 14:43:18 +13:00
Sean Harvey
3108dea2c2
Removing deprecated DataList::limit() arguments
...
Use 2 arguments, the first being limit and the second offset instead.
2012-11-15 14:43:18 +13:00
Sean Harvey
68bb74820a
Removing join() on DataList/DataQuery
...
Use leftJoin() or innerJoin() instead
2012-11-15 14:43:18 +13:00
Sean Harvey
5c983a25f0
emove deprecated StringField::Lower() and Upper() methods
...
Use LowerCase() and UpperCase() instead
2012-11-15 14:43:16 +13:00
Sean Harvey
9e7bdb3e93
Removing deprecated Text::EscapeXML(), use DBField->XML() instead
2012-11-15 14:43:16 +13:00
Sean Harvey
4c3b804fa5
Remove deprecated ComponentSet, use ManyManyList or HasManyList instead
2012-11-15 14:43:12 +13:00
Sean Harvey
0a046af932
Remove deprecated DataObjectDecorator, use DataExtension instead
2012-11-15 14:43:12 +13:00
Sean Harvey
a371db4300
Remove deprecated DataObjectSet, use DataList or ArrayList instead
2012-11-15 14:43:12 +13:00
Sean Harvey
f69c2b0495
Improve performance of DataObject::db() with caching
...
In a usual CMS request, DataObject::db() is called potentially
thousands of times, calling Config::get() constantly for the same
uninherited statics, which is slow. This improves performance
by caching those into DataObject::$_cache_db
2012-11-08 10:38:16 +13:00
Sean Harvey
fdcd7a2e60
Fixing performance of DataObject::custom_database_fields()
...
On sites with lots of modules, and pages with plenty of database
queries, DataObject::custom_database_fields() can be called
thousands of times, and slow down page render times. This fixes
it so the fields are cached by class in a static variable, and
are cleared when reset() is called on the DataObject.
2012-11-07 17:23:36 +13:00
Justin Martin
d24b586830
NEW: Enable multiple image manipulation back-ends on the Image class
2012-11-03 19:38:09 -07:00
Simon Welsh
d8c920285c
Merge pull request #917 from TheFrozenFire/feature-DataObjectFromStdClass
...
API: DataObject::__construct() now accepts stdClass for $record
2012-11-03 02:16:07 -07:00
Simon Welsh
123a742872
Merge pull request #920 from TheFrozenFire/feature-SSListEach
...
API: Add new method "each" to SS_List
2012-11-03 02:10:23 -07:00
Simon Welsh
5a793990d8
Merge pull request #921 from TheFrozenFire/bug-DataObjectCreated
...
BUG: DataObject::write overwrites Created on first write
2012-11-03 02:08:35 -07:00
Justin Martin
f2a709d849
BUG: DataObject::write overwrites Created on first write
2012-11-02 20:37:17 -07:00
Justin Martin
26e5afc0c4
NEW: Add new method "each" to SS_List and core implementors thereof
2012-11-02 18:21:02 -07:00
Simon Welsh
8a0f234acf
Merge pull request #870 from chillu/pulls/datalist-filterany
...
NEW DataList->filterAny()
2012-11-02 16:17:48 -07:00
Justin Martin
a651d730f2
BUG: DataObject::__construct() now accepts stdClass for $record
2012-11-01 16:57:07 -07:00
Ingo Schommer
efabde1416
Merge remote-tracking branch 'origin/3.0'
...
Conflicts:
admin/css/screen.css
admin/scss/_style.scss
security/Member.php
2012-10-30 17:52:49 +01:00
Sean Harvey
ac489509be
BUG Fixing "+" characters being replaced with whitespace
...
SS_HTMLValue::getContent() uses urldecode() on the content returned
by saveHTML() -- this was done to fix encoded HTML entities like
square brackets, which are used by shortcodes. Unfortunately, this
also removes valid characters like "+" from the content.
This fixes it so square bracket entities are decoded *only*, and
leaves everything else as-is.
2012-10-24 14:44:14 +13:00
Simon Welsh
bedb579b07
Merge branch '3.0'
2012-10-23 15:21:20 +13:00
icecaster
8a7f9ede97
fixed empty string always on scaffolded enum fields
2012-10-17 12:30:05 +13:00
Mateusz Uzdowski
8eb0fa91bd
API Add the ability to query if the schema update is in progress.
...
The specific situation where this is useful is where populateDefaults on
DataObjects needs to query the database. This will break the dev/build
when it tries to create the object via singleton - the query will not be
able to be executed if the table is not there or its schema has changed.
For an example of such use case see Translatable::populateDefaults.
2012-10-17 11:45:21 +13:00
Ingo Schommer
1181ba089a
Merge remote-tracking branch 'origin/3.0'
...
Conflicts:
.travis.yml
2012-10-16 10:26:04 +02:00
Will Rossiter
9eb4af37bf
Merge pull request #878 from chillu/pulls/alternative-db-session
...
BUG Using Session::set() for DB::set_alternative_database_name()
2012-10-15 22:34:05 -07:00
Sean Harvey
a171c7e4b0
BUG Fixing regression in 26d70d6fca
with formatted output in SS_HTMLValue
...
If formatOutput is set to TRUE, then the regexes in getContent()
will not match the newlines, and the output will include html, body
and meta tags. Introduce a few new tests to ensure the output is
correct, and fix the regex.
2012-10-16 11:59:30 +13:00
Ingo Schommer
35da873ad9
BUG Using Session::set() for DB::set_alternative_database_name()
...
Setting session directly through $_SESSION relies on
session_autostart which might not be set on every environment,
and isn't consistent with other framework use.
2012-10-15 20:40:38 +02:00
Sean Harvey
f6a90467e4
Merge branch '3.0'
2012-10-15 10:10:01 +13:00
Ingo Schommer
5be3a4c35a
NEW DataList->filterAny()
2012-10-12 15:24:25 +02:00
Sean Harvey
bc345803d5
BUG Fixing model not being set before populateDefaults()
...
In cases where a getter on a DataObject calls getComponent() or
other relational getter, $this->model won't have been set at
this point, and a fatal error is triggered.
This fixes it so $this->model is set *before* populateDefaults()
in DataObject::__construct() and the getters can operate normally.
2012-10-12 09:57:11 +13:00
Simon Welsh
c49f7566c3
API Allow use of :not, :nocase and :case modifiers to SearchFilters.
...
More modifiers can be added to each class as desired.
2012-10-10 10:26:47 +13:00
Simon Welsh
2faf7d112d
API Allow using SearchFilters in DataList::exclude()
2012-10-09 14:47:22 +13:00
Ingo Schommer
fb5e488103
Line length fixes
2012-10-03 18:11:31 +02:00
Ingo Schommer
56f7ce1dcf
Merge remote-tracking branch 'origin/3.0'
...
Conflicts:
control/Cookie.php
control/Director.php
control/HTTPResponse.php
model/Database.php
model/MySQLDatabase.php
model/SQLQuery.php
view/Requirements.php
view/SSViewer.php
2012-10-03 16:16:19 +02:00
Sam Minnee
323fd4aa0f
FIX: Fixed ef81318aea
for PostgreSQL by quoting fields.
2012-10-03 15:34:39 +13:00
Sam Minnee
4e1b6af10f
Fixed long line.
2012-10-03 15:15:21 +13:00
Ingo Schommer
ef81318aea
BUG Retaining join extraFields on ManyManyList->add()
2012-10-03 14:58:28 +13:00
Sam Minnee
1f7fc1f76a
FIX Remove instances of lines longer than 120c
...
The entire framework repo (with the exception of system-generated files) has been amended to respect the 120c line-length limit. This is in preparation for the enforcement of this rule with PHP_CodeSniffer.
2012-09-30 17:18:13 +13:00
Sean Harvey
e4ab02e1c3
Merge branch '3.0'
2012-09-27 10:39:31 +12:00
Sean Harvey
92e62ebb91
Merge pull request #812 from chillu/pull/sitetree-meta-removal
...
Removed SiteTree.MetaTitle and MetaKeywords usage
2012-09-24 21:15:20 -07:00
Sean Harvey
0b17e0036a
BUG Fixing percent encoding issues with saveHTML
2012-09-23 22:28:42 +12:00
Ingo Schommer
5df519c6b5
Removed SiteTree.MetaTitle and MetaKeywords usage
2012-09-21 11:31:24 +02:00
Simon Welsh
6d696d506f
API Allow subgroups in the WHERE clause of a Data/SQLQuery
...
Adds three extra methods to Data/SQLQuery query that allow for starting
a disjunctive subgroup, a conjunctive subgroup and for ending a subgroup.
Database::sqlWhereToString() now builds up the WHERE clause one by one
instead of with a straight implode. Uses a stack to know which conenctive
to use.
2012-09-21 14:59:47 +12:00
Simon Welsh
1e629f4585
Merge branch '3.0'
...
Conflicts:
control/Cookie.php
control/Director.php
dev/Profiler.php
view/Requirements.php
2012-09-21 14:56:56 +12:00
Ingo Schommer
e44a3558dd
Merge pull request #793 from halkyon/htmlvalue_parsing_fixes
...
BUG HtmlEditorField doesn't save HTML fragments in HTMLValue correctly
2012-09-20 02:09:36 -07:00
Ingo Schommer
e2f073f38a
Method visibility according to coding conventions
2012-09-20 10:46:59 +02:00
Sean Harvey
26d70d6fca
BUG HtmlEditorField doesn't save HTML fragments in HTMLValue correctly
...
The issue was raised in #7628 , where an anchor tag was being changed from
<a name="anchor"></a> to <a name="anchor"/> by SS_HTMLValue, when
HtmlEditorField::saveInto() parses the HTML fragments.
This is because SS_HTMLValue uses DOMDocument::saveXML(), which is fine
for saving an XML document, but not suitable for HTML. This fix changes
that to use DOMDocument::saveHTML() instead.
Note that we can't use the parameter to saveHTML() for selecting a single
node only, as that's only supported in PHP 5.3.6+, SilverStripe 3.0 supports
PHP 5.3.2 as a minimum. The workaround for this shortcoming is to replace
unncessary output by DOMDocument with a regular expression.
2012-09-19 11:39:01 +12:00
Sam Minnée
95dbad6195
Merge pull request #796 from stozze/3.0-bugfix
...
BUGFIX Fix to prevent unintended results from getComponentsQuery(...)
2012-09-17 18:26:44 -07:00
Sam Minnée
651f45e0e4
Merge pull request #782 from tractorcow/3.0-index-generation-fixes
...
FIXED: Generation of table indexes
2012-09-16 23:43:17 -07:00
Sean Harvey
9c2be0f025
Merge branch '3.0'
2012-09-17 15:16:52 +12:00
stozze
499b7c9ff9
BUGFIX Fix to prevent unintended results from getComponentsQuery(...)
...
Wrapped $filter inside parentheses to prevent unintended results if $filter contains "OR".
2012-09-14 18:31:37 +03:00
Ingo Schommer
b0fc1cb16a
Merge branch '3.0.2' into 3.0
2012-09-12 11:05:50 +02:00
Hamish Friedlander
df5a9e087d
FIX Cache ClassName enum so we dont query DB every call
2012-09-12 11:14:59 +12:00
Damian Mooyman
30e15d11a7
FIXED: Generation of tables with fulltext indexes now no longer incorrectly thinks that all fulltext indexes have changed.
...
ADDED: Test cases correctly checking for changes (and no changes) to the data model for both fields and indexes.
FIXED: References to indexes throughough the code that probably should have quoted field names. This prevents a lot of 'spam' during dev build. This includes an updated FulltextSearchable test case.
2012-09-11 12:53:08 +12:00
Ingo Schommer
1088d044c5
Merge remote-tracking branch 'origin/3.0'
...
Conflicts:
.travis.yml
2012-09-07 17:21:41 +02:00
Simon Welsh
a6f3e9f9eb
Corrects replacement method name in deprecation notice.
2012-09-04 15:25:53 +12:00
Ingo Schommer
fb6efb9d21
BUG Calling extraStatics() with args (regression from fa37c448
)
2012-09-02 13:55:35 +02:00
Sam Minnée
57ad36e11d
Merge pull request #750 from silverstripe-rebelalliance/open/5971
...
FIX If ClassName read from DB doesnt exist, dont break
2012-08-29 22:48:31 -07:00
Hamish Friedlander
2f00884e79
FIX If ClassName read from DB doesnt exist, dont break
...
We know the subclass of a record by its ClassName value, but code changes
might have meant that class no longer exists. We used to just break,
but this patch overrides the apparent value of ClassName to be
one that exists in that situation
2012-08-30 11:02:50 +12:00
Ingo Schommer
f070f971cf
BUG Allow custom getters in summaryFields() ( fixes #7788 )
...
Regression from ca1d38dffd
2012-08-29 13:42:29 +02:00
Simon Welsh
78fdcc580b
API DataList->leftJoin()/innerJoin() args no longer escaped
...
The table name in the join was being escaped, though table
names aren't escaped anywhere else. This breaks
namespaced classes, which rely on unescaped backslashes.
2012-08-29 11:54:42 +02:00
Hamish Friedlander
cc2e250719
NEW Allow querying if a field exists on a table
2012-08-29 15:08:48 +12:00
Ingo Schommer
a8f335360b
Merge remote-tracking branch 'origin/3.0'
2012-08-27 09:25:59 +02:00
Sean Harvey
674b52b4f7
Merge pull request #734 from silverstripe-rebelalliance/trac/7799
...
API Reverse config extra statics control flow
2012-08-26 14:24:05 -07:00
Sam Minnee
f1c021ff22
Merge branch '3.0'
2012-08-23 12:56:17 +12:00
Sam Minnee
87685eefdd
BUGFIX: Fix Versioned's stage_unique mode on PostgreSQL.
2012-08-23 12:56:06 +12:00
Sam Minnee
824afffd2e
Merge branch '3.0'
2012-08-23 12:39:41 +12:00
Sam Minnee
ed0341e82f
BUGFIX: Ensure that subtracting a sorted DataList works.
2012-08-23 12:38:54 +12:00
Sam Minnee
296ee1fa0f
BUGFIX: Add double quotes to index columns for more reliable DB-schema management.
2012-08-23 12:38:44 +12:00
Sam Minnee
dd302a68a7
BUGFIX: Ensure that all_versions are sorted explicitly for better cross-db behaviour.
2012-08-23 12:38:37 +12:00
Hamish Friedlander
fa37c448a5
API Reverse config extra statics control flow
...
Config system used to provide an add_static_source method, which was intended for
use by Extensions to add statics. But extensions for a class arent initialised
until at least one instance of that class is created, so before that the
Config system didnt include values from extensions
This patch reverses the control flow, so that the Config system explictly asks
each Object for its additional config sources via the new method
get_extra_config_sources. This method returns an array that can contain
string names of classes and also raw associative arrays.
The developer visible change is that Extension#add_to_class has been
deprecated. Instead there is a new method, get_extra_config, which has
the same method signature but needs to guarantee that it doesnt
cause side effects. Additionally there is no need to call
parent::get_extra_config - this is handled automatically.
2012-08-23 09:29:13 +12:00
Sam Minnée
e0e96343cf
Merge pull request #729 from silverstripe-rebelalliance/trac/7717
...
FIX Hierarchy#liveChildren couldnt handle lots of pages
2012-08-20 20:59:41 -07:00
Hamish Friedlander
d0bc9c6d23
FIX Hierarchy#liveChildren couldnt handle lots of pages
...
Hierarchy#liveChildren was generating a list of all IDs of all pages
on staging. When a site had lots of pages, this basically killed the
tree.
Fix by adding new versioned mode, stage_unique, which uses a
subselect to only return items from a stage that are in no
other stage.
2012-08-21 15:52:12 +12:00
Sam Minnee
f9b1485640
Merge branch '3.0'
2012-08-21 14:38:19 +12:00
Damian Mooyman
f7ffb79542
FIXED: Compatibility fixes for MS SQL Server. Replaced back ticks (which are mysql specific) with double quotes
2012-08-21 13:46:19 +12:00
Ingo Schommer
4cc82e906b
Merge remote-tracking branch 'origin/3.0'
2012-08-20 10:13:55 +02:00
Sam Minnée
47b56d4ef8
Merge pull request #716 from tractorcow/3.0-versioned-fixes
...
FIXED: Crashed caused by viewing versioned page
2012-08-19 19:02:24 -07:00
Damian Mooyman
0f09305e3d
FIXED: Issue where temporary table would cause unpredictable behaviour. Temporary table functionality was substituted with subqueries in each use case.
...
ADDED: Test case for version archive functionality.
2012-08-20 13:24:28 +12:00
Ingo Schommer
29b62adec2
Merge branch 'augmentSQL-on-wrong-class' of git://github.com/creamarketing/sapphire into creamarketing-augmentSQL-on-wrong-class
2012-08-16 23:47:48 +02:00
Ingo Schommer
ea0554a466
Merge pull request #666 from silverstripe-droptables/versioned-param-order
...
BUG Correct wrong parameter order.
2012-08-16 14:03:16 -07:00
Ingo Schommer
4598cc02aa
Merge pull request #659 from ajshort/instance-search-filters
...
BUG: Allow using instances for search filters.
2012-08-16 13:07:35 -07:00
Damian Mooyman
c55b018feb
FIXED: Issue where versioned would join _versions tables on ID,Version instead of RecordID,Version
2012-08-10 13:54:29 +12:00
Damian Mooyman
22c5f3129c
FIXED: Issue where viewing an archived version of a page caused invalid SQL to be generated. This would only occur with subclasses of Page.
2012-08-10 12:45:37 +12:00
Ingo Schommer
cac540d252
Merge branch '3.0'
2012-08-10 00:19:00 +02:00
Ingo Schommer
ca1d38dffd
BUG Localize DataObject->summaryFields()
2012-08-10 00:14:02 +02:00
Ingo Schommer
fb7008627c
Merge remote-tracking branch 'origin/3.0'
2012-08-09 10:47:44 +02:00
Juerg Rast
00a2edd9bc
Wrong deprecation notice in DBField::create()
2012-08-04 19:14:16 +02:00
Niklas Forsdahl
76c5b56e81
BUG: augmentSQL always extended on base data class on query finalization
...
The augmentSQL DataExtension method is always extended on the base data
class of data objects in DataQuery::getFinilisedQuery(). This results
in augmentSQL not being called for extensions that are applied to non-
base data classes when finalizing the query.
For example, if Versioned was applied to class B which extends class A,
which in turn extends DataObject, then augmentSQL would be extended for
class A in DataQuery::getFinilisedQuery(). Since class A doesn't have
the Versioned extension in this example, it would not work for class B.
Fixed this by extending augmentSQL on the actual data class and not
on the base class.
2012-08-02 16:09:58 +03:00
Hamish Friedlander
3efdb5c981
Merge in changes from 3.0.1 final
2012-07-31 16:51:10 +12:00
Hamish Friedlander
367c49d6b1
API DataObject#relField now checks for method on model before property
2012-07-27 14:44:38 +12:00
Hamish Friedlander
95d0be636c
Merge remote-tracking branch 'origin/3.0'
2012-07-25 11:44:53 +12:00
Mateusz Uzdowski
143ecebbfb
BUG Correct wrong parameter order.
2012-07-24 14:17:12 +12:00
Hamish Friedlander
36c8fc2e93
Merge pull request #660 from silverstripe-rebelalliance/trac/7673
...
API Prep ArrayList, DataList, forForeignID for immutability in 3.1 per 7673
2012-07-22 21:30:53 -07:00
Hamish Friedlander
b7691077cf
API Prep forForeignID for immutability in 3.1 per 7673
2012-07-23 10:31:47 +12:00
Hamish Friedlander
5fa18e9ab6
Merge pull request #652 from silverstripe-rebelalliance/trac/7482
...
BUG Fix issues with composite fields, as per Trac/7482
2012-07-22 15:14:30 -07:00
Andrew Short
c058f97edd
BUG: Allow using instances for search filters.
...
Previously search filters could only be specified as strings, this
allows instances to be used so more complex filter configuration
can be used.
2012-07-23 02:11:35 +10:00
Hamish Friedlander
e8e4604457
API Prep DataList for immutability in 3.1 per 7673
...
DataList had several methods that should act on a copy and return
that copy, but was instead mutating the existing list.
We cant change this behaviour in the 3.0 line for backwards compt.
reasons, but this makes the desired behavior the default, and
makes disabling the mutation in 3.1 easier
It also introduces two new methods to deal with the common pattern
of wanting to modify the underlying dataQuery, which we want to be
able to reliably do in a way that always acts immutably. The main
method of these two is alterDataQuery
2012-07-20 15:58:18 +12:00
Hamish Friedlander
1ed41b8d67
API Prep ArrayList for immutability in 3.1 per 7673
...
ArrayList had several methods that should act on a copy and return
that copy, but was instead mutating the existing list.
We cant change this behaviour in the 3.0 line for backwards compt.
reasons, but this makes the desired behavior the default, and
makes disabling the mutation in 3.1 easier
2012-07-20 14:55:44 +12:00
Hamish Friedlander
c9b3430470
Update docs to indicate lists not mutable as per 7673
2012-07-20 14:51:12 +12:00
Ingo Schommer
3ae8b0b665
Merge remote-tracking branch 'origin/3.0'
2012-07-18 15:00:06 +02:00
Ingo Schommer
e0477321d3
Merge pull request #651 from willrossi/enumtidyup
...
API: Renamed EnumField::Lower() and EnumField::Upper() to LowerCase() and UpperCase()
2012-07-17 23:43:00 -07:00
Hamish Friedlander
e8cd675c94
BUG trac 7482 couldnt publish composite fields to live
...
When publishing to live, DataObject#forceChange is called, which wasnt correctly loading
in fields that were lazy (unloaded) if those fields were from composite fields
like Money. The end result is that any Money values would be forced to null on
publish to live
Also changes the API of the (internal, protected) loadLazyFields method so that
not passing a class argument just unlazys all lazy fields regardless of source table
2012-07-18 16:28:24 +12:00
Hamish Friedlander
69928631fe
BUG trac 7482, we werent unlazying composite fields right
...
In getField we check if the field we are getting is currently lazy (unloaded), and
load it if it is. This was only working for simple fields though - composite
fields like Money werent working
2012-07-18 16:25:37 +12:00
Will Rossiter
a38bfc577c
API: Deprecate EnumField::Lower() and EnumField::Upper() to LowerCase() and UpperCase() for consistency with StringField
2012-07-18 11:54:42 +12:00
Mateusz Uzdowski
70dcb55fe0
BUG Use prepStringForDB consistently across the framework.
...
Also remove a line from DBFieldTest, it's redundant with the previous
line.
Ref: os7229
2012-07-17 14:27:58 +12:00
Ingo Schommer
712f28bc78
Scoped deprecation messages ( fixes #7645 )
2012-07-13 11:37:35 +02:00
Ingo Schommer
55c348d01b
Merge pull request #621 from chillu/pull/dbdatetimetest-offsets
...
Skip tests rather than throw PHP error on wrong offests in DBDatetimeTest
2012-07-06 02:34:19 -07:00
Ingo Schommer
e00c87541e
Merge pull request #618 from chillu/pull/deprecate-profiler
...
API Deprecated Profiler class, removed related debug GET params
2012-07-05 13:43:37 -07:00
Ingo Schommer
64357a4522
Merge branch '3.0'
...
Conflicts:
admin/css/screen.css
admin/scss/_forms.scss
docs/en/changelogs/3.0.0.md
2012-07-05 18:01:09 +02:00
Ingo Schommer
683d420247
NEW Database->supportsTimezoneOverride()
2012-07-05 16:16:36 +02:00
Ingo Schommer
0fe515e182
API Deprecated Profiler class, removed related debug GET params
...
Use third party tools like XHProf instead.
Removed defunct or unnecessary debug GET parameters:
debug_profile, debug_memory, profile_trace, debug_javascript, debug_behaviour
2012-07-05 12:02:06 +02:00
Hamish Friedlander
890f7e3919
BUG $db in extensions not inited early enough ( #7598 )
...
When querying DataObjects by a generic parent class (like SiteTree for instance), fields added via $db
set on child classes wouldnt appear.
This is because Object::__construct wasnt called early enough in DataObject::__construct, so
extensions werent initialised when $db was first accessed
2012-07-02 17:25:14 +12:00
Simon Welsh
cd0a1ff623
FIX DataQuery::applyRelation was returning the base class.
...
If the applyRelation() was passed a relation that went to a class with a parent
class with a database table, applyRelation would return the name of the parent
class, rather than the class the relation was actually too.
2012-06-29 21:54:48 +12:00
Will Rossiter
4ee709e88d
FIX: ensure limits to SQLQuery are passed as positive values
2012-06-29 19:40:28 +12:00
Ingo Schommer
63afdba7a5
Merge pull request #584 from silverstripe-droptables/ssexpress
...
BUG: notify PaginatedList the full-text results are already limited.
2012-06-27 23:59:01 -07:00
Mateusz Uzdowski
3141e713b7
BUG: notify PaginatedList the full-text results are already limited.
...
PaginatedList needs to be notified about this, otherwise it will
errorneously try to further limit the already limited set, making the
subsequent pages empty.
2012-06-28 13:19:13 +12:00
Sam Minnee
b654b95472
BUGFIX: Allow Versioned::get_latest_version() and Version::get_version() to return results if the classname has changed.
...
Without this bugfix, if you had a Page that used to be a SiteTree, and you tried to use Versiond::get_version() or Versioned::get_latest_version() to return the older SiteTree version, nothing would be returned, because the results were being filtered by ClassName. This caused bugs in the history panel for certain combinbations of page classname alteration.
2012-06-28 13:00:40 +12:00
Ingo Schommer
34a2ce23d8
NEW Documentation for Versioned
2012-06-27 16:09:31 +02:00
Ingo Schommer
868d3697fd
Fixed usage of DataList etc in docs ( fixes #7518 )
2012-06-27 16:09:31 +02:00
Simon Welsh
070ba56104
FIX DataQuery::applyRelation was returning the base class.
...
If the applyRelation() was passed a relation that went to a class with a parent
class with a database table, applyRelation would return the name of the parent
class, rather than the class the relation was actually too.
2012-06-25 11:34:02 +12:00
Andrew Short
119da09549
BUG Fixed DataList filtering and excluding by ID.
...
If a filter or exclude by ID was applied across more than one table it
would throw an ambiguous column error as the table name was not specified.
2012-06-25 10:16:18 +12:00
Sam Minnee
1b5768975c
BUG: exclude() clears previously selected filters() (Trac #7529 )
...
This bug was caused by the fact that SQLQuery::whereAny() removed existing filters. In line with addWhere() and setWhere(), I split this into addWhereAny() and setWhereAny(). Strictly speaking, this drops the method SQLQuery::whereAny(), but it was really just an internal function for exclude, and so I think that's acceptable.
2012-06-22 16:31:29 +12:00
Ingo Schommer
3a7128d00c
MINOR Fixed phpdocs
2012-06-20 23:59:16 +02:00
Ingo Schommer
88582e7483
Revert "BUGFIX Aborting marking in Hierarchy->markPartialTree() before loading nodes, if the expected node count would exceed the totals (regardless of the in-memory marking state)"
...
This reverts commit f1bf0d0fc4
. Fixes #7481
2012-06-15 11:53:33 +02:00
Sam Minnée
d014b4d106
Merge pull request #539 from simonwelsh/transliterator_rename
...
API CHANGE Renames Transliterator to SS_Transliterator
2012-06-14 20:59:56 -07:00
Simon Welsh
9bd7765272
API CHANGE Renames Transliterator to SS_Transliterator
...
The intl extension in PHP 5.4 provides a Transliterator class, which
conflicts with the SilverStripe one. This leads to some really weird
ReflectionExceptions about Transliterator's constructor being
private.
2012-06-15 15:54:47 +12:00
Sean Harvey
538bcdc74d
BUGFIX Ensure that the DataList is being used correctly when applying filters in HtmlEditorField and Hierarchy
2012-06-15 15:49:22 +12:00
Sam Minnee
a1e7c1f9bf
BUGFIX: Updated MySQLDatabase::indexList() to return index columns escaped by double quotes
2012-06-15 13:25:50 +12:00
Sam Minnée
a93dd9459e
Merge pull request #496 from sminnee/dataquery-aggregate
...
Dataquery aggregate
2012-06-14 17:20:35 -07:00
Sam Minnée
aebfea7f68
Merge pull request #505 from schmengler/index-fix
...
BUGFIX: Added double quotes to column names in automatically generated i...
2012-06-14 17:19:48 -07:00
Sean Harvey
0a2e877625
MINOR Remove PostgreSQLDatabase boolean workaround in
...
DataObject::__construct()
The database adapter uses smallint instead of the boolean datatype,
which works around the issue instead of converting the value.
2012-06-12 14:21:59 +12:00
Sean Harvey
59e68f16da
MINOR Remove MSSQLDatabase date/datetime workarounds from DataObject::__construct()
...
These are being handled by the MSSQLDatabase class in the mssql module
instead, which keeps the workarounds separated from the framework core.
2012-06-12 12:25:15 +12:00
Sam Minnee
1aefc0aa94
BUGFIX: Ensure that extensio arugments are passed when temporarily instantiating for setting up statics.
2012-06-11 22:56:11 +12:00
Sam Minnee
114ebb6953
API CHANGE: Don't have any instance caching in singleton(), rely on Injector for this.
2012-06-11 22:41:12 +12:00
Sam Minnee
f65a7c6b21
API CHANGE: Remove dodgy DataObject::destroy() behaviour, opting instead for using PHP5.3's garbage collector.
2012-06-11 22:41:12 +12:00
Sam Minnee
e19ab7aa5a
BUGFIX: Ensure that DataList::filter() doesn't modify the original object.
2012-06-06 16:13:54 +12:00
Sam Minnee
0821f021cc
API CHANGE: Added DataList::filterByCallback() to allow filtering by PHP code.
2012-06-06 16:12:05 +12:00
Sam Minnee
780f2d2b16
API CHANGE: Added DataQuery::aggregate() to allow for aggregates beyond Min, Max, Avg, Sum.
2012-06-06 16:12:05 +12:00
Sean Harvey
13be7cb2b9
BUGFIX Ensure that enum values with a single quote are escaped correctly for PHP coming out of MySQL ('' to \'), otherwise dev/build shows these as changed all the time.
2012-06-06 10:39:00 +12:00
Fabian Schmengler
afdd8683e4
BUGFIX: Added double quotes to column names in automatically generated indexes for many_many relationships (this time in the right place, should not interfere with index name - all tests pass)
2012-06-05 11:51:04 +02:00
Sam Minnee
5499079c1c
BUGFIX: Fixed ORM bugs introduced in ec55468932
2012-06-05 11:07:19 +12:00
Sam Minnée
f8921f7c9f
Merge pull request #500 from nyeholt/injector_strong_create
...
RECOMMIT This is a recommit of a previously merged, but reverted, commit...
2012-06-04 15:32:19 -07:00
Sam Minnée
90378b0998
Merge pull request #504 from schmengler/namespace-fixes-rc1
...
BUGFIX: Handling of classes with namespaces in database
2012-06-04 15:31:26 -07:00
Fabian Schmengler
ec55468932
BUGFIX: Handling of classes with namespaces in database
...
MySQLDatabase::enumValuesForField() - Added stripslashes because backslashes are escaped in the type description
DataObject::requireTable() - Added double quotes to column names in automatically generated indexes for many_many relationships
DataObject::write() - Escaped class name for DB query
DataQuery::getFinalisedQuery() - Escaped class names for DB query
2012-06-04 20:22:37 +02:00
Marcus Nyeholt
82a1e7d282
MINOR Use injector for creating Member_GroupSet object
...
MINOR Use injector for creating many many list objects
MINOR Use injector for creating objects from within the DataList
MINOR Use Injector::inst() for creating objects; cannot rely on this->injector being present due to many classes being created with 'new', so use inst() directly
MINOR Remove injector autoset property for now; automatically setting it breaks a few test cases that don't know about it for now, and it's not needed just yet
2012-06-05 01:33:44 +10:00
Marcus Nyeholt
ae7fc6f4d2
RECOMMIT This is a recommit of a previously merged, but reverted, commit. The initial commit had problems when running "tests/all flush=all" when dev/build would re-analyse a bunch of stuff; fixes to address this went into https://github.com/silverstripe/sapphire/pull/487 , but for some reason the actual base changes didn't, so I'm re-submitting them in a separate pull.
...
BUGFIX Versioned's constructor doesn't provide suitable defaults. Previously a bug/feature in singleton, where it would pass null,true as params to strong_create, which would then get passed through as params to Versioned's constructor, meant that the code still executed fine (as was set to something that wasn't an array, so the null and true were instead taken as args). The fact that the usage of singleton(Versioned) never really used the classes code, purely for value lookup, meant that this never propagated errors. I've now switched singleton() to use the injector for retrieving values, which means these dud values are no longer passed through
CHANGE Given that Config::inst is an implementation of the singleton pattern itself, I've removed the extra call to singleton(). A side effect of this is that it gets around a possibly nasty circular reference with the dependency injector (which relies on the config object); in future, this dependency structure should really be structured from the DI directly.
MINOR Change singleton and strong_create to use dependency injector
2012-06-03 20:41:00 +10:00
Sean Harvey
c4a1523fac
Merge pull request #465 from halkyon/aggregate_fixes
...
Deprecated aggregates fix
2012-05-30 02:04:36 -07:00
Sean Harvey
909c5bd3b1
MINOR Fixed spelling error
2012-05-29 20:10:34 +12:00
Sean Harvey
f43273f217
MINOR Provide a better error if incorrect number of arguments are passed
...
to filter() or exclude() on a DataList
2012-05-29 20:09:36 +12:00
Sean Harvey
792c89e103
ENHANCEMENT Adding List() in the GenericTemplateGlobalProvider so
...
templates can use <% cached List(Member).max(LastEdited) %> instead
of deprecated "Aggregate" syntax.
2012-05-29 20:04:51 +12:00
Sean Harvey
c3eabffcb9
MINOR Use shorthand {class}::get() syntax instead of DataList::create()
...
in core code.
2012-05-28 21:13:42 +12:00
Sean Harvey
862d7f249b
MINOR If $containerClass passed in to DataObject::get() isn't DataList,
...
use Deprecation::notice() instead of throwing a notice
2012-05-28 21:12:06 +12:00
Sean Harvey
9074f524cc
BUGFIX Fixing regression in Boolean::scaffoldSearchField()
2012-05-24 14:13:55 +12:00
Sam Minnée
c5616f8724
Merge pull request #487 from nyeholt/injector_bugfixes
...
Change singleton and strong_create to use dependency injector, with additional fixes to existing classes to behave correctly
2012-05-23 18:46:48 -07:00
Sean Harvey
1ed5e3c9be
Merge pull request #485 from halkyon/deprecate_director_statics_for_controller
...
Deprecate director controller static functions
2012-05-23 15:54:57 -07:00
Marcus Nyeholt
82495f5a7e
BUGFIX Versioned's constructor doesn't provide suitable defaults. Previously a bug/feature in singleton, where it would pass null,true as params to strong_create, which would then get passed through as params to Versioned's constructor, meant that the code still executed fine (as was set to something that wasn't an array, so the null and true were instead taken as args). The fact that the usage of singleton(Versioned) never really used the classes code, purely for value lookup, meant that this never propagated errors. I've now switched singleton() to use the injector for retrieving values, which means these dud values are no longer passed through
...
CHANGE Given that Config::inst is an implementation of the singleton pattern itself, I've removed the extra call to singleton(). A side effect of this is that it gets around a possibly nasty circular reference with the dependency injector (which relies on the config object); in future, this dependency structure should really be structured from the DI directly.
MINOR Change singleton and strong_create to use dependency injector
BUGFIX: Provide default constructor values for classes (fixes issues when used in 'singleton' scenario during dev/build in particular)
MINOR Clear out injector state when resetting db schema during tests (a follow on from changing singleton() calls to use the injector underneath)
2012-05-23 21:10:04 +10:00
Sean Harvey
60c72c40d9
API CHANGE Use of the DropdownField $emptyString argument is now
...
properly deprecated (has been marked as deprecated since 2.3). Please
use setEmptyString() on the DropdownField instance instead.
2012-05-23 22:59:40 +12:00
Sean Harvey
77c2365b87
MINOR Replacing deprecated static function calls to Director with
...
current Controller instance replacements.
2012-05-23 21:50:02 +12:00
Sean Harvey
29e04a1049
Revert "BUGFIX Versioned's constructor doesn't provide suitable defaults. Previously a bug/feature in singleton, where it would pass null,true as params to strong_create, which would then get passed through as params to Versioned's constructor, meant that the code still executed fine (as was set to something that wasn't an array, so the null and true were instead taken as args). The fact that the usage of singleton(Versioned) never really used the classes code, purely for value lookup, meant that this never propagated errors. I've now switched singleton() to use the injector for retrieving values, which means these dud values are no longer passed through"
...
This reverts commit 5eaca340b4
.
2012-05-23 09:52:57 +12:00
Marcus Nyeholt
5eaca340b4
BUGFIX Versioned's constructor doesn't provide suitable defaults. Previously a bug/feature in singleton, where it would pass null,true as params to strong_create, which would then get passed through as params to Versioned's constructor, meant that the code still executed fine (as was set to something that wasn't an array, so the null and true were instead taken as args). The fact that the usage of singleton(Versioned) never really used the classes code, purely for value lookup, meant that this never propagated errors. I've now switched singleton() to use the injector for retrieving values, which means these dud values are no longer passed through
...
CHANGE Given that Config::inst is an implementation of the singleton pattern itself, I've removed the extra call to singleton(). A side effect of this is that it gets around a possibly nasty circular reference with the dependency injector (which relies on the config object); in future, this dependency structure should really be structured from the DI directly.
MINOR Change singleton and strong_create to use dependency injector
2012-05-22 19:09:35 +10:00
Sean Harvey
e5e8f489a2
Merge branch (pull request #247 ) 'template-global-fixes' of https://github.com/sminnee/sapphire into sminnee-template-global-fixes
2012-05-19 15:39:59 +12:00
Yuki Awano
c04b01fc2a
BUGFIX Changed Date.php and DateTime.php to use DateTime->Format instead of strtotime to handle extended dates on 32bit environment( fixes #7311 )
2012-05-18 16:09:38 +09:00
Sam Minnee
7201f06476
API CHANGE: Added new config option Money.default_currency.
2012-05-18 16:15:13 +12:00
Ingo Schommer
8f2ede8fcf
MINOR Fixed syntax errors from SQLQuery/DataQuery cleanup
2012-05-16 13:17:19 +02:00
Ingo Schommer
3a11c690ed
MINOR Updated security documentation (phpdoc and markdown) around new DataList and SQLQuery APIs, additional automatic escaping on some stricter inputs like column names
2012-05-16 11:59:22 +02:00
Ingo Schommer
9326d9e60e
BUGFIX Fixing SQLQuery->getFilter() usage of non-existent method (removed during refactoring of pull request), more accurate deprecation notice
2012-05-15 21:29:43 +02:00
Sean Harvey
b1104dac25
BUGFIX Don't try lazy loading fields when the record ID is set to something non-numeric, otherwise you'll get a SQL error.
2012-05-15 17:18:50 +12:00
Sean Harvey
a53cca8932
MINOR Renaming getFieldSet with getFieldList in FormScaffolder
2012-05-14 15:03:22 +12:00
Sean Harvey
0fe0d87d9f
Merge pull request #434 from halkyon/using_non_deprecated_template_controls
...
Replacing use of deprecated <% control %> with <% with %> or <% loop %> as necessary
2012-05-11 15:08:16 -07:00
Ingo Schommer
13c9011082
Merge pull request #430 from halkyon/getallfields_fixes
...
MINOR Fixing use of deprecated getAllFields(), mark field as deprecated ...
2012-05-11 01:04:38 -07:00
Sean Harvey
6f672e5f36
MINOR Fixing use of <% control %> with <% with %> or <% loop %> as necessary.
2012-05-11 13:49:20 +12:00
Sean Harvey
46f51d5653
MINOR Fixing deprecated use of SQLQuery
2012-05-11 11:39:06 +12:00
Sean Harvey
1859070fa9
MINOR Fixing use of deprecated getAllFields(), mark field as deprecated properly.
2012-05-11 11:23:24 +12:00
Sean Harvey
56e75b4486
MINOR Revert changes for 5.4
2012-05-10 14:11:33 +12:00
Sean Harvey
f30a3bd760
BUGFIX Database::doesSchemaNeedUpdating() if schemaUpdateTransaction is NULL, then return FALSE. If schemaUpdateTransaction is an array, then return TRUE. This replaces the automatic casting which is not clear.
2012-05-10 13:58:29 +12:00
Ingo Schommer
8281678d4c
BUGFIX Urlencode paths in URLSegmentFilter when $allowMultibyte=true to avoid creating invalid URLs (and breaking assumptions based on ascii-only URLs, such as static publishing filename creation)
2012-05-08 15:32:15 +02:00
Ingo Schommer
59d31c2fc2
MINOR Removed mbstring support checks, its an installation requirement
2012-05-08 15:32:15 +02:00
Sean Harvey
7c272d3139
MINOR SQLQuery doc cleanup
2012-05-07 17:11:10 +12:00
Sean Harvey
3bc1da0543
MINOR Tidy up of SQLQuery constructor docs and default args, limit is
...
stored internally as an array, not a string.
2012-05-07 17:07:30 +12:00
Sean Harvey
bb9ffd2eb1
ENHANCEMENT SQLQuery::selectField() returns a SQLQuery object to be
...
consistent with how the other add/set methods work.
MINOR Fixing DbDatetimeTest to use the correct selectField to select an
alias
2012-05-07 16:59:42 +12:00
Sean Harvey
e50f90bf8e
BUGFIX Ensure end bracket for HAVING clause is put in the right place
2012-05-07 16:36:05 +12:00
Sean Harvey
051d9de482
API CHANGE Deprecated internal access to SQLQuery properties, update core code to reflect these changes.
...
Using set/add instead in accessor methods, and use Database::sql*ToString() to allow easier per-database adapter SQL overloading.
2012-05-07 14:21:44 +12:00
Ingo Schommer
68051fdb96
Merge pull request #371 from halkyon/sapphire
...
---
Dont start the session until its actually necessary, which is to say there is a cookie available with the current PHP session name (or a request variable with the session_name() - typically PHPSESSID.) The latter allows for passing session ID through as an alternative to cookies.
2012-05-03 14:58:09 +02:00
Sean Harvey
37369abf1d
BUGFIX Fixing SortColumn alias to be recognised by MSSQL/PGSQL
2012-05-03 12:02:21 +12:00
Sean Harvey
151abde17d
Merge pull request #388 from chillu/trac/7170-i18n-sprintf-injections
...
#7170 i18n sprintf injections
2012-05-02 16:18:30 -07:00
Sam Minnée
a004acfb59
Merge pull request #381 from AngryPHPNerd/patch-2
...
MINOR: Colliding field check runs twice
2012-05-02 14:14:40 -07:00
Ingo Schommer
7b18d9d0da
MINOR Switching _t() calls from sprintf() to using injection parameters ( #7170 )
2012-05-01 22:17:00 +02:00
Ingo Schommer
2288d80c30
Merge pull request #387 from sminnee/sapphire
...
---
The primary goal of this branch was to fix the sort bugs in AssetAdmin, however, it started a bit of a yak shave in that the API around SQLQuery was poor. The biggest change that this pull request makes is it changes the format of SQLQuery::$select to contain aliases as array keys (and consistently puts the "implicit alias" in there to assist with various query generation logic), but it also makes a bunch of changes to avoid direct access of that property.
2012-05-01 17:57:03 +02:00
Sam Minnee
2207e3d978
API CHANGE: Add SQLQuery::prepareSelect(), to further remove the need for direct property access.
...
API CHANGE: Change the format of SQLQuery::$select to use aliases as keys.
2012-05-01 18:15:11 +12:00
Sam Minnee
a8e8a6060a
BUGFIX: Fixed errors caused by complex raw SQL sort() calls. ( #7236 )
2012-05-01 18:15:08 +12:00
Sam Minnee
5abf8cf0f3
BUGFIX: Don't select *any* column() in DataQuery::initialiseQuery(); leave that until finaliseQuery(). It shouldn't be necessary and just risks field collisions.
2012-05-01 17:57:44 +12:00
Sam Minnee
8661164c19
API CHANGE: Add SQLQuery::clearSelect(), SQLQuery::selectField() and SQLQuery::itemisedSelect() to make it easier for other subsystems to use SQLQuery without resorting to direct property access.
...
API CHANGE: Remove DataQuery::select() in place of DataQuery::selectField().
BUGFIX: Remove direct property access to SQLQuery::$select
2012-05-01 17:57:39 +12:00
Sean Harvey
0882741f54
API CHANGE Renamed setModel for DataModel instances to setDataModel for
...
semantics, and also to allow a field name called "Model"
2012-05-01 14:45:44 +12:00
Sean Harvey
c84254c5b1
API CHANGE Rename SQLQuery prepareSelect to prepareWhere
2012-05-01 12:04:11 +12:00
Dominik Beerbohm
fdd5e71ba9
ENHANCEMENT: Remove unnecessary NULL check.
2012-04-30 13:44:31 +03:00
Robert Curry
ff6909df97
ENHANCEMENT: Add lazy loading to DataQuery.
2012-04-30 16:12:15 +12:00
Sean Harvey
80575a0e5e
MINOR Re-adding getFilter as a deprecated method instead of removing it
2012-04-27 16:56:07 +12:00
Sean Harvey
f63d137d49
ENHANCEMENT Session::start() now only called when there is changed
...
session data to be saved, and started on Director::direct() when there
is a cookie (or request var) containing the current PHP session name.
2012-04-27 16:28:46 +12:00
Will Rossiter
9938b64cf6
FEATURE: implement SS_Sortable->reverse()
...
API CHANGE: SQLQuery:: now an array object rather than string. Existing strings will continue to work
2012-04-27 15:54:14 +12:00
Mateusz Uzdowski
6469d83569
API CHANGE: add a remote relation class getter to DataObject
2012-04-23 15:01:55 +12:00
Sean Harvey
1683299d81
MINOR Ignore any values that come through as arrays in DataObject::cache_composite_fields()
2012-04-20 15:25:52 +12:00
Sam Minnee
8e48e6e231
API CHANGE: Allow <classname>::get(), eg, Member::get()->byID(5)
2012-04-20 14:58:24 +12:00
Will Rossiter
585417d141
Merge pull request #343 from halkyon/object_static_remove_deprecation
...
BUGFIX Remove calls to deprecated Object static methods, update ConfigTest
2012-04-19 14:41:45 -07:00
Ingo Schommer
a1327faae4
Merge pull request #344 from halkyon/remove_deprecated_extrastatics_usage
...
ENHANCEMENT Remove use of deprecated extraStatics in core files
2012-04-18 15:42:51 -07:00
Sean Harvey
4cf8db3ee4
ENHANCEMENT Remove use of deprecated extraStatics in core files
2012-04-19 08:37:51 +12:00
Ingo Schommer
7f62ad0f3e
Merge branch 'master' into 7094-combine-tree-edit-view
2012-04-18 14:19:55 +02:00
Sean Harvey
4c6be2931b
BUGFIX Removing use of deprecated Object static functions like
...
get_static(), set_static(), uninherited() etc. Replace with equivalent
Config system get(), update()
2012-04-18 23:10:57 +12:00
Sean Harvey
7d84aff01e
Merge pull request #339 from ajoneil/remove-pre-53-support
...
Remove pre 5.3 support
2012-04-17 16:19:23 -07:00
Andrew O'Neil
fb3b03f38b
MINOR: Remove support for PHP <5.3.2
2012-04-18 11:01:03 +12:00
Mateusz Uzdowski
be97535b1e
ENHANCEMENT: add an infinite-loop check as validation in Hierarchy (os4399)
...
Check only when the parent has changed - hierarchy traversal is
expensive operation, so we do it only when it is needed.
2012-04-18 10:50:35 +12:00
Mateusz Uzdowski
42e6ae2cdf
APICHANGE: add validation extension hook to DataExtension
2012-04-18 09:25:48 +12:00
Ingo Schommer
761bae3418
ENHANCEMENT Support for anonymous functions instead of eval() in Hierarchy->getSiteTreeAsUL()
2012-04-17 22:29:38 +02:00
Mateusz Uzdowski
59663f9289
BUGFIX: fix up some E_STRICT errors
2012-04-17 11:51:55 +12:00
Ingo Schommer
d44f6b3e1f
MINOR Removed deprecated usage of $priority argument in _t() calls
2012-04-15 17:17:17 +02:00
Ingo Schommer
b81863cfd9
MINOR Caching DataObject->fieldLabels() in memory, to avoid _t() being called excessively through fieldLabel()
2012-04-15 17:17:17 +02:00
Simon Welsh
f07258f3cf
MINOR Update @package values to match renaming sapphire
2012-04-15 10:50:19 +12:00
Simon Welsh
3a6341a251
API-CHANGE sapphire folder can now be renamed.
2012-04-15 10:50:19 +12:00
Simon Welsh
f8082e4814
MINOR Add newline to end of files without one
2012-04-15 10:50:19 +12:00
Ingo Schommer
8ba9c3ca6b
API CHANGE Removed $params argument to DataObject->getCMSFields(), please use FormScaffolder directly ( fixes #7135 )
2012-04-13 15:46:47 +02:00
Ingo Schommer
c73b80049a
MINOR Removed usage of deprecated Object::uninherited_static() in core, improves CMS loading speed in live mode by ~3.5%
2012-04-12 18:26:56 +02:00
Mateusz Uzdowski
ae5bd7d65e
ENHANCEMENT: refer to cache statics explicitly via DataObject (os6175)
...
Unify the usage across the class. Since the intention is to have a
single site-wide cache, calling via DataObject seems to be a better
option - self could theoretically end up calling a redefined field from
a subclass.
2012-04-12 17:04:24 +12:00
Mateusz Uzdowski
aedadebae6
BUGFIX: adjust the cache flush and reset functions to cover all caches (os6175)
2012-04-12 17:04:22 +12:00
Mateusz Uzdowski
8ea2460e50
BUGFIX: make internal DataObject caches more consistent (os6175)
2012-04-12 17:03:18 +12:00
Mateusz Uzdowski
621b2e1888
APICHANGE: deprecate DataObject::setComponent, no longer does anything.
2012-04-12 17:02:09 +12:00
Mateusz Uzdowski
360e9df54e
MINOR: fix typo
2012-04-12 16:22:36 +12:00
Sam Minnée
d766100335
Merge pull request #304 from halkyon/e_strict_fixes
...
Enable E_STRICT by default for development, fix all E_STRICT errors affected by tests.
2012-04-11 17:54:18 -07:00
Sam Minnee
aa659a2326
MINOR: Fixed classname displayed in Hierarchy::markChildren() error. ( #4406 )
2012-04-12 12:38:07 +12:00
Sean Harvey
6b40377a1c
BUGFIX Time::setValue() now conforms to DBField::setValue() for E_STRICT compliance.
2012-04-12 12:08:22 +12:00
Sean Harvey
9a9cebb369
MINOR Versioned::add_to_class() now conforms to parent
...
DataExtension::add_to_class() with $args being optional (default to
null). This is for E_STRICT compliance.
2012-04-12 12:07:35 +12:00
Sean Harvey
41433f1211
BUGFIX Fixing FulltextSearchable and Hierarchy to conform to the parent DataExtension for E_STRICT compliance.
2012-04-12 12:06:02 +12:00
Sean Harvey
9bd7068394
MINOR Fixed class documentation for CompositeDBField
2012-04-12 12:04:58 +12:00
Ingo Schommer
ac45e5b9c0
Merge branch 'integration'
...
Conflicts:
admin/css/ie8.css
admin/css/screen.css
admin/scss/_style.scss
dev/install/config-form.html
dev/install/install.css
dev/install/php5-required.html
2012-04-11 16:31:12 +02:00
Andrew O'Neil
75c5134bc9
BUGFIX: Fix Money::setValue() using old api
2012-04-11 15:30:38 +12:00
Andrew O'Neil
bdb312c665
API CHANGE: DBField::hasValue() conflicts with ViewableData::hasValue(), use DBField::exists() instead.
2012-04-11 14:48:06 +12:00
Ingo Schommer
8c5e56fe31
Merge branch 'master' into integration
...
Conflicts:
admin/css/screen.css
dev/install/php5-required.html
2012-04-09 21:10:08 +02:00
Julian Seidenberg
e76913f811
API-CHANGE: adding a default option of null to the $args argument in DataExtension::add_to_class. The args argument isn't used anywhere in the class and adding a third argument to every call to this function is tedious.
2012-04-05 14:15:00 +12:00
Ingo Schommer
40d73127ae
MINOR Using late static binding instead of Object::create() calls
2012-04-04 17:10:31 +02:00
Ingo Schommer
6517f4496b
Merge pull request #273 from ajoneil/sapphire
...
---
This allows DataList::create(SiteTree) as equivalent to Object::create(DataList, SiteTree), without
having to have a create() function on DataList.
Required for E_STRICT compliance, as child classes cant override create() if they change the arguments.
DBField::create() is also renamed to DBField::create_field(), as this does not just call the constructor, which all other cases of create() do.
Conflicts:
tests/model/DateTest.php
tests/model/DatetimeTest.php
2012-04-04 16:48:16 +02:00
unclecheese
59706d5bf5
Using deprecated StringField::Upper() and StringField::Lower(). Calling $MyEnumField.Upper on the template returns an unresolvable deprecation error.
2012-04-03 15:58:17 -03:00
Sam Minnee
58433d38ce
BUGFIX: Tidied up relObject() behaviour on DataLists to restore broken SearchContext functionality.
2012-03-30 15:59:57 +13:00
Sean Harvey
e097f6e1a8
MINOR Fixes to method arguments in core classes for E_STRICT support.
...
API CHANGE Remove abstract static function and just use static functions
in Authenticator (PHP 5.3+ doesn't support abstract static functions)
2012-03-28 22:41:42 +13:00
Normann Lou
9e60225064
MINOR : Update core docs to use DataList::create() rather than DataObject::get()/get_one()/get_by_id() where appropriate - Trac#6891
2012-03-27 17:02:18 +02:00
Andrew O'Neil
de2832e65f
ENHANCEMENT: Allow Object::create() to be called with late static binding.
...
This allows DataList::create('SiteTree') as equivalent to Object::create('DataList', 'SiteTree'), without
having to have a create() function on DataList. Required for E_STRICT compliance.
2012-03-27 17:57:42 +13:00
Sam Minnee
2576944a45
API CHANGE: Added DataObject::relField(), which pushes the "relation dot syntax" code of TableListField/GridField back to the model.
...
BUGFIX: Made DataObject::relObject() more flexible; allowable thanks to new ORM.
2012-03-24 14:04:08 +13:00
Sean Harvey
02c8019bb8
ENHANCEMENT Introduce Database::prepStringForDB(), used by
...
DBField::prepValueForDB() and StringField::prepValueForDB() to ensure
the field value is escaped correctly for the database. This means
databases like MSSQL can introduce an "N" prefix (marking text as
unicode to be saved correctly) by overloading the
prepStringForDB method. MySQL, PostgreSQL and SQLite3
operate as usual.
2012-03-20 21:20:35 +13:00
Sam Minnee
8bbfa970d7
API CHANGE: Remove Controller::Now(), as it was only ever a template global provider, and use the new TemplateGlobalProvider interface on SS_Datetime instead.
2012-03-16 15:05:28 +13:00
Sean Harvey
f5a91cbbe8
ENHANCEMENT SS_Map_Iterator::rewind() SS_Map_Iterator::current() will
...
return the titleField if there's a method of the same name (same
behaviour as DataObjectSet::map() from SS 2.4)
2012-03-15 17:28:00 +13:00
Ingo Schommer
2555ccb543
BUGFIX Qualify join table in ON clause in ManyManyList to avoid ambiguous column names
2012-03-14 22:44:07 +01:00
Ingo Schommer
687a1ca72b
BUGFIX Don't include has_many/many_many relationships in DataObject->scaffoldFormFields() when the record doesn't have an ID yet - as the scaffolded GridFieldAddExistingAutocompleter component assumes the component has an ID to query against ( fixes #5723 )
2012-03-14 22:44:07 +01:00
Sean Harvey
f63497d6f9
ENHANCEMENT Extension arguments are now passed through to add_to_class()
...
static function on Extension classes.
BUGFIX FulltextSearchable didn't pass through arguments, use now
available $args parameter with FulltextSearchable::add_to_class()
2012-03-12 16:14:47 +13:00
Sam Minnée
603a984ad4
Merge pull request #236 from silverstripe-big-o/pull/SSF-25
...
SSF-25: ModelAdmin
2012-03-09 15:23:20 -08:00
Ingo Schommer
3a068a0d18
MINOR Removed references to outdated versions from docs
2012-03-09 21:34:05 +01:00
Ingo Schommer
4b8895c8b6
BUGFIX Don't scaffold has_one relations into a DropdownField in ForeignKey->scaffoldFormField() if more than 100 records would be created, to avoid exceeding PHP memory ( fixes #6776 )
2012-03-09 15:58:46 +01:00
Hamish Friedlander
05cf5a833b
MINOR: Dump deprecation notices introduced by the config system to 3.1.0 as it breaks heaps of code
2012-03-09 18:16:45 +13:00
Hamish Friedlander
4315e51358
BUGFIX: Fix deprecated and removed static accessor calls
2012-03-09 18:16:44 +13:00
Hamish Friedlander
9c2ebc3e5f
BUGFIX: Replace deprecated extraStatics with new methods on Versioned and Hierarchy
2012-03-09 18:16:44 +13:00
Hamish Friedlander
876f4c5299
API CHANGE: Modify extensions system to support new config system. Statics are now declared directly on extensions, and there is an add_to_class method extensions can hook into to modify class configuration
2012-03-09 18:16:44 +13:00
Sam Minnee
adbcf61c56
MINOR: Minor fixes after new SS_List interfaces cleanup
2012-03-09 17:50:32 +13:00
Stig Lindqvist
4f1da0a5e8
MINOR If the limit clause on DataObject::get() passes a SQL type of limit, modify it for SS_List::limit()
2012-03-09 17:07:42 +13:00
Stig Lindqvist
0a82b903bc
MINOR ListDecorator::limit must exactly match SS_Limitable::limit()
2012-03-09 17:07:41 +13:00
Stig Lindqvist
2cb67efe07
API CHANGE DataObject::getComponents() should use default value for limit as NULL
2012-03-09 17:07:41 +13:00
Sam Minnee
e9e7655867
API CHANGE: Added SS_Sortable, an extra interface to apply to SS_Lists.
2012-03-09 17:07:41 +13:00
Sam Minnee
f000a47813
API CHANGE: Added SS_Filterable, an extra interface to apply to lists.
2012-03-09 17:07:40 +13:00
Sam Minnee
a55e06f6b5
API CHANGE: Introduce SS_Limitable class for adding to SS_Lists that have limit capability.
...
API CHANGE: Deprecated SS_List::getRange() in favour of SS_Limitable::limit().
API CHANGE: Introduce SS_Limitable::limit($limit, $offset = 0) as the only modern way of specifying limits; deprecate all others.
2012-03-09 17:07:40 +13:00
Sean Harvey
0d8151fd3d
Merge remote-tracking branch 'upstream/master' into deprecation_fixes
2012-03-09 15:03:43 +13:00
Sean Harvey
a2353f793d
MINOR Fixed misspelled "extension" in
...
DataExtension::load_extra_statics()
2012-03-09 14:35:12 +13:00
Sean Harvey
71c2a2286a
API CHANGE Removed support for extraDBFields method in DataExtension, please ensure you are using extraStatics on your extension classes
2012-03-09 14:34:25 +13:00
Mark Stephens
627708e3a8
BUGFIX: add Director::isDev parameter so we can test if we know we're dev mode already without touching the database. Used in showqueries on MySQL, so that errors are avoided when showing queries on initial switch to dev move ( #6856 )
2012-03-09 14:20:22 +13:00
Ingo Schommer
e4a6dd5850
Merge branch 'integration'
...
Conflicts:
forms/gridfield/GridField.php
2012-03-08 20:25:21 +01:00
Ingo Schommer
51bae9e4a6
ENHANCEMENT Allowing to save ManyManyList with multiple foreign keys (e.g. required to add to an overloaded Group->Members() relationship)
2012-03-06 21:38:33 +01:00
Ingo Schommer
bb6d4c506e
BUGFIX Fixed HasManyList and ManyManyList queries for relationships on new records (was returning all available records due to the SQL filtering ignoring ID=0)
2012-03-06 01:23:34 +01:00
Sam Minnee
adfdd068e2
Merge branch 'ereg-to-preg' of https://github.com/AngryPHPNerd/sapphire
...
Conflicts:
model/fieldtypes/Date.php
2012-03-05 13:54:20 +13:00
Ingo Schommer
299bf8b9c6
Merge branch 'integration'
2012-03-02 20:53:06 +01:00
Ingo Schommer
e5c4b0a36b
ENHANCEMENT Hierarchy->Breadcrumbs()
2012-03-02 20:46:19 +01:00
Ingo Schommer
c3f4db1d7d
ENHANCEMENT Using new UploadField in ForeignKey scaffolding, replacing deprecated ImageField/FileField classes
2012-03-01 12:00:03 +01:00
Ingo Schommer
586ca7374f
Merge pull request #202 from halkyon/date_changes
...
Date changes
2012-02-29 13:02:30 -08:00
Sean Harvey
8109a5e54d
MINOR phpDoc to methods in Date, small tweaks to DayOfMonth method to be consistent with value checks
2012-03-01 09:56:05 +13:00
Ingo Schommer
da879da940
MINOR Styling and structural fixes for File/Image->getCMSFields() and relates usage in UploadField/HTMLEditorField.
2012-02-29 21:06:43 +01:00
Ingo Schommer
bcc73de85e
Merge branch '106-add-edit-records-rc'
...
Conflicts:
admin/code/LeftAndMain.php
admin/css/screen.css
admin/scss/_style.scss
admin/templates/Includes/LeftAndMain_EditForm.ss
css/GridField.css
filesystem/Folder.php
forms/gridfield/GridField.php
forms/gridfield/GridFieldDefaultColumns.php
forms/gridfield/GridFieldPopupForms.php
2012-02-27 23:58:10 +01:00
Julian Seidenberg
550f75408e
ENHANCEMENT: File and Image CMSFields styling
2012-02-27 23:52:40 +01:00
AngryPHPNerd
0e2cbb0b88
Replace ereg with preg_*
2012-02-27 22:14:02 +01:00
Sean Harvey
58d48583a9
ENHANCEMENT Date::DayOfMonth() now supports ordinal argument, so you can get somehing like "10th" or "2nd". Also supported in Date::RangeString
2012-02-24 20:38:11 +13:00
Sean Harvey
8fdc531345
BUGFIX Ensure Date and Datetime field types actually set NULL, false, empty string values correctly instead of "1970-01-01" which gets saved to the database instead of NULL.
...
BUGFIX Datetime::Nice() and casting methods return NULL when there is no value, to be consistent with Date::Nice() and so on
2012-02-24 20:37:58 +13:00
Fred Condo
d370423825
Clean up trailing ?> per coding standard
...
All sapphire but the lang directory
2012-02-12 12:40:16 -08:00
Sean Harvey
591dd4efa9
BUGFIX SS_Map::keys() and SS_Map::values() are identical, keys() should return the *keys* not the values #6818
2012-02-11 11:46:20 +13:00
Andrew O'Neil
267050171a
BUGFIX Fix HasManyList::removeByID()
2012-02-09 14:33:00 +13:00
Sam Minnee
d1a39b0b1a
BUGFIX: Fixed operation of the onlyDeletedFromStage parameter of Hierarchy::liveChildren().
2012-02-08 18:38:37 +13:00
Ingo Schommer
db5ac15bb1
MINOR Fixed spelling mistake in HasManyList
2012-02-03 01:00:12 +01:00
Ingo Schommer
8e3ce755cf
MINOR Casting return values in HTMLText correctly (followup on security fixes applied to Text, Varchar, StringField)
2012-01-31 16:22:22 +01:00
Ingo Schommer
6ecf7ffe84
API CHANGE Deprecated Text->EscapeXML(), use DBField->XML() instead
2012-01-31 16:11:55 +01:00
Ingo Schommer
618d767dcb
API CHANGE Removed XML escaping in DBField->LowerCase() and UpperCase(), in order to consistently allow SSViewer to deal with casting. Affects subclasses like Text, Varchar and HTMLText.
...
API CHANGE Deprecated StringField->Lower() and Upper(), use String->LowerCase() and UpperCase() instead. Moved methods from DBField to StringField.
2012-01-31 16:11:55 +01:00
Ingo Schommer
e1e5546ab6
BUGFIX Casting return values on text helper methods in StringField, Text, Varchar
2012-01-31 16:11:55 +01:00
Ingo Schommer
0b0d42c24e
MINOR Formatting
2012-01-30 18:28:15 +01:00
Stig Lindqvist
056e564217
BUGFIX Subtract should not add order by on subselect
2012-01-27 18:27:24 +13:00
Stig Lindqvist
7f09b6931b
API CHANGE DataList::subtract and DataQuery::subtract for subtracting a list from another list
...
Minor Stripped out ManyManyList tests from DataListTest into it's own test case
2012-01-26 17:59:43 +13:00
Dominik Beerbohm
09c1f8f576
Bad parameter forwarding from SS_ListDecorator (sort,filter,exclude) to i.e. DataList.
2012-01-17 00:34:54 +01:00
Ingo Schommer
9451993d74
API CHANGE Moved DataObject->writeWithoutVersion() to Versioned extension
...
BUGFIX Don't create new version on related VirtualPage records in SiteTree->onAfterWrite() when the write was triggered through writeWithoutVersion(). Use a new $_nextWriteWithoutVersion flag replacing the -1 Version number for this purpose (AIR-97)
2012-01-14 13:07:12 +01:00
Sam Minnee
d296a9411d
Merge remote-tracking branch 'refs/remotes/scienceninjas/story/sort-by-relation-on-datalist'
2012-01-10 17:33:04 +13:00
Sam Minnee
3c1d62acfd
API CHANGE: Added ArrayList::dataClass(), which will return the class of the first item in the list.
2012-01-10 16:58:49 +13:00
Ingo Schommer
d9538d3085
ENHANCEMENT Migrating AssetAdmin fields to File/Folder/Image->getCMSFields()
2012-01-09 21:17:53 +01:00
Sam Minnee
93eb2dda54
API CHANGE: Added ArrayList::byID(), to improve its compatibility with DataList.
2012-01-09 18:47:59 +13:00
Stig Lindqvist
3c516b7b97
API CHANGE: Refactored GridField modifiers into GridField_ColumnProvider, GridField_HTMLProvider, GridField_ActionProvider, and GridField_DataModifier interfaces, all added as components in the config.
...
API CHANGE: Simplified state handling so that it's just a key store. Affectors are replaced with GridField_ActionProviders. API CHANGE: Removed GridField state manipulation actions instead opting for GridField_ActionProvider actions.
API CHANGE: Removed support for modifiers that add "body" rows, instead having core support for generating the body rows hardcoded into the GridField.
API CHANGE: Allow modification of columns across the whole GridField with the GridField_ColumnProvider interface.
API CHANGE: Renamed GridField_AlterAction to GridField_Action, and added actionName/args parameters, since it can be used for all actions (including batch actions and row actions)
API CHANGE: Removed GridFieldRow class.
2012-01-09 13:30:34 +13:00
Sam Minnée
9a1644f9e1
Merge pull request #148 from ajshort/pull-2
...
Added GroupedList
2012-01-06 16:19:20 -08:00
ajshort
5242ed1051
FEATURE: Added GroupedList for grouping lists into sub-lists by common values of a field.
2011-12-26 19:48:53 +11:00
Simon Welsh
f7516481b1
BUGFIX Sanitise keys and tags before using them with Zend_Cache.
2011-12-23 10:38:37 +13:00
Stig Lindqvist
f59d11c91e
MINOR DataList::sort() can sort by relation name
2011-12-18 04:28:09 +01:00
Stig Lindqvist
20554b1bf9
BUGFIX DataQuery::orderby() don't sort relations DESC
2011-12-18 04:21:00 +01:00
Stig Lindqvist
9bf247cc33
API CHANGE Introduced DataQuery::whereAny() and SQLQuery::whereAny()
2011-12-17 16:42:30 +13:00
Stig Lindqvist
aafdb8e01c
API CHANGE All SS_List implementators supports filter, exclude and sort methods
2011-12-17 16:42:29 +13:00
Stig Lindqvist
2306ec94c3
MINOR Updated inline documentation and added visibility keywords to methods for SS_List, DataList and ArrayList
2011-12-17 16:42:29 +13:00
Sam Minnee
60ced3b167
BUGFIX: Added default value for limit on LimitCharacters() to prevent backwards-compat issue (fixes 0c3af805
)
2011-12-17 16:41:54 +13:00
Sam Minnée
99b2430565
Merge pull request #131 from halkyon/master
...
Nice debug formatting for ArrayList and DataList
2011-12-16 18:05:09 -08:00
Sean Harvey
30f049bd26
ENHANCEMENT ArrayList and DataList now show a nice view of the items inside when using Debug::show()
2011-12-17 12:45:45 +13:00
Ingo Schommer
0c3af80514
BUGFIX Better handling of multibyte strings in LimitCharacters(), removed code duplication by more flexible base implementation at StringField->LimitCharacters() (Merge pull request #121 from edlund/sapphire)
2011-12-17 00:40:13 +01:00
Ingo Schommer
9b27a4c1be
ENHANCEMENT More flexible URL filtering through new URLSegmentFilter API. Support for multibyte URL segments through URLPathFilter::$default_allow_multibyte. Abstraction from Convert::raw2url() (and SiteTree->generateURLSegment())
2011-11-29 11:04:08 +01:00
Fred Condo
dbfd54ba50
BUGFIX: Get all method names to find cached images
...
Because some extensions add functions that generate cached images, deleteFormattedImages()
needs to find all the method names by passing true to allMethodNames().
2011-10-31 11:36:01 -07:00
Fred Condo
5f1faec3e2
BUGFIX: regex-escape strings to prevent regex syntax errors
...
Apply preg_quote to each generator name and to $this->Name so that their use in a
regular expression will not cause run-time errors.
Provided fixture and test.
2011-10-31 11:34:33 -07:00
Stig Lindqvist
260a9e230c
BUGFIX Versioned returns error on singleton($className)->summaryFields()
...
This solves a bugfix when calling singleton($className)->summaryFields() and Versioned kicks back. It is needed to by the GridField functionality to get default columns to show.
This is due to DataExtension calls ClassName::extraStatics() when calling ::load_extra_statics() statically, we need to pass in class and extension.
2011-10-31 11:17:37 +13:00
Sean Harvey
dd48a605b6
BUGFIX Removing DB coupling in SQLQuery::orderby() stopping functions from being fixed in the select list when used in orderby
...
BUGFIX DataQuery::ensureSelectContainsOrderbyColumns() shouldn't mess with "_SortColumn*" fields created by SQLQuery::orderby()
2011-10-29 23:54:35 +13:00
Sam Minnee
1a0673fa3f
API CHANGE: Remove deprecated db/build.
2011-10-29 17:44:56 +13:00
Sam Minnee
085598fac0
API CHANGE: Replaced ManyManyList::removeByFilter() with ManyManyList::removeAll().
2011-10-29 17:36:39 +13:00
Sam Minnee
a5a94b520f
MINOR: Remove uses of deprecated extendedSQL()
2011-10-29 17:36:39 +13:00
Sam Minnee
5ed14915bb
BUGFIX: Fixed DataList::find() for find by ID and find multiple times.
2011-10-29 17:36:39 +13:00
Sam Minnee
0d683dd8ef
MINOR: Removed use of deprecated join() in favour of innerJoin() and leftJoin().
2011-10-29 17:36:38 +13:00
Sam Minnee
42b8d3da04
MINOR: Use FieldList over deprecated FieldSet
2011-10-29 17:36:38 +13:00
Sam Minnee
22e5617ee2
MINOR: Moved from use of deprecated SQLMap to SS_Map.
2011-10-29 17:36:37 +13:00
Sam Minnee
c8ce6f9f55
BUGFIX: Don't create unnecessary aliases in generated SQL.
2011-10-29 17:36:37 +13:00
Sam Minnee
a4ee0f4dad
ENHANCMEMENT: Added SS_Map to replace SQLMap.
...
API CHANGE: Deprecate SQLMap.
2011-10-29 17:34:32 +13:00
Sam Minnee
0d0ad0e572
MINOR: Undeprecated Currency because the Money class is overkill in many situations where you're dealing with a single-currency system.
2011-10-29 17:34:32 +13:00
Sam Minnee
e5afa25522
MINOR: Use Deprecation class to indicate deprecated methods in core.
2011-10-29 17:34:31 +13:00
Sean Harvey
3bf983200b
BUGFIX DataQuery: ensuring ORDER BY columns are set in SELECT clauses
2011-10-29 17:28:46 +13:00
Simon Welsh
f976af78be
BUGFIX: Apply engine changes only if there is no existing FulltextSearch index on the table, and apply them before column index changes.
2011-10-29 16:57:10 +13:00
Simon Welsh
c8f1379407
Merge branch 'master' of git://github.com/silverstripe/sapphire
2011-10-29 13:55:50 +13:00
Simon Welsh
ca074eb7ba
Changes default MySQL storage engine to InnoDB. File requires MyISAM for FulltextSearch.
2011-10-29 13:34:45 +13:00
Simon Welsh
6bf3f7ded4
Switches MySQLDatabase to use the MySQLi class rather than the mysql_* functions.
2011-10-29 13:34:11 +13:00
Stig Lindqvist
83e90aaafe
ENHANCEMENT Release of DataGridPagination
...
This class extends the DataGridPresenter with the behaviour and looks of a paginated Datagrid.
2011-10-28 17:34:15 +13:00
Sam Minnée
92e8f6a2f4
Merge pull request #70 from stojg/ss_list-changes
...
API CHANGE Childclasses to SS_List matches the same signature on abstract
2011-10-27 20:09:25 -07:00
Stig Lindqvist
e38dd08ea5
MINOR: Fix docblocks to reference SS_List instead of (now deprecated) DataObjectSet where appropriate
2011-10-28 15:58:55 +13:00
Hamish Friedlander
0a3e0f15de
MINOR: Replace references to FieldSet (now deprecated) with references to FieldList
2011-10-28 15:58:55 +13:00
Hamish Friedlander
4c0105a3c4
MINOR: Fix deprecated notices - change old references to 2.5 from ORM work to 3.0.0, and use new deprecation notice system
2011-10-28 15:58:55 +13:00
Stig Lindqvist
fb8ff50451
API CHANGE Childclasses to SS_List matches the same signature on abstract methods column and map.
...
This was failing under php 5.2
2011-10-22 16:08:51 +02:00
Fred Condo
9bd499617b
Spelling correction
...
Found and fixed all misspellings of "[Hh]ierarchy"
2011-10-18 15:32:52 -07:00
Ingo Schommer
340a779cfd
MINOR More transliteration matches for Lithuanian ( fixes #6724 , thanks zyzzza)
2011-10-10 10:14:19 +02:00
Ingo Schommer
c630f83344
BUGFIX Setting level in DataObject->getChangedFields() to 'value change' rather than 'type change' for CompositeFields, so they save correctly ( fixes #6726 , thanks frankmullenger)
2011-10-07 22:57:23 +02:00
Sam Minnee
0601384cda
BUGFIX: Reapply decorator statics if it has been removed and re-added. (merged from r100706)
2011-10-07 14:12:50 +02:00
Ingo Schommer
8302af1ea8
ENHANCEMENT Added Database->getLock() and Database->releaseLock() for application-level advisory locks
2011-10-07 14:12:50 +02:00
Ingo Schommer
67568b08a3
MINOR Checking for valid field type in DataDifferencer (built-in fields like 'RecordClassName' can't be casted to a field object)
2011-10-07 14:12:50 +02:00
Ingo Schommer
55183ec386
BUGFIX Reset WHERE clause in SQLMap->getItem() to ensure it can be invoked more than once
2011-10-07 14:12:49 +02:00
Ingo Schommer
99355c0089
ENHANCEMENT Added new onBeforeDuplicate() and onAfterDuplicate() hooks to DataObject
2011-10-07 14:12:49 +02:00
Ingo Schommer
54b81a3953
MINOR Don't set cookies in CLI mode for Versioned (AIR-75)
2011-10-07 14:12:48 +02:00
Ingo Schommer
2ec2c97766
ENHANCEMENT Allowing diffs of has_one relationship in DataDifferencer (AIR-24)
2011-10-07 14:12:48 +02:00
Ingo Schommer
8cc1b4c852
BUGFIX Bypassing setters in DataDifferencer to avoid problems with invalid data (e.g. HTML fragment instead of valid classname in SiteTree->setClassname(). Better validation of constructor parameters (AIR-42)
2011-10-07 14:12:47 +02:00
Ingo Schommer
da0ac49d5f
API CHANGE Rewriting underscores to dashes in files uploaded through Upload->load(), Folder->addUploadToFolder() or Image->loadUploadedImage(). Transliterating non-ASCII characters automatically (turn off via FileNameFilter::$default_use_transliterator=false)
...
ENHANCEMENT New FileNameFilter class for a more customisable way to influence filename filtering in Upload->load(), Folder->addUploadToFolder() or Image->loadUploadedImage()
2011-10-07 14:12:46 +02:00
Ingo Schommer
ac8cdf0367
ENHANCEMENT Making check/repair/vaccum of database tables on dev/build configurable via SS_Database::$check_and_repair_on_build (AIR-12)
2011-10-07 14:12:46 +02:00
Ingo Schommer
0a8a17833f
MINOR Quoting relation tables in new ManyManyList API
2011-10-07 14:11:07 +02:00
Ingo Schommer
df56eb540a
MINOR Don't throw deprecation notice on DataObjectSet and FieldSet if there's still over 500 (!) references to them in core, as it basically means that everybody has to suppress PHP NOTICE errors for months, impacting core code quality
2011-10-04 13:23:13 +02:00
Stig Lindqvist
75c0fcd052
MINOR Better isset checks on Versioned#allVersions() due to changes in SQLQuery
2011-09-28 12:33:02 +13:00
Stig Lindqvist
73c249128b
MINOR Fixed the SQLQuery to return empty query in only certain cases
2011-09-28 12:33:01 +13:00
Stig Lindqvist
bf73265252
BUGFIX Added Fixing deprecated usage of array_multisort for php 5.3
...
It worked by accident in php 5.2, see https://bugs.php.net/bug.php?id=49241
2011-09-27 11:12:35 +13:00
Stig Lindqvist
4171015df1
MINOR SQLQuery without a FROM table should return empty query
2011-09-27 10:18:23 +13:00
Will Rossiter
1732a17114
Merged new-orm into datagrid
2011-09-26 16:47:54 +13:00
Will Rossiter
4c6ddb142d
ENHANCEMENT: added isLatestVersion() method for checking whether a record is the latest version of this ID
2011-09-19 17:26:21 +02:00
j.m.milmine
627a2916f4
ENHANCEMENT Image -> SetWidth() and Image -> SetHeight() generate new image when size is the same as the original file ( fixes #5792 )
2011-09-19 14:40:25 +02:00
Will Rossiter
1c12a226a3
Merge pull request #60 from simonwelsh/patch-3
...
BUGFIX Pass create_table_options for the owner class's table to DB::requireTable()
2011-09-18 19:25:26 -07:00
simonwelsh
b80efb75d4
Add comment about duplicating create options as well as structure.
2011-09-19 14:20:38 +12:00
Ingo Schommer
ce8e72cf0e
MINOR Removing executable flag from all files (thanks miiihi)
2011-09-18 22:04:02 +02:00
simonwelsh
718b9b5b34
Pass create_table_options for the owner class's table to DB::requireTable() when creating tables for the stages and the _version table.
2011-09-17 00:21:54 +12:00
Ingo Schommer
31b477ee0c
ENHANCEMENT Added File.ShowInSearch flag to mirror the existing SiteTree.ShowInSearch flag - e.g. useful to limit visibility of user-uploaded files. Enforced in MySQLDatabase->searchEngine(). Tested in cms with SearchEngineTest.
2011-09-15 16:00:54 +02:00
Ingo Schommer
c776a1cd67
BUGFIX Consistently using Convert::raw2sql() instead of DB::getConn()->addslashes() or PHP's deprecated addslashes() for database escaping
2011-09-15 14:24:46 +02:00
drzax
cbd42ed053
This class attempts to run the extraStatics method without first checking it exists. There's no reason why a data object decorator would necessarily add extra statics.
2011-08-11 12:01:26 +10:00
Will Rossiter
cb064203ba
MINOR: defined the addslashes() method on the abstract SS_Database as Convert::raw2sql() assumes it exists. FIXES : #6662
2011-06-10 16:36:13 +12:00
Sam Minnee
878b348a0f
Merge branch 'master' into new-orm
...
Conflicts:
docs/en/reference/built-in-page-controls.md
model/SQLQuery.php
2011-05-26 17:08:10 +12:00
Ingo Schommer
ced7d6db7a
MINOR Return empty string from SQLQuery->sql() if SELECT is the default value, and no FROM is set (moved logic from DB-specific implementations)
2011-05-19 14:34:01 +12:00
Ingo Schommer
cfe0066a3b
BUGFIX Allow omitting FROM clause in sqlQueryToString()
2011-05-19 11:37:33 +12:00
Ingo Schommer
cbf191b14c
MINOR Temporarily disabled deprecation notice in DataObjectDecorator and LeftAndMainDecorator, to be re-enabled once we're in beta stage (they unnecessarily break too many modules for now
2011-05-19 10:25:15 +12:00
ajshort
1f6f7f0862
API CHANGE: Deprecated CompositeField->FieldSet() in favour of CompositeField->FieldList().
...
MINOR: Replaced usage of FieldSet with FieldList.
MINOR: Renamed FieldSetTest to FieldListTest.
2011-05-11 17:51:54 +10:00
ajshort
a75abd5cd7
MINOR: Replaced DataObjectSet with ArrayList in MySQLDatabase->searchEngine().
2011-05-06 07:08:33 +10:00
ajshort
2294ef5820
API CHANGE: Deprecated DataObjectSet in favour of DataList or ArrayList.
...
MINOR: Moved DataObjectSet tests to ArrayListTest.
2011-05-06 00:52:50 +10:00
ajshort
c954ae5aaa
MINOR: Renamed ArrayList->array to ArrayList->items;
2011-05-06 00:30:45 +10:00
ajshort
b3fc458101
ENHANCEMENT: Made it possible to sort by multiple fields in ArrayList::sort().
2011-05-06 00:24:33 +10:00
ajshort
462689a4e6
ENHANCEMENT: Added ArrayList->removeDuplicates().
2011-05-05 20:53:07 +10:00
ajshort
99a2baf3f8
MINOR: Updated ArrayList->getRange() to return an ArrayList instance.
2011-05-05 20:41:06 +10:00
ajshort
2a3fdd16a4
MINOR: Added a default "ID" parameter to ArrayList->column().
2011-05-05 20:40:51 +10:00
ajshort
3f132a105b
API CHANGE: Replaced DataObjectSet instances with ArrayList.
2011-05-05 20:40:24 +10:00
ajshort
9f87294427
ENHANCEMENT: Added exists(), replace(), merge(), push(), pop(), unshift() and shift() methods to ArrayList.
2011-05-05 17:48:12 +10:00
ajshort
7e7677bbba
FEATURE: Added ArrayList to allow an array of arrays or objects to be handled as a list.
2011-05-04 00:06:42 +10:00
ajshort
26faead3e5
MINOR: Made DataObjectSet implement the SS_List interface.
2011-05-03 12:16:15 +10:00
ajshort
b872ad7bb8
MINOR: Added default parameters to DataList->map().
2011-05-03 12:15:49 +10:00
ajshort
50506659d1
API ChANGE: Updated DataList to not extend from DataObjectSet, but instead implement the list iterator.
...
MINOR: Return an ArrayIterator from DataList rather than a DataObjectSet_Iterator.
2011-05-02 18:14:55 +10:00
ajshort
df87fd5a11
API CHANGE: Updated SS_ListDecorator to implement the list inteface and extend ViewableData, rather than DataObjectSet.
2011-05-02 18:12:39 +10:00
ajshort
a940fb2888
FEATURE: Added the SS_List interface which classes can implement to be recognised as a list.
2011-05-02 13:38:40 +10:00
Sam Minnee
7fbb919ce8
API CHANGE: Introduce DataModel object, as a representation of the project's entire data model, and tie it to $this->model an all DataObjects, Controllers, and RequestHandlers for easy non-static access.
...
API CHANGE: Add DataList::newObject(), which creates a new object on that DataList.
API CHANGE: RequestHandler::handleRequest() now needs to handle a $model argument, if you override it.
2011-05-01 17:33:02 +12:00
Sam Minnee
a15b6941a6
BUGFIX: Replaced ManifestBuilder::has_been_included() with SS_ClassLoader::hasManifest().
2011-05-01 17:12:26 +12:00
ajshort
34e9ddfcc3
MINOR: Moved files from /core/model into /model.
2011-05-01 15:26:30 +12:00
ajshort
81c0caaddb
API CHANGE: Renamed DataList::filter() and DataQuery::filter() to ::where().
2011-05-01 15:26:30 +12:00
ajshort
8fb7b531cf
MINOR: Updated MySQLDatabase::searchEngine() to use the new PaginatedList API.
2011-05-01 15:26:30 +12:00
ajshort
3fbb29a6c5
FEATURE: Added PaginatedList, which wraps around a data list or set to provide pagination functionality. This replaces the pagination functionality baked into DataObjectSet.
...
API CHANGE: Removed pagination related methods from DataObjectSet and implemented them on PaginatedList.
API CHANGE: Removed DataObjectSet::parseQueryLimit(), this is now implemented as PaginatedList::setPaginationFromQuery().
API CHANGE: Deprecated DataObjectSet::TotalItems in favour of Count().
ENHANCEMENT: Added FirstLink and LastLink to PaginatedList.
MINOR: Updated documentation, and added a how-to on paginating items.
2011-05-01 15:26:29 +12:00
Sam Minnee
6915e58a39
BUGFIX: Fix SQLQuery::queriedTables() and added test.
2011-05-01 15:26:29 +12:00
Sam Minnee
f83abe416c
MINOR: Improved some exception handling.
2011-05-01 15:25:58 +12:00
Sam Minnee
0ba86971e2
API CHANGE: Removed context object - it's a hack.
2011-05-01 15:25:58 +12:00
Sam Minnee
c57378753d
ENHANCEMENT: Improved Versioned to pass different query styles as DataQuery modes.
2011-05-01 15:25:46 +12:00
Sam Minnee
165f38361b
BUGFIX: Updated Hierarchy::liveChildren() to use DataList over buildDataObjectSet.
2011-05-01 15:25:45 +12:00
Sam Minnee
050e0675ce
ENHANCEMENT: Created HasManyList and ManyManyList objects that represent relations. API CHANGE: Relation methods no longer cache their results. API CHANGE: ComponentSet is deprecated. API CHANGE: DataObject::getManyManyComponentsQuery() no longer exists; just use the ManyManyList itself. API CHANGE: DataObject::getManyManyJoin() no longer exists; just use the ManyManyList itself. API CHANGE: DataObject::getManyManyFilter() no longer exists; just use the ManyManyList itself.
2011-05-01 15:25:45 +12:00
Sam Minnee
de1494e3a8
ENHANCEMENT: Implemented DataList as the successor of DataObjectSet. DataList doesn't execute the query until it's actually needed, allowing for a more flexible ORM.
...
API CHANGE: augmentSQL is now passed a DataQuery object from which query parameters can be extracted.
API CHANGE: DataObjectDecorators that manipulate the query can now define augmentDataQueryCreation().
API CHANGE: The container class argument for DataObject::get() is deprecated.
API CHANGE: DataObject::buildSQL() and DataObject::extendedSQL() are deprecated; just use DataObject::get() now.
API CHANGE: DataObject::instance_get() and DataObject::instance_get_one() are deprecated, and can no longer be overloaded.
API CHANGE: DataObject::buildDataObjectSet() is deprecated.
API CHANGE: Cant't call manual manipulation methods on DataList such as insertFirst()
2011-05-01 15:25:45 +12:00
Sam Minnee
7fab93f7cb
API CHANGE: Added SQLQuery::count(), SQLQuery::firstRow(), and SQLQuery::lastRow()
2011-05-01 15:25:14 +12:00
Sam Minnee
8a9903988f
MINOR: Always store SQLQuery::$limit as a 2-element array internally.
2011-05-01 15:25:14 +12:00
Sam Minnee
199e267bbf
MINOR: Don't add 'OFFSET 0' to a query unnecessarily.
2011-05-01 15:25:14 +12:00
ajshort
3a1c2df4e7
API CHANGE: Renamed DataObjectDecorator to DataExtension.
...
API CHANGE: Renamed LeftAndMainDecorator to LeftAndMainExtension.
MINOR: Replaced all references to decorators with extension.
2011-04-26 11:01:38 +10:00
ajshort
e8dd38eac3
API CHANGE: Removed DataObjectLog class, the same functionality should be implemented using extensions.
2011-04-26 11:01:38 +10:00
Ingo Schommer
9b29616710
API CHANGE Rearranged files in sapphire to reflect core dependencies more accurately, and have the tests/ folder mirror its folder structure
2011-03-31 09:56:21 +13:00