Changeset 2677983
- Timestamp:
- 02/13/2022 04:23:13 PM (4 years ago)
- Location:
- juvo-mail-editor
- Files:
-
- 10 added
- 50 edited
- 1 copied
-
tags/3.0.6 (copied) (copied from juvo-mail-editor/trunk)
-
tags/3.0.6/admin/Admin.php (modified) (1 diff)
-
tags/3.0.6/admin/css/cmb.css (added)
-
tags/3.0.6/juvo-mail-editor.php (modified) (1 diff)
-
tags/3.0.6/readme.txt (modified) (1 diff)
-
tags/3.0.6/src/Mails/Password_Changed.php (modified) (2 diffs)
-
tags/3.0.6/src/Mails/Password_Changed_Admin.php (modified) (2 diffs)
-
tags/3.0.6/src/Mails/Password_Reset.php (modified) (1 diff)
-
tags/3.0.6/src/Mails_PT.php (modified) (3 diffs)
-
tags/3.0.6/src/Relay.php (modified) (3 diffs)
-
tags/3.0.6/vendor/autoload.php (modified) (1 diff)
-
tags/3.0.6/vendor/composer/autoload_files.php (modified) (1 diff)
-
tags/3.0.6/vendor/composer/autoload_psr4.php (modified) (1 diff)
-
tags/3.0.6/vendor/composer/autoload_real.php (modified) (5 diffs)
-
tags/3.0.6/vendor/composer/autoload_static.php (modified) (4 diffs)
-
tags/3.0.6/vendor/composer/installed.json (modified) (7 diffs)
-
tags/3.0.6/vendor/composer/installed.php (modified) (5 diffs)
-
tags/3.0.6/vendor/symfony/polyfill-ctype/Ctype.php (modified) (24 diffs)
-
tags/3.0.6/vendor/symfony/polyfill-php72 (added)
-
tags/3.0.6/vendor/symfony/polyfill-php72/LICENSE (added)
-
tags/3.0.6/vendor/symfony/polyfill-php72/Php72.php (added)
-
tags/3.0.6/vendor/symfony/polyfill-php72/bootstrap.php (added)
-
tags/3.0.6/vendor/twig/twig/CHANGELOG (modified) (1 diff)
-
tags/3.0.6/vendor/twig/twig/LICENSE (modified) (1 diff)
-
tags/3.0.6/vendor/twig/twig/src/Cache/FilesystemCache.php (modified) (1 diff)
-
tags/3.0.6/vendor/twig/twig/src/Compiler.php (modified) (1 diff)
-
tags/3.0.6/vendor/twig/twig/src/Environment.php (modified) (5 diffs)
-
tags/3.0.6/vendor/twig/twig/src/Extension/CoreExtension.php (modified) (34 diffs)
-
tags/3.0.6/vendor/twig/twig/src/Parser.php (modified) (1 diff)
-
tags/3.0.6/vendor/twig/twig/src/Profiler/NodeVisitor/ProfilerNodeVisitor.php (modified) (2 diffs)
-
tags/3.0.6/vendor/twig/twig/src/Test/IntegrationTestCase.php (modified) (1 diff)
-
trunk/admin/Admin.php (modified) (1 diff)
-
trunk/admin/css/cmb.css (added)
-
trunk/juvo-mail-editor.php (modified) (1 diff)
-
trunk/readme.txt (modified) (1 diff)
-
trunk/src/Mails/Password_Changed.php (modified) (2 diffs)
-
trunk/src/Mails/Password_Changed_Admin.php (modified) (2 diffs)
-
trunk/src/Mails/Password_Reset.php (modified) (1 diff)
-
trunk/src/Mails_PT.php (modified) (3 diffs)
-
trunk/src/Relay.php (modified) (3 diffs)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_files.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_psr4.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (5 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (4 diffs)
-
trunk/vendor/composer/installed.json (modified) (7 diffs)
-
trunk/vendor/composer/installed.php (modified) (5 diffs)
-
trunk/vendor/symfony/polyfill-ctype/Ctype.php (modified) (24 diffs)
-
trunk/vendor/symfony/polyfill-php72 (added)
-
trunk/vendor/symfony/polyfill-php72/LICENSE (added)
-
trunk/vendor/symfony/polyfill-php72/Php72.php (added)
-
trunk/vendor/symfony/polyfill-php72/bootstrap.php (added)
-
trunk/vendor/twig/twig/CHANGELOG (modified) (1 diff)
-
trunk/vendor/twig/twig/LICENSE (modified) (1 diff)
-
trunk/vendor/twig/twig/src/Cache/FilesystemCache.php (modified) (1 diff)
-
trunk/vendor/twig/twig/src/Compiler.php (modified) (1 diff)
-
trunk/vendor/twig/twig/src/Environment.php (modified) (5 diffs)
-
trunk/vendor/twig/twig/src/Extension/CoreExtension.php (modified) (34 diffs)
-
trunk/vendor/twig/twig/src/Parser.php (modified) (1 diff)
-
trunk/vendor/twig/twig/src/Profiler/NodeVisitor/ProfilerNodeVisitor.php (modified) (2 diffs)
-
trunk/vendor/twig/twig/src/Test/IntegrationTestCase.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
juvo-mail-editor/tags/3.0.6/admin/Admin.php
r2587510 r2677983 54 54 */ 55 55 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' ); 57 58 58 59 } -
juvo-mail-editor/tags/3.0.6/juvo-mail-editor.php
r2672700 r2677983 8 8 * Text Domain: juvo-mail-editor 9 9 * Domain Path: /languages 10 * Version: 3.0. 510 * Version: 3.0.6 11 11 */ 12 12 -
juvo-mail-editor/tags/3.0.6/readme.txt
r2672700 r2677983 4 4 License: GPLv2 or later 5 5 Tested up to: 5.9 6 Stable tag: 3.0. 56 Stable tag: 3.0.6 7 7 8 8 JUVO 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 13 13 14 14 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 15 22 if ( has_term( $this->getTrigger(), Mail_Trigger_TAX::TAXONOMY_NAME, $cmb->object_id() ) ) { 16 23 $cmb->remove_field( Mails_PT::POST_TYPE_NAME . '_recipients' ); … … 79 86 } 80 87 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'] ) ] ); 83 90 84 91 return $this->emptyMailArray( $email ); -
juvo-mail-editor/tags/3.0.6/src/Mails/Password_Changed_Admin.php
r2672700 r2677983 6 6 use CMB2; 7 7 use JUVO_MailEditor\Mail_Generator; 8 use JUVO_MailEditor\Mail_Trigger_TAX;9 use JUVO_MailEditor\Mails_PT;10 8 use WP_User; 11 9 … … 13 11 14 12 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 19 13 return $cmb; 20 14 } -
juvo-mail-editor/tags/3.0.6/src/Mails/Password_Reset.php
r2672700 r2677983 17 17 18 18 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 19 26 if ( has_term( $this->getTrigger(), Mail_Trigger_TAX::TAXONOMY_NAME, $cmb->object_id() ) ) { 20 27 $cmb->remove_field( Mails_PT::POST_TYPE_NAME . '_recipients' ); -
juvo-mail-editor/tags/3.0.6/src/Mails_PT.php
r2672700 r2677983 92 92 ); 93 93 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( 104 96 'id' => self::POST_TYPE_NAME . '_recipients', 105 97 'type' => 'group', … … 116 108 ) ); 117 109 118 $this->addRecipientGroupFields( $ recipient_group, $cmb );110 $this->addRecipientGroupFields( $to_group, $cmb ); 119 111 120 112 $cc_group = $cmb->add_field( array( … … 152 144 $this->addRecipientGroupFields( $bcc_group, $cmb ); 153 145 154 155 146 $cmb->add_field( array( 156 147 'name' => __( 'Attachments', 'juvo-mail-editor' ), -
juvo-mail-editor/tags/3.0.6/src/Relay.php
r2672700 r2677983 209 209 } 210 210 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 ); 214 214 } 215 215 … … 351 351 } 352 352 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 ); 355 355 356 356 return array_merge( $headers, $cc ); … … 366 366 } 367 367 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 ); 370 370 371 371 return array_merge( $headers, $bcc ); -
juvo-mail-editor/tags/3.0.6/vendor/autoload.php
r2672700 r2677983 5 5 require_once __DIR__ . '/composer/autoload_real.php'; 6 6 7 return ComposerAutoloaderInit fdfdf11997bf846c7668e97b172e1c1f::getLoader();7 return ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc::getLoader(); -
juvo-mail-editor/tags/3.0.6/vendor/composer/autoload_files.php
r2654150 r2677983 7 7 8 8 return array( 9 '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', 9 10 '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', 10 11 '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', -
juvo-mail-editor/tags/3.0.6/vendor/composer/autoload_psr4.php
r2644151 r2677983 9 9 'Twig\\' => array($vendorDir . '/twig/twig/src'), 10 10 'Timber\\' => array($vendorDir . '/timber/timber/lib'), 11 'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'), 11 12 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), 12 13 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'), -
juvo-mail-editor/tags/3.0.6/vendor/composer/autoload_real.php
r2672700 r2677983 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit fdfdf11997bf846c7668e97b172e1c1f5 class ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc 6 6 { 7 7 private static $loader; … … 23 23 } 24 24 25 spl_autoload_register(array('ComposerAutoloaderInit fdfdf11997bf846c7668e97b172e1c1f', 'loadClassLoader'), true, true);25 spl_autoload_register(array('ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc', 'loadClassLoader'), true, true); 26 26 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); 27 spl_autoload_unregister(array('ComposerAutoloaderInit fdfdf11997bf846c7668e97b172e1c1f', 'loadClassLoader'));27 spl_autoload_unregister(array('ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc', 'loadClassLoader')); 28 28 29 29 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); … … 31 31 require __DIR__ . '/autoload_static.php'; 32 32 33 call_user_func(\Composer\Autoload\ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::getInitializer($loader));33 call_user_func(\Composer\Autoload\ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::getInitializer($loader)); 34 34 } else { 35 35 $map = require __DIR__ . '/autoload_namespaces.php'; … … 52 52 53 53 if ($useStaticLoader) { 54 $includeFiles = Composer\Autoload\ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::$files;54 $includeFiles = Composer\Autoload\ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$files; 55 55 } else { 56 56 $includeFiles = require __DIR__ . '/autoload_files.php'; 57 57 } 58 58 foreach ($includeFiles as $fileIdentifier => $file) { 59 composerRequire fdfdf11997bf846c7668e97b172e1c1f($fileIdentifier, $file);59 composerRequired9c7f26111ceaf3423b6af260b5d65bc($fileIdentifier, $file); 60 60 } 61 61 … … 69 69 * @return void 70 70 */ 71 function composerRequire fdfdf11997bf846c7668e97b172e1c1f($fileIdentifier, $file)71 function composerRequired9c7f26111ceaf3423b6af260b5d65bc($fileIdentifier, $file) 72 72 { 73 73 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { -
juvo-mail-editor/tags/3.0.6/vendor/composer/autoload_static.php
r2672700 r2677983 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f7 class ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc 8 8 { 9 9 public static $files = array ( 10 '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', 10 11 '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', 11 12 '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', … … 20 21 'S' => 21 22 array ( 23 'Symfony\\Polyfill\\Php72\\' => 23, 22 24 'Symfony\\Polyfill\\Mbstring\\' => 26, 23 25 'Symfony\\Polyfill\\Ctype\\' => 23, … … 42 44 array ( 43 45 0 => __DIR__ . '/..' . '/timber/timber/lib', 46 ), 47 'Symfony\\Polyfill\\Php72\\' => 48 array ( 49 0 => __DIR__ . '/..' . '/symfony/polyfill-php72', 44 50 ), 45 51 'Symfony\\Polyfill\\Mbstring\\' => … … 94 100 { 95 101 return \Closure::bind(function () use ($loader) { 96 $loader->prefixLengthsPsr4 = ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::$prefixLengthsPsr4;97 $loader->prefixDirsPsr4 = ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::$prefixDirsPsr4;98 $loader->fallbackDirsPsr4 = ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::$fallbackDirsPsr4;99 $loader->prefixesPsr0 = ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::$prefixesPsr0;100 $loader->classMap = ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::$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; 101 107 102 108 }, null, ClassLoader::class); -
juvo-mail-editor/tags/3.0.6/vendor/composer/installed.json
r2644151 r2677983 281 281 { 282 282 "name": "symfony/polyfill-ctype", 283 "version": "v1.2 3.0",284 "version_normalized": "1.2 3.0.0",283 "version": "v1.24.0", 284 "version_normalized": "1.24.0.0", 285 285 "source": { 286 286 "type": "git", 287 287 "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", 294 294 "shasum": "" 295 295 }, 296 296 "require": { 297 297 "php": ">=7.1" 298 }, 299 "provide": { 300 "ext-ctype": "*" 298 301 }, 299 302 "suggest": { 300 303 "ext-ctype": "For best performance" 301 304 }, 302 "time": "2021- 02-19T12:13:01+00:00",305 "time": "2021-10-20T20:35:02+00:00", 303 306 "type": "library", 304 307 "extra": { … … 343 346 ], 344 347 "support": { 345 "source": "https://github.com/symfony/polyfill-ctype/tree/v1.2 3.0"348 "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" 346 349 }, 347 350 "funding": [ … … 395 398 "installation-source": "dist", 396 399 "autoload": { 400 "files": [ 401 "bootstrap.php" 402 ], 397 403 "psr-4": { 398 404 "Symfony\\Polyfill\\Mbstring\\": "" 399 }, 400 "files": [ 401 "bootstrap.php" 402 ] 405 } 403 406 }, 404 407 "notification-url": "https://packagist.org/downloads/", … … 443 446 ], 444 447 "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" 445 527 }, 446 528 { … … 595 677 { 596 678 "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", 599 681 "source": { 600 682 "type": "git", 601 683 "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", 612 694 "symfony/polyfill-ctype": "^1.8", 613 "symfony/polyfill-mbstring": "^1.3" 695 "symfony/polyfill-mbstring": "^1.3", 696 "symfony/polyfill-php72": "^1.8" 614 697 }, 615 698 "require-dev": { … … 617 700 "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" 618 701 }, 619 "time": "202 1-11-25T13:38:06+00:00",702 "time": "2022-02-04T06:57:25+00:00", 620 703 "type": "library", 621 704 "extra": { … … 661 744 "support": { 662 745 "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" 664 747 }, 665 748 "funding": [ -
juvo-mail-editor/tags/3.0.6/vendor/composer/installed.php
r2672700 r2677983 1 1 <?php return array( 2 2 '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', 5 5 'type' => 'wordpress-plugin', 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' 78ed8db8c7bf3e36838fbdeedd047527631aec6d',8 'reference' => 'c3acc4c8ec410d7979bfabd1f1f3602a01f1ca1f', 9 9 'name' => 'juvo/mail-editor', 10 10 'dev' => false, … … 39 39 ), 40 40 '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', 43 43 'type' => 'wordpress-plugin', 44 44 'install_path' => __DIR__ . '/../../', 45 45 'aliases' => array(), 46 'reference' => ' 78ed8db8c7bf3e36838fbdeedd047527631aec6d',46 'reference' => 'c3acc4c8ec410d7979bfabd1f1f3602a01f1ca1f', 47 47 'dev_requirement' => false, 48 48 ), … … 60 60 ), 61 61 'symfony/polyfill-ctype' => array( 62 'pretty_version' => 'v1.2 3.0',63 'version' => '1.2 3.0.0',62 'pretty_version' => 'v1.24.0', 63 'version' => '1.24.0.0', 64 64 'type' => 'library', 65 65 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', 66 66 'aliases' => array(), 67 'reference' => ' 46cd95797e9df938fdd2b03693b5fca5e64b01ce',67 'reference' => '30885182c981ab175d4d034db0f6f469898070ab', 68 68 'dev_requirement' => false, 69 69 ), … … 75 75 'aliases' => array(), 76 76 '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', 77 86 'dev_requirement' => false, 78 87 ), … … 96 105 ), 97 106 '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', 100 109 'type' => 'library', 101 110 'install_path' => __DIR__ . '/../twig/twig', 102 111 'aliases' => array(), 103 'reference' => ' 06b450a2326aa879faa2061ff72fe1588b3ab043',112 'reference' => '66baa66f29ee30e487e05f1679903e36eb01d727', 104 113 'dev_requirement' => false, 105 114 ), -
juvo-mail-editor/tags/3.0.6/vendor/symfony/polyfill-ctype/Ctype.php
r2644151 r2677983 26 26 * @see https://php.net/ctype-alnum 27 27 * 28 * @param string|int$text28 * @param mixed $text 29 29 * 30 30 * @return bool … … 32 32 public static function ctype_alnum($text) 33 33 { 34 $text = self::convert_int_to_char_for_ctype($text );34 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 35 35 36 36 return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z0-9]/', $text); … … 42 42 * @see https://php.net/ctype-alpha 43 43 * 44 * @param string|int$text44 * @param mixed $text 45 45 * 46 46 * @return bool … … 48 48 public static function ctype_alpha($text) 49 49 { 50 $text = self::convert_int_to_char_for_ctype($text );50 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 51 51 52 52 return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z]/', $text); … … 58 58 * @see https://php.net/ctype-cntrl 59 59 * 60 * @param string|int$text60 * @param mixed $text 61 61 * 62 62 * @return bool … … 64 64 public static function ctype_cntrl($text) 65 65 { 66 $text = self::convert_int_to_char_for_ctype($text );66 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 67 67 68 68 return \is_string($text) && '' !== $text && !preg_match('/[^\x00-\x1f\x7f]/', $text); … … 74 74 * @see https://php.net/ctype-digit 75 75 * 76 * @param string|int$text76 * @param mixed $text 77 77 * 78 78 * @return bool … … 80 80 public static function ctype_digit($text) 81 81 { 82 $text = self::convert_int_to_char_for_ctype($text );82 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 83 83 84 84 return \is_string($text) && '' !== $text && !preg_match('/[^0-9]/', $text); … … 90 90 * @see https://php.net/ctype-graph 91 91 * 92 * @param string|int$text92 * @param mixed $text 93 93 * 94 94 * @return bool … … 96 96 public static function ctype_graph($text) 97 97 { 98 $text = self::convert_int_to_char_for_ctype($text );98 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 99 99 100 100 return \is_string($text) && '' !== $text && !preg_match('/[^!-~]/', $text); … … 106 106 * @see https://php.net/ctype-lower 107 107 * 108 * @param string|int$text108 * @param mixed $text 109 109 * 110 110 * @return bool … … 112 112 public static function ctype_lower($text) 113 113 { 114 $text = self::convert_int_to_char_for_ctype($text );114 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 115 115 116 116 return \is_string($text) && '' !== $text && !preg_match('/[^a-z]/', $text); … … 122 122 * @see https://php.net/ctype-print 123 123 * 124 * @param string|int$text124 * @param mixed $text 125 125 * 126 126 * @return bool … … 128 128 public static function ctype_print($text) 129 129 { 130 $text = self::convert_int_to_char_for_ctype($text );130 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 131 131 132 132 return \is_string($text) && '' !== $text && !preg_match('/[^ -~]/', $text); … … 138 138 * @see https://php.net/ctype-punct 139 139 * 140 * @param string|int$text140 * @param mixed $text 141 141 * 142 142 * @return bool … … 144 144 public static function ctype_punct($text) 145 145 { 146 $text = self::convert_int_to_char_for_ctype($text );146 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 147 147 148 148 return \is_string($text) && '' !== $text && !preg_match('/[^!-\/\:-@\[-`\{-~]/', $text); … … 154 154 * @see https://php.net/ctype-space 155 155 * 156 * @param string|int$text156 * @param mixed $text 157 157 * 158 158 * @return bool … … 160 160 public static function ctype_space($text) 161 161 { 162 $text = self::convert_int_to_char_for_ctype($text );162 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 163 163 164 164 return \is_string($text) && '' !== $text && !preg_match('/[^\s]/', $text); … … 170 170 * @see https://php.net/ctype-upper 171 171 * 172 * @param string|int$text172 * @param mixed $text 173 173 * 174 174 * @return bool … … 176 176 public static function ctype_upper($text) 177 177 { 178 $text = self::convert_int_to_char_for_ctype($text );178 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 179 179 180 180 return \is_string($text) && '' !== $text && !preg_match('/[^A-Z]/', $text); … … 186 186 * @see https://php.net/ctype-xdigit 187 187 * 188 * @param string|int$text188 * @param mixed $text 189 189 * 190 190 * @return bool … … 192 192 public static function ctype_xdigit($text) 193 193 { 194 $text = self::convert_int_to_char_for_ctype($text );194 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 195 195 196 196 return \is_string($text) && '' !== $text && !preg_match('/[^A-Fa-f0-9]/', $text); … … 205 205 * Any other integer is interpreted as a string containing the decimal digits of the integer. 206 206 * 207 * @param string|int $int 207 * @param mixed $int 208 * @param string $function 208 209 * 209 210 * @return mixed 210 211 */ 211 private static function convert_int_to_char_for_ctype($int )212 private static function convert_int_to_char_for_ctype($int, $function) 212 213 { 213 214 if (!\is_int($int)) { … … 219 220 } 220 221 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 221 226 if ($int < 0) { 222 227 $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 1 16 # 2.14.8 (2021-11-25) 2 17 -
juvo-mail-editor/tags/3.0.6/vendor/twig/twig/LICENSE
r2644151 r2677983 1 Copyright (c) 2009-202 1by the Twig Team.1 Copyright (c) 2009-2022 by the Twig Team. 2 2 3 3 All rights reserved. -
juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Cache/FilesystemCache.php
r2644151 r2677983 36 36 public function generateKey($name, $className) 37 37 { 38 $hash = hash( 'sha256', $className);38 $hash = hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $className); 39 39 40 40 return $this->directory.$hash[0].$hash[1].'/'.$hash.'.php'; -
juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Compiler.php
r2644151 r2677983 239 239 public function getVarName() 240 240 { 241 return sprintf('__internal_ %s', hash('sha256', __METHOD__.$this->varNameSalt++));241 return sprintf('__internal_compile_%d', $this->varNameSalt++); 242 242 } 243 243 } -
juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Environment.php
r2644151 r2677983 39 39 class Environment 40 40 { 41 public const VERSION = '2.14. 8';42 public const VERSION_ID = 214 08;41 public const VERSION = '2.14.11'; 42 public const VERSION_ID = 21411; 43 43 public const MAJOR_VERSION = 2; 44 44 public const MINOR_VERSION = 14; 45 public const RELEASE_VERSION = 8;45 public const RELEASE_VERSION = 11; 46 46 public const EXTRA_VERSION = ''; 47 47 … … 299 299 $key = $this->getLoader()->getCacheKey($name).$this->optionsHash; 300 300 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); 302 302 } 303 303 … … 446 446 public function createTemplate($template, string $name = null) 447 447 { 448 $hash = hash( 'sha256', $template, false);448 $hash = hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $template, false); 449 449 if (null !== $name) { 450 450 $name = sprintf('%s (string template %s)', $name, $hash); … … 502 502 } 503 503 504 $count = \count($names); 504 505 foreach ($names as $name) { 505 506 if ($name instanceof Template) { … … 510 511 } 511 512 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; 518 515 } 516 517 return $this->loadTemplate($name); 519 518 } 520 519 -
juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Extension/CoreExtension.php
r2644151 r2677983 214 214 new TwigFilter('date', 'twig_date_format_filter', ['needs_environment' => true]), 215 215 new TwigFilter('date_modify', 'twig_date_modify_filter', ['needs_environment' => true]), 216 new TwigFilter('format', ' sprintf'),216 new TwigFilter('format', 'twig_sprintf'), 217 217 new TwigFilter('replace', 'twig_replace_filter'), 218 218 new TwigFilter('number_format', 'twig_number_format_filter', ['needs_environment' => true]), … … 230 230 new TwigFilter('upper', 'twig_upper_filter', ['needs_environment' => true]), 231 231 new TwigFilter('lower', 'twig_lower_filter', ['needs_environment' => true]), 232 new TwigFilter('striptags', ' strip_tags'),232 new TwigFilter('striptags', 'twig_striptags'), 233 233 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']]), 235 235 new TwigFilter('spaceless', 'twig_spaceless', ['is_safe' => ['html']]), 236 236 … … 238 238 new TwigFilter('join', 'twig_join_filter'), 239 239 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]), 241 241 new TwigFilter('merge', 'twig_array_merge'), 242 242 new TwigFilter('batch', 'twig_array_batch'), … … 483 483 484 484 /** 485 * Returns a formatted string. 486 * 487 * @param string|null $format 488 * @param ...$values 489 * 490 * @return string 491 */ 492 function twig_sprintf($format, ...$values) 493 { 494 return sprintf($format ?? '', ...$values); 495 } 496 497 /** 485 498 * Converts an input to a \DateTime instance. 486 499 * … … 544 557 * Replaces strings within a string. 545 558 * 546 * @param string $str String to replace in559 * @param string|null $str String to replace in 547 560 * @param array|\Traversable $from Replace values 548 561 * … … 555 568 } 556 569 557 return strtr($str , twig_to_array($from));570 return strtr($str ?? '', twig_to_array($from)); 558 571 } 559 572 … … 561 574 * Rounds a number. 562 575 * 563 * @param int|float $value The value to round564 * @param int|float $precision The rounding precision565 * @param string $method The method to use for rounding576 * @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 566 579 * 567 580 * @return int|float The rounded number … … 569 582 function twig_round($value, $precision = 0, $method = 'common') 570 583 { 584 $value = (float) $value; 585 571 586 if ('common' === $method) { 572 587 return round($value, $precision); … … 584 599 * 585 600 * 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 the601 * be used. Supplying any of the parameters will override the defaults set in the 587 602 * environment object. 588 603 * … … 615 630 * URL encodes (RFC 3986) a string as a path segment or an array as a query string. 616 631 * 617 * @param string|array $url A URL or an array of query parameters632 * @param string|array|null $url A URL or an array of query parameters 618 633 * 619 634 * @return string The URL encoded value … … 625 640 } 626 641 627 return rawurlencode($url );642 return rawurlencode($url ?? ''); 628 643 } 629 644 … … 687 702 } 688 703 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()); 692 705 } 693 706 … … 778 791 * {# returns [aa, bb, cc] #} 779 792 * 780 * @param string $value A string781 * @param string $delimiter The delimiter782 * @param int $limit The limit793 * @param string|null $value A string 794 * @param string $delimiter The delimiter 795 * @param int $limit The limit 783 796 * 784 797 * @return array The split string as an array … … 786 799 function twig_split_filter(Environment $env, $value, $delimiter, $limit = null) 787 800 { 801 $value = $value ?? ''; 802 788 803 if (\strlen($delimiter) > 0) { 789 804 return null === $limit ? explode($delimiter, $value) : explode($delimiter, $value, $limit); … … 871 886 * Reverses a variable. 872 887 * 873 * @param array|\Traversable|string $item An array, a \Traversable instance, or a string874 * @param bool $preserveKeys Whether to preserve key or not888 * @param array|\Traversable|string|null $item An array, a \Traversable instance, or a string 889 * @param bool $preserveKeys Whether to preserve key or not 875 890 * 876 891 * @return mixed The reversed input … … 891 906 892 907 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); 897 912 898 913 $string = implode('', array_reverse($matches[0])); … … 912 927 * @return array 913 928 */ 914 function twig_sort_filter( $array, $arrow = null)929 function twig_sort_filter(Environment $env, $array, $arrow = null) 915 930 { 916 931 if ($array instanceof \Traversable) { … … 921 936 922 937 if (null !== $arrow) { 938 twig_check_arrow_in_sandbox($env, $arrow, 'sort', 'filter'); 939 923 940 uasort($array, $arrow); 924 941 } else { … … 969 986 * Returns a trimmed string. 970 987 * 988 * @param string|null $string 989 * @param string|null $characterMask 990 * @param string $side 991 * 971 992 * @return string 972 993 * … … 981 1002 switch ($side) { 982 1003 case 'both': 983 return trim($string , $characterMask);1004 return trim($string ?? '', $characterMask); 984 1005 case 'left': 985 return ltrim($string , $characterMask);1006 return ltrim($string ?? '', $characterMask); 986 1007 case 'right': 987 return rtrim($string , $characterMask);1008 return rtrim($string ?? '', $characterMask); 988 1009 default: 989 1010 throw new RuntimeError('Trimming side must be "left", "right" or "both".'); … … 992 1013 993 1014 /** 1015 * Inserts HTML line breaks before all newlines in a string. 1016 * 1017 * @param string|null $string 1018 * 1019 * @return string 1020 */ 1021 function twig_nl2br($string) 1022 { 1023 return nl2br($string ?? ''); 1024 } 1025 1026 /** 994 1027 * Removes whitespaces between HTML tags. 995 1028 * 1029 * @param string|null $string 1030 * 996 1031 * @return string 997 1032 */ 998 1033 function twig_spaceless($content) 999 1034 { 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 */ 1003 1045 function twig_convert_encoding($string, $to, $from) 1004 1046 { … … 1007 1049 } 1008 1050 1009 return iconv($from, $to, $string );1051 return iconv($from, $to, $string ?? ''); 1010 1052 } 1011 1053 … … 1045 1087 * Converts a string to uppercase. 1046 1088 * 1047 * @param string $string A string1089 * @param string|null $string A string 1048 1090 * 1049 1091 * @return string The uppercased string … … 1051 1093 function twig_upper_filter(Environment $env, $string) 1052 1094 { 1053 return mb_strtoupper($string , $env->getCharset());1095 return mb_strtoupper($string ?? '', $env->getCharset()); 1054 1096 } 1055 1097 … … 1057 1099 * Converts a string to lowercase. 1058 1100 * 1059 * @param string $string A string1101 * @param string|null $string A string 1060 1102 * 1061 1103 * @return string The lowercased string … … 1063 1105 function twig_lower_filter(Environment $env, $string) 1064 1106 { 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 */ 1118 function twig_striptags($string, $allowable_tags = null) 1119 { 1120 return strip_tags($string ?? '', $allowable_tags); 1066 1121 } 1067 1122 … … 1069 1124 * Returns a titlecased string. 1070 1125 * 1071 * @param string $string A string1126 * @param string|null $string A string 1072 1127 * 1073 1128 * @return string The titlecased string … … 1076 1131 { 1077 1132 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 ?? '')); 1082 1137 } 1083 1138 … … 1085 1140 * Returns a capitalized string. 1086 1141 * 1087 * @param string $string A string1142 * @param string|null $string A string 1088 1143 * 1089 1144 * @return string The capitalized string … … 1093 1148 $charset = $env->getCharset(); 1094 1149 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); 1096 1151 } 1097 1152 … … 1554 1609 } 1555 1610 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'); 1559 1612 1560 1613 if (\is_array($array)) { … … 1568 1621 function twig_array_map(Environment $env, $array, $arrow) 1569 1622 { 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'); 1573 1624 1574 1625 $r = []; … … 1582 1633 function twig_array_reduce(Environment $env, $array, $arrow, $initial = null) 1583 1634 { 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'); 1587 1636 1588 1637 if (!\is_array($array)) { … … 1596 1645 return array_reduce($array, $arrow, $initial); 1597 1646 } 1598 } 1647 1648 function 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 57 57 public function getVarName() 58 58 { 59 return sprintf('__internal_ %s', hash('sha256', __METHOD__.$this->stream->getSourceContext()->getCode().$this->varNameSalt++));59 return sprintf('__internal_parse_%d', $this->varNameSalt++); 60 60 } 61 61 -
juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Profiler/NodeVisitor/ProfilerNodeVisitor.php
r2644151 r2677983 29 29 { 30 30 private $extensionName; 31 private $varName; 31 32 32 33 public function __construct(string $extensionName) 33 34 { 34 35 $this->extensionName = $extensionName; 36 $this->varName = sprintf('__internal_%s', hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $extensionName)); 35 37 } 36 38 … … 43 45 { 44 46 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')])); 48 49 } elseif ($node instanceof BlockNode) { 49 $varName = $this->getVarName();50 50 $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), 52 52 $node->getNode('body'), 53 new LeaveProfileNode($ varName),53 new LeaveProfileNode($this->varName), 54 54 ])); 55 55 } elseif ($node instanceof MacroNode) { 56 $varName = $this->getVarName();57 56 $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), 59 58 $node->getNode('body'), 60 new LeaveProfileNode($ varName),59 new LeaveProfileNode($this->varName), 61 60 ])); 62 61 } 63 62 64 63 return $node; 65 }66 67 private function getVarName(): string68 {69 return sprintf('__internal_%s', hash('sha256', $this->extensionName));70 64 } 71 65 -
juvo-mail-editor/tags/3.0.6/vendor/twig/twig/src/Test/IntegrationTestCase.php
r2644151 r2677983 187 187 $p = new \ReflectionProperty($twig, 'templateClassPrefix'); 188 188 $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).'_'); 190 190 191 191 $deprecations = []; -
juvo-mail-editor/trunk/admin/Admin.php
r2587510 r2677983 54 54 */ 55 55 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' ); 57 58 58 59 } -
juvo-mail-editor/trunk/juvo-mail-editor.php
r2672700 r2677983 8 8 * Text Domain: juvo-mail-editor 9 9 * Domain Path: /languages 10 * Version: 3.0. 510 * Version: 3.0.6 11 11 */ 12 12 -
juvo-mail-editor/trunk/readme.txt
r2672700 r2677983 4 4 License: GPLv2 or later 5 5 Tested up to: 5.9 6 Stable tag: 3.0. 56 Stable tag: 3.0.6 7 7 8 8 JUVO 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 13 13 14 14 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 15 22 if ( has_term( $this->getTrigger(), Mail_Trigger_TAX::TAXONOMY_NAME, $cmb->object_id() ) ) { 16 23 $cmb->remove_field( Mails_PT::POST_TYPE_NAME . '_recipients' ); … … 79 86 } 80 87 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'] ) ] ); 83 90 84 91 return $this->emptyMailArray( $email ); -
juvo-mail-editor/trunk/src/Mails/Password_Changed_Admin.php
r2672700 r2677983 6 6 use CMB2; 7 7 use JUVO_MailEditor\Mail_Generator; 8 use JUVO_MailEditor\Mail_Trigger_TAX;9 use JUVO_MailEditor\Mails_PT;10 8 use WP_User; 11 9 … … 13 11 14 12 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 19 13 return $cmb; 20 14 } -
juvo-mail-editor/trunk/src/Mails/Password_Reset.php
r2672700 r2677983 17 17 18 18 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 19 26 if ( has_term( $this->getTrigger(), Mail_Trigger_TAX::TAXONOMY_NAME, $cmb->object_id() ) ) { 20 27 $cmb->remove_field( Mails_PT::POST_TYPE_NAME . '_recipients' ); -
juvo-mail-editor/trunk/src/Mails_PT.php
r2672700 r2677983 92 92 ); 93 93 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( 104 96 'id' => self::POST_TYPE_NAME . '_recipients', 105 97 'type' => 'group', … … 116 108 ) ); 117 109 118 $this->addRecipientGroupFields( $ recipient_group, $cmb );110 $this->addRecipientGroupFields( $to_group, $cmb ); 119 111 120 112 $cc_group = $cmb->add_field( array( … … 152 144 $this->addRecipientGroupFields( $bcc_group, $cmb ); 153 145 154 155 146 $cmb->add_field( array( 156 147 'name' => __( 'Attachments', 'juvo-mail-editor' ), -
juvo-mail-editor/trunk/src/Relay.php
r2672700 r2677983 209 209 } 210 210 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 ); 214 214 } 215 215 … … 351 351 } 352 352 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 ); 355 355 356 356 return array_merge( $headers, $cc ); … … 366 366 } 367 367 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 ); 370 370 371 371 return array_merge( $headers, $bcc ); -
juvo-mail-editor/trunk/vendor/autoload.php
r2672700 r2677983 5 5 require_once __DIR__ . '/composer/autoload_real.php'; 6 6 7 return ComposerAutoloaderInit fdfdf11997bf846c7668e97b172e1c1f::getLoader();7 return ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc::getLoader(); -
juvo-mail-editor/trunk/vendor/composer/autoload_files.php
r2654150 r2677983 7 7 8 8 return array( 9 '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', 9 10 '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', 10 11 '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', -
juvo-mail-editor/trunk/vendor/composer/autoload_psr4.php
r2644151 r2677983 9 9 'Twig\\' => array($vendorDir . '/twig/twig/src'), 10 10 'Timber\\' => array($vendorDir . '/timber/timber/lib'), 11 'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'), 11 12 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), 12 13 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'), -
juvo-mail-editor/trunk/vendor/composer/autoload_real.php
r2672700 r2677983 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit fdfdf11997bf846c7668e97b172e1c1f5 class ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc 6 6 { 7 7 private static $loader; … … 23 23 } 24 24 25 spl_autoload_register(array('ComposerAutoloaderInit fdfdf11997bf846c7668e97b172e1c1f', 'loadClassLoader'), true, true);25 spl_autoload_register(array('ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc', 'loadClassLoader'), true, true); 26 26 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); 27 spl_autoload_unregister(array('ComposerAutoloaderInit fdfdf11997bf846c7668e97b172e1c1f', 'loadClassLoader'));27 spl_autoload_unregister(array('ComposerAutoloaderInitd9c7f26111ceaf3423b6af260b5d65bc', 'loadClassLoader')); 28 28 29 29 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); … … 31 31 require __DIR__ . '/autoload_static.php'; 32 32 33 call_user_func(\Composer\Autoload\ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::getInitializer($loader));33 call_user_func(\Composer\Autoload\ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::getInitializer($loader)); 34 34 } else { 35 35 $map = require __DIR__ . '/autoload_namespaces.php'; … … 52 52 53 53 if ($useStaticLoader) { 54 $includeFiles = Composer\Autoload\ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::$files;54 $includeFiles = Composer\Autoload\ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc::$files; 55 55 } else { 56 56 $includeFiles = require __DIR__ . '/autoload_files.php'; 57 57 } 58 58 foreach ($includeFiles as $fileIdentifier => $file) { 59 composerRequire fdfdf11997bf846c7668e97b172e1c1f($fileIdentifier, $file);59 composerRequired9c7f26111ceaf3423b6af260b5d65bc($fileIdentifier, $file); 60 60 } 61 61 … … 69 69 * @return void 70 70 */ 71 function composerRequire fdfdf11997bf846c7668e97b172e1c1f($fileIdentifier, $file)71 function composerRequired9c7f26111ceaf3423b6af260b5d65bc($fileIdentifier, $file) 72 72 { 73 73 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { -
juvo-mail-editor/trunk/vendor/composer/autoload_static.php
r2672700 r2677983 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f7 class ComposerStaticInitd9c7f26111ceaf3423b6af260b5d65bc 8 8 { 9 9 public static $files = array ( 10 '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', 10 11 '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', 11 12 '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', … … 20 21 'S' => 21 22 array ( 23 'Symfony\\Polyfill\\Php72\\' => 23, 22 24 'Symfony\\Polyfill\\Mbstring\\' => 26, 23 25 'Symfony\\Polyfill\\Ctype\\' => 23, … … 42 44 array ( 43 45 0 => __DIR__ . '/..' . '/timber/timber/lib', 46 ), 47 'Symfony\\Polyfill\\Php72\\' => 48 array ( 49 0 => __DIR__ . '/..' . '/symfony/polyfill-php72', 44 50 ), 45 51 'Symfony\\Polyfill\\Mbstring\\' => … … 94 100 { 95 101 return \Closure::bind(function () use ($loader) { 96 $loader->prefixLengthsPsr4 = ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::$prefixLengthsPsr4;97 $loader->prefixDirsPsr4 = ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::$prefixDirsPsr4;98 $loader->fallbackDirsPsr4 = ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::$fallbackDirsPsr4;99 $loader->prefixesPsr0 = ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::$prefixesPsr0;100 $loader->classMap = ComposerStaticInit fdfdf11997bf846c7668e97b172e1c1f::$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; 101 107 102 108 }, null, ClassLoader::class); -
juvo-mail-editor/trunk/vendor/composer/installed.json
r2644151 r2677983 281 281 { 282 282 "name": "symfony/polyfill-ctype", 283 "version": "v1.2 3.0",284 "version_normalized": "1.2 3.0.0",283 "version": "v1.24.0", 284 "version_normalized": "1.24.0.0", 285 285 "source": { 286 286 "type": "git", 287 287 "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", 294 294 "shasum": "" 295 295 }, 296 296 "require": { 297 297 "php": ">=7.1" 298 }, 299 "provide": { 300 "ext-ctype": "*" 298 301 }, 299 302 "suggest": { 300 303 "ext-ctype": "For best performance" 301 304 }, 302 "time": "2021- 02-19T12:13:01+00:00",305 "time": "2021-10-20T20:35:02+00:00", 303 306 "type": "library", 304 307 "extra": { … … 343 346 ], 344 347 "support": { 345 "source": "https://github.com/symfony/polyfill-ctype/tree/v1.2 3.0"348 "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" 346 349 }, 347 350 "funding": [ … … 395 398 "installation-source": "dist", 396 399 "autoload": { 400 "files": [ 401 "bootstrap.php" 402 ], 397 403 "psr-4": { 398 404 "Symfony\\Polyfill\\Mbstring\\": "" 399 }, 400 "files": [ 401 "bootstrap.php" 402 ] 405 } 403 406 }, 404 407 "notification-url": "https://packagist.org/downloads/", … … 443 446 ], 444 447 "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" 445 527 }, 446 528 { … … 595 677 { 596 678 "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", 599 681 "source": { 600 682 "type": "git", 601 683 "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", 612 694 "symfony/polyfill-ctype": "^1.8", 613 "symfony/polyfill-mbstring": "^1.3" 695 "symfony/polyfill-mbstring": "^1.3", 696 "symfony/polyfill-php72": "^1.8" 614 697 }, 615 698 "require-dev": { … … 617 700 "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" 618 701 }, 619 "time": "202 1-11-25T13:38:06+00:00",702 "time": "2022-02-04T06:57:25+00:00", 620 703 "type": "library", 621 704 "extra": { … … 661 744 "support": { 662 745 "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" 664 747 }, 665 748 "funding": [ -
juvo-mail-editor/trunk/vendor/composer/installed.php
r2672700 r2677983 1 1 <?php return array( 2 2 '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', 5 5 'type' => 'wordpress-plugin', 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' 78ed8db8c7bf3e36838fbdeedd047527631aec6d',8 'reference' => 'c3acc4c8ec410d7979bfabd1f1f3602a01f1ca1f', 9 9 'name' => 'juvo/mail-editor', 10 10 'dev' => false, … … 39 39 ), 40 40 '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', 43 43 'type' => 'wordpress-plugin', 44 44 'install_path' => __DIR__ . '/../../', 45 45 'aliases' => array(), 46 'reference' => ' 78ed8db8c7bf3e36838fbdeedd047527631aec6d',46 'reference' => 'c3acc4c8ec410d7979bfabd1f1f3602a01f1ca1f', 47 47 'dev_requirement' => false, 48 48 ), … … 60 60 ), 61 61 'symfony/polyfill-ctype' => array( 62 'pretty_version' => 'v1.2 3.0',63 'version' => '1.2 3.0.0',62 'pretty_version' => 'v1.24.0', 63 'version' => '1.24.0.0', 64 64 'type' => 'library', 65 65 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', 66 66 'aliases' => array(), 67 'reference' => ' 46cd95797e9df938fdd2b03693b5fca5e64b01ce',67 'reference' => '30885182c981ab175d4d034db0f6f469898070ab', 68 68 'dev_requirement' => false, 69 69 ), … … 75 75 'aliases' => array(), 76 76 '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', 77 86 'dev_requirement' => false, 78 87 ), … … 96 105 ), 97 106 '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', 100 109 'type' => 'library', 101 110 'install_path' => __DIR__ . '/../twig/twig', 102 111 'aliases' => array(), 103 'reference' => ' 06b450a2326aa879faa2061ff72fe1588b3ab043',112 'reference' => '66baa66f29ee30e487e05f1679903e36eb01d727', 104 113 'dev_requirement' => false, 105 114 ), -
juvo-mail-editor/trunk/vendor/symfony/polyfill-ctype/Ctype.php
r2644151 r2677983 26 26 * @see https://php.net/ctype-alnum 27 27 * 28 * @param string|int$text28 * @param mixed $text 29 29 * 30 30 * @return bool … … 32 32 public static function ctype_alnum($text) 33 33 { 34 $text = self::convert_int_to_char_for_ctype($text );34 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 35 35 36 36 return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z0-9]/', $text); … … 42 42 * @see https://php.net/ctype-alpha 43 43 * 44 * @param string|int$text44 * @param mixed $text 45 45 * 46 46 * @return bool … … 48 48 public static function ctype_alpha($text) 49 49 { 50 $text = self::convert_int_to_char_for_ctype($text );50 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 51 51 52 52 return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z]/', $text); … … 58 58 * @see https://php.net/ctype-cntrl 59 59 * 60 * @param string|int$text60 * @param mixed $text 61 61 * 62 62 * @return bool … … 64 64 public static function ctype_cntrl($text) 65 65 { 66 $text = self::convert_int_to_char_for_ctype($text );66 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 67 67 68 68 return \is_string($text) && '' !== $text && !preg_match('/[^\x00-\x1f\x7f]/', $text); … … 74 74 * @see https://php.net/ctype-digit 75 75 * 76 * @param string|int$text76 * @param mixed $text 77 77 * 78 78 * @return bool … … 80 80 public static function ctype_digit($text) 81 81 { 82 $text = self::convert_int_to_char_for_ctype($text );82 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 83 83 84 84 return \is_string($text) && '' !== $text && !preg_match('/[^0-9]/', $text); … … 90 90 * @see https://php.net/ctype-graph 91 91 * 92 * @param string|int$text92 * @param mixed $text 93 93 * 94 94 * @return bool … … 96 96 public static function ctype_graph($text) 97 97 { 98 $text = self::convert_int_to_char_for_ctype($text );98 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 99 99 100 100 return \is_string($text) && '' !== $text && !preg_match('/[^!-~]/', $text); … … 106 106 * @see https://php.net/ctype-lower 107 107 * 108 * @param string|int$text108 * @param mixed $text 109 109 * 110 110 * @return bool … … 112 112 public static function ctype_lower($text) 113 113 { 114 $text = self::convert_int_to_char_for_ctype($text );114 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 115 115 116 116 return \is_string($text) && '' !== $text && !preg_match('/[^a-z]/', $text); … … 122 122 * @see https://php.net/ctype-print 123 123 * 124 * @param string|int$text124 * @param mixed $text 125 125 * 126 126 * @return bool … … 128 128 public static function ctype_print($text) 129 129 { 130 $text = self::convert_int_to_char_for_ctype($text );130 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 131 131 132 132 return \is_string($text) && '' !== $text && !preg_match('/[^ -~]/', $text); … … 138 138 * @see https://php.net/ctype-punct 139 139 * 140 * @param string|int$text140 * @param mixed $text 141 141 * 142 142 * @return bool … … 144 144 public static function ctype_punct($text) 145 145 { 146 $text = self::convert_int_to_char_for_ctype($text );146 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 147 147 148 148 return \is_string($text) && '' !== $text && !preg_match('/[^!-\/\:-@\[-`\{-~]/', $text); … … 154 154 * @see https://php.net/ctype-space 155 155 * 156 * @param string|int$text156 * @param mixed $text 157 157 * 158 158 * @return bool … … 160 160 public static function ctype_space($text) 161 161 { 162 $text = self::convert_int_to_char_for_ctype($text );162 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 163 163 164 164 return \is_string($text) && '' !== $text && !preg_match('/[^\s]/', $text); … … 170 170 * @see https://php.net/ctype-upper 171 171 * 172 * @param string|int$text172 * @param mixed $text 173 173 * 174 174 * @return bool … … 176 176 public static function ctype_upper($text) 177 177 { 178 $text = self::convert_int_to_char_for_ctype($text );178 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 179 179 180 180 return \is_string($text) && '' !== $text && !preg_match('/[^A-Z]/', $text); … … 186 186 * @see https://php.net/ctype-xdigit 187 187 * 188 * @param string|int$text188 * @param mixed $text 189 189 * 190 190 * @return bool … … 192 192 public static function ctype_xdigit($text) 193 193 { 194 $text = self::convert_int_to_char_for_ctype($text );194 $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); 195 195 196 196 return \is_string($text) && '' !== $text && !preg_match('/[^A-Fa-f0-9]/', $text); … … 205 205 * Any other integer is interpreted as a string containing the decimal digits of the integer. 206 206 * 207 * @param string|int $int 207 * @param mixed $int 208 * @param string $function 208 209 * 209 210 * @return mixed 210 211 */ 211 private static function convert_int_to_char_for_ctype($int )212 private static function convert_int_to_char_for_ctype($int, $function) 212 213 { 213 214 if (!\is_int($int)) { … … 219 220 } 220 221 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 221 226 if ($int < 0) { 222 227 $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 1 16 # 2.14.8 (2021-11-25) 2 17 -
juvo-mail-editor/trunk/vendor/twig/twig/LICENSE
r2644151 r2677983 1 Copyright (c) 2009-202 1by the Twig Team.1 Copyright (c) 2009-2022 by the Twig Team. 2 2 3 3 All rights reserved. -
juvo-mail-editor/trunk/vendor/twig/twig/src/Cache/FilesystemCache.php
r2644151 r2677983 36 36 public function generateKey($name, $className) 37 37 { 38 $hash = hash( 'sha256', $className);38 $hash = hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $className); 39 39 40 40 return $this->directory.$hash[0].$hash[1].'/'.$hash.'.php'; -
juvo-mail-editor/trunk/vendor/twig/twig/src/Compiler.php
r2644151 r2677983 239 239 public function getVarName() 240 240 { 241 return sprintf('__internal_ %s', hash('sha256', __METHOD__.$this->varNameSalt++));241 return sprintf('__internal_compile_%d', $this->varNameSalt++); 242 242 } 243 243 } -
juvo-mail-editor/trunk/vendor/twig/twig/src/Environment.php
r2644151 r2677983 39 39 class Environment 40 40 { 41 public const VERSION = '2.14. 8';42 public const VERSION_ID = 214 08;41 public const VERSION = '2.14.11'; 42 public const VERSION_ID = 21411; 43 43 public const MAJOR_VERSION = 2; 44 44 public const MINOR_VERSION = 14; 45 public const RELEASE_VERSION = 8;45 public const RELEASE_VERSION = 11; 46 46 public const EXTRA_VERSION = ''; 47 47 … … 299 299 $key = $this->getLoader()->getCacheKey($name).$this->optionsHash; 300 300 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); 302 302 } 303 303 … … 446 446 public function createTemplate($template, string $name = null) 447 447 { 448 $hash = hash( 'sha256', $template, false);448 $hash = hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $template, false); 449 449 if (null !== $name) { 450 450 $name = sprintf('%s (string template %s)', $name, $hash); … … 502 502 } 503 503 504 $count = \count($names); 504 505 foreach ($names as $name) { 505 506 if ($name instanceof Template) { … … 510 511 } 511 512 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; 518 515 } 516 517 return $this->loadTemplate($name); 519 518 } 520 519 -
juvo-mail-editor/trunk/vendor/twig/twig/src/Extension/CoreExtension.php
r2644151 r2677983 214 214 new TwigFilter('date', 'twig_date_format_filter', ['needs_environment' => true]), 215 215 new TwigFilter('date_modify', 'twig_date_modify_filter', ['needs_environment' => true]), 216 new TwigFilter('format', ' sprintf'),216 new TwigFilter('format', 'twig_sprintf'), 217 217 new TwigFilter('replace', 'twig_replace_filter'), 218 218 new TwigFilter('number_format', 'twig_number_format_filter', ['needs_environment' => true]), … … 230 230 new TwigFilter('upper', 'twig_upper_filter', ['needs_environment' => true]), 231 231 new TwigFilter('lower', 'twig_lower_filter', ['needs_environment' => true]), 232 new TwigFilter('striptags', ' strip_tags'),232 new TwigFilter('striptags', 'twig_striptags'), 233 233 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']]), 235 235 new TwigFilter('spaceless', 'twig_spaceless', ['is_safe' => ['html']]), 236 236 … … 238 238 new TwigFilter('join', 'twig_join_filter'), 239 239 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]), 241 241 new TwigFilter('merge', 'twig_array_merge'), 242 242 new TwigFilter('batch', 'twig_array_batch'), … … 483 483 484 484 /** 485 * Returns a formatted string. 486 * 487 * @param string|null $format 488 * @param ...$values 489 * 490 * @return string 491 */ 492 function twig_sprintf($format, ...$values) 493 { 494 return sprintf($format ?? '', ...$values); 495 } 496 497 /** 485 498 * Converts an input to a \DateTime instance. 486 499 * … … 544 557 * Replaces strings within a string. 545 558 * 546 * @param string $str String to replace in559 * @param string|null $str String to replace in 547 560 * @param array|\Traversable $from Replace values 548 561 * … … 555 568 } 556 569 557 return strtr($str , twig_to_array($from));570 return strtr($str ?? '', twig_to_array($from)); 558 571 } 559 572 … … 561 574 * Rounds a number. 562 575 * 563 * @param int|float $value The value to round564 * @param int|float $precision The rounding precision565 * @param string $method The method to use for rounding576 * @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 566 579 * 567 580 * @return int|float The rounded number … … 569 582 function twig_round($value, $precision = 0, $method = 'common') 570 583 { 584 $value = (float) $value; 585 571 586 if ('common' === $method) { 572 587 return round($value, $precision); … … 584 599 * 585 600 * 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 the601 * be used. Supplying any of the parameters will override the defaults set in the 587 602 * environment object. 588 603 * … … 615 630 * URL encodes (RFC 3986) a string as a path segment or an array as a query string. 616 631 * 617 * @param string|array $url A URL or an array of query parameters632 * @param string|array|null $url A URL or an array of query parameters 618 633 * 619 634 * @return string The URL encoded value … … 625 640 } 626 641 627 return rawurlencode($url );642 return rawurlencode($url ?? ''); 628 643 } 629 644 … … 687 702 } 688 703 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()); 692 705 } 693 706 … … 778 791 * {# returns [aa, bb, cc] #} 779 792 * 780 * @param string $value A string781 * @param string $delimiter The delimiter782 * @param int $limit The limit793 * @param string|null $value A string 794 * @param string $delimiter The delimiter 795 * @param int $limit The limit 783 796 * 784 797 * @return array The split string as an array … … 786 799 function twig_split_filter(Environment $env, $value, $delimiter, $limit = null) 787 800 { 801 $value = $value ?? ''; 802 788 803 if (\strlen($delimiter) > 0) { 789 804 return null === $limit ? explode($delimiter, $value) : explode($delimiter, $value, $limit); … … 871 886 * Reverses a variable. 872 887 * 873 * @param array|\Traversable|string $item An array, a \Traversable instance, or a string874 * @param bool $preserveKeys Whether to preserve key or not888 * @param array|\Traversable|string|null $item An array, a \Traversable instance, or a string 889 * @param bool $preserveKeys Whether to preserve key or not 875 890 * 876 891 * @return mixed The reversed input … … 891 906 892 907 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); 897 912 898 913 $string = implode('', array_reverse($matches[0])); … … 912 927 * @return array 913 928 */ 914 function twig_sort_filter( $array, $arrow = null)929 function twig_sort_filter(Environment $env, $array, $arrow = null) 915 930 { 916 931 if ($array instanceof \Traversable) { … … 921 936 922 937 if (null !== $arrow) { 938 twig_check_arrow_in_sandbox($env, $arrow, 'sort', 'filter'); 939 923 940 uasort($array, $arrow); 924 941 } else { … … 969 986 * Returns a trimmed string. 970 987 * 988 * @param string|null $string 989 * @param string|null $characterMask 990 * @param string $side 991 * 971 992 * @return string 972 993 * … … 981 1002 switch ($side) { 982 1003 case 'both': 983 return trim($string , $characterMask);1004 return trim($string ?? '', $characterMask); 984 1005 case 'left': 985 return ltrim($string , $characterMask);1006 return ltrim($string ?? '', $characterMask); 986 1007 case 'right': 987 return rtrim($string , $characterMask);1008 return rtrim($string ?? '', $characterMask); 988 1009 default: 989 1010 throw new RuntimeError('Trimming side must be "left", "right" or "both".'); … … 992 1013 993 1014 /** 1015 * Inserts HTML line breaks before all newlines in a string. 1016 * 1017 * @param string|null $string 1018 * 1019 * @return string 1020 */ 1021 function twig_nl2br($string) 1022 { 1023 return nl2br($string ?? ''); 1024 } 1025 1026 /** 994 1027 * Removes whitespaces between HTML tags. 995 1028 * 1029 * @param string|null $string 1030 * 996 1031 * @return string 997 1032 */ 998 1033 function twig_spaceless($content) 999 1034 { 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 */ 1003 1045 function twig_convert_encoding($string, $to, $from) 1004 1046 { … … 1007 1049 } 1008 1050 1009 return iconv($from, $to, $string );1051 return iconv($from, $to, $string ?? ''); 1010 1052 } 1011 1053 … … 1045 1087 * Converts a string to uppercase. 1046 1088 * 1047 * @param string $string A string1089 * @param string|null $string A string 1048 1090 * 1049 1091 * @return string The uppercased string … … 1051 1093 function twig_upper_filter(Environment $env, $string) 1052 1094 { 1053 return mb_strtoupper($string , $env->getCharset());1095 return mb_strtoupper($string ?? '', $env->getCharset()); 1054 1096 } 1055 1097 … … 1057 1099 * Converts a string to lowercase. 1058 1100 * 1059 * @param string $string A string1101 * @param string|null $string A string 1060 1102 * 1061 1103 * @return string The lowercased string … … 1063 1105 function twig_lower_filter(Environment $env, $string) 1064 1106 { 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 */ 1118 function twig_striptags($string, $allowable_tags = null) 1119 { 1120 return strip_tags($string ?? '', $allowable_tags); 1066 1121 } 1067 1122 … … 1069 1124 * Returns a titlecased string. 1070 1125 * 1071 * @param string $string A string1126 * @param string|null $string A string 1072 1127 * 1073 1128 * @return string The titlecased string … … 1076 1131 { 1077 1132 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 ?? '')); 1082 1137 } 1083 1138 … … 1085 1140 * Returns a capitalized string. 1086 1141 * 1087 * @param string $string A string1142 * @param string|null $string A string 1088 1143 * 1089 1144 * @return string The capitalized string … … 1093 1148 $charset = $env->getCharset(); 1094 1149 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); 1096 1151 } 1097 1152 … … 1554 1609 } 1555 1610 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'); 1559 1612 1560 1613 if (\is_array($array)) { … … 1568 1621 function twig_array_map(Environment $env, $array, $arrow) 1569 1622 { 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'); 1573 1624 1574 1625 $r = []; … … 1582 1633 function twig_array_reduce(Environment $env, $array, $arrow, $initial = null) 1583 1634 { 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'); 1587 1636 1588 1637 if (!\is_array($array)) { … … 1596 1645 return array_reduce($array, $arrow, $initial); 1597 1646 } 1598 } 1647 1648 function 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 57 57 public function getVarName() 58 58 { 59 return sprintf('__internal_ %s', hash('sha256', __METHOD__.$this->stream->getSourceContext()->getCode().$this->varNameSalt++));59 return sprintf('__internal_parse_%d', $this->varNameSalt++); 60 60 } 61 61 -
juvo-mail-editor/trunk/vendor/twig/twig/src/Profiler/NodeVisitor/ProfilerNodeVisitor.php
r2644151 r2677983 29 29 { 30 30 private $extensionName; 31 private $varName; 31 32 32 33 public function __construct(string $extensionName) 33 34 { 34 35 $this->extensionName = $extensionName; 36 $this->varName = sprintf('__internal_%s', hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $extensionName)); 35 37 } 36 38 … … 43 45 { 44 46 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')])); 48 49 } elseif ($node instanceof BlockNode) { 49 $varName = $this->getVarName();50 50 $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), 52 52 $node->getNode('body'), 53 new LeaveProfileNode($ varName),53 new LeaveProfileNode($this->varName), 54 54 ])); 55 55 } elseif ($node instanceof MacroNode) { 56 $varName = $this->getVarName();57 56 $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), 59 58 $node->getNode('body'), 60 new LeaveProfileNode($ varName),59 new LeaveProfileNode($this->varName), 61 60 ])); 62 61 } 63 62 64 63 return $node; 65 }66 67 private function getVarName(): string68 {69 return sprintf('__internal_%s', hash('sha256', $this->extensionName));70 64 } 71 65 -
juvo-mail-editor/trunk/vendor/twig/twig/src/Test/IntegrationTestCase.php
r2644151 r2677983 187 187 $p = new \ReflectionProperty($twig, 'templateClassPrefix'); 188 188 $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).'_'); 190 190 191 191 $deprecations = [];
Note: See TracChangeset
for help on using the changeset viewer.