Plugin Directory

Changeset 2677983


Ignore:
Timestamp:
02/13/2022 04:23:13 PM (4 years ago)
Author:
juvodesign
Message:

Update to version 3.0.6 from GitHub

Location:
juvo-mail-editor
Files:
10 added
50 edited
1 copied

Legend:

Unmodified
Added
Removed
  • juvo-mail-editor/tags/3.0.6/admin/Admin.php

    r2587510 r2677983  
    5454         */
    5555
    56         wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/options-page.css', array(), null, 'all' );
     56        wp_enqueue_style( $this->plugin_name . "_options-page", plugin_dir_url( __FILE__ ) . 'css/options-page.css', array(), null, 'all' );
     57        wp_enqueue_style( $this->plugin_name . "_cmb", plugin_dir_url( __FILE__ ) . 'css/cmb.css', array(), null, 'all' );
    5758
    5859    }
  • juvo-mail-editor/tags/3.0.6/juvo-mail-editor.php

    r2672700 r2677983  
    88 * Text Domain:     juvo-mail-editor
    99 * Domain Path:     /languages
    10  * Version:         3.0.5
     10 * Version:         3.0.6
    1111 */
    1212
  • juvo-mail-editor/tags/3.0.6/readme.txt

    r2672700 r2677983  
    44License: GPLv2 or later
    55Tested up to: 5.9
    6 Stable tag: 3.0.5
     6Stable tag: 3.0.6
    77
    88JUVO Mail Editor helps to modify the standard WordPress Mailings and allows adding dynamic mail triggers.
  • juvo-mail-editor/tags/3.0.6/src/Mails/Password_Changed.php

    r2672700 r2677983  
    1313
    1414    public function addCustomFields( CMB2 $cmb ): CMB2 {
     15
     16        $field = $cmb->get_field( Mails_PT::POST_TYPE_NAME . '_recipients' );
     17
     18        if ( $cmb->object_id() && ! empty( $field->value ) ) {
     19            update_post_meta( $cmb->object_id(), Mails_PT::POST_TYPE_NAME . '_recipients', [] );
     20        }
     21
    1522        if ( has_term( $this->getTrigger(), Mail_Trigger_TAX::TAXONOMY_NAME, $cmb->object_id() ) ) {
    1623            $cmb->remove_field( Mails_PT::POST_TYPE_NAME . '_recipients' );
     
    7986    }
    8087
    81     public function prepareSend( array $email, WP_User $user ): array {
    82         do_action( "juvo_mail_editor_send", $this->getTrigger(), [ "user" => $user ] );
     88    public function prepareSend( array $email, array $user ): array {
     89        do_action( "juvo_mail_editor_send", $this->getTrigger(), [ "user" => get_user_by( "ID", $user['ID'] ) ] );
    8390
    8491        return $this->emptyMailArray( $email );
  • juvo-mail-editor/tags/3.0.6/src/Mails/Password_Changed_Admin.php

    r2672700 r2677983  
    66use CMB2;
    77use JUVO_MailEditor\Mail_Generator;
    8 use JUVO_MailEditor\Mail_Trigger_TAX;
    9 use JUVO_MailEditor\Mails_PT;
    108use WP_User;
    119
     
    1311
    1412    public function addCustomFields( CMB2 $cmb ): CMB2 {
    15         if ( has_term( $this->getTrigger(), Mail_Trigger_TAX::TAXONOMY_NAME, $cmb->object_id() ) ) {
    16             $cmb->remove_field( Mails_PT::POST_TYPE_NAME . '_recipients' );
    17         }
    18 
    1913        return $cmb;
    2014    }
  • juvo-mail-editor/tags/3.0.6/src/Mails/Password_Reset.php

    r2672700 r2677983  
    1717
    1818    public function addCustomFields( CMB2 $cmb ): CMB2 {
     19
     20        $field = $cmb->get_field( Mails_PT::POST_TYPE_NAME . '_recipients' );
     21
     22        if ( $cmb->object_id() && ! empty( $field->value ) ) {
     23            update_post_meta( $cmb->object_id(), Mails_PT::POST_TYPE_NAME . '_recipients', [] );
     24        }
     25
    1926        if ( has_term( $this->getTrigger(), Mail_Trigger_TAX::TAXONOMY_NAME, $cmb->object_id() ) ) {
    2027            $cmb->remove_field( Mails_PT::POST_TYPE_NAME . '_recipients' );
  • juvo-mail-editor/tags/3.0.6/src/Mails_PT.php

    r2672700 r2677983  
    9292        );
    9393
    94         $cmb->add_field(
    95             array(
    96                 'name'   => __( 'Recipients', 'juvo-mail-editor' ),
    97                 'id'     => self::POST_TYPE_NAME . '_recipients',
    98                 'type'   => 'text',
    99                 'column' => true,
    100             )
    101         );
    102 
    103         $recipient_group = $cmb->add_field( array(
     94        // Named "recipients" for backwards compatibility reasons. Don´t rename!
     95        $to_group = $cmb->add_field( array(
    10496            'id'          => self::POST_TYPE_NAME . '_recipients',
    10597            'type'        => 'group',
     
    116108        ) );
    117109
    118         $this->addRecipientGroupFields( $recipient_group, $cmb );
     110        $this->addRecipientGroupFields( $to_group, $cmb );
    119111
    120112        $cc_group = $cmb->add_field( array(
     
    152144        $this->addRecipientGroupFields( $bcc_group, $cmb );
    153145
    154 
    155146        $cmb->add_field( array(
    156147            'name' => __( 'Attachments', 'juvo-mail-editor' ),
  • juvo-mail-editor/tags/3.0.6/src/Relay.php

    r2672700 r2677983  
    209209        }
    210210
    211         $recipients = apply_filters( "juvo_mail_editor_{$this->trigger}_recipients", $this->parseToCcBcc( $recipients ), $this->context );
    212 
    213         return apply_filters( 'juvo_mail_editor_after_recipient_placeholder', $recipients, $this->trigger, $this->context );
     211        $recipients = apply_filters( "juvo_mail_editor_{$this->trigger}_recipients", $recipients, $this->context );
     212
     213        return apply_filters( 'juvo_mail_editor_after_recipients_placeholder', $this->parseToCcBcc( $recipients ), $this->trigger, $this->context );
    214214    }
    215215
     
    351351        }
    352352
    353         $cc = apply_filters( "juvo_mail_editor_{$this->trigger}_cc", $this->parseToCcBcc( $cc, "Cc:" ), $this->context );
    354         $cc = apply_filters( 'juvo_mail_editor_after_cc_placeholder', $cc, $this->trigger, $this->context );
     353        $cc = apply_filters( "juvo_mail_editor_{$this->trigger}_cc", $cc, $this->context );
     354        $cc = apply_filters( 'juvo_mail_editor_after_cc_placeholder', $this->parseToCcBcc( $cc, "Cc:" ), $this->trigger, $this->context );
    355355
    356356        return array_merge( $headers, $cc );
     
    366366        }
    367367
    368         $bcc = apply_filters( "juvo_mail_editor_{$this->trigger}_bcc", $this->parseToCcBcc( $bcc, "Bcc:" ), $this->context );
    369         $bcc = apply_filters( 'juvo_mail_editor_after_bcc_placeholder', $bcc, $this->trigger, $this->context );
     368        $bcc = apply_filters( "juvo_mail_editor_{$this->trigger}_bcc", $bcc, $this->context );
     369        $bcc = apply_filters( 'juvo_mail_editor_after_bcc_placeholder', $this->parseToCcBcc( $bcc, "Bcc:" ), $this->trigger, $this->context );
    370370
    371371        return array_merge( $headers, $bcc );
  • juvo-mail-editor/tags/3.0.6/vendor/autoload.php

    r2672700 r2677983  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInitfdfdf11997bf846c7668e97b172e1c1f::getLoader();
     7return ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc::getLoader();
  • juvo-mail-editor/tags/3.0.6/vendor/composer/autoload_files.php

    r2654150 r2677983  
    77
    88return array(
     9    '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
    910    '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
    1011    '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
  • juvo-mail-editor/tags/3.0.6/vendor/composer/autoload_psr4.php

    r2644151 r2677983  
    99    'Twig\\' => array($vendorDir . '/twig/twig/src'),
    1010    'Timber\\' => array($vendorDir . '/timber/timber/lib'),
     11    'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
    1112    'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
    1213    'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
  • juvo-mail-editor/tags/3.0.6/vendor/composer/autoload_real.php

    r2672700 r2677983  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInitfdfdf11997bf846c7668e97b172e1c1f
     5class ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc
    66{
    77    private static $loader;
     
    2323        }
    2424
    25         spl_autoload_register(array('ComposerAutoloaderInitfdfdf11997bf846c7668e97b172e1c1f', 'loadClassLoader'), true, true);
     25        spl_autoload_register(array('ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc', 'loadClassLoader'), true, true);
    2626        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
    27         spl_autoload_unregister(array('ComposerAutoloaderInitfdfdf11997bf846c7668e97b172e1c1f', 'loadClassLoader'));
     27        spl_autoload_unregister(array('ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc', 'loadClassLoader'));
    2828
    2929        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    3131            require __DIR__ . '/autoload_static.php';
    3232
    33             call_user_func(\Composer\Autoload\ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::getInitializer($loader));
     33            call_user_func(\Composer\Autoload\ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::getInitializer($loader));
    3434        } else {
    3535            $map = require __DIR__ . '/autoload_namespaces.php';
     
    5252
    5353        if ($useStaticLoader) {
    54             $includeFiles = Composer\Autoload\ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::$files;
     54            $includeFiles = Composer\Autoload\ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$files;
    5555        } else {
    5656            $includeFiles = require __DIR__ . '/autoload_files.php';
    5757        }
    5858        foreach ($includeFiles as $fileIdentifier => $file) {
    59             composerRequirefdfdf11997bf846c7668e97b172e1c1f($fileIdentifier, $file);
     59            composerRequired9c7f26111ceaf3423b6af260b5d65bc($fileIdentifier, $file);
    6060        }
    6161
     
    6969 * @return void
    7070 */
    71 function composerRequirefdfdf11997bf846c7668e97b172e1c1f($fileIdentifier, $file)
     71function composerRequired9c7f26111ceaf3423b6af260b5d65bc($fileIdentifier, $file)
    7272{
    7373    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
  • juvo-mail-editor/tags/3.0.6/vendor/composer/autoload_static.php

    r2672700 r2677983  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f
     7class ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc
    88{
    99    public static $files = array (
     10        '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
    1011        '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
    1112        '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
     
    2021        'S' =>
    2122        array (
     23            'Symfony\\Polyfill\\Php72\\' => 23,
    2224            'Symfony\\Polyfill\\Mbstring\\' => 26,
    2325            'Symfony\\Polyfill\\Ctype\\' => 23,
     
    4244        array (
    4345            0 => __DIR__ . '/..' . '/timber/timber/lib',
     46        ),
     47        'Symfony\\Polyfill\\Php72\\' =>
     48        array (
     49            0 => __DIR__ . '/..' . '/symfony/polyfill-php72',
    4450        ),
    4551        'Symfony\\Polyfill\\Mbstring\\' =>
     
    94100    {
    95101        return \Closure::bind(function () use ($loader) {
    96             $loader->prefixLengthsPsr4 = ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::$prefixLengthsPsr4;
    97             $loader->prefixDirsPsr4 = ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::$prefixDirsPsr4;
    98             $loader->fallbackDirsPsr4 = ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::$fallbackDirsPsr4;
    99             $loader->prefixesPsr0 = ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::$prefixesPsr0;
    100             $loader->classMap = ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::$classMap;
     102            $loader->prefixLengthsPsr4 = ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$prefixLengthsPsr4;
     103            $loader->prefixDirsPsr4 = ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$prefixDirsPsr4;
     104            $loader->fallbackDirsPsr4 = ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$fallbackDirsPsr4;
     105            $loader->prefixesPsr0 = ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$prefixesPsr0;
     106            $loader->classMap = ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$classMap;
    101107
    102108        }, null, ClassLoader::class);
  • juvo-mail-editor/tags/3.0.6/vendor/composer/installed.json

    r2644151 r2677983  
    281281        {
    282282            "name": "symfony/polyfill-ctype",
    283             "version": "v1.23.0",
    284             "version_normalized": "1.23.0.0",
     283            "version": "v1.24.0",
     284            "version_normalized": "1.24.0.0",
    285285            "source": {
    286286                "type": "git",
    287287                "url": "https://github.com/symfony/polyfill-ctype.git",
    288                 "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce"
    289             },
    290             "dist": {
    291                 "type": "zip",
    292                 "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce",
    293                 "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce",
     288                "reference": "30885182c981ab175d4d034db0f6f469898070ab"
     289            },
     290            "dist": {
     291                "type": "zip",
     292                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
     293                "reference": "30885182c981ab175d4d034db0f6f469898070ab",
    294294                "shasum": ""
    295295            },
    296296            "require": {
    297297                "php": ">=7.1"
     298            },
     299            "provide": {
     300                "ext-ctype": "*"
    298301            },
    299302            "suggest": {
    300303                "ext-ctype": "For best performance"
    301304            },
    302             "time": "2021-02-19T12:13:01+00:00",
     305            "time": "2021-10-20T20:35:02+00:00",
    303306            "type": "library",
    304307            "extra": {
     
    343346            ],
    344347            "support": {
    345                 "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0"
     348                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0"
    346349            },
    347350            "funding": [
     
    395398            "installation-source": "dist",
    396399            "autoload": {
     400                "files": [
     401                    "bootstrap.php"
     402                ],
    397403                "psr-4": {
    398404                    "Symfony\\Polyfill\\Mbstring\\": ""
    399                 },
    400                 "files": [
    401                     "bootstrap.php"
    402                 ]
     405                }
    403406            },
    404407            "notification-url": "https://packagist.org/downloads/",
     
    443446            ],
    444447            "install-path": "../symfony/polyfill-mbstring"
     448        },
     449        {
     450            "name": "symfony/polyfill-php72",
     451            "version": "v1.24.0",
     452            "version_normalized": "1.24.0.0",
     453            "source": {
     454                "type": "git",
     455                "url": "https://github.com/symfony/polyfill-php72.git",
     456                "reference": "9a142215a36a3888e30d0a9eeea9766764e96976"
     457            },
     458            "dist": {
     459                "type": "zip",
     460                "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976",
     461                "reference": "9a142215a36a3888e30d0a9eeea9766764e96976",
     462                "shasum": ""
     463            },
     464            "require": {
     465                "php": ">=7.1"
     466            },
     467            "time": "2021-05-27T09:17:38+00:00",
     468            "type": "library",
     469            "extra": {
     470                "branch-alias": {
     471                    "dev-main": "1.23-dev"
     472                },
     473                "thanks": {
     474                    "name": "symfony/polyfill",
     475                    "url": "https://github.com/symfony/polyfill"
     476                }
     477            },
     478            "installation-source": "dist",
     479            "autoload": {
     480                "files": [
     481                    "bootstrap.php"
     482                ],
     483                "psr-4": {
     484                    "Symfony\\Polyfill\\Php72\\": ""
     485                }
     486            },
     487            "notification-url": "https://packagist.org/downloads/",
     488            "license": [
     489                "MIT"
     490            ],
     491            "authors": [
     492                {
     493                    "name": "Nicolas Grekas",
     494                    "email": "[email protected]"
     495                },
     496                {
     497                    "name": "Symfony Community",
     498                    "homepage": "https://symfony.com/contributors"
     499                }
     500            ],
     501            "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
     502            "homepage": "https://symfony.com",
     503            "keywords": [
     504                "compatibility",
     505                "polyfill",
     506                "portable",
     507                "shim"
     508            ],
     509            "support": {
     510                "source": "https://github.com/symfony/polyfill-php72/tree/v1.24.0"
     511            },
     512            "funding": [
     513                {
     514                    "url": "https://symfony.com/sponsor",
     515                    "type": "custom"
     516                },
     517                {
     518                    "url": "https://github.com/fabpot",
     519                    "type": "github"
     520                },
     521                {
     522                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
     523                    "type": "tidelift"
     524                }
     525            ],
     526            "install-path": "../symfony/polyfill-php72"
    445527        },
    446528        {
     
    595677        {
    596678            "name": "twig/twig",
    597             "version": "v2.14.8",
    598             "version_normalized": "2.14.8.0",
     679            "version": "v2.14.11",
     680            "version_normalized": "2.14.11.0",
    599681            "source": {
    600682                "type": "git",
    601683                "url": "https://github.com/twigphp/Twig.git",
    602                 "reference": "06b450a2326aa879faa2061ff72fe1588b3ab043"
    603             },
    604             "dist": {
    605                 "type": "zip",
    606                 "url": "https://api.github.com/repos/twigphp/Twig/zipball/06b450a2326aa879faa2061ff72fe1588b3ab043",
    607                 "reference": "06b450a2326aa879faa2061ff72fe1588b3ab043",
    608                 "shasum": ""
    609             },
    610             "require": {
    611                 "php": ">=7.2.5",
     684                "reference": "66baa66f29ee30e487e05f1679903e36eb01d727"
     685            },
     686            "dist": {
     687                "type": "zip",
     688                "url": "https://api.github.com/repos/twigphp/Twig/zipball/66baa66f29ee30e487e05f1679903e36eb01d727",
     689                "reference": "66baa66f29ee30e487e05f1679903e36eb01d727",
     690                "shasum": ""
     691            },
     692            "require": {
     693                "php": ">=7.1.3",
    612694                "symfony/polyfill-ctype": "^1.8",
    613                 "symfony/polyfill-mbstring": "^1.3"
     695                "symfony/polyfill-mbstring": "^1.3",
     696                "symfony/polyfill-php72": "^1.8"
    614697            },
    615698            "require-dev": {
     
    617700                "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
    618701            },
    619             "time": "2021-11-25T13:38:06+00:00",
     702            "time": "2022-02-04T06:57:25+00:00",
    620703            "type": "library",
    621704            "extra": {
     
    661744            "support": {
    662745                "issues": "https://github.com/twigphp/Twig/issues",
    663                 "source": "https://github.com/twigphp/Twig/tree/v2.14.8"
     746                "source": "https://github.com/twigphp/Twig/tree/v2.14.11"
    664747            },
    665748            "funding": [
  • juvo-mail-editor/tags/3.0.6/vendor/composer/installed.php

    r2672700 r2677983  
    11<?php return array(
    22    'root' => array(
    3         'pretty_version' => '3.0.5',
    4         'version' => '3.0.5.0',
     3        'pretty_version' => '3.0.6',
     4        'version' => '3.0.6.0',
    55        'type' => 'wordpress-plugin',
    66        'install_path' => __DIR__ . '/../../',
    77        'aliases' => array(),
    8         'reference' => '78ed8db8c7bf3e36838fbdeedd047527631aec6d',
     8        'reference' => 'c3acc4c8ec410d7979bfabd1f1f3602a01f1ca1f',
    99        'name' => 'juvo/mail-editor',
    1010        'dev' => false,
     
    3939        ),
    4040        'juvo/mail-editor' => array(
    41             'pretty_version' => '3.0.5',
    42             'version' => '3.0.5.0',
     41            'pretty_version' => '3.0.6',
     42            'version' => '3.0.6.0',
    4343            'type' => 'wordpress-plugin',
    4444            'install_path' => __DIR__ . '/../../',
    4545            'aliases' => array(),
    46             'reference' => '78ed8db8c7bf3e36838fbdeedd047527631aec6d',
     46            'reference' => 'c3acc4c8ec410d7979bfabd1f1f3602a01f1ca1f',
    4747            'dev_requirement' => false,
    4848        ),
     
    6060        ),
    6161        'symfony/polyfill-ctype' => array(
    62             'pretty_version' => 'v1.23.0',
    63             'version' => '1.23.0.0',
     62            'pretty_version' => 'v1.24.0',
     63            'version' => '1.24.0.0',
    6464            'type' => 'library',
    6565            'install_path' => __DIR__ . '/../symfony/polyfill-ctype',
    6666            'aliases' => array(),
    67             'reference' => '46cd95797e9df938fdd2b03693b5fca5e64b01ce',
     67            'reference' => '30885182c981ab175d4d034db0f6f469898070ab',
    6868            'dev_requirement' => false,
    6969        ),
     
    7575            'aliases' => array(),
    7676            'reference' => '39d483bdf39be819deabf04ec872eb0b2410b531',
     77            'dev_requirement' => false,
     78        ),
     79        'symfony/polyfill-php72' => array(
     80            'pretty_version' => 'v1.24.0',
     81            'version' => '1.24.0.0',
     82            'type' => 'library',
     83            'install_path' => __DIR__ . '/../symfony/polyfill-php72',
     84            'aliases' => array(),
     85            'reference' => '9a142215a36a3888e30d0a9eeea9766764e96976',
    7786            'dev_requirement' => false,
    7887        ),
     
    96105        ),
    97106        'twig/twig' => array(
    98             'pretty_version' => 'v2.14.8',
    99             'version' => '2.14.8.0',
     107            'pretty_version' => 'v2.14.11',
     108            'version' => '2.14.11.0',
    100109            'type' => 'library',
    101110            'install_path' => __DIR__ . '/../twig/twig',
    102111            'aliases' => array(),
    103             'reference' => '06b450a2326aa879faa2061ff72fe1588b3ab043',
     112            'reference' => '66baa66f29ee30e487e05f1679903e36eb01d727',
    104113            'dev_requirement' => false,
    105114        ),
  • juvo-mail-editor/tags/3.0.6/vendor/symfony/polyfill-ctype/Ctype.php

    r2644151 r2677983  
    2626     * @see https://php.net/ctype-alnum
    2727     *
    28      * @param string|int $text
     28     * @param mixed $text
    2929     *
    3030     * @return bool
     
    3232    public static function ctype_alnum($text)
    3333    {
    34         $text = self::convert_int_to_char_for_ctype($text);
     34        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    3535
    3636        return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z0-9]/', $text);
     
    4242     * @see https://php.net/ctype-alpha
    4343     *
    44      * @param string|int $text
     44     * @param mixed $text
    4545     *
    4646     * @return bool
     
    4848    public static function ctype_alpha($text)
    4949    {
    50         $text = self::convert_int_to_char_for_ctype($text);
     50        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    5151
    5252        return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z]/', $text);
     
    5858     * @see https://php.net/ctype-cntrl
    5959     *
    60      * @param string|int $text
     60     * @param mixed $text
    6161     *
    6262     * @return bool
     
    6464    public static function ctype_cntrl($text)
    6565    {
    66         $text = self::convert_int_to_char_for_ctype($text);
     66        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    6767
    6868        return \is_string($text) && '' !== $text && !preg_match('/[^\x00-\x1f\x7f]/', $text);
     
    7474     * @see https://php.net/ctype-digit
    7575     *
    76      * @param string|int $text
     76     * @param mixed $text
    7777     *
    7878     * @return bool
     
    8080    public static function ctype_digit($text)
    8181    {
    82         $text = self::convert_int_to_char_for_ctype($text);
     82        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    8383
    8484        return \is_string($text) && '' !== $text && !preg_match('/[^0-9]/', $text);
     
    9090     * @see https://php.net/ctype-graph
    9191     *
    92      * @param string|int $text
     92     * @param mixed $text
    9393     *
    9494     * @return bool
     
    9696    public static function ctype_graph($text)
    9797    {
    98         $text = self::convert_int_to_char_for_ctype($text);
     98        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    9999
    100100        return \is_string($text) && '' !== $text && !preg_match('/[^!-~]/', $text);
     
    106106     * @see https://php.net/ctype-lower
    107107     *
    108      * @param string|int $text
     108     * @param mixed $text
    109109     *
    110110     * @return bool
     
    112112    public static function ctype_lower($text)
    113113    {
    114         $text = self::convert_int_to_char_for_ctype($text);
     114        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    115115
    116116        return \is_string($text) && '' !== $text && !preg_match('/[^a-z]/', $text);
     
    122122     * @see https://php.net/ctype-print
    123123     *
    124      * @param string|int $text
     124     * @param mixed $text
    125125     *
    126126     * @return bool
     
    128128    public static function ctype_print($text)
    129129    {
    130         $text = self::convert_int_to_char_for_ctype($text);
     130        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    131131
    132132        return \is_string($text) && '' !== $text && !preg_match('/[^ -~]/', $text);
     
    138138     * @see https://php.net/ctype-punct
    139139     *
    140      * @param string|int $text
     140     * @param mixed $text
    141141     *
    142142     * @return bool
     
    144144    public static function ctype_punct($text)
    145145    {
    146         $text = self::convert_int_to_char_for_ctype($text);
     146        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    147147
    148148        return \is_string($text) && '' !== $text && !preg_match('/[^!-\/\:-@\[-`\{-~]/', $text);
     
    154154     * @see https://php.net/ctype-space
    155155     *
    156      * @param string|int $text
     156     * @param mixed $text
    157157     *
    158158     * @return bool
     
    160160    public static function ctype_space($text)
    161161    {
    162         $text = self::convert_int_to_char_for_ctype($text);
     162        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    163163
    164164        return \is_string($text) && '' !== $text && !preg_match('/[^\s]/', $text);
     
    170170     * @see https://php.net/ctype-upper
    171171     *
    172      * @param string|int $text
     172     * @param mixed $text
    173173     *
    174174     * @return bool
     
    176176    public static function ctype_upper($text)
    177177    {
    178         $text = self::convert_int_to_char_for_ctype($text);
     178        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    179179
    180180        return \is_string($text) && '' !== $text && !preg_match('/[^A-Z]/', $text);
     
    186186     * @see https://php.net/ctype-xdigit
    187187     *
    188      * @param string|int $text
     188     * @param mixed $text
    189189     *
    190190     * @return bool
     
    192192    public static function ctype_xdigit($text)
    193193    {
    194         $text = self::convert_int_to_char_for_ctype($text);
     194        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    195195
    196196        return \is_string($text) && '' !== $text && !preg_match('/[^A-Fa-f0-9]/', $text);
     
    205205     * Any other integer is interpreted as a string containing the decimal digits of the integer.
    206206     *
    207      * @param string|int $int
     207     * @param mixed  $int
     208     * @param string $function
    208209     *
    209210     * @return mixed
    210211     */
    211     private static function convert_int_to_char_for_ctype($int)
     212    private static function convert_int_to_char_for_ctype($int, $function)
    212213    {
    213214        if (!\is_int($int)) {
     
    219220        }
    220221
     222        if (\PHP_VERSION_ID >= 80100) {
     223            @trigger_error($function.'(): Argument of type int will be interpreted as string in the future', \E_USER_DEPRECATED);
     224        }
     225
    221226        if ($int < 0) {
    222227            $int += 256;
  • juvo-mail-editor/tags/3.0.6/vendor/twig/twig/CHANGELOG

    r2644151 r2677983  
     1# 2.14.11 (2022-02-04)
     2
     3 * Fix a security issue when in a sandbox: the `sort` filter must require a Closure for the `arrow` parameter
     4
     5# 2.14.10 (2022-01-03)
     6
     7 * Allow more null arguments when Twig expects a string (for better 8.1 support)
     8
     9# 2.14.9 (2022-01-03)
     10
     11* Allow null when Twig expects a string (for better 8.1 support)
     12* Add support for PHP 7.1 back
     13* Make some performance optimizations
     14* Allow Symfony translation contract v3+
     15
    116# 2.14.8 (2021-11-25)
    217
  • juvo-mail-editor/tags/3.0.6/vendor/twig/twig/LICENSE

    r2644151 r2677983  
    1 Copyright (c) 2009-2021 by the Twig Team.
     1Copyright (c) 2009-2022 by the Twig Team.
    22
    33All rights reserved.
  • juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Cache/FilesystemCache.php

    r2644151 r2677983  
    3636    public function generateKey($name, $className)
    3737    {
    38         $hash = hash('sha256', $className);
     38        $hash = hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $className);
    3939
    4040        return $this->directory.$hash[0].$hash[1].'/'.$hash.'.php';
  • juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Compiler.php

    r2644151 r2677983  
    239239    public function getVarName()
    240240    {
    241         return sprintf('__internal_%s', hash('sha256', __METHOD__.$this->varNameSalt++));
     241        return sprintf('__internal_compile_%d', $this->varNameSalt++);
    242242    }
    243243}
  • juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Environment.php

    r2644151 r2677983  
    3939class Environment
    4040{
    41     public const VERSION = '2.14.8';
    42     public const VERSION_ID = 21408;
     41    public const VERSION = '2.14.11';
     42    public const VERSION_ID = 21411;
    4343    public const MAJOR_VERSION = 2;
    4444    public const MINOR_VERSION = 14;
    45     public const RELEASE_VERSION = 8;
     45    public const RELEASE_VERSION = 11;
    4646    public const EXTRA_VERSION = '';
    4747
     
    299299        $key = $this->getLoader()->getCacheKey($name).$this->optionsHash;
    300300
    301         return $this->templateClassPrefix.hash('sha256', $key).(null === $index ? '' : '___'.$index);
     301        return $this->templateClassPrefix.hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $key).(null === $index ? '' : '___'.$index);
    302302    }
    303303
     
    446446    public function createTemplate($template, string $name = null)
    447447    {
    448         $hash = hash('sha256', $template, false);
     448        $hash = hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $template, false);
    449449        if (null !== $name) {
    450450            $name = sprintf('%s (string template %s)', $name, $hash);
     
    502502        }
    503503
     504        $count = \count($names);
    504505        foreach ($names as $name) {
    505506            if ($name instanceof Template) {
     
    510511            }
    511512
    512             try {
    513                 return $this->loadTemplate($name);
    514             } catch (LoaderError $e) {
    515                 if (1 === \count($names)) {
    516                     throw $e;
    517                 }
     513            if (1 !== $count && !$this->getLoader()->exists($name)) {
     514                continue;
    518515            }
     516
     517            return $this->loadTemplate($name);
    519518        }
    520519
  • juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Extension/CoreExtension.php

    r2644151 r2677983  
    214214            new TwigFilter('date', 'twig_date_format_filter', ['needs_environment' => true]),
    215215            new TwigFilter('date_modify', 'twig_date_modify_filter', ['needs_environment' => true]),
    216             new TwigFilter('format', 'sprintf'),
     216            new TwigFilter('format', 'twig_sprintf'),
    217217            new TwigFilter('replace', 'twig_replace_filter'),
    218218            new TwigFilter('number_format', 'twig_number_format_filter', ['needs_environment' => true]),
     
    230230            new TwigFilter('upper', 'twig_upper_filter', ['needs_environment' => true]),
    231231            new TwigFilter('lower', 'twig_lower_filter', ['needs_environment' => true]),
    232             new TwigFilter('striptags', 'strip_tags'),
     232            new TwigFilter('striptags', 'twig_striptags'),
    233233            new TwigFilter('trim', 'twig_trim_filter'),
    234             new TwigFilter('nl2br', 'nl2br', ['pre_escape' => 'html', 'is_safe' => ['html']]),
     234            new TwigFilter('nl2br', 'twig_nl2br', ['pre_escape' => 'html', 'is_safe' => ['html']]),
    235235            new TwigFilter('spaceless', 'twig_spaceless', ['is_safe' => ['html']]),
    236236
     
    238238            new TwigFilter('join', 'twig_join_filter'),
    239239            new TwigFilter('split', 'twig_split_filter', ['needs_environment' => true]),
    240             new TwigFilter('sort', 'twig_sort_filter'),
     240            new TwigFilter('sort', 'twig_sort_filter', ['needs_environment' => true]),
    241241            new TwigFilter('merge', 'twig_array_merge'),
    242242            new TwigFilter('batch', 'twig_array_batch'),
     
    483483
    484484/**
     485 * Returns a formatted string.
     486 *
     487 * @param string|null $format
     488 * @param ...$values
     489 *
     490 * @return string
     491 */
     492function twig_sprintf($format, ...$values)
     493{
     494    return sprintf($format ?? '', ...$values);
     495}
     496
     497/**
    485498 * Converts an input to a \DateTime instance.
    486499 *
     
    544557 * Replaces strings within a string.
    545558 *
    546  * @param string             $str  String to replace in
     559 * @param string|null        $str  String to replace in
    547560 * @param array|\Traversable $from Replace values
    548561 *
     
    555568    }
    556569
    557     return strtr($str, twig_to_array($from));
     570    return strtr($str ?? '', twig_to_array($from));
    558571}
    559572
     
    561574 * Rounds a number.
    562575 *
    563  * @param int|float $value     The value to round
    564  * @param int|float $precision The rounding precision
    565  * @param string    $method    The method to use for rounding
     576 * @param int|float|string|null $value     The value to round
     577 * @param int|float             $precision The rounding precision
     578 * @param string                $method    The method to use for rounding
    566579 *
    567580 * @return int|float The rounded number
     
    569582function twig_round($value, $precision = 0, $method = 'common')
    570583{
     584    $value = (float) $value;
     585
    571586    if ('common' === $method) {
    572587        return round($value, $precision);
     
    584599 *
    585600 * All of the formatting options can be left null, in that case the defaults will
    586  * be used.  Supplying any of the parameters will override the defaults set in the
     601 * be used. Supplying any of the parameters will override the defaults set in the
    587602 * environment object.
    588603 *
     
    615630 * URL encodes (RFC 3986) a string as a path segment or an array as a query string.
    616631 *
    617  * @param string|array $url A URL or an array of query parameters
     632 * @param string|array|null $url A URL or an array of query parameters
    618633 *
    619634 * @return string The URL encoded value
     
    625640    }
    626641
    627     return rawurlencode($url);
     642    return rawurlencode($url ?? '');
    628643}
    629644
     
    687702    }
    688703
    689     $item = (string) $item;
    690 
    691     return (string) mb_substr($item, $start, $length, $env->getCharset());
     704    return (string) mb_substr((string) $item, $start, $length, $env->getCharset());
    692705}
    693706
     
    778791 *  {# returns [aa, bb, cc] #}
    779792 *
    780  * @param string $value     A string
    781  * @param string $delimiter The delimiter
    782  * @param int    $limit     The limit
     793 * @param string|null $value     A string
     794 * @param string      $delimiter The delimiter
     795 * @param int         $limit     The limit
    783796 *
    784797 * @return array The split string as an array
     
    786799function twig_split_filter(Environment $env, $value, $delimiter, $limit = null)
    787800{
     801    $value = $value ?? '';
     802
    788803    if (\strlen($delimiter) > 0) {
    789804        return null === $limit ? explode($delimiter, $value) : explode($delimiter, $value, $limit);
     
    871886 * Reverses a variable.
    872887 *
    873  * @param array|\Traversable|string $item         An array, a \Traversable instance, or a string
    874  * @param bool                      $preserveKeys Whether to preserve key or not
     888 * @param array|\Traversable|string|null $item         An array, a \Traversable instance, or a string
     889 * @param bool                           $preserveKeys Whether to preserve key or not
    875890 *
    876891 * @return mixed The reversed input
     
    891906
    892907    if ('UTF-8' !== $charset) {
    893         $item = twig_convert_encoding($string, 'UTF-8', $charset);
    894     }
    895 
    896     preg_match_all('/./us', $item, $matches);
     908        $string = twig_convert_encoding($string, 'UTF-8', $charset);
     909    }
     910
     911    preg_match_all('/./us', $string, $matches);
    897912
    898913    $string = implode('', array_reverse($matches[0]));
     
    912927 * @return array
    913928 */
    914 function twig_sort_filter($array, $arrow = null)
     929function twig_sort_filter(Environment $env, $array, $arrow = null)
    915930{
    916931    if ($array instanceof \Traversable) {
     
    921936
    922937    if (null !== $arrow) {
     938        twig_check_arrow_in_sandbox($env, $arrow, 'sort', 'filter');
     939
    923940        uasort($array, $arrow);
    924941    } else {
     
    969986 * Returns a trimmed string.
    970987 *
     988 * @param string|null $string
     989 * @param string|null $characterMask
     990 * @param string      $side
     991 *
    971992 * @return string
    972993 *
     
    9811002    switch ($side) {
    9821003        case 'both':
    983             return trim($string, $characterMask);
     1004            return trim($string ?? '', $characterMask);
    9841005        case 'left':
    985             return ltrim($string, $characterMask);
     1006            return ltrim($string ?? '', $characterMask);
    9861007        case 'right':
    987             return rtrim($string, $characterMask);
     1008            return rtrim($string ?? '', $characterMask);
    9881009        default:
    9891010            throw new RuntimeError('Trimming side must be "left", "right" or "both".');
     
    9921013
    9931014/**
     1015 * Inserts HTML line breaks before all newlines in a string.
     1016 *
     1017 * @param string|null $string
     1018 *
     1019 * @return string
     1020 */
     1021function twig_nl2br($string)
     1022{
     1023    return nl2br($string ?? '');
     1024}
     1025
     1026/**
    9941027 * Removes whitespaces between HTML tags.
    9951028 *
     1029 * @param string|null $string
     1030 *
    9961031 * @return string
    9971032 */
    9981033function twig_spaceless($content)
    9991034{
    1000     return trim(preg_replace('/>\s+</', '><', $content));
    1001 }
    1002 
     1035    return trim(preg_replace('/>\s+</', '><', $content ?? ''));
     1036}
     1037
     1038/**
     1039 * @param string|null $string
     1040 * @param string      $to
     1041 * @param string      $from
     1042 *
     1043 * @return string
     1044 */
    10031045function twig_convert_encoding($string, $to, $from)
    10041046{
     
    10071049    }
    10081050
    1009     return iconv($from, $to, $string);
     1051    return iconv($from, $to, $string ?? '');
    10101052}
    10111053
     
    10451087 * Converts a string to uppercase.
    10461088 *
    1047  * @param string $string A string
     1089 * @param string|null $string A string
    10481090 *
    10491091 * @return string The uppercased string
     
    10511093function twig_upper_filter(Environment $env, $string)
    10521094{
    1053     return mb_strtoupper($string, $env->getCharset());
     1095    return mb_strtoupper($string ?? '', $env->getCharset());
    10541096}
    10551097
     
    10571099 * Converts a string to lowercase.
    10581100 *
    1059  * @param string $string A string
     1101 * @param string|null $string A string
    10601102 *
    10611103 * @return string The lowercased string
     
    10631105function twig_lower_filter(Environment $env, $string)
    10641106{
    1065     return mb_strtolower($string, $env->getCharset());
     1107    return mb_strtolower($string ?? '', $env->getCharset());
     1108}
     1109
     1110/**
     1111 * Strips HTML and PHP tags from a string.
     1112 *
     1113 * @param string|null $string
     1114 * @param string[]|string|null $string
     1115 *
     1116 * @return string
     1117 */
     1118function twig_striptags($string, $allowable_tags = null)
     1119{
     1120    return strip_tags($string ?? '', $allowable_tags);
    10661121}
    10671122
     
    10691124 * Returns a titlecased string.
    10701125 *
    1071  * @param string $string A string
     1126 * @param string|null $string A string
    10721127 *
    10731128 * @return string The titlecased string
     
    10761131{
    10771132    if (null !== $charset = $env->getCharset()) {
    1078         return mb_convert_case($string, \MB_CASE_TITLE, $charset);
    1079     }
    1080 
    1081     return ucwords(strtolower($string));
     1133        return mb_convert_case($string ?? '', \MB_CASE_TITLE, $charset);
     1134    }
     1135
     1136    return ucwords(strtolower($string ?? ''));
    10821137}
    10831138
     
    10851140 * Returns a capitalized string.
    10861141 *
    1087  * @param string $string A string
     1142 * @param string|null $string A string
    10881143 *
    10891144 * @return string The capitalized string
     
    10931148    $charset = $env->getCharset();
    10941149
    1095     return mb_strtoupper(mb_substr($string, 0, 1, $charset), $charset).mb_strtolower(mb_substr($string, 1, null, $charset), $charset);
     1150    return mb_strtoupper(mb_substr($string ?? '', 0, 1, $charset), $charset).mb_strtolower(mb_substr($string ?? '', 1, null, $charset), $charset);
    10961151}
    10971152
     
    15541609    }
    15551610
    1556     if (!$arrow instanceof Closure && $env->hasExtension('\Twig\Extension\SandboxExtension') && $env->getExtension('\Twig\Extension\SandboxExtension')->isSandboxed()) {
    1557         throw new RuntimeError('The callable passed to "filter" filter must be a Closure in sandbox mode.');
    1558     }
     1611    twig_check_arrow_in_sandbox($env, $arrow, 'filter', 'filter');
    15591612
    15601613    if (\is_array($array)) {
     
    15681621function twig_array_map(Environment $env, $array, $arrow)
    15691622{
    1570     if (!$arrow instanceof Closure && $env->hasExtension('\Twig\Extension\SandboxExtension') && $env->getExtension('\Twig\Extension\SandboxExtension')->isSandboxed()) {
    1571         throw new RuntimeError('The callable passed to the "map" filter must be a Closure in sandbox mode.');
    1572     }
     1623    twig_check_arrow_in_sandbox($env, $arrow, 'map', 'filter');
    15731624
    15741625    $r = [];
     
    15821633function twig_array_reduce(Environment $env, $array, $arrow, $initial = null)
    15831634{
    1584     if (!$arrow instanceof Closure && $env->hasExtension('\Twig\Extension\SandboxExtension') && $env->getExtension('\Twig\Extension\SandboxExtension')->isSandboxed()) {
    1585         throw new RuntimeError('The callable passed to the "reduce" filter must be a Closure in sandbox mode.');
    1586     }
     1635    twig_check_arrow_in_sandbox($env, $arrow, 'reduce', 'filter');
    15871636
    15881637    if (!\is_array($array)) {
     
    15961645    return array_reduce($array, $arrow, $initial);
    15971646}
    1598 }
     1647
     1648function twig_check_arrow_in_sandbox(Environment $env, $arrow, $thing, $type)
     1649{
     1650    if (!$arrow instanceof Closure && $env->hasExtension('\Twig\Extension\SandboxExtension') && $env->getExtension('\Twig\Extension\SandboxExtension')->isSandboxed()) {
     1651        throw new RuntimeError(sprintf('The callable passed to the "%s" %s must be a Closure in sandbox mode.', $thing, $type));
     1652    }
     1653}
     1654}
  • juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Parser.php

    r2644151 r2677983  
    5757    public function getVarName()
    5858    {
    59         return sprintf('__internal_%s', hash('sha256', __METHOD__.$this->stream->getSourceContext()->getCode().$this->varNameSalt++));
     59        return sprintf('__internal_parse_%d', $this->varNameSalt++);
    6060    }
    6161
  • juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Profiler/NodeVisitor/ProfilerNodeVisitor.php

    r2644151 r2677983  
    2929{
    3030    private $extensionName;
     31    private $varName;
    3132
    3233    public function __construct(string $extensionName)
    3334    {
    3435        $this->extensionName = $extensionName;
     36        $this->varName = sprintf('__internal_%s', hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $extensionName));
    3537    }
    3638
     
    4345    {
    4446        if ($node instanceof ModuleNode) {
    45             $varName = $this->getVarName();
    46             $node->setNode('display_start', new Node([new EnterProfileNode($this->extensionName, Profile::TEMPLATE, $node->getTemplateName(), $varName), $node->getNode('display_start')]));
    47             $node->setNode('display_end', new Node([new LeaveProfileNode($varName), $node->getNode('display_end')]));
     47            $node->setNode('display_start', new Node([new EnterProfileNode($this->extensionName, Profile::TEMPLATE, $node->getTemplateName(), $this->varName), $node->getNode('display_start')]));
     48            $node->setNode('display_end', new Node([new LeaveProfileNode($this->varName), $node->getNode('display_end')]));
    4849        } elseif ($node instanceof BlockNode) {
    49             $varName = $this->getVarName();
    5050            $node->setNode('body', new BodyNode([
    51                 new EnterProfileNode($this->extensionName, Profile::BLOCK, $node->getAttribute('name'), $varName),
     51                new EnterProfileNode($this->extensionName, Profile::BLOCK, $node->getAttribute('name'), $this->varName),
    5252                $node->getNode('body'),
    53                 new LeaveProfileNode($varName),
     53                new LeaveProfileNode($this->varName),
    5454            ]));
    5555        } elseif ($node instanceof MacroNode) {
    56             $varName = $this->getVarName();
    5756            $node->setNode('body', new BodyNode([
    58                 new EnterProfileNode($this->extensionName, Profile::MACRO, $node->getAttribute('name'), $varName),
     57                new EnterProfileNode($this->extensionName, Profile::MACRO, $node->getAttribute('name'), $this->varName),
    5958                $node->getNode('body'),
    60                 new LeaveProfileNode($varName),
     59                new LeaveProfileNode($this->varName),
    6160            ]));
    6261        }
    6362
    6463        return $node;
    65     }
    66 
    67     private function getVarName(): string
    68     {
    69         return sprintf('__internal_%s', hash('sha256', $this->extensionName));
    7064    }
    7165
  • juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Test/IntegrationTestCase.php

    r2644151 r2677983  
    187187            $p = new \ReflectionProperty($twig, 'templateClassPrefix');
    188188            $p->setAccessible(true);
    189             $p->setValue($twig, '__TwigTemplate_'.hash('sha256', uniqid(mt_rand(), true), false).'_');
     189            $p->setValue($twig, '__TwigTemplate_'.hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', uniqid(mt_rand(), true), false).'_');
    190190
    191191            $deprecations = [];
  • juvo-mail-editor/trunk/admin/Admin.php

    r2587510 r2677983  
    5454         */
    5555
    56         wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/options-page.css', array(), null, 'all' );
     56        wp_enqueue_style( $this->plugin_name . "_options-page", plugin_dir_url( __FILE__ ) . 'css/options-page.css', array(), null, 'all' );
     57        wp_enqueue_style( $this->plugin_name . "_cmb", plugin_dir_url( __FILE__ ) . 'css/cmb.css', array(), null, 'all' );
    5758
    5859    }
  • juvo-mail-editor/trunk/juvo-mail-editor.php

    r2672700 r2677983  
    88 * Text Domain:     juvo-mail-editor
    99 * Domain Path:     /languages
    10  * Version:         3.0.5
     10 * Version:         3.0.6
    1111 */
    1212
  • juvo-mail-editor/trunk/readme.txt

    r2672700 r2677983  
    44License: GPLv2 or later
    55Tested up to: 5.9
    6 Stable tag: 3.0.5
     6Stable tag: 3.0.6
    77
    88JUVO Mail Editor helps to modify the standard WordPress Mailings and allows adding dynamic mail triggers.
  • juvo-mail-editor/trunk/src/Mails/Password_Changed.php

    r2672700 r2677983  
    1313
    1414    public function addCustomFields( CMB2 $cmb ): CMB2 {
     15
     16        $field = $cmb->get_field( Mails_PT::POST_TYPE_NAME . '_recipients' );
     17
     18        if ( $cmb->object_id() && ! empty( $field->value ) ) {
     19            update_post_meta( $cmb->object_id(), Mails_PT::POST_TYPE_NAME . '_recipients', [] );
     20        }
     21
    1522        if ( has_term( $this->getTrigger(), Mail_Trigger_TAX::TAXONOMY_NAME, $cmb->object_id() ) ) {
    1623            $cmb->remove_field( Mails_PT::POST_TYPE_NAME . '_recipients' );
     
    7986    }
    8087
    81     public function prepareSend( array $email, WP_User $user ): array {
    82         do_action( "juvo_mail_editor_send", $this->getTrigger(), [ "user" => $user ] );
     88    public function prepareSend( array $email, array $user ): array {
     89        do_action( "juvo_mail_editor_send", $this->getTrigger(), [ "user" => get_user_by( "ID", $user['ID'] ) ] );
    8390
    8491        return $this->emptyMailArray( $email );
  • juvo-mail-editor/trunk/src/Mails/Password_Changed_Admin.php

    r2672700 r2677983  
    66use CMB2;
    77use JUVO_MailEditor\Mail_Generator;
    8 use JUVO_MailEditor\Mail_Trigger_TAX;
    9 use JUVO_MailEditor\Mails_PT;
    108use WP_User;
    119
     
    1311
    1412    public function addCustomFields( CMB2 $cmb ): CMB2 {
    15         if ( has_term( $this->getTrigger(), Mail_Trigger_TAX::TAXONOMY_NAME, $cmb->object_id() ) ) {
    16             $cmb->remove_field( Mails_PT::POST_TYPE_NAME . '_recipients' );
    17         }
    18 
    1913        return $cmb;
    2014    }
  • juvo-mail-editor/trunk/src/Mails/Password_Reset.php

    r2672700 r2677983  
    1717
    1818    public function addCustomFields( CMB2 $cmb ): CMB2 {
     19
     20        $field = $cmb->get_field( Mails_PT::POST_TYPE_NAME . '_recipients' );
     21
     22        if ( $cmb->object_id() && ! empty( $field->value ) ) {
     23            update_post_meta( $cmb->object_id(), Mails_PT::POST_TYPE_NAME . '_recipients', [] );
     24        }
     25
    1926        if ( has_term( $this->getTrigger(), Mail_Trigger_TAX::TAXONOMY_NAME, $cmb->object_id() ) ) {
    2027            $cmb->remove_field( Mails_PT::POST_TYPE_NAME . '_recipients' );
  • juvo-mail-editor/trunk/src/Mails_PT.php

    r2672700 r2677983  
    9292        );
    9393
    94         $cmb->add_field(
    95             array(
    96                 'name'   => __( 'Recipients', 'juvo-mail-editor' ),
    97                 'id'     => self::POST_TYPE_NAME . '_recipients',
    98                 'type'   => 'text',
    99                 'column' => true,
    100             )
    101         );
    102 
    103         $recipient_group = $cmb->add_field( array(
     94        // Named "recipients" for backwards compatibility reasons. Don´t rename!
     95        $to_group = $cmb->add_field( array(
    10496            'id'          => self::POST_TYPE_NAME . '_recipients',
    10597            'type'        => 'group',
     
    116108        ) );
    117109
    118         $this->addRecipientGroupFields( $recipient_group, $cmb );
     110        $this->addRecipientGroupFields( $to_group, $cmb );
    119111
    120112        $cc_group = $cmb->add_field( array(
     
    152144        $this->addRecipientGroupFields( $bcc_group, $cmb );
    153145
    154 
    155146        $cmb->add_field( array(
    156147            'name' => __( 'Attachments', 'juvo-mail-editor' ),
  • juvo-mail-editor/trunk/src/Relay.php

    r2672700 r2677983  
    209209        }
    210210
    211         $recipients = apply_filters( "juvo_mail_editor_{$this->trigger}_recipients", $this->parseToCcBcc( $recipients ), $this->context );
    212 
    213         return apply_filters( 'juvo_mail_editor_after_recipient_placeholder', $recipients, $this->trigger, $this->context );
     211        $recipients = apply_filters( "juvo_mail_editor_{$this->trigger}_recipients", $recipients, $this->context );
     212
     213        return apply_filters( 'juvo_mail_editor_after_recipients_placeholder', $this->parseToCcBcc( $recipients ), $this->trigger, $this->context );
    214214    }
    215215
     
    351351        }
    352352
    353         $cc = apply_filters( "juvo_mail_editor_{$this->trigger}_cc", $this->parseToCcBcc( $cc, "Cc:" ), $this->context );
    354         $cc = apply_filters( 'juvo_mail_editor_after_cc_placeholder', $cc, $this->trigger, $this->context );
     353        $cc = apply_filters( "juvo_mail_editor_{$this->trigger}_cc", $cc, $this->context );
     354        $cc = apply_filters( 'juvo_mail_editor_after_cc_placeholder', $this->parseToCcBcc( $cc, "Cc:" ), $this->trigger, $this->context );
    355355
    356356        return array_merge( $headers, $cc );
     
    366366        }
    367367
    368         $bcc = apply_filters( "juvo_mail_editor_{$this->trigger}_bcc", $this->parseToCcBcc( $bcc, "Bcc:" ), $this->context );
    369         $bcc = apply_filters( 'juvo_mail_editor_after_bcc_placeholder', $bcc, $this->trigger, $this->context );
     368        $bcc = apply_filters( "juvo_mail_editor_{$this->trigger}_bcc", $bcc, $this->context );
     369        $bcc = apply_filters( 'juvo_mail_editor_after_bcc_placeholder', $this->parseToCcBcc( $bcc, "Bcc:" ), $this->trigger, $this->context );
    370370
    371371        return array_merge( $headers, $bcc );
  • juvo-mail-editor/trunk/vendor/autoload.php

    r2672700 r2677983  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInitfdfdf11997bf846c7668e97b172e1c1f::getLoader();
     7return ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc::getLoader();
  • juvo-mail-editor/trunk/vendor/composer/autoload_files.php

    r2654150 r2677983  
    77
    88return array(
     9    '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
    910    '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
    1011    '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
  • juvo-mail-editor/trunk/vendor/composer/autoload_psr4.php

    r2644151 r2677983  
    99    'Twig\\' => array($vendorDir . '/twig/twig/src'),
    1010    'Timber\\' => array($vendorDir . '/timber/timber/lib'),
     11    'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
    1112    'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
    1213    'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
  • juvo-mail-editor/trunk/vendor/composer/autoload_real.php

    r2672700 r2677983  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInitfdfdf11997bf846c7668e97b172e1c1f
     5class ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc
    66{
    77    private static $loader;
     
    2323        }
    2424
    25         spl_autoload_register(array('ComposerAutoloaderInitfdfdf11997bf846c7668e97b172e1c1f', 'loadClassLoader'), true, true);
     25        spl_autoload_register(array('ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc', 'loadClassLoader'), true, true);
    2626        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
    27         spl_autoload_unregister(array('ComposerAutoloaderInitfdfdf11997bf846c7668e97b172e1c1f', 'loadClassLoader'));
     27        spl_autoload_unregister(array('ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc', 'loadClassLoader'));
    2828
    2929        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    3131            require __DIR__ . '/autoload_static.php';
    3232
    33             call_user_func(\Composer\Autoload\ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::getInitializer($loader));
     33            call_user_func(\Composer\Autoload\ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::getInitializer($loader));
    3434        } else {
    3535            $map = require __DIR__ . '/autoload_namespaces.php';
     
    5252
    5353        if ($useStaticLoader) {
    54             $includeFiles = Composer\Autoload\ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::$files;
     54            $includeFiles = Composer\Autoload\ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$files;
    5555        } else {
    5656            $includeFiles = require __DIR__ . '/autoload_files.php';
    5757        }
    5858        foreach ($includeFiles as $fileIdentifier => $file) {
    59             composerRequirefdfdf11997bf846c7668e97b172e1c1f($fileIdentifier, $file);
     59            composerRequired9c7f26111ceaf3423b6af260b5d65bc($fileIdentifier, $file);
    6060        }
    6161
     
    6969 * @return void
    7070 */
    71 function composerRequirefdfdf11997bf846c7668e97b172e1c1f($fileIdentifier, $file)
     71function composerRequired9c7f26111ceaf3423b6af260b5d65bc($fileIdentifier, $file)
    7272{
    7373    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
  • juvo-mail-editor/trunk/vendor/composer/autoload_static.php

    r2672700 r2677983  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f
     7class ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc
    88{
    99    public static $files = array (
     10        '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
    1011        '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
    1112        '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
     
    2021        'S' =>
    2122        array (
     23            'Symfony\\Polyfill\\Php72\\' => 23,
    2224            'Symfony\\Polyfill\\Mbstring\\' => 26,
    2325            'Symfony\\Polyfill\\Ctype\\' => 23,
     
    4244        array (
    4345            0 => __DIR__ . '/..' . '/timber/timber/lib',
     46        ),
     47        'Symfony\\Polyfill\\Php72\\' =>
     48        array (
     49            0 => __DIR__ . '/..' . '/symfony/polyfill-php72',
    4450        ),
    4551        'Symfony\\Polyfill\\Mbstring\\' =>
     
    94100    {
    95101        return \Closure::bind(function () use ($loader) {
    96             $loader->prefixLengthsPsr4 = ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::$prefixLengthsPsr4;
    97             $loader->prefixDirsPsr4 = ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::$prefixDirsPsr4;
    98             $loader->fallbackDirsPsr4 = ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::$fallbackDirsPsr4;
    99             $loader->prefixesPsr0 = ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::$prefixesPsr0;
    100             $loader->classMap = ComposerStaticInitfdfdf11997bf846c7668e97b172e1c1f::$classMap;
     102            $loader->prefixLengthsPsr4 = ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$prefixLengthsPsr4;
     103            $loader->prefixDirsPsr4 = ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$prefixDirsPsr4;
     104            $loader->fallbackDirsPsr4 = ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$fallbackDirsPsr4;
     105            $loader->prefixesPsr0 = ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$prefixesPsr0;
     106            $loader->classMap = ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$classMap;
    101107
    102108        }, null, ClassLoader::class);
  • juvo-mail-editor/trunk/vendor/composer/installed.json

    r2644151 r2677983  
    281281        {
    282282            "name": "symfony/polyfill-ctype",
    283             "version": "v1.23.0",
    284             "version_normalized": "1.23.0.0",
     283            "version": "v1.24.0",
     284            "version_normalized": "1.24.0.0",
    285285            "source": {
    286286                "type": "git",
    287287                "url": "https://github.com/symfony/polyfill-ctype.git",
    288                 "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce"
    289             },
    290             "dist": {
    291                 "type": "zip",
    292                 "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce",
    293                 "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce",
     288                "reference": "30885182c981ab175d4d034db0f6f469898070ab"
     289            },
     290            "dist": {
     291                "type": "zip",
     292                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
     293                "reference": "30885182c981ab175d4d034db0f6f469898070ab",
    294294                "shasum": ""
    295295            },
    296296            "require": {
    297297                "php": ">=7.1"
     298            },
     299            "provide": {
     300                "ext-ctype": "*"
    298301            },
    299302            "suggest": {
    300303                "ext-ctype": "For best performance"
    301304            },
    302             "time": "2021-02-19T12:13:01+00:00",
     305            "time": "2021-10-20T20:35:02+00:00",
    303306            "type": "library",
    304307            "extra": {
     
    343346            ],
    344347            "support": {
    345                 "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0"
     348                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0"
    346349            },
    347350            "funding": [
     
    395398            "installation-source": "dist",
    396399            "autoload": {
     400                "files": [
     401                    "bootstrap.php"
     402                ],
    397403                "psr-4": {
    398404                    "Symfony\\Polyfill\\Mbstring\\": ""
    399                 },
    400                 "files": [
    401                     "bootstrap.php"
    402                 ]
     405                }
    403406            },
    404407            "notification-url": "https://packagist.org/downloads/",
     
    443446            ],
    444447            "install-path": "../symfony/polyfill-mbstring"
     448        },
     449        {
     450            "name": "symfony/polyfill-php72",
     451            "version": "v1.24.0",
     452            "version_normalized": "1.24.0.0",
     453            "source": {
     454                "type": "git",
     455                "url": "https://github.com/symfony/polyfill-php72.git",
     456                "reference": "9a142215a36a3888e30d0a9eeea9766764e96976"
     457            },
     458            "dist": {
     459                "type": "zip",
     460                "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976",
     461                "reference": "9a142215a36a3888e30d0a9eeea9766764e96976",
     462                "shasum": ""
     463            },
     464            "require": {
     465                "php": ">=7.1"
     466            },
     467            "time": "2021-05-27T09:17:38+00:00",
     468            "type": "library",
     469            "extra": {
     470                "branch-alias": {
     471                    "dev-main": "1.23-dev"
     472                },
     473                "thanks": {
     474                    "name": "symfony/polyfill",
     475                    "url": "https://github.com/symfony/polyfill"
     476                }
     477            },
     478            "installation-source": "dist",
     479            "autoload": {
     480                "files": [
     481                    "bootstrap.php"
     482                ],
     483                "psr-4": {
     484                    "Symfony\\Polyfill\\Php72\\": ""
     485                }
     486            },
     487            "notification-url": "https://packagist.org/downloads/",
     488            "license": [
     489                "MIT"
     490            ],
     491            "authors": [
     492                {
     493                    "name": "Nicolas Grekas",
     494                    "email": "[email protected]"
     495                },
     496                {
     497                    "name": "Symfony Community",
     498                    "homepage": "https://symfony.com/contributors"
     499                }
     500            ],
     501            "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
     502            "homepage": "https://symfony.com",
     503            "keywords": [
     504                "compatibility",
     505                "polyfill",
     506                "portable",
     507                "shim"
     508            ],
     509            "support": {
     510                "source": "https://github.com/symfony/polyfill-php72/tree/v1.24.0"
     511            },
     512            "funding": [
     513                {
     514                    "url": "https://symfony.com/sponsor",
     515                    "type": "custom"
     516                },
     517                {
     518                    "url": "https://github.com/fabpot",
     519                    "type": "github"
     520                },
     521                {
     522                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
     523                    "type": "tidelift"
     524                }
     525            ],
     526            "install-path": "../symfony/polyfill-php72"
    445527        },
    446528        {
     
    595677        {
    596678            "name": "twig/twig",
    597             "version": "v2.14.8",
    598             "version_normalized": "2.14.8.0",
     679            "version": "v2.14.11",
     680            "version_normalized": "2.14.11.0",
    599681            "source": {
    600682                "type": "git",
    601683                "url": "https://github.com/twigphp/Twig.git",
    602                 "reference": "06b450a2326aa879faa2061ff72fe1588b3ab043"
    603             },
    604             "dist": {
    605                 "type": "zip",
    606                 "url": "https://api.github.com/repos/twigphp/Twig/zipball/06b450a2326aa879faa2061ff72fe1588b3ab043",
    607                 "reference": "06b450a2326aa879faa2061ff72fe1588b3ab043",
    608                 "shasum": ""
    609             },
    610             "require": {
    611                 "php": ">=7.2.5",
     684                "reference": "66baa66f29ee30e487e05f1679903e36eb01d727"
     685            },
     686            "dist": {
     687                "type": "zip",
     688                "url": "https://api.github.com/repos/twigphp/Twig/zipball/66baa66f29ee30e487e05f1679903e36eb01d727",
     689                "reference": "66baa66f29ee30e487e05f1679903e36eb01d727",
     690                "shasum": ""
     691            },
     692            "require": {
     693                "php": ">=7.1.3",
    612694                "symfony/polyfill-ctype": "^1.8",
    613                 "symfony/polyfill-mbstring": "^1.3"
     695                "symfony/polyfill-mbstring": "^1.3",
     696                "symfony/polyfill-php72": "^1.8"
    614697            },
    615698            "require-dev": {
     
    617700                "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
    618701            },
    619             "time": "2021-11-25T13:38:06+00:00",
     702            "time": "2022-02-04T06:57:25+00:00",
    620703            "type": "library",
    621704            "extra": {
     
    661744            "support": {
    662745                "issues": "https://github.com/twigphp/Twig/issues",
    663                 "source": "https://github.com/twigphp/Twig/tree/v2.14.8"
     746                "source": "https://github.com/twigphp/Twig/tree/v2.14.11"
    664747            },
    665748            "funding": [
  • juvo-mail-editor/trunk/vendor/composer/installed.php

    r2672700 r2677983  
    11<?php return array(
    22    'root' => array(
    3         'pretty_version' => '3.0.5',
    4         'version' => '3.0.5.0',
     3        'pretty_version' => '3.0.6',
     4        'version' => '3.0.6.0',
    55        'type' => 'wordpress-plugin',
    66        'install_path' => __DIR__ . '/../../',
    77        'aliases' => array(),
    8         'reference' => '78ed8db8c7bf3e36838fbdeedd047527631aec6d',
     8        'reference' => 'c3acc4c8ec410d7979bfabd1f1f3602a01f1ca1f',
    99        'name' => 'juvo/mail-editor',
    1010        'dev' => false,
     
    3939        ),
    4040        'juvo/mail-editor' => array(
    41             'pretty_version' => '3.0.5',
    42             'version' => '3.0.5.0',
     41            'pretty_version' => '3.0.6',
     42            'version' => '3.0.6.0',
    4343            'type' => 'wordpress-plugin',
    4444            'install_path' => __DIR__ . '/../../',
    4545            'aliases' => array(),
    46             'reference' => '78ed8db8c7bf3e36838fbdeedd047527631aec6d',
     46            'reference' => 'c3acc4c8ec410d7979bfabd1f1f3602a01f1ca1f',
    4747            'dev_requirement' => false,
    4848        ),
     
    6060        ),
    6161        'symfony/polyfill-ctype' => array(
    62             'pretty_version' => 'v1.23.0',
    63             'version' => '1.23.0.0',
     62            'pretty_version' => 'v1.24.0',
     63            'version' => '1.24.0.0',
    6464            'type' => 'library',
    6565            'install_path' => __DIR__ . '/../symfony/polyfill-ctype',
    6666            'aliases' => array(),
    67             'reference' => '46cd95797e9df938fdd2b03693b5fca5e64b01ce',
     67            'reference' => '30885182c981ab175d4d034db0f6f469898070ab',
    6868            'dev_requirement' => false,
    6969        ),
     
    7575            'aliases' => array(),
    7676            'reference' => '39d483bdf39be819deabf04ec872eb0b2410b531',
     77            'dev_requirement' => false,
     78        ),
     79        'symfony/polyfill-php72' => array(
     80            'pretty_version' => 'v1.24.0',
     81            'version' => '1.24.0.0',
     82            'type' => 'library',
     83            'install_path' => __DIR__ . '/../symfony/polyfill-php72',
     84            'aliases' => array(),
     85            'reference' => '9a142215a36a3888e30d0a9eeea9766764e96976',
    7786            'dev_requirement' => false,
    7887        ),
     
    96105        ),
    97106        'twig/twig' => array(
    98             'pretty_version' => 'v2.14.8',
    99             'version' => '2.14.8.0',
     107            'pretty_version' => 'v2.14.11',
     108            'version' => '2.14.11.0',
    100109            'type' => 'library',
    101110            'install_path' => __DIR__ . '/../twig/twig',
    102111            'aliases' => array(),
    103             'reference' => '06b450a2326aa879faa2061ff72fe1588b3ab043',
     112            'reference' => '66baa66f29ee30e487e05f1679903e36eb01d727',
    104113            'dev_requirement' => false,
    105114        ),
  • juvo-mail-editor/trunk/vendor/symfony/polyfill-ctype/Ctype.php

    r2644151 r2677983  
    2626     * @see https://php.net/ctype-alnum
    2727     *
    28      * @param string|int $text
     28     * @param mixed $text
    2929     *
    3030     * @return bool
     
    3232    public static function ctype_alnum($text)
    3333    {
    34         $text = self::convert_int_to_char_for_ctype($text);
     34        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    3535
    3636        return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z0-9]/', $text);
     
    4242     * @see https://php.net/ctype-alpha
    4343     *
    44      * @param string|int $text
     44     * @param mixed $text
    4545     *
    4646     * @return bool
     
    4848    public static function ctype_alpha($text)
    4949    {
    50         $text = self::convert_int_to_char_for_ctype($text);
     50        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    5151
    5252        return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z]/', $text);
     
    5858     * @see https://php.net/ctype-cntrl
    5959     *
    60      * @param string|int $text
     60     * @param mixed $text
    6161     *
    6262     * @return bool
     
    6464    public static function ctype_cntrl($text)
    6565    {
    66         $text = self::convert_int_to_char_for_ctype($text);
     66        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    6767
    6868        return \is_string($text) && '' !== $text && !preg_match('/[^\x00-\x1f\x7f]/', $text);
     
    7474     * @see https://php.net/ctype-digit
    7575     *
    76      * @param string|int $text
     76     * @param mixed $text
    7777     *
    7878     * @return bool
     
    8080    public static function ctype_digit($text)
    8181    {
    82         $text = self::convert_int_to_char_for_ctype($text);
     82        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    8383
    8484        return \is_string($text) && '' !== $text && !preg_match('/[^0-9]/', $text);
     
    9090     * @see https://php.net/ctype-graph
    9191     *
    92      * @param string|int $text
     92     * @param mixed $text
    9393     *
    9494     * @return bool
     
    9696    public static function ctype_graph($text)
    9797    {
    98         $text = self::convert_int_to_char_for_ctype($text);
     98        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    9999
    100100        return \is_string($text) && '' !== $text && !preg_match('/[^!-~]/', $text);
     
    106106     * @see https://php.net/ctype-lower
    107107     *
    108      * @param string|int $text
     108     * @param mixed $text
    109109     *
    110110     * @return bool
     
    112112    public static function ctype_lower($text)
    113113    {
    114         $text = self::convert_int_to_char_for_ctype($text);
     114        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    115115
    116116        return \is_string($text) && '' !== $text && !preg_match('/[^a-z]/', $text);
     
    122122     * @see https://php.net/ctype-print
    123123     *
    124      * @param string|int $text
     124     * @param mixed $text
    125125     *
    126126     * @return bool
     
    128128    public static function ctype_print($text)
    129129    {
    130         $text = self::convert_int_to_char_for_ctype($text);
     130        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    131131
    132132        return \is_string($text) && '' !== $text && !preg_match('/[^ -~]/', $text);
     
    138138     * @see https://php.net/ctype-punct
    139139     *
    140      * @param string|int $text
     140     * @param mixed $text
    141141     *
    142142     * @return bool
     
    144144    public static function ctype_punct($text)
    145145    {
    146         $text = self::convert_int_to_char_for_ctype($text);
     146        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    147147
    148148        return \is_string($text) && '' !== $text && !preg_match('/[^!-\/\:-@\[-`\{-~]/', $text);
     
    154154     * @see https://php.net/ctype-space
    155155     *
    156      * @param string|int $text
     156     * @param mixed $text
    157157     *
    158158     * @return bool
     
    160160    public static function ctype_space($text)
    161161    {
    162         $text = self::convert_int_to_char_for_ctype($text);
     162        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    163163
    164164        return \is_string($text) && '' !== $text && !preg_match('/[^\s]/', $text);
     
    170170     * @see https://php.net/ctype-upper
    171171     *
    172      * @param string|int $text
     172     * @param mixed $text
    173173     *
    174174     * @return bool
     
    176176    public static function ctype_upper($text)
    177177    {
    178         $text = self::convert_int_to_char_for_ctype($text);
     178        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    179179
    180180        return \is_string($text) && '' !== $text && !preg_match('/[^A-Z]/', $text);
     
    186186     * @see https://php.net/ctype-xdigit
    187187     *
    188      * @param string|int $text
     188     * @param mixed $text
    189189     *
    190190     * @return bool
     
    192192    public static function ctype_xdigit($text)
    193193    {
    194         $text = self::convert_int_to_char_for_ctype($text);
     194        $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
    195195
    196196        return \is_string($text) && '' !== $text && !preg_match('/[^A-Fa-f0-9]/', $text);
     
    205205     * Any other integer is interpreted as a string containing the decimal digits of the integer.
    206206     *
    207      * @param string|int $int
     207     * @param mixed  $int
     208     * @param string $function
    208209     *
    209210     * @return mixed
    210211     */
    211     private static function convert_int_to_char_for_ctype($int)
     212    private static function convert_int_to_char_for_ctype($int, $function)
    212213    {
    213214        if (!\is_int($int)) {
     
    219220        }
    220221
     222        if (\PHP_VERSION_ID >= 80100) {
     223            @trigger_error($function.'(): Argument of type int will be interpreted as string in the future', \E_USER_DEPRECATED);
     224        }
     225
    221226        if ($int < 0) {
    222227            $int += 256;
  • juvo-mail-editor/trunk/vendor/twig/twig/CHANGELOG

    r2644151 r2677983  
     1# 2.14.11 (2022-02-04)
     2
     3 * Fix a security issue when in a sandbox: the `sort` filter must require a Closure for the `arrow` parameter
     4
     5# 2.14.10 (2022-01-03)
     6
     7 * Allow more null arguments when Twig expects a string (for better 8.1 support)
     8
     9# 2.14.9 (2022-01-03)
     10
     11* Allow null when Twig expects a string (for better 8.1 support)
     12* Add support for PHP 7.1 back
     13* Make some performance optimizations
     14* Allow Symfony translation contract v3+
     15
    116# 2.14.8 (2021-11-25)
    217
  • juvo-mail-editor/trunk/vendor/twig/twig/LICENSE

    r2644151 r2677983  
    1 Copyright (c) 2009-2021 by the Twig Team.
     1Copyright (c) 2009-2022 by the Twig Team.
    22
    33All rights reserved.
  • juvo-mail-editor/trunk/vendor/twig/twig/src/Cache/FilesystemCache.php

    r2644151 r2677983  
    3636    public function generateKey($name, $className)
    3737    {
    38         $hash = hash('sha256', $className);
     38        $hash = hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $className);
    3939
    4040        return $this->directory.$hash[0].$hash[1].'/'.$hash.'.php';
  • juvo-mail-editor/trunk/vendor/twig/twig/src/Compiler.php

    r2644151 r2677983  
    239239    public function getVarName()
    240240    {
    241         return sprintf('__internal_%s', hash('sha256', __METHOD__.$this->varNameSalt++));
     241        return sprintf('__internal_compile_%d', $this->varNameSalt++);
    242242    }
    243243}
  • juvo-mail-editor/trunk/vendor/twig/twig/src/Environment.php

    r2644151 r2677983  
    3939class Environment
    4040{
    41     public const VERSION = '2.14.8';
    42     public const VERSION_ID = 21408;
     41    public const VERSION = '2.14.11';
     42    public const VERSION_ID = 21411;
    4343    public const MAJOR_VERSION = 2;
    4444    public const MINOR_VERSION = 14;
    45     public const RELEASE_VERSION = 8;
     45    public const RELEASE_VERSION = 11;
    4646    public const EXTRA_VERSION = '';
    4747
     
    299299        $key = $this->getLoader()->getCacheKey($name).$this->optionsHash;
    300300
    301         return $this->templateClassPrefix.hash('sha256', $key).(null === $index ? '' : '___'.$index);
     301        return $this->templateClassPrefix.hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $key).(null === $index ? '' : '___'.$index);
    302302    }
    303303
     
    446446    public function createTemplate($template, string $name = null)
    447447    {
    448         $hash = hash('sha256', $template, false);
     448        $hash = hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $template, false);
    449449        if (null !== $name) {
    450450            $name = sprintf('%s (string template %s)', $name, $hash);
     
    502502        }
    503503
     504        $count = \count($names);
    504505        foreach ($names as $name) {
    505506            if ($name instanceof Template) {
     
    510511            }
    511512
    512             try {
    513                 return $this->loadTemplate($name);
    514             } catch (LoaderError $e) {
    515                 if (1 === \count($names)) {
    516                     throw $e;
    517                 }
     513            if (1 !== $count && !$this->getLoader()->exists($name)) {
     514                continue;
    518515            }
     516
     517            return $this->loadTemplate($name);
    519518        }
    520519
  • juvo-mail-editor/trunk/vendor/twig/twig/src/Extension/CoreExtension.php

    r2644151 r2677983  
    214214            new TwigFilter('date', 'twig_date_format_filter', ['needs_environment' => true]),
    215215            new TwigFilter('date_modify', 'twig_date_modify_filter', ['needs_environment' => true]),
    216             new TwigFilter('format', 'sprintf'),
     216            new TwigFilter('format', 'twig_sprintf'),
    217217            new TwigFilter('replace', 'twig_replace_filter'),
    218218            new TwigFilter('number_format', 'twig_number_format_filter', ['needs_environment' => true]),
     
    230230            new TwigFilter('upper', 'twig_upper_filter', ['needs_environment' => true]),
    231231            new TwigFilter('lower', 'twig_lower_filter', ['needs_environment' => true]),
    232             new TwigFilter('striptags', 'strip_tags'),
     232            new TwigFilter('striptags', 'twig_striptags'),
    233233            new TwigFilter('trim', 'twig_trim_filter'),
    234             new TwigFilter('nl2br', 'nl2br', ['pre_escape' => 'html', 'is_safe' => ['html']]),
     234            new TwigFilter('nl2br', 'twig_nl2br', ['pre_escape' => 'html', 'is_safe' => ['html']]),
    235235            new TwigFilter('spaceless', 'twig_spaceless', ['is_safe' => ['html']]),
    236236
     
    238238            new TwigFilter('join', 'twig_join_filter'),
    239239            new TwigFilter('split', 'twig_split_filter', ['needs_environment' => true]),
    240             new TwigFilter('sort', 'twig_sort_filter'),
     240            new TwigFilter('sort', 'twig_sort_filter', ['needs_environment' => true]),
    241241            new TwigFilter('merge', 'twig_array_merge'),
    242242            new TwigFilter('batch', 'twig_array_batch'),
     
    483483
    484484/**
     485 * Returns a formatted string.
     486 *
     487 * @param string|null $format
     488 * @param ...$values
     489 *
     490 * @return string
     491 */
     492function twig_sprintf($format, ...$values)
     493{
     494    return sprintf($format ?? '', ...$values);
     495}
     496
     497/**
    485498 * Converts an input to a \DateTime instance.
    486499 *
     
    544557 * Replaces strings within a string.
    545558 *
    546  * @param string             $str  String to replace in
     559 * @param string|null        $str  String to replace in
    547560 * @param array|\Traversable $from Replace values
    548561 *
     
    555568    }
    556569
    557     return strtr($str, twig_to_array($from));
     570    return strtr($str ?? '', twig_to_array($from));
    558571}
    559572
     
    561574 * Rounds a number.
    562575 *
    563  * @param int|float $value     The value to round
    564  * @param int|float $precision The rounding precision
    565  * @param string    $method    The method to use for rounding
     576 * @param int|float|string|null $value     The value to round
     577 * @param int|float             $precision The rounding precision
     578 * @param string                $method    The method to use for rounding
    566579 *
    567580 * @return int|float The rounded number
     
    569582function twig_round($value, $precision = 0, $method = 'common')
    570583{
     584    $value = (float) $value;
     585
    571586    if ('common' === $method) {
    572587        return round($value, $precision);
     
    584599 *
    585600 * All of the formatting options can be left null, in that case the defaults will
    586  * be used.  Supplying any of the parameters will override the defaults set in the
     601 * be used. Supplying any of the parameters will override the defaults set in the
    587602 * environment object.
    588603 *
     
    615630 * URL encodes (RFC 3986) a string as a path segment or an array as a query string.
    616631 *
    617  * @param string|array $url A URL or an array of query parameters
     632 * @param string|array|null $url A URL or an array of query parameters
    618633 *
    619634 * @return string The URL encoded value
     
    625640    }
    626641
    627     return rawurlencode($url);
     642    return rawurlencode($url ?? '');
    628643}
    629644
     
    687702    }
    688703
    689     $item = (string) $item;
    690 
    691     return (string) mb_substr($item, $start, $length, $env->getCharset());
     704    return (string) mb_substr((string) $item, $start, $length, $env->getCharset());
    692705}
    693706
     
    778791 *  {# returns [aa, bb, cc] #}
    779792 *
    780  * @param string $value     A string
    781  * @param string $delimiter The delimiter
    782  * @param int    $limit     The limit
     793 * @param string|null $value     A string
     794 * @param string      $delimiter The delimiter
     795 * @param int         $limit     The limit
    783796 *
    784797 * @return array The split string as an array
     
    786799function twig_split_filter(Environment $env, $value, $delimiter, $limit = null)
    787800{
     801    $value = $value ?? '';
     802
    788803    if (\strlen($delimiter) > 0) {
    789804        return null === $limit ? explode($delimiter, $value) : explode($delimiter, $value, $limit);
     
    871886 * Reverses a variable.
    872887 *
    873  * @param array|\Traversable|string $item         An array, a \Traversable instance, or a string
    874  * @param bool                      $preserveKeys Whether to preserve key or not
     888 * @param array|\Traversable|string|null $item         An array, a \Traversable instance, or a string
     889 * @param bool                           $preserveKeys Whether to preserve key or not
    875890 *
    876891 * @return mixed The reversed input
     
    891906
    892907    if ('UTF-8' !== $charset) {
    893         $item = twig_convert_encoding($string, 'UTF-8', $charset);
    894     }
    895 
    896     preg_match_all('/./us', $item, $matches);
     908        $string = twig_convert_encoding($string, 'UTF-8', $charset);
     909    }
     910
     911    preg_match_all('/./us', $string, $matches);
    897912
    898913    $string = implode('', array_reverse($matches[0]));
     
    912927 * @return array
    913928 */
    914 function twig_sort_filter($array, $arrow = null)
     929function twig_sort_filter(Environment $env, $array, $arrow = null)
    915930{
    916931    if ($array instanceof \Traversable) {
     
    921936
    922937    if (null !== $arrow) {
     938        twig_check_arrow_in_sandbox($env, $arrow, 'sort', 'filter');
     939
    923940        uasort($array, $arrow);
    924941    } else {
     
    969986 * Returns a trimmed string.
    970987 *
     988 * @param string|null $string
     989 * @param string|null $characterMask
     990 * @param string      $side
     991 *
    971992 * @return string
    972993 *
     
    9811002    switch ($side) {
    9821003        case 'both':
    983             return trim($string, $characterMask);
     1004            return trim($string ?? '', $characterMask);
    9841005        case 'left':
    985             return ltrim($string, $characterMask);
     1006            return ltrim($string ?? '', $characterMask);
    9861007        case 'right':
    987             return rtrim($string, $characterMask);
     1008            return rtrim($string ?? '', $characterMask);
    9881009        default:
    9891010            throw new RuntimeError('Trimming side must be "left", "right" or "both".');
     
    9921013
    9931014/**
     1015 * Inserts HTML line breaks before all newlines in a string.
     1016 *
     1017 * @param string|null $string
     1018 *
     1019 * @return string
     1020 */
     1021function twig_nl2br($string)
     1022{
     1023    return nl2br($string ?? '');
     1024}
     1025
     1026/**
    9941027 * Removes whitespaces between HTML tags.
    9951028 *
     1029 * @param string|null $string
     1030 *
    9961031 * @return string
    9971032 */
    9981033function twig_spaceless($content)
    9991034{
    1000     return trim(preg_replace('/>\s+</', '><', $content));
    1001 }
    1002 
     1035    return trim(preg_replace('/>\s+</', '><', $content ?? ''));
     1036}
     1037
     1038/**
     1039 * @param string|null $string
     1040 * @param string      $to
     1041 * @param string      $from
     1042 *
     1043 * @return string
     1044 */
    10031045function twig_convert_encoding($string, $to, $from)
    10041046{
     
    10071049    }
    10081050
    1009     return iconv($from, $to, $string);
     1051    return iconv($from, $to, $string ?? '');
    10101052}
    10111053
     
    10451087 * Converts a string to uppercase.
    10461088 *
    1047  * @param string $string A string
     1089 * @param string|null $string A string
    10481090 *
    10491091 * @return string The uppercased string
     
    10511093function twig_upper_filter(Environment $env, $string)
    10521094{
    1053     return mb_strtoupper($string, $env->getCharset());
     1095    return mb_strtoupper($string ?? '', $env->getCharset());
    10541096}
    10551097
     
    10571099 * Converts a string to lowercase.
    10581100 *
    1059  * @param string $string A string
     1101 * @param string|null $string A string
    10601102 *
    10611103 * @return string The lowercased string
     
    10631105function twig_lower_filter(Environment $env, $string)
    10641106{
    1065     return mb_strtolower($string, $env->getCharset());
     1107    return mb_strtolower($string ?? '', $env->getCharset());
     1108}
     1109
     1110/**
     1111 * Strips HTML and PHP tags from a string.
     1112 *
     1113 * @param string|null $string
     1114 * @param string[]|string|null $string
     1115 *
     1116 * @return string
     1117 */
     1118function twig_striptags($string, $allowable_tags = null)
     1119{
     1120    return strip_tags($string ?? '', $allowable_tags);
    10661121}
    10671122
     
    10691124 * Returns a titlecased string.
    10701125 *
    1071  * @param string $string A string
     1126 * @param string|null $string A string
    10721127 *
    10731128 * @return string The titlecased string
     
    10761131{
    10771132    if (null !== $charset = $env->getCharset()) {
    1078         return mb_convert_case($string, \MB_CASE_TITLE, $charset);
    1079     }
    1080 
    1081     return ucwords(strtolower($string));
     1133        return mb_convert_case($string ?? '', \MB_CASE_TITLE, $charset);
     1134    }
     1135
     1136    return ucwords(strtolower($string ?? ''));
    10821137}
    10831138
     
    10851140 * Returns a capitalized string.
    10861141 *
    1087  * @param string $string A string
     1142 * @param string|null $string A string
    10881143 *
    10891144 * @return string The capitalized string
     
    10931148    $charset = $env->getCharset();
    10941149
    1095     return mb_strtoupper(mb_substr($string, 0, 1, $charset), $charset).mb_strtolower(mb_substr($string, 1, null, $charset), $charset);
     1150    return mb_strtoupper(mb_substr($string ?? '', 0, 1, $charset), $charset).mb_strtolower(mb_substr($string ?? '', 1, null, $charset), $charset);
    10961151}
    10971152
     
    15541609    }
    15551610
    1556     if (!$arrow instanceof Closure && $env->hasExtension('\Twig\Extension\SandboxExtension') && $env->getExtension('\Twig\Extension\SandboxExtension')->isSandboxed()) {
    1557         throw new RuntimeError('The callable passed to "filter" filter must be a Closure in sandbox mode.');
    1558     }
     1611    twig_check_arrow_in_sandbox($env, $arrow, 'filter', 'filter');
    15591612
    15601613    if (\is_array($array)) {
     
    15681621function twig_array_map(Environment $env, $array, $arrow)
    15691622{
    1570     if (!$arrow instanceof Closure && $env->hasExtension('\Twig\Extension\SandboxExtension') && $env->getExtension('\Twig\Extension\SandboxExtension')->isSandboxed()) {
    1571         throw new RuntimeError('The callable passed to the "map" filter must be a Closure in sandbox mode.');
    1572     }
     1623    twig_check_arrow_in_sandbox($env, $arrow, 'map', 'filter');
    15731624
    15741625    $r = [];
     
    15821633function twig_array_reduce(Environment $env, $array, $arrow, $initial = null)
    15831634{
    1584     if (!$arrow instanceof Closure && $env->hasExtension('\Twig\Extension\SandboxExtension') && $env->getExtension('\Twig\Extension\SandboxExtension')->isSandboxed()) {
    1585         throw new RuntimeError('The callable passed to the "reduce" filter must be a Closure in sandbox mode.');
    1586     }
     1635    twig_check_arrow_in_sandbox($env, $arrow, 'reduce', 'filter');
    15871636
    15881637    if (!\is_array($array)) {
     
    15961645    return array_reduce($array, $arrow, $initial);
    15971646}
    1598 }
     1647
     1648function twig_check_arrow_in_sandbox(Environment $env, $arrow, $thing, $type)
     1649{
     1650    if (!$arrow instanceof Closure && $env->hasExtension('\Twig\Extension\SandboxExtension') && $env->getExtension('\Twig\Extension\SandboxExtension')->isSandboxed()) {
     1651        throw new RuntimeError(sprintf('The callable passed to the "%s" %s must be a Closure in sandbox mode.', $thing, $type));
     1652    }
     1653}
     1654}
  • juvo-mail-editor/trunk/vendor/twig/twig/src/Parser.php

    r2644151 r2677983  
    5757    public function getVarName()
    5858    {
    59         return sprintf('__internal_%s', hash('sha256', __METHOD__.$this->stream->getSourceContext()->getCode().$this->varNameSalt++));
     59        return sprintf('__internal_parse_%d', $this->varNameSalt++);
    6060    }
    6161
  • juvo-mail-editor/trunk/vendor/twig/twig/src/Profiler/NodeVisitor/ProfilerNodeVisitor.php

    r2644151 r2677983  
    2929{
    3030    private $extensionName;
     31    private $varName;
    3132
    3233    public function __construct(string $extensionName)
    3334    {
    3435        $this->extensionName = $extensionName;
     36        $this->varName = sprintf('__internal_%s', hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $extensionName));
    3537    }
    3638
     
    4345    {
    4446        if ($node instanceof ModuleNode) {
    45             $varName = $this->getVarName();
    46             $node->setNode('display_start', new Node([new EnterProfileNode($this->extensionName, Profile::TEMPLATE, $node->getTemplateName(), $varName), $node->getNode('display_start')]));
    47             $node->setNode('display_end', new Node([new LeaveProfileNode($varName), $node->getNode('display_end')]));
     47            $node->setNode('display_start', new Node([new EnterProfileNode($this->extensionName, Profile::TEMPLATE, $node->getTemplateName(), $this->varName), $node->getNode('display_start')]));
     48            $node->setNode('display_end', new Node([new LeaveProfileNode($this->varName), $node->getNode('display_end')]));
    4849        } elseif ($node instanceof BlockNode) {
    49             $varName = $this->getVarName();
    5050            $node->setNode('body', new BodyNode([
    51                 new EnterProfileNode($this->extensionName, Profile::BLOCK, $node->getAttribute('name'), $varName),
     51                new EnterProfileNode($this->extensionName, Profile::BLOCK, $node->getAttribute('name'), $this->varName),
    5252                $node->getNode('body'),
    53                 new LeaveProfileNode($varName),
     53                new LeaveProfileNode($this->varName),
    5454            ]));
    5555        } elseif ($node instanceof MacroNode) {
    56             $varName = $this->getVarName();
    5756            $node->setNode('body', new BodyNode([
    58                 new EnterProfileNode($this->extensionName, Profile::MACRO, $node->getAttribute('name'), $varName),
     57                new EnterProfileNode($this->extensionName, Profile::MACRO, $node->getAttribute('name'), $this->varName),
    5958                $node->getNode('body'),
    60                 new LeaveProfileNode($varName),
     59                new LeaveProfileNode($this->varName),
    6160            ]));
    6261        }
    6362
    6463        return $node;
    65     }
    66 
    67     private function getVarName(): string
    68     {
    69         return sprintf('__internal_%s', hash('sha256', $this->extensionName));
    7064    }
    7165
  • juvo-mail-editor/trunk/vendor/twig/twig/src/Test/IntegrationTestCase.php

    r2644151 r2677983  
    187187            $p = new \ReflectionProperty($twig, 'templateClassPrefix');
    188188            $p->setAccessible(true);
    189             $p->setValue($twig, '__TwigTemplate_'.hash('sha256', uniqid(mt_rand(), true), false).'_');
     189            $p->setValue($twig, '__TwigTemplate_'.hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', uniqid(mt_rand(), true), false).'_');
    190190
    191191            $deprecations = [];
Note: See TracChangeset for help on using the changeset viewer.