refactor newsletter module and disable prepare/user templates

This commit is contained in:
2026-02-12 23:26:28 +01:00
parent b0a2f4be0e
commit 0d4e175b1a
26 changed files with 1182 additions and 602 deletions

View File

@@ -1,76 +1,48 @@
<?php
namespace admin\factory;
use Domain\Newsletter\NewsletterRepository;
use Domain\Settings\SettingsRepository;
class Newsletter
{
public static function is_admin_template( $template_id )
{
global $mdb;
return $mdb -> get( 'pp_newsletter_templates', 'is_admin', [ 'id' => (int)$template_id ] );
return self::repository() -> isAdminTemplate( (int)$template_id );
}
public static function newsletter_template_delete( $template_id )
{
global $mdb;
return $mdb -> delete( 'pp_newsletter_templates', [ 'id' => (int)$template_id ] );
return self::repository() -> deleteTemplate( (int)$template_id );
}
public static function send( $dates, $template )
{
global $mdb;
$results = $mdb -> select( 'pp_newsletter', 'email', [ 'status' => 1 ] );
if ( is_array( $results ) and !empty( $results ) ) foreach ( $results as $row )
{
$mdb -> insert( 'pp_newsletter_send', [
'email' => $row,
'dates' => $dates,
'id_template' => $template ? $template : null
] );
}
return true;
return self::repository() -> queueSend( (string)$dates, (int)$template );
}
public static function email_template_detalis ($id_template)
public static function email_template_detalis( $id_template )
{
global $mdb;
$result = $mdb -> get ('pp_newsletter_templates', '*', [ 'id' => (int)$id_template ] );
return $result;
return self::repository() -> templateDetails( (int)$id_template );
}
public static function template_save( $id, $name, $text )
{
global $mdb;
if ( !$id )
{
if ( $mdb -> insert( 'pp_newsletter_templates', [
'name' => $name,
'text' => $text
] ) )
{
\S::delete_dir( '../temp/' );
return $mdb -> id();
}
}
else
{
$mdb -> update( 'pp_newsletter_templates', [
'name' => $name,
'text' => $text
], [
'id' => (int)$id
] );
\S::delete_dir( '../temp/' );
return $id;
}
return self::repository() -> saveTemplate( (int)$id, (string)$name, (string)$text );
}
public static function templates_list()
{
global $mdb;
return $mdb -> select( 'pp_newsletter_templates', '*', [ 'is_admin' => 0, 'ORDER' => [ 'name' => 'ASC' ] ] );
return self::repository() -> listTemplatesSimple( false );
}
}
private static function repository(): NewsletterRepository
{
global $mdb;
return new NewsletterRepository(
$mdb,
new SettingsRepository($mdb)
);
}
}