Update tag.php with gallery 3.0.4 version.
This commit is contained in:
parent
8dea65a83a
commit
4c47345fc4
@ -33,35 +33,39 @@ class Tag_Model_Core extends ORM {
|
||||
* Return all viewable items associated with this tag.
|
||||
* @param integer $limit number of rows to limit result to
|
||||
* @param integer $offset offset in result to start returning rows from
|
||||
* @param string $type the type of item (album, photo)
|
||||
* @param string $where an array of arrays, each compatible with ORM::where()
|
||||
* @return ORM_Iterator
|
||||
*/
|
||||
public function items($limit=null, $offset=null, $type=null) {
|
||||
$model = ORM::factory("item")
|
||||
public function items($limit=null, $offset=null, $where=array()) {
|
||||
if (is_scalar($where)) {
|
||||
// backwards compatibility
|
||||
$where = array(array("items.type", "=", $where));
|
||||
}
|
||||
return ORM::factory("item")
|
||||
->viewable()
|
||||
->join("items_tags", "items.id", "items_tags.item_id")
|
||||
->where("items_tags.tag_id", "=", $this->id);
|
||||
if ($type) {
|
||||
$model->where("items.type", "=", $type);
|
||||
}
|
||||
return $model->find_all($limit, $offset);
|
||||
->where("items_tags.tag_id", "=", $this->id)
|
||||
->merge_where($where)
|
||||
->order_by("items.id")
|
||||
->find_all($limit, $offset);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the count of all viewable items associated with this tag.
|
||||
* @param string $type the type of item (album, photo)
|
||||
* @param string $where an array of arrays, each compatible with ORM::where()
|
||||
* @return integer
|
||||
*/
|
||||
public function items_count($type=null) {
|
||||
$model = ORM::factory("item")
|
||||
public function items_count($where=array()) {
|
||||
if (is_scalar($where)) {
|
||||
// backwards compatibility
|
||||
$where = array(array("items.type", "=", $where));
|
||||
}
|
||||
return $model = ORM::factory("item")
|
||||
->viewable()
|
||||
->join("items_tags", "items.id", "items_tags.item_id")
|
||||
->where("items_tags.tag_id", "=", $this->id);
|
||||
|
||||
if ($type) {
|
||||
$model->where("items.type", "=", $type);
|
||||
}
|
||||
return $model->count_all();
|
||||
->where("items_tags.tag_id", "=", $this->id)
|
||||
->merge_where($where)
|
||||
->count_all();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -69,13 +73,23 @@ class Tag_Model_Core extends ORM {
|
||||
* to this tag.
|
||||
*/
|
||||
public function save() {
|
||||
$related_item_ids = array();
|
||||
foreach (db::build()
|
||||
->select("item_id")
|
||||
->from("items_tags")
|
||||
->where("tag_id", "=", $this->id)
|
||||
->execute() as $row) {
|
||||
$related_item_ids[$row->item_id] = 1;
|
||||
// Check to see if another tag exists with the same name
|
||||
$duplicate_tag = ORM::factory("tag")
|
||||
->where("name", "=", $this->name)
|
||||
->where("id", "!=", $this->id)
|
||||
->find();
|
||||
if ($duplicate_tag->loaded()) {
|
||||
// If so, tag its items with this tag so as to merge it
|
||||
$duplicate_tag_items = ORM::factory("item")
|
||||
->join("items_tags", "items.id", "items_tags.item_id")
|
||||
->where("items_tags.tag_id", "=", $duplicate_tag->id)
|
||||
->find_all();
|
||||
foreach ($duplicate_tag_items as $item) {
|
||||
$this->add($item);
|
||||
}
|
||||
|
||||
// ... and remove the duplicate tag
|
||||
$duplicate_tag->delete();
|
||||
}
|
||||
|
||||
if (isset($this->object_relations["items"])) {
|
||||
@ -132,6 +146,7 @@ class Tag_Model_Core extends ORM {
|
||||
* @param string $query the query string (eg "page=3")
|
||||
*/
|
||||
public function url($query=null) {
|
||||
// rWatcher Edit: Modify URL function to point users to tag_albums instead of tag.
|
||||
$album_id = Input::instance()->get("album");
|
||||
if (!($album_id)) {
|
||||
$album_id = 0;
|
||||
@ -142,4 +157,4 @@ class Tag_Model_Core extends ORM {
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user