21309 Posts in 5738 Topics by 2603 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 434 Views |
-
Sort DataList by ID array

18 July 2012 at 7:40pm
hello
i got array with last opened pages and i wanna ask you how to order items in datalist by this ordered array
i tried to add items one by one but it doesnt work
$idList = Session::get('recentproducts');
$dl = DataList::create('ProductPage')->byIDs(array($idList[0]));
for ($i = 1; $i < count($idList); $i++)
{
$dl->addMany( DataList::create('ProductPage')->byIDs(array($idList[$i])));
}
return $dl;aby better idea?
thx -
Re: Sort DataList by ID array

19 July 2012 at 7:40pm
thanks, but i'm not sure you understood my problem
I have array with ID of pages
(for example 35 43 30 32 40 50 83 52)
and I want to create DataList with DataObjects in same order as in array(or maybe i dont understand how to use sort method in this case, can you show me it in code please)
-
Re: Sort DataList by ID array

19 July 2012 at 8:24pm Last edited: 20 July 2012 1:47am
Sorry, I misunderstood your problem, but although you can use the sort metod combined with SQL functions .
You have an array with product ids and want to create a DataList with that products wich are in the same order like in your array?
Try the following:
// $idList is a comma separated string?
$dl = DataList::create('ProductPage')->byIDs(array($idList[0]))->sort('FIELD(ID, ' . $idList . ')');// Plain SQL would look like
// SELECT * FROM ProductPage WHERE ID IN (35, 43 ,30 ,32) ORDER BY FIELD (ID, 35, 43, 30, 32);Greetings
dpde -
Re: Sort DataList by ID array

20 July 2012 at 1:46am
If you are planning for this to be in a GridField and you wish to change the sorting I would checkout the Sortable GridField Component.
https://github.com/UndefinedOffset/SortableGridField
Then you can drag and drop those items into whatever order you want and just use the sort() function when you build the list.
| 434 Views | ||
|
Page:
1
|
Go to Top |



