in progress : reorder image
This commit is contained in:
@@ -106,7 +106,11 @@ class Category extends BaseCategory
|
||||
public function preDelete(ConnectionInterface $con = null)
|
||||
{
|
||||
$this->dispatchEvent(TheliaEvents::BEFORE_DELETECATEGORY, new CategoryEvent($this));
|
||||
$this->reorderBeforeDelete();
|
||||
$this->reorderBeforeDelete(
|
||||
array(
|
||||
"parent" => $this->getParent(),
|
||||
)
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -52,4 +52,13 @@ class CategoryImage extends BaseCategoryImage
|
||||
return $this->getCategoryId();
|
||||
}
|
||||
|
||||
public function preDelete(ConnectionInterface $con = null)
|
||||
{
|
||||
$this->reorderBeforeDelete(
|
||||
array(
|
||||
"category_id" => $this->getCategoryId(),
|
||||
)
|
||||
);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,4 +49,14 @@ class ContentImage extends BaseContentImage
|
||||
{
|
||||
return $this->getContentId();
|
||||
}
|
||||
|
||||
public function preDelete(ConnectionInterface $con = null)
|
||||
{
|
||||
$this->reorderBeforeDelete(
|
||||
array(
|
||||
"content_id" => $this->getContentId(),
|
||||
)
|
||||
);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -94,7 +94,11 @@ class Folder extends BaseFolder
|
||||
public function preDelete(ConnectionInterface $con = null)
|
||||
{
|
||||
$this->dispatchEvent(TheliaEvents::BEFORE_DELETEFOLDER, new FolderEvent($this));
|
||||
$this->reorderBeforeDelete();
|
||||
$this->reorderBeforeDelete(
|
||||
array(
|
||||
"parent" => $this->getParent(),
|
||||
)
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -49,4 +49,14 @@ class FolderImage extends BaseFolderImage
|
||||
{
|
||||
return $this->getFolderId();
|
||||
}
|
||||
|
||||
public function preDelete(ConnectionInterface $con = null)
|
||||
{
|
||||
$this->reorderBeforeDelete(
|
||||
array(
|
||||
"folder_id" => $this->getFolderId(),
|
||||
)
|
||||
);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,4 +49,14 @@ class ProductImage extends BaseProductImage
|
||||
{
|
||||
return $this->getProductId();
|
||||
}
|
||||
|
||||
public function preDelete(ConnectionInterface $con = null)
|
||||
{
|
||||
$this->reorderBeforeDelete(
|
||||
array(
|
||||
"product_id" => $this->getProductId(),
|
||||
)
|
||||
);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,19 +199,26 @@ trait PositionManagementTrait {
|
||||
}
|
||||
}
|
||||
|
||||
protected function reorderBeforeDelete()
|
||||
protected function reorderBeforeDelete($fields = array())
|
||||
{
|
||||
// Find DATABASE_NAME constant
|
||||
$mapClassName = self::TABLE_MAP;
|
||||
|
||||
$sql = sprintf("UPDATE `%s` SET position=(position-1) WHERE parent=:parent AND position>:position", $mapClassName::TABLE_NAME);
|
||||
$data = array();
|
||||
$whereCriteria = array();
|
||||
|
||||
foreach($fields as $field => $value) {
|
||||
$whereCriteria[] = $field . '=:' . $field;
|
||||
$data[':' . $field] = $value;
|
||||
}
|
||||
|
||||
$data[':position'] = $this->getPosition();
|
||||
|
||||
$sql = sprintf("UPDATE `%s` SET position=(position-1) WHERE " . (count($whereCriteria)>0 ? implode(" AND ", $whereCriteria) : '1') . " AND position>:position", $mapClassName::TABLE_NAME);
|
||||
|
||||
$con = Propel::getConnection($mapClassName::DATABASE_NAME);
|
||||
$statement = $con->prepare($sql);
|
||||
|
||||
$statement->execute(array(
|
||||
':parent' => $this->getParent(),
|
||||
':position' => $this->getPosition()
|
||||
));
|
||||
$statement->execute($data);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user