Commit Graph

709 Commits

Author SHA1 Message Date
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