From 75fd07d0e247c0d29f50ee88bef18a3536fbd181 Mon Sep 17 00:00:00 2001 From: Vladimir Selivanov Date: Thu, 22 Mar 2018 15:42:25 +0200 Subject: [PATCH 01/18] OS-8 301 Redirect from Content Editing Flow --- .../openy_redirect/openy_redirect.info.yml | 5 + .../openy_redirect/openy_redirect.module | 128 ++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 modules/custom/openy_redirect/openy_redirect.info.yml create mode 100644 modules/custom/openy_redirect/openy_redirect.module diff --git a/modules/custom/openy_redirect/openy_redirect.info.yml b/modules/custom/openy_redirect/openy_redirect.info.yml new file mode 100644 index 0000000000..57d9650eea --- /dev/null +++ b/modules/custom/openy_redirect/openy_redirect.info.yml @@ -0,0 +1,5 @@ +name: Openy Redirect +type: module +description: Openy Redirect allows user to add redirects directly from edit page. +core: 8.x +package: OpenY diff --git a/modules/custom/openy_redirect/openy_redirect.module b/modules/custom/openy_redirect/openy_redirect.module new file mode 100644 index 0000000000..b02552860f --- /dev/null +++ b/modules/custom/openy_redirect/openy_redirect.module @@ -0,0 +1,128 @@ +id(), ['node'], TRUE)) { + $fields['redirect'] = BaseFieldDefinition::create('string') + ->setLabel(t('Redirects')) + ->setDescription(t('Add URLs to redirect to this page')) + ->setTranslatable(TRUE) + ->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) + ->setDisplayOptions('form', [ + 'type' => 'redirect', + 'weight' => 30, + ]) + ->setDisplayConfigurable('form', TRUE) + ->setComputed(TRUE); + + return $fields; + } +} + +/** + * Implements hook_form_FORM_ID_alter() for node_form(). + */ +function openy_redirect_form_node_form_alter(&$form, FormStateInterface $form_state) { + $node = \Drupal::routeMatch()->getParameter('node'); + if ($node instanceof \Drupal\node\NodeInterface) { + // Create the group for the redirect fields. + $form['redirect_settings'] = [ + '#type' => 'details', + '#title' => t('Redirects'), + '#open' => !empty($form['redirect']['widget'][0]['value']['#value']), + '#group' => 'advanced', + '#weight' => 30, + ]; + $form['redirect']['#group'] = 'redirect_settings'; + + // Add custom submit to create redirects + $form['actions']['submit']['#submit'][] = 'openy_redirect_submit'; + + // Set default values + $nid = $node->id(); + $redirects = loadRedirectsByRedirectUri('node/' . $nid); + $i = 0; + /** @var Redirect $item */ + foreach ($redirects as $item) { + $source = $item->getSource(); + $options = !empty($source['query']) ? $source['query'] : []; + if ($i > 0) { + $form['redirect']['widget'][$i] = $form['redirect']['widget'][$i-1]; + } + $form['redirect']['widget'][$i]['value']['#default_value'] = redirect_url($source['path'], $options); + $i++; + } + + // Set total count of redirect items for correct behavior "Add more" ajax button + $count = 0; + foreach ($form['redirect']['widget'] as $key => $value) { + if (is_numeric($key)) { + $count++; + } + } + $storage = $form_state->getStorage(); + $storage['field_storage']['#parents']['#fields']['redirect']['items_count'] = $count - 1; + $form_state->setStorage($storage); + } +} + +/** + * Custom submit to create redirects. + */ +function openy_redirect_submit($form, FormStateInterface $form_state) { + $redirectSources = $form_state->getValue('redirect'); + $nid = $form_state->getValue('nid'); + + // Delete all redirects for this node to save it from scratch later + $redirects = loadRedirectsByRedirectUri('node/' . $nid); + if (!empty($redirects)) { + /** @var Redirect $item */ + foreach ($redirects as $item) { + $item->delete(); + } + } + + /** @var \Drupal\redirect\RedirectRepository $redirect_repository */ + $redirect_repository = \Drupal::service('redirect.repository'); + foreach ($redirectSources as $item) { + if (!$redirect_repository->findMatchingRedirect($item['value'])) { + if (empty(trim($item['value']))) { + continue; + } + /** @var \Drupal\redirect\Entity\Redirect $redirect */ + $redirect = Redirect::create(); + $redirect->setSource($item['value']); + $redirect->setRedirect('node/' . $nid); + $redirect->setStatusCode(\Drupal::config('redirect.settings')->get('default_status_code')); + $redirect->save(); + } else { + drupal_set_message(t('Redirect for "@source" already exists', ['@source' => $item['value']])); + } + } +} + +/** + * Helper function to find Redirects by redirect target uri. + */ +function loadRedirectsByRedirectUri($uri) { + /** @var \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager */ + $entityTypeManager = \Drupal::service('entity_type.manager'); + $redirectIds = $entityTypeManager->getStorage('redirect')->getQuery() + ->condition('redirect_redirect__uri', '%' . $uri . '%', 'LIKE') + ->execute(); + + return Redirect::loadMultiple($redirectIds); +} From b27f01d8d1ae2bb6f528442b564c473eda13f82f Mon Sep 17 00:00:00 2001 From: Vladimir Selivanov Date: Thu, 22 Mar 2018 15:49:13 +0200 Subject: [PATCH 02/18] OS-8 Enable OpenY Redirect module --- openy.install | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openy.install b/openy.install index 2c5cea91a4..dee52a7c7d 100644 --- a/openy.install +++ b/openy.install @@ -590,3 +590,10 @@ function openy_update_8046() { ]); } } + +/** + * Enable OpenY Redirect module. + */ +function openy_update_8047() { + \Drupal::service('module_installer')->install(['openy_redirect']); +} \ No newline at end of file From b49ff3fcd985bde1be378cfc743efce89670b81e Mon Sep 17 00:00:00 2001 From: Vladimir Selivanov Date: Thu, 22 Mar 2018 15:53:58 +0200 Subject: [PATCH 03/18] OS-8 Add dependency from Redirect module --- modules/custom/openy_redirect/openy_redirect.info.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/custom/openy_redirect/openy_redirect.info.yml b/modules/custom/openy_redirect/openy_redirect.info.yml index 57d9650eea..229809882d 100644 --- a/modules/custom/openy_redirect/openy_redirect.info.yml +++ b/modules/custom/openy_redirect/openy_redirect.info.yml @@ -3,3 +3,5 @@ type: module description: Openy Redirect allows user to add redirects directly from edit page. core: 8.x package: OpenY +dependencies: + - redirect From 5af50de5eef344ecf63f42b8efb95f39d0576f5b Mon Sep 17 00:00:00 2001 From: Vladimir Selivanov Date: Thu, 22 Mar 2018 17:31:34 +0200 Subject: [PATCH 04/18] OS-8 Add custom module to profile openy.info --- openy.info.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/openy.info.yml b/openy.info.yml index c965d24a49..48055995c4 100644 --- a/openy.info.yml +++ b/openy.info.yml @@ -199,6 +199,7 @@ dependencies: - openy_calc - openy_data_wrapper - logger_entity + - openy_redirect themes: - bartik From 15827c4b3380e1c854b627699fbc550771b9dc1f Mon Sep 17 00:00:00 2001 From: Vladimir Selivanov Date: Thu, 29 Mar 2018 21:06:16 +0300 Subject: [PATCH 05/18] Merge branch 'master' into dev-os8 --- openy.install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openy.install b/openy.install index 900b38f26a..1b33109f5b 100644 --- a/openy.install +++ b/openy.install @@ -606,6 +606,6 @@ function openy_update_8047() { /** * Enable OpenY Redirect module. */ -function openy_update_8047() { +function openy_update_8048() { \Drupal::service('module_installer')->install(['openy_redirect']); } \ No newline at end of file From 6358662d30c19293958004e7a4d9c56fcb7a0e1a Mon Sep 17 00:00:00 2001 From: Andrii Podanenko Date: Thu, 5 Apr 2018 12:17:06 +0300 Subject: [PATCH 06/18] Create Themind_and_Design.md --- docs/Development/Themind_and_Design.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/Development/Themind_and_Design.md diff --git a/docs/Development/Themind_and_Design.md b/docs/Development/Themind_and_Design.md new file mode 100644 index 0000000000..38b289c53b --- /dev/null +++ b/docs/Development/Themind_and_Design.md @@ -0,0 +1,8 @@ +Welcome to OpenY Theming and Design documentation. + +### How to change styles on content type level + +Given: As an Open Y site developer, I want to be able to easily change the CSS for a Camp page +independently from a Location page, so I can better customize the site to meet the needs of my customers. + +How to: @TODO From 34cd6e5a9fd633b7a1cf52c700c76a7553544553 Mon Sep 17 00:00:00 2001 From: Andrii Podanenko Date: Thu, 5 Apr 2018 12:37:06 +0300 Subject: [PATCH 07/18] Rename Themind_and_Design.md to Theming_and_Design.md --- docs/Development/{Themind_and_Design.md => Theming_and_Design.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/Development/{Themind_and_Design.md => Theming_and_Design.md} (100%) diff --git a/docs/Development/Themind_and_Design.md b/docs/Development/Theming_and_Design.md similarity index 100% rename from docs/Development/Themind_and_Design.md rename to docs/Development/Theming_and_Design.md From 9b0ddeae6741a3173f23d295ff896eb349e9b1e6 Mon Sep 17 00:00:00 2001 From: Alexander Kolesnikov Date: Mon, 16 Apr 2018 17:00:03 +0300 Subject: [PATCH 08/18] Add CSS Editor module. Cleanup composer.json file. --- composer.json | 15 +- composer.lock | 1218 ++++++++++++++++++++++++++++------------------- drupal-org.make | 7 +- openy.info.yml | 1 + openy.install | 7 + 5 files changed, 750 insertions(+), 498 deletions(-) diff --git a/composer.json b/composer.json index bbaaa1edb5..0cf3a445f3 100644 --- a/composer.json +++ b/composer.json @@ -147,11 +147,6 @@ "docroot/libraries/{$name}": ["type:drupal-library"] }, "patches": { - "drupal/simple_menu_icons": { - "2847964 - Clear cache after simple_menu_icons_css_generate": "https://www.drupal.org/files/issues/clear-cache-after-simple_menu_icons_css_generate-2847964.patch", - "2880544 - The theme implementations may not be rendered until all modules are loaded": "https://www.drupal.org/files/issues/theme-implementations-exception-2880544.patch", - "2937058 - Clear cache performance improvement": "https://www.drupal.org/files/issues/clear-cache-after-simple_menu_icons_css_generate-2847964-2.patch" - }, "drupal/entity_browser": { "2845037 - Fixed the issue of Call to a member function getConfigDependencyKey() on null on [Widget view], and [SelectionDisplay view]": "https://www.drupal.org/files/issues/2845037_15.patch" }, @@ -161,9 +156,6 @@ "drupal/plugin": { "2647312 - Use SubFormState in plugin selectors": "https://www.drupal.org/files/issues/plugin_2647312_20.patch" }, - "drupal/views_field_formatter": { - "2874811 - Add option to show/hide empty views": "https://www.drupal.org/files/issues/Option-added-to-hide-empty-views-2874811.patch" - }, "drupal/core": { "1236098 - Notice: Undefined index in _color_rewrite_stylesheet()": "https://www.drupal.org/files/issues/undefined-index-in-_color_rewrite_stylesheet-1236098-37.patch" } @@ -198,8 +190,8 @@ "drupal/entity_embed": "1.0-beta2", "drupal/views_block_filter_block": "1.x-dev#29f6523ac806afadc48d9a6ab0c5eb13f6256a1a", "drupal/plugin": "2.5", - "drupal/migrate_plus": "3.0-rc1", - "drupal/migrate_tools": "3.0-rc1", + "drupal/migrate_plus": "4.0-beta3", + "drupal/migrate_tools": "4.0-beta3", "drupal/migrate_source_csv": "2.1", "drupal/verf": "1.0-beta6", "drupal/simple_menu_icons": "2.1", @@ -244,6 +236,7 @@ "drupal/video": "1.2", "drupal/easy_breadcrumb": "^1.6", "drupal/ckeditor_bootstrap_buttons": "^1.1", - "drupal/fontyourface": "^3.2" + "drupal/fontyourface": "^3.2", + "drupal/css_editor": "^1.2" } } diff --git a/composer.lock b/composer.lock index 97e334c4f4..4614ca3b9d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "4840111122655a0525cf67749b286149", + "content-hash": "341157795fbb866629124a1369f88415", "packages": [ { "name": "asm89/stack-cors", @@ -837,17 +837,17 @@ }, { "name": "drupal/address", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://git.drupal.org/project/address", - "reference": "8.x-1.2" + "reference": "8.x-1.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/address-8.x-1.2.zip", - "reference": "8.x-1.2", - "shasum": "041445ac14087be943c0c1c562b9bf800d87f7e8" + "url": "https://ftp.drupal.org/files/projects/address-8.x-1.3.zip", + "reference": "8.x-1.3", + "shasum": "170551d6ecf4a08bac178f31b9869a626279d9eb" }, "require": { "commerceguys/addressing": "~1.0", @@ -860,7 +860,7 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.2", + "version": "8.x-1.3", "datestamp": "1511382784", "security-coverage": { "status": "covered", @@ -894,17 +894,17 @@ }, { "name": "drupal/admin_toolbar", - "version": "1.20.0", + "version": "1.23.0", "source": { "type": "git", "url": "https://git.drupal.org/project/admin_toolbar", - "reference": "8.x-1.20" + "reference": "8.x-1.23" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/admin_toolbar-8.x-1.20.zip", - "reference": "8.x-1.20", - "shasum": "ebeb6b630c0c614b36263ac4a024b269113b6a99" + "url": "https://ftp.drupal.org/files/projects/admin_toolbar-8.x-1.23.zip", + "reference": "8.x-1.23", + "shasum": "46d7ed18a9154c35e765ae43ce43aa292c025d65" }, "require": { "drupal/core": "*" @@ -915,8 +915,8 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.20", - "datestamp": "1511190785", + "version": "8.x-1.23", + "datestamp": "1517936581", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -966,17 +966,17 @@ }, { "name": "drupal/better_exposed_filters", - "version": "3.0.0-alpha2", + "version": "3.0.0-alpha3", "source": { "type": "git", "url": "https://git.drupal.org/project/better_exposed_filters", - "reference": "8.x-3.0-alpha2" + "reference": "8.x-3.0-alpha3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/better_exposed_filters-8.x-3.0-alpha2.zip", - "reference": "8.x-3.0-alpha2", - "shasum": "f1bbe21379a4ac8e28e3edfbdd4964343299caeb" + "url": "https://ftp.drupal.org/files/projects/better_exposed_filters-8.x-3.0-alpha3.zip", + "reference": "8.x-3.0-alpha3", + "shasum": "0268a42ea5a4ab170c8f4aefecd26b6f3c7448d2" }, "require": { "drupal/core": "*" @@ -987,7 +987,7 @@ "dev-3.x": "3.x-dev" }, "drupal": { - "version": "8.x-3.0-alpha2", + "version": "8.x-3.0-alpha3", "datestamp": "1501274342", "security-coverage": { "status": "not-covered", @@ -1025,17 +1025,17 @@ }, { "name": "drupal/blazy", - "version": "1.0.0-rc1", + "version": "1.0.0-rc2", "source": { "type": "git", "url": "https://git.drupal.org/project/blazy", - "reference": "8.x-1.0-rc1" + "reference": "8.x-1.0-rc2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/blazy-8.x-1.0-rc1.zip", - "reference": "8.x-1.0-rc1", - "shasum": "0502916f2cb5b6237f13e5216e12063b8d56ce42" + "url": "https://ftp.drupal.org/files/projects/blazy-8.x-1.0-rc2.zip", + "reference": "8.x-1.0-rc2", + "shasum": "242f3022b039c6fd3b98f6ce1955d295119b4b5a" }, "require": { "drupal/core": "*" @@ -1046,7 +1046,7 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.0-rc1", + "version": "8.x-1.0-rc2", "datestamp": "1495745283", "security-coverage": { "status": "not-covered", @@ -1371,16 +1371,16 @@ }, { "name": "drupal/core", - "version": "8.4.6", + "version": "8.5.1", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "f439a43c7da1df8d16067f797c0bc3498eb4c699" + "reference": "2aeca7dfa2661296602ac16bf9fd6085f0a121be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/f439a43c7da1df8d16067f797c0bc3498eb4c699", - "reference": "f439a43c7da1df8d16067f797c0bc3498eb4c699", + "url": "https://api.github.com/repos/drupal/core/zipball/2aeca7dfa2661296602ac16bf9fd6085f0a121be", + "reference": "2aeca7dfa2661296602ac16bf9fd6085f0a121be", "shasum": "" }, "require": { @@ -1390,27 +1390,40 @@ "doctrine/common": "^2.5", "easyrdf/easyrdf": "^0.9", "egulias/email-validator": "^1.2", + "ext-date": "*", + "ext-dom": "*", + "ext-filter": "*", + "ext-gd": "*", + "ext-hash": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-pdo": "*", + "ext-session": "*", + "ext-simplexml": "*", + "ext-spl": "*", + "ext-tokenizer": "*", + "ext-xml": "*", "guzzlehttp/guzzle": "^6.2.1", "masterminds/html5": "^2.1", "paragonie/random_compat": "^1.0|^2.0", - "php": ">=5.5.9", + "php": "^5.5.9|>=7.0.8", "stack/builder": "^1.0", "symfony-cmf/routing": "^1.4", - "symfony/class-loader": "~3.2.8", - "symfony/console": "~3.2.8", - "symfony/dependency-injection": "~3.2.8", - "symfony/event-dispatcher": "~3.2.8", - "symfony/http-foundation": "~3.2.8", - "symfony/http-kernel": "~3.2.8", + "symfony/class-loader": "~3.4.0", + "symfony/console": "~3.4.0", + "symfony/dependency-injection": "~3.4.0", + "symfony/event-dispatcher": "~3.4.0", + "symfony/http-foundation": "~3.4.0", + "symfony/http-kernel": "~3.4.0", "symfony/polyfill-iconv": "^1.0", - "symfony/process": "~3.2.8", + "symfony/process": "~3.4.0", "symfony/psr-http-message-bridge": "^1.0", - "symfony/routing": "~3.2.8", - "symfony/serializer": "~3.2.8", - "symfony/translation": "~3.2.8", - "symfony/validator": "~3.2.8", - "symfony/yaml": "~3.2.8", - "twig/twig": "^1.23.1", + "symfony/routing": "~3.4.0", + "symfony/serializer": "~3.4.0", + "symfony/translation": "~3.4.0", + "symfony/validator": "~3.4.0", + "symfony/yaml": "~3.4.5", + "twig/twig": "^1.35.0", "zendframework/zend-diactoros": "^1.1", "zendframework/zend-feed": "^2.4" }, @@ -1480,6 +1493,7 @@ "drupal/image": "self.version", "drupal/inline_form_errors": "self.version", "drupal/language": "self.version", + "drupal/layout_builder": "self.version", "drupal/layout_discovery": "self.version", "drupal/link": "self.version", "drupal/locale": "self.version", @@ -1524,17 +1538,48 @@ "require-dev": { "behat/mink": "1.7.x-dev", "behat/mink-goutte-driver": "^1.2", + "behat/mink-selenium2-driver": "1.3.x-dev", "drupal/coder": "^8.2.12", "jcalderonzumba/gastonjs": "^1.0.2", "jcalderonzumba/mink-phantomjs-driver": "^0.3.1", "mikey179/vfsstream": "^1.2", "phpspec/prophecy": "^1.4", - "phpunit/phpunit": ">=4.8.35 <5", - "symfony/css-selector": "~3.2.8", - "symfony/phpunit-bridge": "~3.2.8" + "phpunit/phpunit": "^4.8.35 || ^6.1", + "symfony/css-selector": "^3.4.0", + "symfony/debug": "^3.4.0", + "symfony/phpunit-bridge": "^3.4.3" }, "type": "drupal-core", "extra": { + "merge-plugin": { + "require": [ + "core/lib/Drupal/Component/Annotation/composer.json", + "core/lib/Drupal/Component/Assertion/composer.json", + "core/lib/Drupal/Component/Bridge/composer.json", + "core/lib/Drupal/Component/ClassFinder/composer.json", + "core/lib/Drupal/Component/Datetime/composer.json", + "core/lib/Drupal/Component/DependencyInjection/composer.json", + "core/lib/Drupal/Component/Diff/composer.json", + "core/lib/Drupal/Component/Discovery/composer.json", + "core/lib/Drupal/Component/EventDispatcher/composer.json", + "core/lib/Drupal/Component/FileCache/composer.json", + "core/lib/Drupal/Component/FileSystem/composer.json", + "core/lib/Drupal/Component/Gettext/composer.json", + "core/lib/Drupal/Component/Graph/composer.json", + "core/lib/Drupal/Component/HttpFoundation/composer.json", + "core/lib/Drupal/Component/PhpStorage/composer.json", + "core/lib/Drupal/Component/Plugin/composer.json", + "core/lib/Drupal/Component/ProxyBuilder/composer.json", + "core/lib/Drupal/Component/Render/composer.json", + "core/lib/Drupal/Component/Serialization/composer.json", + "core/lib/Drupal/Component/Transliteration/composer.json", + "core/lib/Drupal/Component/Utility/composer.json", + "core/lib/Drupal/Component/Uuid/composer.json" + ], + "recurse": false, + "replace": false, + "merge-extra": false + }, "patches_applied": { "1236098 - Notice: Undefined index in _color_rewrite_stylesheet()": "https://www.drupal.org/files/issues/undefined-index-in-_color_rewrite_stylesheet-1236098-37.patch" } @@ -1557,39 +1602,36 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", - "time": "2018-03-27T10:03:10+00:00" + "time": "2018-03-27T09:58:42+00:00" }, { "name": "drupal/crop", - "version": "1.3.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://git.drupal.org/project/crop", - "reference": "8.x-1.3" + "reference": "8.x-1.5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/crop-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "8075371124c0fd3c70e17c071ac09e9c8d5cf1ed" + "url": "https://ftp.drupal.org/files/projects/crop-8.x-1.5.zip", + "reference": "8.x-1.5", + "shasum": "bb275293508cb3988ca6ab766dc1f6ecc22cc03d" }, "require": { "drupal/core": "*" }, - "require-dev": { - "drupal/media_entity": "*" - }, "type": "drupal-module", "extra": { "branch-alias": { "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.3", - "datestamp": "1516120085", + "version": "8.x-1.5", + "datestamp": "1516357085", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -1621,6 +1663,61 @@ "issues": "https://www.drupal.org/project/issues/crop" } }, + { + "name": "drupal/css_editor", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://git.drupal.org/project/css_editor", + "reference": "8.x-1.2" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/css_editor-8.x-1.2.zip", + "reference": "8.x-1.2", + "shasum": "e7e54ec3781420ead909e51a8864174a253fce26" + }, + "require": { + "drupal/core": "~8.0" + }, + "type": "drupal-module", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.2", + "datestamp": "1510935485", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "caiosba", + "homepage": "https://www.drupal.org/user/1774198" + }, + { + "name": "encelado", + "homepage": "https://www.drupal.org/user/701446" + }, + { + "name": "infojunkie", + "homepage": "https://www.drupal.org/user/48424" + } + ], + "description": "Customize your CSS directly from the browser.", + "homepage": "https://www.drupal.org/project/css_editor", + "support": { + "source": "http://cgit.drupalcode.org/css_editor" + } + }, { "name": "drupal/ctools", "version": "3.0.0", @@ -1763,14 +1860,21 @@ }, { "name": "drupal/datalayer", - "version": "dev-1.x", + "version": "1.0.0-beta1", "source": { "type": "git", "url": "https://git.drupal.org/project/datalayer", - "reference": "bdc945941e65dc45b4de3471847338995514767c" + "reference": "8.x-1.0-beta1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/datalayer-8.x-1.0-beta1.zip", + "reference": "8.x-1.0-beta1", + "shasum": "972a9720c0a3482b0bb7b31bbe1b45dea4611528" }, "require": { - "drupal/core": "~8.0" + "drupal/core": "~8.0", + "drupal/libraries": "*" }, "type": "drupal-module", "extra": { @@ -1778,11 +1882,11 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.0-beta1+17-dev", - "datestamp": "1518482584", + "version": "8.x-1.0-beta1", + "datestamp": "1489803485", "security-coverage": { "status": "not-covered", - "message": "Dev releases are not covered by Drupal security advisories." + "message": "Beta releases are not covered by Drupal security advisories." } } }, @@ -1808,8 +1912,7 @@ "homepage": "https://www.drupal.org/project/datalayer", "support": { "source": "http://cgit.drupalcode.org/datalayer" - }, - "time": "2018-02-13T18:39:37+00:00" + } }, { "name": "drupal/dropzonejs", @@ -1900,17 +2003,17 @@ }, { "name": "drupal/easy_breadcrumb", - "version": "1.6.0", + "version": "1.7.0", "source": { "type": "git", "url": "https://git.drupal.org/project/easy_breadcrumb", - "reference": "8.x-1.6" + "reference": "8.x-1.7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/easy_breadcrumb-8.x-1.6.zip", - "reference": "8.x-1.6", - "shasum": "d7e4fcbb76a65bc33230d45c3bf41c4689b8e1a2" + "url": "https://ftp.drupal.org/files/projects/easy_breadcrumb-8.x-1.7.zip", + "reference": "8.x-1.7", + "shasum": "100cc430576962f3e21a66f738b3c219a0759b5a" }, "require": { "drupal/core": "~8.0" @@ -1921,8 +2024,8 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.6", - "datestamp": "1487359983", + "version": "8.x-1.7", + "datestamp": "1523293380", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2032,20 +2135,20 @@ }, { "name": "drupal/entity", - "version": "1.0.0-beta1", + "version": "1.0.0-beta3", "source": { "type": "git", "url": "https://git.drupal.org/project/entity", - "reference": "8.x-1.0-beta1" + "reference": "8.x-1.0-beta3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity-8.x-1.0-beta1.zip", - "reference": "8.x-1.0-beta1", - "shasum": "6965349818de8cb820113b6841076162190c1a4c" + "url": "https://ftp.drupal.org/files/projects/entity-8.x-1.0-beta3.zip", + "reference": "8.x-1.0-beta3", + "shasum": "5d74dbef7bff0db099517b2c7aad14312eb02afa" }, "require": { - "drupal/core": "~8.3" + "drupal/core": "~8.5" }, "type": "drupal-module", "extra": { @@ -2053,8 +2156,8 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.0-beta1", - "datestamp": "1520873280", + "version": "8.x-1.0-beta3", + "datestamp": "1520958485", "security-coverage": { "status": "not-covered", "message": "Beta releases are not covered by Drupal security advisories." @@ -2095,17 +2198,17 @@ }, { "name": "drupal/entity_browser", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://git.drupal.org/project/entity_browser", - "reference": "8.x-1.3" + "reference": "8.x-1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "4bd931f5245dc1f2c6f22db7146212c0265ba612" + "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "4375e996b8d1e103ca5daf9ce352e2af9cab568f" }, "require": { "drupal/core": "~8.0" @@ -2124,7 +2227,7 @@ "dev-8.x-1.x": "8.1.x-dev" }, "drupal": { - "version": "8.x-1.3", + "version": "8.x-1.4", "datestamp": "1512033785", "security-coverage": { "status": "covered", @@ -2254,17 +2357,17 @@ }, { "name": "drupal/entity_reference_revisions", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://git.drupal.org/project/entity_reference_revisions", - "reference": "8.x-1.3" + "reference": "8.x-1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity_reference_revisions-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "78aebb58efbbfcbb2faa40a1afc0830312b32631" + "url": "https://ftp.drupal.org/files/projects/entity_reference_revisions-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "0d5e159ab52fe8e5aa7c27e7ccfc0299e1af4d72" }, "require": { "drupal/core": "~8.0" @@ -2278,7 +2381,7 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.3", + "version": "8.x-1.4", "datestamp": "1515143885", "security-coverage": { "status": "covered", @@ -2312,20 +2415,20 @@ }, { "name": "drupal/features", - "version": "3.5.0", + "version": "3.7.0", "source": { "type": "git", "url": "https://git.drupal.org/project/features", - "reference": "8.x-3.5" + "reference": "8.x-3.7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/features-8.x-3.5.zip", - "reference": "8.x-3.5", - "shasum": "546b34387018f9adbe742b6992c4d473f9447c41" + "url": "https://ftp.drupal.org/files/projects/features-8.x-3.7.zip", + "reference": "8.x-3.7", + "shasum": "1a832002f47f32a83eae789e42e4f06225de9e43" }, "require": { - "drupal/config_update": "*", + "drupal/config_update": "^1.4", "drupal/core": "*" }, "type": "drupal-module", @@ -2334,8 +2437,8 @@ "dev-3.x": "3.x-dev" }, "drupal": { - "version": "8.x-3.5", - "datestamp": "1519703584", + "version": "8.x-3.7", + "datestamp": "1519763284", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2376,7 +2479,7 @@ "homepage": "https://www.drupal.org/user/241634" } ], - "description": "Enables administrators to package configuration into modules.", + "description": "Enables administrators to package configuration into modules", "homepage": "https://www.drupal.org/project/features", "support": { "source": "http://cgit.drupalcode.org/features" @@ -2384,17 +2487,17 @@ }, { "name": "drupal/field_group", - "version": "1.0.0", + "version": "3.0.0-beta1", "source": { "type": "git", "url": "https://git.drupal.org/project/field_group", - "reference": "8.x-1.0" + "reference": "8.x-3.0-beta1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/field_group-8.x-1.0.zip", - "reference": "8.x-1.0", - "shasum": "e8aa3fae5c3c5dec84644bb577996938d638a611" + "url": "https://ftp.drupal.org/files/projects/field_group-8.x-3.0-beta1.zip", + "reference": "8.x-3.0-beta1", + "shasum": "a5dfb66385be7a1b3db232e49779d5bc530a048e" }, "require": { "drupal/core": "*" @@ -2402,14 +2505,14 @@ "type": "drupal-module", "extra": { "branch-alias": { - "dev-1.x": "1.x-dev" + "dev-3.x": "3.x-dev" }, "drupal": { - "version": "8.x-1.0", - "datestamp": "1510352885", + "version": "8.x-3.0-beta1", + "datestamp": "1510352338", "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" + "status": "not-covered", + "message": "Beta releases are not covered by Drupal security advisories." } } }, @@ -2447,17 +2550,17 @@ }, { "name": "drupal/focal_point", - "version": "1.0.0-beta5", + "version": "1.0.0-beta6", "source": { "type": "git", "url": "https://git.drupal.org/project/focal_point", - "reference": "8.x-1.0-beta5" + "reference": "8.x-1.0-beta6" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/focal_point-8.x-1.0-beta5.zip", - "reference": "8.x-1.0-beta5", - "shasum": "ab5eb9a0e6d487998e3c30fa50a3f73349a76983" + "url": "https://ftp.drupal.org/files/projects/focal_point-8.x-1.0-beta6.zip", + "reference": "8.x-1.0-beta6", + "shasum": "b06d3540ee49113e266191b2dba3af5d82990f38" }, "require": { "drupal/core": "*", @@ -2472,7 +2575,7 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.0-beta5", + "version": "8.x-1.0-beta6", "datestamp": "1519932484", "security-coverage": { "status": "not-covered", @@ -2803,7 +2906,7 @@ }, "drupal": { "version": "8.x-1.3", - "datestamp": "1486115582", + "datestamp": "1523761084", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2832,11 +2935,17 @@ }, { "name": "drupal/libraries", - "version": "dev-3.x", + "version": "3.0.0-alpha1", "source": { "type": "git", "url": "https://git.drupal.org/project/libraries", - "reference": "061ead081c92a6209b09eaf23b4e3103f360946e" + "reference": "8.x-3.0-alpha1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/libraries-8.x-3.0-alpha1.zip", + "reference": "8.x-3.0-alpha1", + "shasum": "bb07036b1eaeea7d736fc7e72416238830cd8d67" }, "require": { "drupal/core": "~8.0" @@ -2847,11 +2956,11 @@ "dev-3.x": "3.x-dev" }, "drupal": { - "version": "8.x-3.x-dev", - "datestamp": "1489597683", + "version": "8.x-3.0-alpha1", + "datestamp": "1517046484", "security-coverage": { "status": "not-covered", - "message": "Dev releases are not covered by Drupal security advisories." + "message": "Alpha releases are not covered by Drupal security advisories." } } }, @@ -2883,22 +2992,21 @@ "source": "http://cgit.drupalcode.org/libraries", "issues": "http://drupal.org/project/issues/libraries", "irc": "irc://irc.freenode.org/drupal-contribute" - }, - "time": "2017-03-15T17:04:08+00:00" + } }, { "name": "drupal/lndr", - "version": "1.11.0", + "version": "1.15.0", "source": { "type": "git", "url": "https://git.drupal.org/project/lndr", - "reference": "8.x-1.11" + "reference": "8.x-1.15" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/lndr-8.x-1.11.zip", - "reference": "8.x-1.11", - "shasum": "e2d69f4f271d6dcd327b271b11c8975df7e91e15" + "url": "https://ftp.drupal.org/files/projects/lndr-8.x-1.15.zip", + "reference": "8.x-1.15", + "shasum": "445f40472413a179590fff005d7d69ba7f1e4e94" }, "require": { "drupal/core": "*" @@ -2909,8 +3017,8 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.11", - "datestamp": "1510604584", + "version": "8.x-1.15", + "datestamp": "1519175583", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3197,17 +3305,17 @@ }, { "name": "drupal/metatag", - "version": "1.3.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://git.drupal.org/project/metatag", - "reference": "8.x-1.3" + "reference": "8.x-1.5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/metatag-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "5ff80fe91a1ea0446b11aef6c947259305080a38" + "url": "https://ftp.drupal.org/files/projects/metatag-8.x-1.5.zip", + "reference": "8.x-1.5", + "shasum": "48f1c2a4e93ef1af1eb4b5b6cc6321e951fd1002" }, "require": { "drupal/core": "*", @@ -3217,6 +3325,7 @@ "drupal/devel": "^1.0", "drupal/metatag_dc": "*", "drupal/metatag_open_graph": "*", + "drupal/redirect": "^1.0", "drupal/restui": "^1.0" }, "type": "drupal-module", @@ -3225,8 +3334,8 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.3", - "datestamp": "1513888384", + "version": "8.x-1.5", + "datestamp": "1522344484", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3251,7 +3360,7 @@ "description": "Manage meta tags for all entities.", "homepage": "https://www.drupal.org/project/metatag", "keywords": [ - "php", + "Drupal", "seo" ], "support": { @@ -3261,36 +3370,37 @@ }, { "name": "drupal/migrate_plus", - "version": "3.0.0-beta1", + "version": "4.0.0-beta3", "source": { "type": "git", "url": "https://git.drupal.org/project/migrate_plus", - "reference": "8.x-3.0-beta1" + "reference": "8.x-4.0-beta3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/migrate_plus-8.x-3.0-beta1.zip", - "reference": "8.x-3.0-beta1", - "shasum": "7bae5c758a432053863b7b19c94fc1b829debf00" + "url": "https://ftp.drupal.org/files/projects/migrate_plus-8.x-4.0-beta3.zip", + "reference": "8.x-4.0-beta3", + "shasum": "a0da6dc169a0315bf29a8dd0ee2146d18215a56b" }, "require": { - "drupal/core": "^8.2" + "drupal/core": "^8.3" }, "require-dev": { "drupal/migrate_example_advanced_setup": "*", "drupal/migrate_example_setup": "*" }, "suggest": { + "ext-soap": "*", "sainsburys/guzzle-oauth2-plugin": "3.0 required for the OAuth2 authentication plugin" }, "type": "drupal-module", "extra": { "branch-alias": { - "dev-3.x": "3.x-dev" + "dev-4.x": "4.x-dev" }, "drupal": { - "version": "8.x-3.0-beta1", - "datestamp": "1494450485", + "version": "8.x-4.0-beta3", + "datestamp": "1519400592", "security-coverage": { "status": "not-covered", "message": "Beta releases are not covered by Drupal security advisories." @@ -3322,22 +3432,23 @@ }, { "name": "drupal/migrate_source_csv", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://git.drupal.org/project/migrate_source_csv", - "reference": "8.x-2.0" + "reference": "8.x-2.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/migrate_source_csv-8.x-2.0.zip", - "reference": "8.x-2.0", - "shasum": "056845ce1679a051733b12576e3204609dce293d" + "url": "https://ftp.drupal.org/files/projects/migrate_source_csv-8.x-2.1.zip", + "reference": "8.x-2.1", + "shasum": "30f836785d8dc7932c86c2f7acbae8811ec29544" }, "require": { "drupal/core": "~8.1" }, "require-dev": { + "drupal/migrate_plus": "^4", "mikey179/vfsstream": "~1", "phpunit/phpunit": "~4" }, @@ -3347,7 +3458,7 @@ "dev-2.x": "2.x-dev" }, "drupal": { - "version": "8.x-2.0", + "version": "8.x-2.1", "datestamp": "1521470284", "security-coverage": { "status": "covered", @@ -3380,39 +3491,47 @@ }, { "name": "drupal/migrate_tools", - "version": "3.0.0-beta1", + "version": "4.0.0-beta3", "source": { "type": "git", "url": "https://git.drupal.org/project/migrate_tools", - "reference": "8.x-3.0-beta1" + "reference": "8.x-4.0-beta3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/migrate_tools-8.x-3.0-beta1.zip", - "reference": "8.x-3.0-beta1", - "shasum": "1511d1da1444743fa2defa54a17e62264e8ab836" + "url": "https://ftp.drupal.org/files/projects/migrate_tools-8.x-4.0-beta3.zip", + "reference": "8.x-4.0-beta3", + "shasum": "5256ef34d63bbcc564bd9e1e4434c34f12983dba" }, "require": { - "drupal/core": "^8.2", + "drupal/core": "^8.3", "drupal/migrate_plus": "*" }, + "require-dev": { + "drupal/coder": "^8" + }, "type": "drupal-module", "extra": { "branch-alias": { - "dev-3.x": "3.x-dev" + "dev-4.x": "4.x-dev" }, "drupal": { - "version": "8.x-3.0-beta1", - "datestamp": "1494450485", + "version": "8.x-4.0-beta3", + "datestamp": "1519400285", "security-coverage": { "status": "not-covered", "message": "Beta releases are not covered by Drupal security advisories." } + }, + "drush": { + "services": { + "drush.services.yml": "^9" + } } }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0-or-later" + "GPL-2.0+" ], "authors": [ { @@ -3429,9 +3548,11 @@ } ], "description": "Tools to assist in developing and running migrations.", - "homepage": "https://www.drupal.org/project/migrate_tools", + "homepage": "http://drupal.org/project/migrate_tools", "support": { - "source": "http://cgit.drupalcode.org/migrate_tools" + "source": "http://cgit.drupalcode.org/migrate_tools", + "issues": "http://drupal.org/project/migrate_tools", + "irc": "irc://irc.freenode.org/drupal-migrate" } }, { @@ -3458,7 +3579,7 @@ }, "drupal": { "version": "8.x-3.0", - "datestamp": "1507339145", + "datestamp": "1523248085", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3620,17 +3741,17 @@ }, { "name": "drupal/pathauto", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://git.drupal.org/project/pathauto", - "reference": "8.x-1.0" + "reference": "8.x-1.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/pathauto-8.x-1.0.zip", - "reference": "8.x-1.0", - "shasum": "4c82a5689a18421c8c73fcc8be7b333bb21ae02a" + "url": "https://ftp.drupal.org/files/projects/pathauto-8.x-1.1.zip", + "reference": "8.x-1.1", + "shasum": "3e24c9ff419c1f4bbe9d638eb7477a2169777a11" }, "require": { "drupal/core": "*", @@ -3643,7 +3764,7 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.0", + "version": "8.x-1.1", "datestamp": "1520092685", "security-coverage": { "status": "covered", @@ -3746,23 +3867,24 @@ }, { "name": "drupal/rabbit_hole", - "version": "1.0.0-beta3", + "version": "1.0.0-beta4", "source": { "type": "git", "url": "https://git.drupal.org/project/rabbit_hole", - "reference": "8.x-1.0-beta3" + "reference": "8.x-1.0-beta4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/rabbit_hole-8.x-1.0-beta3.zip", - "reference": "8.x-1.0-beta3", - "shasum": "cb9138d370a7015a1b060b5504f6a1c6fc7f26eb" + "url": "https://ftp.drupal.org/files/projects/rabbit_hole-8.x-1.0-beta4.zip", + "reference": "8.x-1.0-beta4", + "shasum": "ef2917a8b53b7576ac8df6bda1a39d93053cd831" }, "require": { "drupal/core": "~8.0" }, "require-dev": { "drupal/file_entity": "*", + "drupal/group": "*", "drupal/media_entity": "*" }, "type": "drupal-module", @@ -3771,7 +3893,7 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.0-beta3", + "version": "8.x-1.0-beta4", "datestamp": "1506790444", "security-coverage": { "status": "not-covered", @@ -3814,20 +3936,20 @@ }, { "name": "drupal/recaptcha", - "version": "2.2.0", + "version": "2.3.0", "source": { "type": "git", "url": "https://git.drupal.org/project/recaptcha", - "reference": "8.x-2.2" + "reference": "8.x-2.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/recaptcha-8.x-2.2.zip", - "reference": "8.x-2.2", - "shasum": "99a3bda62b34ad6dac1d497fcf578e25aad0a3e0" + "url": "https://ftp.drupal.org/files/projects/recaptcha-8.x-2.3.zip", + "reference": "8.x-2.3", + "shasum": "bd77c79c33c6732328a7c582adbe0aaffe704e74" }, "require": { - "drupal/captcha": "*", + "drupal/captcha": "^1.0.0-alpha1", "drupal/core": "~8.0" }, "type": "drupal-module", @@ -3836,7 +3958,7 @@ "dev-2.x": "2.x-dev" }, "drupal": { - "version": "8.x-2.2", + "version": "8.x-2.3", "datestamp": "1521320880", "security-coverage": { "status": "covered", @@ -3879,17 +4001,17 @@ }, { "name": "drupal/redirect", - "version": "1.0.0-beta1", + "version": "1.1.0", "source": { "type": "git", "url": "https://git.drupal.org/project/redirect", - "reference": "8.x-1.0-beta1" + "reference": "8.x-1.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/redirect-8.x-1.0-beta1.zip", - "reference": "8.x-1.0-beta1", - "shasum": "0be21502538afc193a6817089476e7f6ddae2f6d" + "url": "https://ftp.drupal.org/files/projects/redirect-8.x-1.1.zip", + "reference": "8.x-1.1", + "shasum": "32916081c436ea325b51bc5b3ec840fa19857cf7" }, "require": { "drupal/core": "~8" @@ -3900,11 +4022,11 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.0-beta1", - "datestamp": "1513767485", + "version": "8.x-1.1", + "datestamp": "1520897880", "security-coverage": { - "status": "not-covered", - "message": "Beta releases are not covered by Drupal security advisories." + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } } }, @@ -3998,11 +4120,17 @@ }, { "name": "drupal/simple_menu_icons", - "version": "dev-1.x", + "version": "2.1.0", "source": { "type": "git", "url": "https://git.drupal.org/project/simple_menu_icons", - "reference": "1780b0ffe3b508085823b4a72e6a2512fcfde7b9" + "reference": "8.x-2.1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/simple_menu_icons-8.x-2.1.zip", + "reference": "8.x-2.1", + "shasum": "75c03856a7a83b1b788bc6693a55987cf1ace686" }, "require": { "drupal/core": "*" @@ -4010,20 +4138,15 @@ "type": "drupal-module", "extra": { "branch-alias": { - "dev-1.x": "1.x-dev" + "dev-2.x": "2.x-dev" }, "drupal": { - "version": "8.x-1.0-beta5+3-dev", - "datestamp": "1475508576", + "version": "8.x-2.1", + "datestamp": "1517693280", "security-coverage": { - "status": "not-covered", - "message": "Dev releases are not covered by Drupal security advisories." + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } - }, - "patches_applied": { - "2847964 - Clear cache after simple_menu_icons_css_generate": "https://www.drupal.org/files/issues/clear-cache-after-simple_menu_icons_css_generate-2847964.patch", - "2880544 - The theme implementations may not be rendered until all modules are loaded": "https://www.drupal.org/files/issues/theme-implementations-exception-2880544.patch", - "2937058 - Clear cache performance improvement": "https://www.drupal.org/files/issues/clear-cache-after-simple_menu_icons_css_generate-2847964-2.patch" } }, "notification-url": "https://packages.drupal.org/8/downloads", @@ -4060,22 +4183,21 @@ "homepage": "https://www.drupal.org/project/simple_menu_icons", "support": { "source": "http://cgit.drupalcode.org/simple_menu_icons" - }, - "time": "2016-10-03T15:25:52+00:00" + } }, { "name": "drupal/simple_sitemap", - "version": "2.9.0", + "version": "2.11.0", "source": { "type": "git", "url": "https://git.drupal.org/project/simple_sitemap", - "reference": "8.x-2.9" + "reference": "8.x-2.11" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/simple_sitemap-8.x-2.9.zip", - "reference": "8.x-2.9", - "shasum": "73bc5b375a7563ee217688f752318fe044b1e9de" + "url": "https://ftp.drupal.org/files/projects/simple_sitemap-8.x-2.11.zip", + "reference": "8.x-2.11", + "shasum": "d4b5f24c90d0636acd2c345eca566891194a7d0a" }, "require": { "drupal/core": "~8.0" @@ -4086,12 +4208,17 @@ "dev-2.x": "2.x-dev" }, "drupal": { - "version": "8.x-2.9", - "datestamp": "1506357544", + "version": "8.x-2.11", + "datestamp": "1523202480", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" } + }, + "drush": { + "services": { + "drush.services.yml": "^9" + } } }, "notification-url": "https://packages.drupal.org/8/downloads", @@ -4227,17 +4354,17 @@ }, { "name": "drupal/token", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://git.drupal.org/project/token", - "reference": "8.x-1.0" + "reference": "8.x-1.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/token-8.x-1.0.zip", - "reference": "8.x-1.0", - "shasum": "d24c7f1ffddbd0fc56bc92bacae1c4ff769a4442" + "url": "https://ftp.drupal.org/files/projects/token-8.x-1.1.zip", + "reference": "8.x-1.1", + "shasum": "f11042a76bec028b0a86dc33cf6daa19eb55d545" }, "require": { "drupal/core": "~8.0" @@ -4248,7 +4375,7 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.0", + "version": "8.x-1.1", "datestamp": "1513810384", "security-coverage": { "status": "covered", @@ -4294,17 +4421,17 @@ }, { "name": "drupal/token_filter", - "version": "1.0.0-beta1", + "version": "1.0.0-beta2", "source": { "type": "git", "url": "https://git.drupal.org/project/token_filter", - "reference": "8.x-1.0-beta1" + "reference": "8.x-1.0-beta2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/token_filter-8.x-1.0-beta1.zip", - "reference": "8.x-1.0-beta1", - "shasum": "a5fa4eef46cf410353315dbb348bc99669b54b9a" + "url": "https://ftp.drupal.org/files/projects/token_filter-8.x-1.0-beta2.zip", + "reference": "8.x-1.0-beta2", + "shasum": "67a16122b83f66245cc8b2cc1ed11c2eab7f5ede" }, "require": { "drupal/core": "*", @@ -4316,7 +4443,7 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.0-beta1", + "version": "8.x-1.0-beta2", "datestamp": "1521720480", "security-coverage": { "status": "not-covered", @@ -4588,50 +4715,61 @@ }, { "name": "drupal/views_field_formatter", - "version": "1.5.0", + "version": "1.7.0", "source": { "type": "git", "url": "https://git.drupal.org/project/views_field_formatter", - "reference": "8.x-1.5" + "reference": "8.x-1.7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/views_field_formatter-8.x-1.5.zip", - "reference": "8.x-1.5", - "shasum": "cf93365c2294da640d65adf48a476dcfe1928778" + "url": "https://ftp.drupal.org/files/projects/views_field_formatter-8.x-1.7.zip", + "reference": "8.x-1.7", + "shasum": "907d278c630770d15875cb9dc38c24f4e45856e3" }, "require": { "drupal/core": "*" }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.7", + "phpmd/phpmd": "^2.6", + "phpro/grumphp": "^0.12", + "sebastian/phpcpd": "^3.0", + "sensiolabs/security-checker": "^4.1", + "squizlabs/php_codesniffer": "^3.0" + }, "type": "drupal-module", "extra": { "branch-alias": { "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.5", - "datestamp": "1510779484", + "version": "8.x-1.7", + "datestamp": "1512324785", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" } - }, - "patches_applied": { - "2874811 - Add option to show/hide empty views": "https://www.drupal.org/files/issues/Option-added-to-hide-empty-views-2874811.patch" } }, "notification-url": "https://packages.drupal.org/8/downloads", + "scripts": { + "grumphp": [ + "./vendor/bin/grumphp run" + ] + }, "license": [ - "GPL-2.0-or-later" + "GPL-2.0+" ], "authors": [ { - "name": "Pol", - "homepage": "https://www.drupal.org/user/47194" + "name": "Pol Dellaiera", + "homepage": "https://www.drupal.org/user/47194", + "email": "pol.dellaiera@protonmail.com" } ], - "description": "Use the result of a view to display a field.", - "homepage": "https://www.drupal.org/project/views_field_formatter", + "description": "Provide a new field formatter: 'View' for each field types and allows you to select a View and to use its result instead of the original field value.", + "homepage": "https://drupal.org/project/views_field_formatter", "support": { "source": "http://cgit.drupalcode.org/views_field_formatter" } @@ -4689,32 +4827,43 @@ }, { "name": "drupal/webform", - "version": "5.0.0-beta24", + "version": "5.0.0-rc7", "source": { "type": "git", "url": "https://git.drupal.org/project/webform", - "reference": "8.x-5.0-beta24" + "reference": "8.x-5.0-rc7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/webform-8.x-5.0-beta24.zip", - "reference": "8.x-5.0-beta24", - "shasum": "bb2df75e466c6bd6fbf552bff183574bd628f33f" + "url": "https://ftp.drupal.org/files/projects/webform-8.x-5.0-rc7.zip", + "reference": "8.x-5.0-rc7", + "shasum": "4bac8cb69337034d9737f0d746d74097048d5f72" }, "require": { "drupal/core": "*" }, + "require-dev": { + "drupal/devel": "*", + "drupal/token": "*", + "drupal/webform_node": "*", + "drupal/webform_scheduled_email": "*" + }, "type": "drupal-module", "extra": { "branch-alias": { "dev-5.x": "5.x-dev" }, "drupal": { - "version": "8.x-5.0-beta24", - "datestamp": "1513003985", + "version": "8.x-5.0-rc7", + "datestamp": "1522698184", "security-coverage": { "status": "not-covered", - "message": "Beta releases are not covered by Drupal security advisories." + "message": "RC releases are not covered by Drupal security advisories." + } + }, + "drush": { + "services": { + "drush.services.yml": "^9" } } }, @@ -4729,8 +4878,9 @@ "role": "Maintainer" }, { - "name": "Liam Morland", - "homepage": "https://www.drupal.org/user/493050" + "name": "Alexander Trotsenko (bucefal91)", + "homepage": "https://www.drupal.org/u/bucefal91", + "role": "Co-maintainer" }, { "name": "bucefal91", @@ -4769,7 +4919,9 @@ "homepage": "https://drupal.org/project/webform", "support": { "source": "http://cgit.drupalcode.org/webform", - "issues": "https://drupal.org/project/issues/webform" + "issues": "https://www.drupal.org/project/issues/webform?version=8.x", + "docs": "https://www.drupal.org/docs/8/modules/webform", + "forum": "https://drupal.stackexchange.com/questions/tagged/webform" } }, { @@ -5262,6 +5414,55 @@ ], "time": "2018-04-04T21:24:14+00:00" }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, { "name": "psr/http-message", "version": "1.0.1", @@ -5469,23 +5670,23 @@ }, { "name": "symfony/class-loader", - "version": "v3.2.14", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/class-loader.git", - "reference": "e192d96b15fdd168bdb1c91001d26c93ba4af482" + "reference": "e63c12699822bb3b667e7216ba07fbcc3a3e203e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/e192d96b15fdd168bdb1c91001d26c93ba4af482", - "reference": "e192d96b15fdd168bdb1c91001d26c93ba4af482", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/e63c12699822bb3b667e7216ba07fbcc3a3e203e", + "reference": "e63c12699822bb3b667e7216ba07fbcc3a3e203e", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^5.5.9|>=7.0.8" }, "require-dev": { - "symfony/finder": "~2.8|~3.0", + "symfony/finder": "~2.8|~3.0|~4.0", "symfony/polyfill-apcu": "~1.1" }, "suggest": { @@ -5494,7 +5695,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -5521,43 +5722,49 @@ ], "description": "Symfony ClassLoader Component", "homepage": "https://symfony.com", - "time": "2017-06-01T21:00:24+00:00" + "time": "2018-01-03T07:37:34+00:00" }, { "name": "symfony/console", - "version": "v3.2.14", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "eced439413608647aeff243038a33ea246b2b33a" + "reference": "d4bb70fa24d540c309d88a9d6e43fb2d339b1fbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/eced439413608647aeff243038a33ea246b2b33a", - "reference": "eced439413608647aeff243038a33ea246b2b33a", + "url": "https://api.github.com/repos/symfony/console/zipball/d4bb70fa24d540c309d88a9d6e43fb2d339b1fbf", + "reference": "d4bb70fa24d540c309d88a9d6e43fb2d339b1fbf", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/debug": "~2.8|~3.0", + "php": "^5.5.9|>=7.0.8", + "symfony/debug": "~2.8|~3.0|~4.0", "symfony/polyfill-mbstring": "~1.0" }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" + }, "require-dev": { "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/filesystem": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0" + "symfony/config": "~3.3|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.3|~4.0" }, "suggest": { "psr/log": "For using the console logger", "symfony/event-dispatcher": "", - "symfony/filesystem": "", + "symfony/lock": "", "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -5584,36 +5791,36 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2017-07-29T21:27:41+00:00" + "time": "2018-04-03T05:22:50+00:00" }, { "name": "symfony/debug", - "version": "v3.4.7", + "version": "v4.0.8", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "9cf7c2271cfb89ef9727db1b740ca77be57bf9d7" + "reference": "5961d02d48828671f5d8a7805e06579d692f6ede" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/9cf7c2271cfb89ef9727db1b740ca77be57bf9d7", - "reference": "9cf7c2271cfb89ef9727db1b740ca77be57bf9d7", + "url": "https://api.github.com/repos/symfony/debug/zipball/5961d02d48828671f5d8a7805e06579d692f6ede", + "reference": "5961d02d48828671f5d8a7805e06579d692f6ede", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": "^7.1.3", "psr/log": "~1.0" }, "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + "symfony/http-kernel": "<3.4" }, "require-dev": { - "symfony/http-kernel": "~2.8|~3.0|~4.0" + "symfony/http-kernel": "~3.4|~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -5640,43 +5847,51 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2018-04-03T05:22:50+00:00" + "time": "2018-04-03T05:24:00+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.2.14", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "d9f2e62e1a93d52ad4e4f6faaf66f6eef723d761" + "reference": "24a68710c6ddc1e3d159a110cef94cedfcf3c611" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d9f2e62e1a93d52ad4e4f6faaf66f6eef723d761", - "reference": "d9f2e62e1a93d52ad4e4f6faaf66f6eef723d761", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/24a68710c6ddc1e3d159a110cef94cedfcf3c611", + "reference": "24a68710c6ddc1e3d159a110cef94cedfcf3c611", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^5.5.9|>=7.0.8", + "psr/container": "^1.0" }, "conflict": { - "symfony/yaml": "<3.2" + "symfony/config": "<3.3.7", + "symfony/finder": "<3.3", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "psr/container-implementation": "1.0" }, "require-dev": { - "symfony/config": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/yaml": "~3.2" + "symfony/config": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { "symfony/config": "", "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -5703,31 +5918,34 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2017-07-28T15:22:55+00:00" + "time": "2018-03-29T11:25:31+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v3.2.14", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b8de6ee252af19330dd72ad5fc0dd4658a1d6325" + "reference": "fdd5abcebd1061ec647089c6c41a07ed60af09f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b8de6ee252af19330dd72ad5fc0dd4658a1d6325", - "reference": "b8de6ee252af19330dd72ad5fc0dd4658a1d6325", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/fdd5abcebd1061ec647089c6c41a07ed60af09f8", + "reference": "fdd5abcebd1061ec647089c6c41a07ed60af09f8", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/dependency-injection": "<3.3" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/dependency-injection": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/stopwatch": "~2.8|~3.0" + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0" }, "suggest": { "symfony/dependency-injection": "", @@ -5736,7 +5954,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -5763,33 +5981,34 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2017-06-02T08:26:05+00:00" + "time": "2018-04-06T07:35:25+00:00" }, { "name": "symfony/http-foundation", - "version": "v3.2.14", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "107b7e6c2372ad4859b8a8c8c5b4fb9d7a208fe1" + "reference": "b11e6d165ff4cbf5685d185ab19a90f2f3bb7d1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/107b7e6c2372ad4859b8a8c8c5b4fb9d7a208fe1", - "reference": "107b7e6c2372ad4859b8a8c8c5b4fb9d7a208fe1", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b11e6d165ff4cbf5685d185ab19a90f2f3bb7d1e", + "reference": "b11e6d165ff4cbf5685d185ab19a90f2f3bb7d1e", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.1" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php70": "~1.6" }, "require-dev": { - "symfony/expression-language": "~2.8|~3.0" + "symfony/expression-language": "~2.8|~3.0|~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -5816,53 +6035,58 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2017-07-20T07:58:49+00:00" + "time": "2018-04-03T05:22:50+00:00" }, { "name": "symfony/http-kernel", - "version": "v3.2.14", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "18ec42e19ec676d7da5ddff13f1eed68d88fb460" + "reference": "3cc2d4374aa9590c09277ad68657671cf49dbbf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/18ec42e19ec676d7da5ddff13f1eed68d88fb460", - "reference": "18ec42e19ec676d7da5ddff13f1eed68d88fb460", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/3cc2d4374aa9590c09277ad68657671cf49dbbf4", + "reference": "3cc2d4374aa9590c09277ad68657671cf49dbbf4", "shasum": "" }, "require": { - "php": ">=5.5.9", + "php": "^5.5.9|>=7.0.8", "psr/log": "~1.0", - "symfony/debug": "~2.8|~3.0", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/http-foundation": "~2.8.13|~3.1.6|~3.2" + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "^3.4.4|^4.0.4" }, "conflict": { "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4.5|<4.0.5,>=4", + "symfony/var-dumper": "<3.3", "twig/twig": "<1.34|<2.4,>=2" }, + "provide": { + "psr/log-implementation": "1.0" + }, "require-dev": { - "symfony/browser-kit": "~2.8|~3.0", + "psr/cache": "~1.0", + "symfony/browser-kit": "~2.8|~3.0|~4.0", "symfony/class-loader": "~2.8|~3.0", - "symfony/config": "~2.8|~3.0", - "symfony/console": "~2.8|~3.0", - "symfony/css-selector": "~2.8|~3.0", - "symfony/dependency-injection": "~2.8|~3.0", - "symfony/dom-crawler": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/finder": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0", - "symfony/routing": "~2.8|~3.0", - "symfony/stopwatch": "~2.8|~3.0", - "symfony/templating": "~2.8|~3.0", - "symfony/translation": "~2.8|~3.0", - "symfony/var-dumper": "~3.2" + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/console": "~2.8|~3.0|~4.0", + "symfony/css-selector": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "^3.4.5|^4.0.5", + "symfony/dom-crawler": "~2.8|~3.0|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/process": "~2.8|~3.0|~4.0", + "symfony/routing": "~3.4|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0", + "symfony/templating": "~2.8|~3.0|~4.0", + "symfony/translation": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.3|~4.0" }, "suggest": { "symfony/browser-kit": "", - "symfony/class-loader": "", "symfony/config": "", "symfony/console": "", "symfony/dependency-injection": "", @@ -5872,7 +6096,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -5899,7 +6123,7 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2017-08-01T09:40:19+00:00" + "time": "2018-04-06T15:19:48+00:00" }, { "name": "symfony/polyfill-iconv", @@ -6019,27 +6243,86 @@ ], "time": "2018-01-30T19:27:44+00:00" }, + { + "name": "symfony/polyfill-php70", + "version": "v1.7.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "3532bfcd8f933a7816f3a0a59682fc404776600f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3532bfcd8f933a7816f3a0a59682fc404776600f", + "reference": "3532bfcd8f933a7816f3a0a59682fc404776600f", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "~1.0|~2.0", + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php70\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2018-01-30T19:27:44+00:00" + }, { "name": "symfony/process", - "version": "v3.2.14", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "b39d805dd6c4d1cba1f00cd80361ec80eed0d7bc" + "reference": "4b7d64e852886319e93ddfdecff0d744ab87658b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/b39d805dd6c4d1cba1f00cd80361ec80eed0d7bc", - "reference": "b39d805dd6c4d1cba1f00cd80361ec80eed0d7bc", + "url": "https://api.github.com/repos/symfony/process/zipball/4b7d64e852886319e93ddfdecff0d744ab87658b", + "reference": "4b7d64e852886319e93ddfdecff0d744ab87658b", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^5.5.9|>=7.0.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -6066,7 +6349,7 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2017-07-03T08:06:20+00:00" + "time": "2018-04-03T05:22:50+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -6130,32 +6413,35 @@ }, { "name": "symfony/routing", - "version": "v3.2.14", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "b382d7c4f443372c118efcd0cd2bf1028434f2f5" + "reference": "50f333b707bef9f6972ad04e6df3ec8875c9a67c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/b382d7c4f443372c118efcd0cd2bf1028434f2f5", - "reference": "b382d7c4f443372c118efcd0cd2bf1028434f2f5", + "url": "https://api.github.com/repos/symfony/routing/zipball/50f333b707bef9f6972ad04e6df3ec8875c9a67c", + "reference": "50f333b707bef9f6972ad04e6df3ec8875c9a67c", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^5.5.9|>=7.0.8" }, "conflict": { - "symfony/config": "<2.8" + "symfony/config": "<3.3.1", + "symfony/dependency-injection": "<3.3", + "symfony/yaml": "<3.4" }, "require-dev": { "doctrine/annotations": "~1.0", "doctrine/common": "~2.2", "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/http-foundation": "~2.8|~3.0", - "symfony/yaml": "~2.8|~3.0" + "symfony/config": "^3.3.1|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { "doctrine/annotations": "For using the annotation loader", @@ -6168,7 +6454,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -6201,40 +6487,43 @@ "uri", "url" ], - "time": "2017-06-23T06:35:45+00:00" + "time": "2018-04-04T13:22:16+00:00" }, { "name": "symfony/serializer", - "version": "v3.2.14", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "dc98d5ab4ae29dc47bfb1507b39806bfe13d3477" + "reference": "d4dc1551da627273230fe16511f4bb4844c02399" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/dc98d5ab4ae29dc47bfb1507b39806bfe13d3477", - "reference": "dc98d5ab4ae29dc47bfb1507b39806bfe13d3477", + "url": "https://api.github.com/repos/symfony/serializer/zipball/d4dc1551da627273230fe16511f4bb4844c02399", + "reference": "d4dc1551da627273230fe16511f4bb4844c02399", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^5.5.9|>=7.0.8" }, "conflict": { + "phpdocumentor/type-resolver": "<0.2.1", + "symfony/dependency-injection": "<3.2", "symfony/property-access": ">=3.0,<3.0.4|>=2.8,<2.8.4", "symfony/property-info": "<3.1", - "symfony/yaml": "<3.1" + "symfony/yaml": "<3.4" }, "require-dev": { "doctrine/annotations": "~1.0", "doctrine/cache": "~1.0", - "phpdocumentor/reflection-docblock": "~3.0", - "symfony/cache": "~3.1", - "symfony/config": "~2.8|~3.0", - "symfony/http-foundation": "~2.8|~3.0", - "symfony/property-access": "~2.8|~3.0", - "symfony/property-info": "~3.1", - "symfony/yaml": "~3.1" + "phpdocumentor/reflection-docblock": "^3.0|^4.0", + "symfony/cache": "~3.1|~4.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.2|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/property-access": "~2.8|~3.0|~4.0", + "symfony/property-info": "~3.1|~4.0", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", @@ -6249,7 +6538,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -6276,34 +6565,38 @@ ], "description": "Symfony Serializer Component", "homepage": "https://symfony.com", - "time": "2017-07-06T07:39:51+00:00" + "time": "2018-03-15T19:08:29+00:00" }, { "name": "symfony/translation", - "version": "v3.2.14", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "df36a48672b929bf3995eb62c58d83004b1d0d50" + "reference": "80e19eaf12cbb546ac40384e5c55c36306823e57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/df36a48672b929bf3995eb62c58d83004b1d0d50", - "reference": "df36a48672b929bf3995eb62c58d83004b1d0d50", + "url": "https://api.github.com/repos/symfony/translation/zipball/80e19eaf12cbb546ac40384e5c55c36306823e57", + "reference": "80e19eaf12cbb546ac40384e5c55c36306823e57", "shasum": "" }, "require": { - "php": ">=5.5.9", + "php": "^5.5.9|>=7.0.8", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/config": "<2.8" + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/intl": "^2.8.18|^3.2.5", - "symfony/yaml": "~2.8|~3.0" + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { "psr/log": "To use logging capability in translator", @@ -6313,7 +6606,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -6340,40 +6633,47 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2017-06-24T16:45:17+00:00" + "time": "2018-02-22T06:28:18+00:00" }, { "name": "symfony/validator", - "version": "v3.2.14", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "39244fbf580e01acc3f5df01238a8f69b1b3e46f" + "reference": "6fa41262dcbd50eedb1e841cfd97f5a1956cf2e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/39244fbf580e01acc3f5df01238a8f69b1b3e46f", - "reference": "39244fbf580e01acc3f5df01238a8f69b1b3e46f", + "url": "https://api.github.com/repos/symfony/validator/zipball/6fa41262dcbd50eedb1e841cfd97f5a1956cf2e7", + "reference": "6fa41262dcbd50eedb1e841cfd97f5a1956cf2e7", "shasum": "" }, "require": { - "php": ">=5.5.9", + "php": "^5.5.9|>=7.0.8", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation": "~2.8|~3.0" + "symfony/translation": "~2.8|~3.0|~4.0" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/dependency-injection": "<3.3", + "symfony/http-kernel": "<3.3.5", + "symfony/yaml": "<3.4" }, "require-dev": { "doctrine/annotations": "~1.0", "doctrine/cache": "~1.0", "egulias/email-validator": "^1.2.8|~2.0", - "symfony/cache": "~3.1", - "symfony/config": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/http-foundation": "~2.8|~3.0", - "symfony/intl": "^2.8.18|^3.2.5", - "symfony/yaml": "~2.8|~3.0" + "symfony/cache": "~3.1|~4.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "^3.3.5|~4.0", + "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/property-access": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.3|~4.0", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", @@ -6384,12 +6684,13 @@ "symfony/expression-language": "For using the Expression validator", "symfony/http-foundation": "", "symfony/intl": "", + "symfony/property-access": "For accessing properties within comparison constraints", "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -6416,27 +6717,30 @@ ], "description": "Symfony Validator Component", "homepage": "https://symfony.com", - "time": "2017-07-26T06:34:07+00:00" + "time": "2018-04-06T07:35:25+00:00" }, { "name": "symfony/yaml", - "version": "v3.2.14", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "78a0c5d7d43713212aac73d7c6a56754a5c26cea" + "reference": "a42f9da85c7c38d59f5e53f076fe81a091f894d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/78a0c5d7d43713212aac73d7c6a56754a5c26cea", - "reference": "78a0c5d7d43713212aac73d7c6a56754a5c26cea", + "url": "https://api.github.com/repos/symfony/yaml/zipball/a42f9da85c7c38d59f5e53f076fe81a091f894d0", + "reference": "a42f9da85c7c38d59f5e53f076fe81a091f894d0", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/console": "<3.4" }, "require-dev": { - "symfony/console": "~2.8|~3.0" + "symfony/console": "~3.4|~4.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -6444,7 +6748,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -6471,7 +6775,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2017-06-02T09:43:35+00:00" + "time": "2018-04-03T05:14:20+00:00" }, { "name": "twig/twig", @@ -6697,16 +7001,16 @@ }, { "name": "zendframework/zend-stdlib", - "version": "3.1.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/zendframework/zend-stdlib.git", - "reference": "debedcfc373a293f9250cc9aa03cf121428c8e78" + "reference": "10ef03144902d1955f935fff5346ed52f7d99bcc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/debedcfc373a293f9250cc9aa03cf121428c8e78", - "reference": "debedcfc373a293f9250cc9aa03cf121428c8e78", + "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/10ef03144902d1955f935fff5346ed52f7d99bcc", + "reference": "10ef03144902d1955f935fff5346ed52f7d99bcc", "shasum": "" }, "require": { @@ -6715,7 +7019,7 @@ "require-dev": { "athletic/athletic": "~0.1", "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "^2.6.2" + "zendframework/zend-coding-standard": "~1.0.0" }, "type": "library", "extra": { @@ -6738,7 +7042,7 @@ "stdlib", "zf2" ], - "time": "2016-09-13T14:38:50+00:00" + "time": "2018-04-12T16:05:42+00:00" } ], "packages-dev": [ @@ -7826,12 +8130,12 @@ "source": { "type": "git", "url": "https://github.com/BR0kEN-/TqExtension.git", - "reference": "bd5312b8c715d53bfdb8b65ac2017ba14495df9f" + "reference": "9735b3a17c29a3bd32979bed215953b4d219e181" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/BR0kEN-/TqExtension/zipball/bd5312b8c715d53bfdb8b65ac2017ba14495df9f", - "reference": "bd5312b8c715d53bfdb8b65ac2017ba14495df9f", + "url": "https://api.github.com/repos/BR0kEN-/TqExtension/zipball/9735b3a17c29a3bd32979bed215953b4d219e181", + "reference": "9735b3a17c29a3bd32979bed215953b4d219e181", "shasum": "" }, "require": { @@ -7869,7 +8173,7 @@ "testing", "web" ], - "time": "2018-03-18T15:10:01+00:00" + "time": "2018-04-14T12:23:52+00:00" }, { "name": "emuse/behat-html-formatter", @@ -8231,58 +8535,9 @@ ], "time": "2017-05-10T09:20:27+00:00" }, - { - "name": "psr/container", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "time": "2017-02-14T16:28:37+00:00" - }, { "name": "symfony/browser-kit", - "version": "v3.4.7", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", @@ -8339,7 +8594,7 @@ }, { "name": "symfony/config", - "version": "v4.0.7", + "version": "v4.0.8", "source": { "type": "git", "url": "https://github.com/symfony/config.git", @@ -8401,7 +8656,7 @@ }, { "name": "symfony/css-selector", - "version": "v3.4.7", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -8454,7 +8709,7 @@ }, { "name": "symfony/dom-crawler", - "version": "v3.4.7", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", @@ -8510,7 +8765,7 @@ }, { "name": "symfony/filesystem", - "version": "v4.0.7", + "version": "v4.0.8", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", @@ -8559,16 +8814,16 @@ }, { "name": "symfony/finder", - "version": "v3.4.7", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "7a2e1299cc0c4162996f18e347b6356729a55317" + "reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/7a2e1299cc0c4162996f18e347b6356729a55317", - "reference": "7a2e1299cc0c4162996f18e347b6356729a55317", + "url": "https://api.github.com/repos/symfony/finder/zipball/bd14efe8b1fabc4de82bf50dce62f05f9a102433", + "reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433", "shasum": "" }, "require": { @@ -8604,7 +8859,7 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2018-03-28T18:23:39+00:00" + "time": "2018-04-04T05:07:11+00:00" } ], "aliases": [], @@ -8614,15 +8869,12 @@ "drupal/media_entity_image": 20, "drupal/media_entity_document": 20, "drupal/views_block_filter_block": 20, - "drupal/simple_menu_icons": 20, - "drupal/libraries": 20, - "drupal/datalayer": 20, "drupal/tqextension": 20 }, "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=5.6" + "php": ">=5.6 <=7.2" }, "platform-dev": [] } diff --git a/drupal-org.make b/drupal-org.make index 7cc48216fe..995b61e6f0 100755 --- a/drupal-org.make +++ b/drupal-org.make @@ -36,9 +36,7 @@ projects[migrate_plus] = 3.0-beta1 projects[migrate_tools] = 3.0-beta1 projects[optimizely] = 3.0 projects[verf] = 1.0-beta6 -projects[simple_menu_icons][subdir] = contrib -projects[simple_menu_icons][version] = 1.x-dev -projects[simple_menu_icons][patch][] = "https://www.drupal.org/files/issues/clear-cache-after-simple_menu_icons_css_generate-2847964.patch" +projects[simple_menu_icons] = 2.1 projects[views_infinite_scroll] = 1.5 projects[slick] = 1.0 projects[slick_views] = 1.0-rc2 @@ -61,7 +59,7 @@ projects[colorbutton] = 1.1 projects[better_exposed_filters] = 3.0-alpha2 projects[custom_formatters] = 3.0-alpha1 projects[token_filter] = 1.0-beta1 -projects[views_field_formatter] = 1.5 +projects[views_field_formatter] = 1.7 projects[lndr] = 1.11 projects[crop] = 1.3 projects[focal_point] = 1.0-beta5 @@ -70,6 +68,7 @@ projects[video] = 1.2 projects[easy_breadcrumb] = 1.6 projects[ckeditor_bootstrap_buttons] = 1.1 projects[fontyourface] = 3.2 +projects[css_editor] = 1.2 libraries[dropzone][type] = library libraries[dropzone][download][type] = get libraries[dropzone][download][url] = https://github.com/enyo/dropzone/archive/v4.3.0.zip diff --git a/openy.info.yml b/openy.info.yml index 21feff83d4..1b09d9cf79 100644 --- a/openy.info.yml +++ b/openy.info.yml @@ -103,6 +103,7 @@ dependencies: - ckeditor_bootstrap_buttons - fontyourface - local_fonts + - css_editor # OpenY features. - openy_svg_formatter - openy_media_image diff --git a/openy.install b/openy.install index 857d60dd90..ac3654ff05 100644 --- a/openy.install +++ b/openy.install @@ -730,3 +730,10 @@ function openy_update_8049() { drupal_set_message($message, 'warning'); } } + +/** + * Enable CSS Editor module and import the settings. + */ +function openy_update_8050() { + \Drupal::service('module_installer')->install(['css_editor'], TRUE); +} From 39c730c8833f6922572edcf8091194522e1f6b60 Mon Sep 17 00:00:00 2001 From: podarok Date: Tue, 17 Apr 2018 13:03:05 +0300 Subject: [PATCH 09/18] Revert "Merge branch 'drupal8_5_1' into 8.x-1.x" This reverts commit 36e2634892e76faf6b936ade5f8d9545ecd90f82, reversing changes made to 13a3dcc533db804067383d8e3d8b87c88aa5dea8. --- composer.json | 62 +++++++++---------- .../src/OpenySocratesCompilerPass.php | 8 +-- .../src/OpenySocratesFacade.php | 16 ++--- 3 files changed, 42 insertions(+), 44 deletions(-) diff --git a/composer.json b/composer.json index bbaaa1edb5..55790add1b 100644 --- a/composer.json +++ b/composer.json @@ -170,42 +170,42 @@ } }, "require": { - "php": ">=5.6 <=7.2", + "php": ">=5.6", "cweagans/composer-patches": "^1.5.0", "composer/installers": "^1.0", "drupal-composer/drupal-scaffold": "^2.0.0", - "drupal/core": "8.5.1", - "drupal/features": "3.7", + "drupal/core": "8.4.6", + "drupal/features": "3.5", "drupal/confi": "1.4", "drupal/config_update": "1.5", - "drupal/entity": "1.0-beta3", + "drupal/entity": "1.0-beta1", "drupal/media_entity": "1.x-dev", "drupal/media_entity_image": "1.x-dev", "drupal/media_entity_document": "1.x-dev", - "drupal/address": "1.3", + "drupal/address": "1.2", "drupal/paragraphs": "1.2", - "drupal/entity_reference_revisions": "1.4", - "drupal/pathauto": "1.1", + "drupal/entity_reference_revisions": "1.3", + "drupal/pathauto": "1.0", "drupal/ctools": "3.0", - "drupal/token": "1.1", - "drupal/field_group": "3.0-beta1", + "drupal/token": "1.0", + "drupal/field_group": "1.0", "drupal/video_embed_field": "1.5", "drupal/jquery_colorpicker": "1.3", - "drupal/entity_browser": "1.4", + "drupal/entity_browser": "1.3", "drupal/dropzonejs": "1.0-alpha8", "drupal/inline_entity_form": "1.0-beta1", "drupal/embed": "1.0", "drupal/entity_embed": "1.0-beta2", - "drupal/views_block_filter_block": "1.x-dev#29f6523ac806afadc48d9a6ab0c5eb13f6256a1a", + "drupal/views_block_filter_block": "1.x-dev", "drupal/plugin": "2.5", - "drupal/migrate_plus": "3.0-rc1", - "drupal/migrate_tools": "3.0-rc1", - "drupal/migrate_source_csv": "2.1", + "drupal/migrate_plus": "3.0-beta1", + "drupal/migrate_tools": "3.0-beta1", + "drupal/migrate_source_csv": "2.0", "drupal/verf": "1.0-beta6", - "drupal/simple_menu_icons": "2.1", + "drupal/simple_menu_icons": "1.x-dev", "drupal/views_infinite_scroll": "1.5", "drupal/slick": "1.0", - "drupal/blazy": "1.0-rc2", + "drupal/blazy": "1.0-rc1", "drupal/geolocation": "1.11", "library-jaypan/jquery_colorpicker": "1.0.1", "library-enyo/dropzone": "4.3.0", @@ -216,30 +216,30 @@ "library-ckeditor/colorbutton": "4.7.0", "library-smonetti/btbutton": "1.0.1", "drupal/slick_views": "1.0-rc2", - "drupal/libraries": "3.0-alpha1", - "drupal/datalayer": "1.0-beta1", + "drupal/libraries": "3.x-dev", + "drupal/datalayer": "1.x-dev", "drupal/optimizely": "3.0", "drupal/google_tag": "1.0", "drupal/google_analytics": "2.2", - "drupal/simple_sitemap": "2.11", - "drupal/redirect": "1.1", - "drupal/metatag": "1.5", + "drupal/simple_sitemap": "2.9", + "drupal/redirect": "1.0-beta1", + "drupal/metatag": "1.3", "drupal/scheduler": "1.0", - "drupal/webform": "5.0-rc7", + "drupal/webform": "5.0-beta24", "drupal/captcha": "1.0-beta1", - "drupal/recaptcha": "2.3", - "drupal/rabbit_hole": "1.0-beta4", - "drupal/admin_toolbar": "1.23", + "drupal/recaptcha": "2.2", + "drupal/rabbit_hole": "1.0-beta3", + "drupal/admin_toolbar": "1.20", "drupal/panelbutton": "1.1", "drupal/colorbutton": "1.1", - "drupal/better_exposed_filters": "3.0-alpha3", + "drupal/better_exposed_filters": "3.0-alpha2", "drupal/custom_formatters": "3.0-alpha1", - "drupal/token_filter": "1.0-beta2", - "drupal/views_field_formatter": "1.7", - "drupal/lndr": "1.15", + "drupal/token_filter": "1.0-beta1", + "drupal/views_field_formatter": "1.5", + "drupal/lndr": "1.11", "doctrine/inflector": "1.1.*", - "drupal/crop": "1.5", - "drupal/focal_point": "1.0-beta6", + "drupal/crop": "1.3", + "drupal/focal_point": "1.0-beta5", "drupal/media_entity_video": "1.0-beta2", "drupal/video": "1.2", "drupal/easy_breadcrumb": "^1.6", diff --git a/modules/custom/openy_socrates/src/OpenySocratesCompilerPass.php b/modules/custom/openy_socrates/src/OpenySocratesCompilerPass.php index 0ab1c28f58..0bd14111a1 100644 --- a/modules/custom/openy_socrates/src/OpenySocratesCompilerPass.php +++ b/modules/custom/openy_socrates/src/OpenySocratesCompilerPass.php @@ -35,11 +35,10 @@ public function process(ContainerBuilder $container) { ); } $priority = isset($attributes[0]['priority']) ? $attributes[0]['priority'] : 0; -// $dds['priorities'][$priority][] = new Reference($id); - $definition->addMethodCall('collectDataServices', [new Reference($id), $priority]); + $dds['priorities'][$priority][] = new Reference($id); } - + $definition->addMethodCall('collectDataServices', $dds); // Cron implementation. $openy_cron_services = $container->findTaggedServiceIds('openy_cron_service'); @@ -56,10 +55,9 @@ public function process(ContainerBuilder $container) { $periodicity = isset($attributes[0]['periodicity']) ? $attributes[0]['periodicity'] : 0; $openy_cron_service_instances['cron'][$periodicity][] = new Reference($id); - $definition->addMethodCall('collectCronServices', [new Reference($id), 0, $periodicity]); } -// $definition->addMethodCall('collectCronServices', $openy_cron_service_instances); + $definition->addMethodCall('collectCronServices', $openy_cron_service_instances); } } diff --git a/modules/custom/openy_socrates/src/OpenySocratesFacade.php b/modules/custom/openy_socrates/src/OpenySocratesFacade.php index 592260b18c..35365503a7 100644 --- a/modules/custom/openy_socrates/src/OpenySocratesFacade.php +++ b/modules/custom/openy_socrates/src/OpenySocratesFacade.php @@ -82,20 +82,20 @@ public function __call($name, array $arguments) { * @param array $services * Services. */ - public function collectDataServices($service, $priority) { + public function collectDataServices(array $services) { $todo_services = []; -// foreach ($services as $priority => $allservices) { + foreach ($services as $priority => $allservices) { /* * @var integer $key * @var OpenyDataServiceInterface $service */ -// foreach ($allservices as $key => $service) { + foreach ($allservices as $key => $service) { foreach ($service->addDataServices($todo_services) as $method) { $this->services[$method][$priority] = $service; krsort($this->services[$method]); } -// } -// } + } + } } /** @@ -104,11 +104,11 @@ public function collectDataServices($service, $priority) { * @param array $services * Services. */ - public function collectCronServices($service, $priority, $periodicity) { + public function collectCronServices(array $services) { /** @var OpenyCronServiceInterface $service */ -// foreach ($services as $periodicity => $service) { + foreach ($services as $periodicity => $service) { $this->cronServices[$periodicity] = $service; -// } + } } /** From 25a05413121abeec71e80b1faed59c96eebc6315 Mon Sep 17 00:00:00 2001 From: Alexander Kolesnikov Date: Wed, 18 Apr 2018 18:36:19 +0300 Subject: [PATCH 10/18] Add description how to use CSS Editor on the theme configuration page. --- .../openy_migrate/openy_migrate.services.yml | 2 +- modules/custom/openy_migrate/src/Importer.php | 5 ++- openy.install | 33 +++++++++++++++ openy.profile | 42 +++++++++++++++++++ .../config/install/openy_lily.settings.yml | 5 +++ .../openy_themes/openy_lily/openy_lily.theme | 4 ++ .../page/html--header.html.html.twig | 1 + .../openy_lily/templates/page/html.html.twig | 1 + .../config/install/openy_rose.settings.yml | 5 +++ .../openy_themes/openy_rose/openy_rose.theme | 3 ++ .../page/html--header.html.html.twig | 1 + .../openy_rose/templates/page/html.html.twig | 1 + 12 files changed, 100 insertions(+), 3 deletions(-) diff --git a/modules/custom/openy_migrate/openy_migrate.services.yml b/modules/custom/openy_migrate/openy_migrate.services.yml index b63b1e5c18..e8d6c49a61 100644 --- a/modules/custom/openy_migrate/openy_migrate.services.yml +++ b/modules/custom/openy_migrate/openy_migrate.services.yml @@ -2,4 +2,4 @@ services: openy_migrate.importer: class: 'Drupal\openy_migrate\Importer' arguments: - - '@plugin.manager.config_entity_migration' + - '@plugin.manager.migration' diff --git a/modules/custom/openy_migrate/src/Importer.php b/modules/custom/openy_migrate/src/Importer.php index a62f15840a..1574ea15ff 100644 --- a/modules/custom/openy_migrate/src/Importer.php +++ b/modules/custom/openy_migrate/src/Importer.php @@ -4,6 +4,7 @@ use Drupal\migrate\MigrateMessage; use Drupal\migrate\Plugin\Migration; +use Drupal\migrate\Plugin\MigrationPluginManager; use Drupal\migrate_plus\Plugin\MigrationConfigEntityPluginManager; use Drupal\migrate_tools\MigrateExecutable; @@ -24,10 +25,10 @@ class Importer implements ImporterInterface { /** * Importer constructor. * - * @param \Drupal\migrate_plus\Plugin\MigrationConfigEntityPluginManager $migrationManager + * @param \Drupal\migrate\Plugin\MigrationPluginManager $migrationManager * Migration manager. */ - public function __construct(MigrationConfigEntityPluginManager $migrationManager) { + public function __construct(MigrationPluginManager $migrationManager) { $this->migrationManager = $migrationManager; } diff --git a/openy.install b/openy.install index ac3654ff05..0bd6766a2d 100644 --- a/openy.install +++ b/openy.install @@ -736,4 +736,37 @@ function openy_update_8049() { */ function openy_update_8050() { \Drupal::service('module_installer')->install(['css_editor'], TRUE); + + $config_importer = \Drupal::service('openy_upgrade_tool.param_updater'); + $config_manager = \Drupal::service('config.manager'); + $config_factory = $config_manager->getConfigFactory(); + + $themes_list = [ + 'openy_rose', + 'openy_lily', + ]; + + $update_fields = [ + 'css_enabled', + 'css', + 'plaintext_enabled', + 'autopreview_enabled', + 'preview_path', + ]; + + foreach ($themes_list as $theme) { + foreach ($update_fields as $field) { + $config_name = $theme . '.settings'; + $config = drupal_get_path('theme', $theme); + $config .= '/config/install/'; + $config .= $config_name . '.yml'; + + $configObj = $config_factory->getEditable($config_name); + if ($configObj->isNew() && empty($configObj->getOriginal())) { + continue; + } + + $config_importer->update($config, $config_name, $field); + } + } } diff --git a/openy.profile b/openy.profile index fd5156411d..5a8f767b35 100644 --- a/openy.profile +++ b/openy.profile @@ -8,6 +8,8 @@ use Drupal\openy\Form\ContentSelectForm; use Drupal\openy\Form\ThirdPartyServicesForm; use Drupal\openy\Form\UploadFontMessageForm; +use Drupal\Core\Form\FormStateInterface; +use Drupal\Core\Routing\RouteMatchInterface; /** * Implements hook_install_tasks(). @@ -438,3 +440,43 @@ function openy_preprocess_block(&$variables) { $variables['#cache']['max-age'] = 0; } } + +function openy_form_system_theme_settings_alter(&$form, FormStateInterface $form_state, $form_id) { + if (isset($form['css_editor'])) { + // Add short manual how to use CSS Editor inside the theme. + $types = \Drupal::entityTypeManager()->getStorage('node_type')->loadMultiple(); + $css_node_selectors = array_map(function ($type) { + return str_replace('_', '-', $type); + }, array_keys($types)); + + $css_editor_info = [ + '#prefix' => '
', + '#markup' => t('In order to change CSS on each particular page you + should use the following selectors:
+ - .page-node-type-{node type};
+ - .node-id-{node ID};
+ - .path-frontpage.

+ The existing node types are: ' . implode($css_node_selectors, ', ') .'. + '), + '#suffix' => '
' + ]; + $form['css_editor']['css_editor_info'] = $css_editor_info; + } +} + +function openy_help($route_name, RouteMatchInterface $route_match) { + switch ($route_name) { + case 'system.theme_settings_theme': + $theme = $route_match->getParameter('theme'); + $config = \Drupal::configFactory()->getEditable('css_editor.theme.' . $theme); + + if ($config->get('enabled')) { + return '

' . t('If you need to change CSS on some pages independently, you may use Custom CSS configuration.') . '

'; + } + else { + return '

' . t('If you need to change CSS on some pages independently, you should enable Custom CSS functionality.') . '

'; + } + + break; + } +} diff --git a/themes/openy_themes/openy_lily/config/install/openy_lily.settings.yml b/themes/openy_themes/openy_lily/config/install/openy_lily.settings.yml index b6be94e046..919b86f6ea 100644 --- a/themes/openy_themes/openy_lily/config/install/openy_lily.settings.yml +++ b/themes/openy_themes/openy_lily/config/install/openy_lily.settings.yml @@ -13,3 +13,8 @@ openy_lily_camp_favicon: { } openy_lily_image_fields: camp_section_logo: openy_lily_camp_section_logo camp_favicon: openy_lily_camp_favicon +css_enabled: 1 +css: "" +plaintext_enabled: 0 +autopreview_enabled: 0 +preview_path: '' diff --git a/themes/openy_themes/openy_lily/openy_lily.theme b/themes/openy_themes/openy_lily/openy_lily.theme index dc6ea28bcb..a46ade46b0 100644 --- a/themes/openy_themes/openy_lily/openy_lily.theme +++ b/themes/openy_themes/openy_lily/openy_lily.theme @@ -582,6 +582,10 @@ function openy_lily_preprocess_html(&$variables) { if (!is_array($variables['attributes'])) { $variables['attributes']->addClass($classes); } + + if (empty($variables['node']) && !empty($node)) { + $variables['node'] = $node; + } } /** diff --git a/themes/openy_themes/openy_lily/templates/page/html--header.html.html.twig b/themes/openy_themes/openy_lily/templates/page/html--header.html.html.twig index 9bf2da8e27..0e2e37f1de 100644 --- a/themes/openy_themes/openy_lily/templates/page/html--header.html.html.twig +++ b/themes/openy_themes/openy_lily/templates/page/html--header.html.html.twig @@ -29,6 +29,7 @@ not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class, node_type ? 'page-node-type-' ~ node_type|clean_class, db_offline ? 'db-offline', + node ? 'node-id-' ~ node.id, ] %} diff --git a/themes/openy_themes/openy_lily/templates/page/html.html.twig b/themes/openy_themes/openy_lily/templates/page/html.html.twig index 21a977a03d..df583fc7f5 100755 --- a/themes/openy_themes/openy_lily/templates/page/html.html.twig +++ b/themes/openy_themes/openy_lily/templates/page/html.html.twig @@ -29,6 +29,7 @@ not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class, node_type ? 'node--type-' ~ node_type|clean_class, db_offline ? 'db-offline', + node ? 'node-id-' ~ node.id, ] %} {% set page_title = is_front ? front_title : head_title.title %} diff --git a/themes/openy_themes/openy_rose/config/install/openy_rose.settings.yml b/themes/openy_themes/openy_rose/config/install/openy_rose.settings.yml index 352104eb04..d58b9115bc 100644 --- a/themes/openy_themes/openy_rose/config/install/openy_rose.settings.yml +++ b/themes/openy_themes/openy_rose/config/install/openy_rose.settings.yml @@ -4,3 +4,8 @@ openy_rose_image_fields: camp_section_logo: openy_rose_camp_section_logo camp_footer_logo: openy_rose_camp_footer_logo camp_favicon: openy_rose_camp_favicon +css_enabled: 1 +css: "" +plaintext_enabled: 0 +autopreview_enabled: 0 +preview_path: '' diff --git a/themes/openy_themes/openy_rose/openy_rose.theme b/themes/openy_themes/openy_rose/openy_rose.theme index e63c106692..4988db1f2b 100644 --- a/themes/openy_themes/openy_rose/openy_rose.theme +++ b/themes/openy_themes/openy_rose/openy_rose.theme @@ -387,6 +387,9 @@ function openy_rose_preprocess_html(&$variables) { } } } + if (empty($variables['node'])) { + $variables['node'] = $node; + } } // Get title from node or page. diff --git a/themes/openy_themes/openy_rose/templates/page/html--header.html.html.twig b/themes/openy_themes/openy_rose/templates/page/html--header.html.html.twig index 9bf2da8e27..0e2e37f1de 100644 --- a/themes/openy_themes/openy_rose/templates/page/html--header.html.html.twig +++ b/themes/openy_themes/openy_rose/templates/page/html--header.html.html.twig @@ -29,6 +29,7 @@ not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class, node_type ? 'page-node-type-' ~ node_type|clean_class, db_offline ? 'db-offline', + node ? 'node-id-' ~ node.id, ] %} diff --git a/themes/openy_themes/openy_rose/templates/page/html.html.twig b/themes/openy_themes/openy_rose/templates/page/html.html.twig index 65a627c0d2..41d1123200 100644 --- a/themes/openy_themes/openy_rose/templates/page/html.html.twig +++ b/themes/openy_themes/openy_rose/templates/page/html.html.twig @@ -29,6 +29,7 @@ not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class, node_type ? 'page-node-type-' ~ node_type|clean_class, db_offline ? 'db-offline', + node ? 'node-id-' ~ node.id, ] %} From 8d4fa29bbd108f5a98f8c8f1676ece247167b3ac Mon Sep 17 00:00:00 2001 From: Alexander Kolesnikov Date: Wed, 18 Apr 2018 18:49:12 +0300 Subject: [PATCH 11/18] Revert Migration functionality. --- modules/custom/openy_migrate/openy_migrate.services.yml | 2 +- modules/custom/openy_migrate/src/Importer.php | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/custom/openy_migrate/openy_migrate.services.yml b/modules/custom/openy_migrate/openy_migrate.services.yml index e8d6c49a61..b63b1e5c18 100644 --- a/modules/custom/openy_migrate/openy_migrate.services.yml +++ b/modules/custom/openy_migrate/openy_migrate.services.yml @@ -2,4 +2,4 @@ services: openy_migrate.importer: class: 'Drupal\openy_migrate\Importer' arguments: - - '@plugin.manager.migration' + - '@plugin.manager.config_entity_migration' diff --git a/modules/custom/openy_migrate/src/Importer.php b/modules/custom/openy_migrate/src/Importer.php index 1574ea15ff..a62f15840a 100644 --- a/modules/custom/openy_migrate/src/Importer.php +++ b/modules/custom/openy_migrate/src/Importer.php @@ -4,7 +4,6 @@ use Drupal\migrate\MigrateMessage; use Drupal\migrate\Plugin\Migration; -use Drupal\migrate\Plugin\MigrationPluginManager; use Drupal\migrate_plus\Plugin\MigrationConfigEntityPluginManager; use Drupal\migrate_tools\MigrateExecutable; @@ -25,10 +24,10 @@ class Importer implements ImporterInterface { /** * Importer constructor. * - * @param \Drupal\migrate\Plugin\MigrationPluginManager $migrationManager + * @param \Drupal\migrate_plus\Plugin\MigrationConfigEntityPluginManager $migrationManager * Migration manager. */ - public function __construct(MigrationPluginManager $migrationManager) { + public function __construct(MigrationConfigEntityPluginManager $migrationManager) { $this->migrationManager = $migrationManager; } From 311dc3b642a8a47f2962730da39c6bdce7a97748 Mon Sep 17 00:00:00 2001 From: Alexander Kolesnikov Date: Wed, 18 Apr 2018 18:53:13 +0300 Subject: [PATCH 12/18] Revert drupal-org.make file. --- drupal-org.make | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drupal-org.make b/drupal-org.make index 995b61e6f0..955908a7f1 100755 --- a/drupal-org.make +++ b/drupal-org.make @@ -36,7 +36,9 @@ projects[migrate_plus] = 3.0-beta1 projects[migrate_tools] = 3.0-beta1 projects[optimizely] = 3.0 projects[verf] = 1.0-beta6 -projects[simple_menu_icons] = 2.1 +projects[simple_menu_icons][subdir] = contrib +projects[simple_menu_icons][version] = 1.x-dev +projects[simple_menu_icons][patch][] = "https://www.drupal.org/files/issues/clear-cache-after-simple_menu_icons_css_generate-2847964.patch" projects[views_infinite_scroll] = 1.5 projects[slick] = 1.0 projects[slick_views] = 1.0-rc2 @@ -59,7 +61,7 @@ projects[colorbutton] = 1.1 projects[better_exposed_filters] = 3.0-alpha2 projects[custom_formatters] = 3.0-alpha1 projects[token_filter] = 1.0-beta1 -projects[views_field_formatter] = 1.7 +projects[views_field_formatter] = 1.5 projects[lndr] = 1.11 projects[crop] = 1.3 projects[focal_point] = 1.0-beta5 From 129d7162789eed8d5484bbbc717d2372d24de84a Mon Sep 17 00:00:00 2001 From: Alexander Kolesnikov Date: Wed, 18 Apr 2018 19:19:59 +0300 Subject: [PATCH 13/18] Add manual how to use CSS Editor functionality. --- docs/Development/Theming_and_Design.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/docs/Development/Theming_and_Design.md b/docs/Development/Theming_and_Design.md index 38b289c53b..a2e851c86a 100644 --- a/docs/Development/Theming_and_Design.md +++ b/docs/Development/Theming_and_Design.md @@ -2,7 +2,19 @@ Welcome to OpenY Theming and Design documentation. ### How to change styles on content type level -Given: As an Open Y site developer, I want to be able to easily change the CSS for a Camp page +**Given:** +As an Open Y site developer, I want to be able to easily change the CSS for a Camp page independently from a Location page, so I can better customize the site to meet the needs of my customers. -How to: @TODO +**How to:** +- If you need to change CSS on some pages independently, you should enable Custom CSS functionality on +the theme configuration page - Custom CSS - check "Enable or disable custom CSS". +- Input CSS code into the textarea. + +In order to change CSS on each particular page you should use the following selectors: +- .page-node-type-{node type}; +- .node-id-{node ID}; +- .path-frontpage. + +The existing node types are: _activity_, _alert_, _blog_, _branch_, _camp_, _class_, _facility_, _landing-page_, _membership_, _news_, _program_, _program-subcategory_, _session_. + From 719e139576493581f967a8744dad9e75ead9fe08 Mon Sep 17 00:00:00 2001 From: Dmytro Buzinov Date: Thu, 19 Apr 2018 16:10:53 +0300 Subject: [PATCH 14/18] setDisplayOptions form type to string_textfield --- modules/custom/openy_redirect/openy_redirect.module | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/custom/openy_redirect/openy_redirect.module b/modules/custom/openy_redirect/openy_redirect.module index b02552860f..edf5614090 100644 --- a/modules/custom/openy_redirect/openy_redirect.module +++ b/modules/custom/openy_redirect/openy_redirect.module @@ -22,7 +22,7 @@ function openy_redirect_entity_base_field_info(EntityTypeInterface $entity_type) ->setTranslatable(TRUE) ->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) ->setDisplayOptions('form', [ - 'type' => 'redirect', + 'type' => 'string_textfield', 'weight' => 30, ]) ->setDisplayConfigurable('form', TRUE) From a7bb086b5c99e7d6dd91acfdaa5880dc9d53c3ec Mon Sep 17 00:00:00 2001 From: Dmytro Buzinov Date: Fri, 20 Apr 2018 14:50:42 +0300 Subject: [PATCH 15/18] fix redirect uri to entity internal url --- .../openy_redirect/openy_redirect.info.yml | 1 + .../openy_redirect/openy_redirect.module | 33 +++++++++++++------ 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/modules/custom/openy_redirect/openy_redirect.info.yml b/modules/custom/openy_redirect/openy_redirect.info.yml index 229809882d..b2c4886791 100644 --- a/modules/custom/openy_redirect/openy_redirect.info.yml +++ b/modules/custom/openy_redirect/openy_redirect.info.yml @@ -1,6 +1,7 @@ name: Openy Redirect type: module description: Openy Redirect allows user to add redirects directly from edit page. +version: '8.x-1.0' core: 8.x package: OpenY dependencies: diff --git a/modules/custom/openy_redirect/openy_redirect.module b/modules/custom/openy_redirect/openy_redirect.module index edf5614090..bf9a4e2c4e 100644 --- a/modules/custom/openy_redirect/openy_redirect.module +++ b/modules/custom/openy_redirect/openy_redirect.module @@ -36,6 +36,8 @@ function openy_redirect_entity_base_field_info(EntityTypeInterface $entity_type) * Implements hook_form_FORM_ID_alter() for node_form(). */ function openy_redirect_form_node_form_alter(&$form, FormStateInterface $form_state) { + $language = \Drupal::languageManager()->getCurrentLanguage()->getId(); + $node = \Drupal::routeMatch()->getParameter('node'); if ($node instanceof \Drupal\node\NodeInterface) { // Create the group for the redirect fields. @@ -48,12 +50,15 @@ function openy_redirect_form_node_form_alter(&$form, FormStateInterface $form_st ]; $form['redirect']['#group'] = 'redirect_settings'; - // Add custom submit to create redirects + // Add custom submit to create redirects. $form['actions']['submit']['#submit'][] = 'openy_redirect_submit'; - // Set default values + // Set default values. $nid = $node->id(); - $redirects = loadRedirectsByRedirectUri('node/' . $nid); + $redirect_url = 'internal:/' . $node->toUrl()->getInternalPath(); + + $redirects = loadRedirectsByRedirectUri($redirect_url, $language); + $i = 0; /** @var Redirect $item */ foreach ($redirects as $item) { @@ -66,7 +71,7 @@ function openy_redirect_form_node_form_alter(&$form, FormStateInterface $form_st $i++; } - // Set total count of redirect items for correct behavior "Add more" ajax button + // Set total count of redirect items for correct behavior "Add more" ajax button. $count = 0; foreach ($form['redirect']['widget'] as $key => $value) { if (is_numeric($key)) { @@ -83,11 +88,17 @@ function openy_redirect_form_node_form_alter(&$form, FormStateInterface $form_st * Custom submit to create redirects. */ function openy_redirect_submit($form, FormStateInterface $form_state) { + $language = \Drupal::languageManager()->getCurrentLanguage()->getId(); + $node = \Drupal::routeMatch()->getParameter('node'); + $redirectSources = $form_state->getValue('redirect'); + $nid = $form_state->getValue('nid'); - - // Delete all redirects for this node to save it from scratch later - $redirects = loadRedirectsByRedirectUri('node/' . $nid); + + $node_url = $node->toUrl()->getInternalPath(); + $redirect_url = 'internal:/' . $node_url; + // Delete all redirects for this node to save it from scratch later. + $redirects = loadRedirectsByRedirectUri($redirect_url, $language); if (!empty($redirects)) { /** @var Redirect $item */ foreach ($redirects as $item) { @@ -105,7 +116,8 @@ function openy_redirect_submit($form, FormStateInterface $form_state) { /** @var \Drupal\redirect\Entity\Redirect $redirect */ $redirect = Redirect::create(); $redirect->setSource($item['value']); - $redirect->setRedirect('node/' . $nid); + $redirect->setRedirect($node_url); + $redirect->setLanguage($language); $redirect->setStatusCode(\Drupal::config('redirect.settings')->get('default_status_code')); $redirect->save(); } else { @@ -117,11 +129,12 @@ function openy_redirect_submit($form, FormStateInterface $form_state) { /** * Helper function to find Redirects by redirect target uri. */ -function loadRedirectsByRedirectUri($uri) { +function loadRedirectsByRedirectUri($redirect_uri, $language = Language::LANGCODE_NOT_SPECIFIED) { /** @var \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager */ $entityTypeManager = \Drupal::service('entity_type.manager'); $redirectIds = $entityTypeManager->getStorage('redirect')->getQuery() - ->condition('redirect_redirect__uri', '%' . $uri . '%', 'LIKE') + ->condition('redirect_redirect__uri', $redirect_uri) + ->condition('language', $language) ->execute(); return Redirect::loadMultiple($redirectIds); From 39df320d1fec4e52443caed27c4a414139cf2d74 Mon Sep 17 00:00:00 2001 From: Dmytro Buzinov Date: Fri, 20 Apr 2018 15:40:32 +0300 Subject: [PATCH 16/18] change user language to node active language --- .../custom/openy_redirect/openy_redirect.info.yml | 1 - modules/custom/openy_redirect/openy_redirect.module | 13 +++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/custom/openy_redirect/openy_redirect.info.yml b/modules/custom/openy_redirect/openy_redirect.info.yml index b2c4886791..229809882d 100644 --- a/modules/custom/openy_redirect/openy_redirect.info.yml +++ b/modules/custom/openy_redirect/openy_redirect.info.yml @@ -1,7 +1,6 @@ name: Openy Redirect type: module description: Openy Redirect allows user to add redirects directly from edit page. -version: '8.x-1.0' core: 8.x package: OpenY dependencies: diff --git a/modules/custom/openy_redirect/openy_redirect.module b/modules/custom/openy_redirect/openy_redirect.module index bf9a4e2c4e..b345f3c5c5 100644 --- a/modules/custom/openy_redirect/openy_redirect.module +++ b/modules/custom/openy_redirect/openy_redirect.module @@ -36,9 +36,10 @@ function openy_redirect_entity_base_field_info(EntityTypeInterface $entity_type) * Implements hook_form_FORM_ID_alter() for node_form(). */ function openy_redirect_form_node_form_alter(&$form, FormStateInterface $form_state) { - $language = \Drupal::languageManager()->getCurrentLanguage()->getId(); $node = \Drupal::routeMatch()->getParameter('node'); + $language = $node->language()->getId(); + if ($node instanceof \Drupal\node\NodeInterface) { // Create the group for the redirect fields. $form['redirect_settings'] = [ @@ -57,7 +58,7 @@ function openy_redirect_form_node_form_alter(&$form, FormStateInterface $form_st $nid = $node->id(); $redirect_url = 'internal:/' . $node->toUrl()->getInternalPath(); - $redirects = loadRedirectsByRedirectUri($redirect_url, $language); + $redirects = openy_redirect_load_redirects_by_redirect_uri($redirect_url, $language); $i = 0; /** @var Redirect $item */ @@ -88,9 +89,9 @@ function openy_redirect_form_node_form_alter(&$form, FormStateInterface $form_st * Custom submit to create redirects. */ function openy_redirect_submit($form, FormStateInterface $form_state) { - $language = \Drupal::languageManager()->getCurrentLanguage()->getId(); $node = \Drupal::routeMatch()->getParameter('node'); - + $language = $node->language()->getId(); + $redirectSources = $form_state->getValue('redirect'); $nid = $form_state->getValue('nid'); @@ -98,7 +99,7 @@ function openy_redirect_submit($form, FormStateInterface $form_state) { $node_url = $node->toUrl()->getInternalPath(); $redirect_url = 'internal:/' . $node_url; // Delete all redirects for this node to save it from scratch later. - $redirects = loadRedirectsByRedirectUri($redirect_url, $language); + $redirects = openy_redirect_load_redirects_by_redirect_uri($redirect_url, $language); if (!empty($redirects)) { /** @var Redirect $item */ foreach ($redirects as $item) { @@ -129,7 +130,7 @@ function openy_redirect_submit($form, FormStateInterface $form_state) { /** * Helper function to find Redirects by redirect target uri. */ -function loadRedirectsByRedirectUri($redirect_uri, $language = Language::LANGCODE_NOT_SPECIFIED) { +function openy_redirect_load_redirects_by_redirect_uri($redirect_uri, $language = Language::LANGCODE_NOT_SPECIFIED) { /** @var \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager */ $entityTypeManager = \Drupal::service('entity_type.manager'); $redirectIds = $entityTypeManager->getStorage('redirect')->getQuery() From 4dec90dd4de5ef22b4f44228ae43cccfff72f2f4 Mon Sep 17 00:00:00 2001 From: Dmytro Buzinov Date: Fri, 20 Apr 2018 19:21:38 +0300 Subject: [PATCH 17/18] fix getting lang if not node --- modules/custom/openy_redirect/openy_redirect.module | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/custom/openy_redirect/openy_redirect.module b/modules/custom/openy_redirect/openy_redirect.module index b345f3c5c5..b79abf4f12 100644 --- a/modules/custom/openy_redirect/openy_redirect.module +++ b/modules/custom/openy_redirect/openy_redirect.module @@ -38,9 +38,9 @@ function openy_redirect_entity_base_field_info(EntityTypeInterface $entity_type) function openy_redirect_form_node_form_alter(&$form, FormStateInterface $form_state) { $node = \Drupal::routeMatch()->getParameter('node'); - $language = $node->language()->getId(); if ($node instanceof \Drupal\node\NodeInterface) { + $language = $node->language()->getId(); // Create the group for the redirect fields. $form['redirect_settings'] = [ '#type' => 'details', From e8757acca8717144ca34c66e9f5b88522ccac874 Mon Sep 17 00:00:00 2001 From: Dmytro Buzinov Date: Mon, 23 Apr 2018 14:36:08 +0300 Subject: [PATCH 18/18] fix issues with node creation with url redirects --- .../openy_redirect/openy_redirect.module | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/modules/custom/openy_redirect/openy_redirect.module b/modules/custom/openy_redirect/openy_redirect.module index b79abf4f12..f96bb91176 100644 --- a/modules/custom/openy_redirect/openy_redirect.module +++ b/modules/custom/openy_redirect/openy_redirect.module @@ -10,6 +10,7 @@ use Drupal\Core\Field\BaseFieldDefinition; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Field\FieldStorageDefinitionInterface; use Drupal\redirect\Entity\Redirect; +use Drupal\Core\Language\Language; /** * Implements hook_entity_base_field_info(). @@ -38,21 +39,22 @@ function openy_redirect_entity_base_field_info(EntityTypeInterface $entity_type) function openy_redirect_form_node_form_alter(&$form, FormStateInterface $form_state) { $node = \Drupal::routeMatch()->getParameter('node'); + // Create the group for the redirect fields. + $form['redirect_settings'] = [ + '#type' => 'details', + '#title' => t('Redirects'), + '#open' => !empty($form['redirect']['widget'][0]['value']['#value']), + '#group' => 'advanced', + '#weight' => 30, + ]; + $form['redirect']['#group'] = 'redirect_settings'; + + // Add custom submit to create redirects. + $form['actions']['submit']['#submit'][] = 'openy_redirect_submit'; if ($node instanceof \Drupal\node\NodeInterface) { $language = $node->language()->getId(); - // Create the group for the redirect fields. - $form['redirect_settings'] = [ - '#type' => 'details', - '#title' => t('Redirects'), - '#open' => !empty($form['redirect']['widget'][0]['value']['#value']), - '#group' => 'advanced', - '#weight' => 30, - ]; - $form['redirect']['#group'] = 'redirect_settings'; - - // Add custom submit to create redirects. - $form['actions']['submit']['#submit'][] = 'openy_redirect_submit'; + // Set default values. $nid = $node->id(); @@ -90,12 +92,21 @@ function openy_redirect_form_node_form_alter(&$form, FormStateInterface $form_st */ function openy_redirect_submit($form, FormStateInterface $form_state) { $node = \Drupal::routeMatch()->getParameter('node'); - $language = $node->language()->getId(); - + $language = Language::LANGCODE_NOT_SPECIFIED; + if ($node instanceof \Drupal\node\NodeInterface) { + $language = $node->language()->getId(); + } + else { + $nid = $form_state->getStorage()['nid']; + $node_storage = \Drupal::entityManager()->getStorage('node'); + + // Load a single node. + $node = $node_storage->load($nid); + $language = $node->language()->getId(); + } + $redirectSources = $form_state->getValue('redirect'); - $nid = $form_state->getValue('nid'); - $node_url = $node->toUrl()->getInternalPath(); $redirect_url = 'internal:/' . $node_url; // Delete all redirects for this node to save it from scratch later. @@ -110,7 +121,7 @@ function openy_redirect_submit($form, FormStateInterface $form_state) { /** @var \Drupal\redirect\RedirectRepository $redirect_repository */ $redirect_repository = \Drupal::service('redirect.repository'); foreach ($redirectSources as $item) { - if (!$redirect_repository->findMatchingRedirect($item['value'])) { + if (!$redirect_repository->findMatchingRedirect($item['value'], [], $language)) { if (empty(trim($item['value']))) { continue; }