mirror of
https://github.com/Pathduck/gallery3.git
synced 2026-08-22 06:46:05 -04:00
Override the ORM_MTTP::children and ORM_MTPP::descendants methods in
the item model and always pass the orderby fields. This insures that all children or descendant calls will respect the album sort order.
This commit is contained in:
@@ -53,8 +53,7 @@ class Albums_Controller extends Items_Controller {
|
||||
$template = new Theme_View("page.html", "album");
|
||||
$template->set_global("page_size", $page_size);
|
||||
$template->set_global("item", $album);
|
||||
$template->set_global("children", $album->viewable()->children($page_size, $offset,
|
||||
array($album->sort_column => $album->sort_order)));
|
||||
$template->set_global("children", $album->viewable()->children($page_size, $offset));
|
||||
$template->set_global("children_count", $children_count);
|
||||
$template->set_global("parents", $album->parents());
|
||||
$template->content = new View("album.html");
|
||||
|
||||
@@ -140,6 +140,7 @@ class ORM_MPTT_Core extends ORM {
|
||||
* @chainable
|
||||
* @param integer SQL limit
|
||||
* @param integer SQL offset
|
||||
* @param array orderby
|
||||
* @return array ORM
|
||||
*/
|
||||
function children($limit=null, $offset=0, $orderby=null) {
|
||||
@@ -170,17 +171,21 @@ class ORM_MPTT_Core extends ORM {
|
||||
* @param integer SQL limit
|
||||
* @param integer SQL offset
|
||||
* @param string type to return
|
||||
* @param array orderby
|
||||
* @return object ORM_Iterator
|
||||
*/
|
||||
function descendants($limit=null, $offset=0, $type=null) {
|
||||
function descendants($limit=null, $offset=0, $type=null, $orderby=null) {
|
||||
$this->where("left >", $this->left)
|
||||
->where("right <=", $this->right);
|
||||
if ($type) {
|
||||
$this->where("type", $type);
|
||||
}
|
||||
|
||||
// @todo: make the order column data driven
|
||||
$this->orderby("id", "ASC");
|
||||
if (empty($orderby)) {
|
||||
$this->orderby("id", "ASC");
|
||||
} else {
|
||||
$this->orderby($orderby);
|
||||
}
|
||||
|
||||
return $this->find_all($limit, $offset);
|
||||
}
|
||||
|
||||
@@ -353,4 +353,29 @@ class Item_Model extends ORM_MPTT {
|
||||
url::abs_file("lib/flowplayer-3.0.5.swf") .
|
||||
"'); </script>";
|
||||
}
|
||||
|
||||
/**
|
||||
* Return all of the children of this node, ordered by id.
|
||||
*
|
||||
* @chainable
|
||||
* @param integer SQL limit
|
||||
* @param integer SQL offset
|
||||
* @return array ORM
|
||||
*/
|
||||
function children($limit=null, $offset=0) {
|
||||
return parent::children($limit, $offset, array($this->sort_column => $this->sort_order));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return all of the children of the specified type, ordered by id.
|
||||
*
|
||||
* @param integer SQL limit
|
||||
* @param integer SQL offset
|
||||
* @param string type to return
|
||||
* @return object ORM_Iterator
|
||||
*/
|
||||
function descendants($limit=null, $offset=0, $type=null) {
|
||||
return parent::descendants($limit, $offset, $type,
|
||||
array($this->sort_column => $this->sort_order));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user