2017 © Pedro PelΓ‘ez
 

yii2-module yii2-module-mailing

Mailing module for yii2 projects.

image

floor12/yii2-module-mailing

Mailing module for yii2 projects.

  • Tuesday, July 17, 2018
  • by floor12
  • Repository
  • 1 Watchers
  • 3 Stars
  • 4 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 0 % Grown

The README.md

yii2-module-mailing

Build Status Latest Stable Version Latest Unstable Version Total Downloads License, (*1)

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ массовых рассылок (ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ прилоТСния, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ спискам). Он отслСТиваСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ письма (ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ), Π° Ρ‚Π°ΠΊ ΠΆΠ΅ отслСТиваСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ссылки, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΈΡ… Π² рассылкС., (*2)

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° рассылок Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π½Π°: - ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ список email адрСсов, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… нСпосрСдствСнно ΠΏΡ€ΠΈ составлСнии рассылки; - ΠΏΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ составлСнным спискам (ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² интСрфСйсС Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ модуля, Π½ΠΎ часто Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… динамичСски ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ); - извлСкая адрСса ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ActiveRecord ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ вашСго прилоТСния., (*3)

Установка

Π‘Ρ‚Π°Π²ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ

ВыполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, (*4)

$ composer require floor12/yii2-module-mailing

ΠΈΠ΄ΠΈ добавляСм Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ "requred" Ρ„Π°ΠΉΠ»Π° composer.json, (*5)

"floor12/yii2-module-mailing" : "*"

ВыполняСм ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ для созданию Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, (*6)

$ ./yii migrate --migrationPath=@vendor/floor12/yii2-module-mailing/src/migrations/

Если Π΄ΠΎ этого Π½Π΅ Π±Ρ‹Π» установлСн ΠΌΠΎΠ΄ΡƒΠ»ΡŒ floor12\files\Module, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ присутствуСт Ρ‚ΡƒΡ‚ Π² зависимостях, Ρ‚ΠΎ создаСм ΠΏΠ°ΠΏΠΊΡƒ @app/storage c ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π²Π΅Π±-сСрвСра Π½Π° запись, Ρ‚Π°ΠΊ ΠΆΠ΅ выполняСм ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ для модуля Ρ„Π°ΠΉΠ»ΠΎΠ²:, (*7)

$ ./yii migrate --migrationPath=@vendor/floor12/yii2-module-files/src/migrations/

ДобавляСм Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ прилоТСния (Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ floor12/yii2-module-files, Ссли ΠΎΠ½ Π½Π΅ Π±Ρ‹Π» установлСн Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€Π΅ΠΆΠ΄Π΅), (*8)

'modules' => [
        'mailing' => [
            'class' => 'floor12\mailing\Module',
            'editRole' => 'admin',
            'layout' => '@app/views/layouts/columns',
            'fromEmail' => 'no-reply@example.com',
            'fromName' => 'Π‘Π»ΡƒΠΆΠ±Π° рассылок сайта example.com',
            'htmlTemplate' => 'mailing-main',
            'domain' => 'https://aexample.com',
            'linkedModels' => [
                \common\models\User::class,
                \common\models\Clients::class,
            ]
        ],
        'files' => [
            'class' => 'floor12\files\Module',
        ],
    ],
    ...

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:, (*9)

  • editRole - Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ доступ ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ модуля., (*10)

  • layout - алиас Π»Π΅ΠΉΠ°ΡƒΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ модуля., (*11)

  • fromEmail - email адрСс отправитСля рассылок.
  • fromName - ΠžΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ³ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ рассылки.
  • htmlTemplate - Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для рассылок
  • domain - Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ запуск ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈΠ΄Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· консоль, Π° ΠΎΠ½Π° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΎ Π΄ΠΎΠΌΠ΅Π½Π΅ сайта, Ρ‚ΠΎ прописываСм Π΄ΠΎΠΌΠ΅Π½ прилоТСния, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ отслСТивания ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… писСм ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ссылкам.
  • linkedModels - Массив классов ActiveRecord, Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для формирования адрСсов ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ. Π”Π°Π½Π½Ρ‹Π΅ классы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ floor12\mailing\interfaces\MailingRecipientInterface.
  • unsubscribeRoute - ΠΏΡƒΡ‚ΡŒ ΠΊ ΡΠΊΡˆΠ΅Π½Ρƒ отписки ΠΎΡ‚ рассылки (ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ помСчаСтся ΠΊΠ°ΠΊ отписанный), ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ стоит.

Запуск ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, (*12)

Для запуска ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:, (*13)

$./yii mailing/queue

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ Π² ΠΊΡ€ΠΎΠ½ с ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠΈΠ½ΡƒΡ‚ Π² 15., (*14)

ИспользованиС

Админка модуля доступна ΠΏΠΎ адрСсу https://example.com/mailing., (*15)

Π Π°Π·Π΄Π΅Π» рассылок: Image Π Π°Π·Π΄Π΅Π» списков: Image Π Π°Π·Π΄Π΅Π» адрСсов: Image, (*16)

ΠŸΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ рассылки, Ссли Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ модуля Π±Ρ‹Π»ΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ классы Π² массивС linkedModels, Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Select2 с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² этих классов Π±ΡƒΠ΄ΡƒΡ‚ сформированы автоматичСски. На изобраТСниях ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с классом common\models\User., (*17)

Image, (*18)

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ класс User Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ floor12\mailing\interfaces\MailingRecipientInterface ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, благодаря Ρ‡Π΅ΠΌΡƒ, Π² Ρ„ΠΎΡ€ΠΌΠ΅ гСнСрируСтся ΠΏΠΎΠ»Π΅ "ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ"., (*19)

class User extends MyActiveRecord implements IdentityInterface, MailingRecipientInterface
{

    public static function getMailingList(): array
    {
        return self::find()->select('fullname')->indexBy('id')->column();
    }

    public static function getMailingLabel(): string
    {
        return "ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ";
    }

    public function getMailingEmail(): string
    {
        return $this->email;
    }
    ...

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ подробности ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠ· исходного ΠΊΠΎΠ΄Π°., (*20)

The Versions

17/07 2018