feat: Implement cleanup methods for nonassigned article files and images in ArticleRepository

This commit is contained in:
2026-02-06 08:57:22 +01:00
parent e33978e1bb
commit 6c21b835da
12 changed files with 110 additions and 35 deletions

View File

@@ -40,4 +40,38 @@ class ArticleRepository
return $article;
}
/**
* Usuwa nieprzypisane pliki artykulow (article_id = null) wraz z plikami z dysku.
*/
public function deleteNonassignedFiles(): void
{
$results = $this->db->select('pp_articles_files', '*', ['article_id' => null]);
if (is_array($results)) {
foreach ($results as $row) {
if (file_exists('../' . $row['src'])) {
unlink('../' . $row['src']);
}
}
}
$this->db->delete('pp_articles_files', ['article_id' => null]);
}
/**
* Usuwa nieprzypisane zdjecia artykulow (article_id = null) wraz z plikami z dysku.
*/
public function deleteNonassignedImages(): void
{
$results = $this->db->select('pp_articles_images', '*', ['article_id' => null]);
if (is_array($results)) {
foreach ($results as $row) {
if (file_exists('../' . $row['src'])) {
unlink('../' . $row['src']);
}
}
}
$this->db->delete('pp_articles_images', ['article_id' => null]);
}
}

View File

@@ -32,8 +32,8 @@ class ArticlesController
exit;
}
\admin\factory\Articles::delete_nonassigned_images();
\admin\factory\Articles::delete_nonassigned_files();
$this->repository->deleteNonassignedImages();
$this->repository->deleteNonassignedFiles();
return \Tpl::view('articles/article-edit', [
'article' => $this->repository->find((int)\S::get('id')),

View File

@@ -433,29 +433,15 @@ class Articles
public static function delete_nonassigned_files()
{
global $mdb;
$results = $mdb -> select( 'pp_articles_files', '*', [ 'article_id' => null ] );
if ( is_array( $results ) ) foreach ( $results as $row )
{
if ( file_exists( '../' . $row['src'] ) )
unlink( '../' . $row['src'] );
}
$mdb -> delete( 'pp_articles_files', [ 'article_id' => null ] );
$repository = new \Domain\Article\ArticleRepository( $mdb );
$repository->deleteNonassignedFiles();
}
public static function delete_nonassigned_images()
{
global $mdb;
$results = $mdb -> select( 'pp_articles_images', '*', [ 'article_id' => null ] );
if ( is_array( $results ) ) foreach ( $results as $row )
{
if ( file_exists( '../' . $row['src'] ) )
unlink( '../' . $row['src'] );
}
$mdb -> delete( 'pp_articles_images', [ 'article_id' => null ] );
$repository = new \Domain\Article\ArticleRepository( $mdb );
$repository->deleteNonassignedImages();
}
}
?>