From aacea8af97df3b186cb3528ab208cc442d4bf1be Mon Sep 17 00:00:00 2001 From: Fureigh Date: Fri, 4 May 2018 16:35:18 -0700 Subject: [PATCH 1/3] Add Instagram Block module This commit includes and enables the module but not its configuration. https://github.com/18F/nsf/issues/155 --- composer.json | 1 + composer.lock | 53 ++++++++++++++++++++- web/sites/default/config/core.extension.yml | 1 + 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 368469c..0cb20b9 100644 --- a/composer.json +++ b/composer.json @@ -33,6 +33,7 @@ "drupal/entity_embed": "^1.0@beta", "drupal/features": "^3.5", "drupal/inline_entity_form": "^1.0@beta", + "drupal/instagram_block": "^2.0", "drupal/media_entity": "^1.7", "drupal/pathauto": "^1.1", "drupal/rules": "^3.0@alpha", diff --git a/composer.lock b/composer.lock index 641bf9a..4760fc4 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9c274b6077552f4d4e0457fa53843d0e", + "content-hash": "1b2a7d900d4071782bb826277dc05fcc", "packages": [ { "name": "alchemy/zippy", @@ -3052,6 +3052,57 @@ "source": "http://cgit.drupalcode.org/inline_entity_form" } }, + { + "name": "drupal/instagram_block", + "version": "2.0.0-beta2", + "source": { + "type": "git", + "url": "https://git.drupal.org/project/instagram_block", + "reference": "8.x-2.0-beta2" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/instagram_block-8.x-2.0-beta2.zip", + "reference": "8.x-2.0-beta2", + "shasum": "f90294fa109540358fc8f5b336139bbe6899b91b" + }, + "require": { + "drupal/core": "*" + }, + "type": "drupal-module", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + }, + "drupal": { + "version": "8.x-2.0-beta2", + "datestamp": "1523290080", + "security-coverage": { + "status": "not-covered", + "message": "Beta releases are not covered by Drupal security advisories." + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "naveenvalecha", + "homepage": "https://www.drupal.org/user/2665733" + }, + { + "name": "yanniboi", + "homepage": "https://www.drupal.org/user/1837556" + } + ], + "description": "Creates a block that displays images from instagram.", + "homepage": "https://www.drupal.org/project/instagram_block", + "support": { + "source": "http://cgit.drupalcode.org/instagram_block" + } + }, { "name": "drupal/media_entity", "version": "1.7.0", diff --git a/web/sites/default/config/core.extension.yml b/web/sites/default/config/core.extension.yml index e697e80..ec2cf27 100644 --- a/web/sites/default/config/core.extension.yml +++ b/web/sites/default/config/core.extension.yml @@ -41,6 +41,7 @@ module: image: 0 inline_entity_form: 0 inline_form_errors: 0 + instagram_block: 0 link: 0 media_entity: 0 media_entity_brightcove: 0 From d89c786a07976670cab7d2920c8347b6cd3738d5 Mon Sep 17 00:00:00 2001 From: Fureigh Date: Fri, 4 May 2018 16:48:17 -0700 Subject: [PATCH 2/3] Position block and add Instagram Block credentials ...set to SECRET, of course. https://github.com/18F/nsf/issues/155 --- docker-compose.yml | 1 + manifest-prod.yml | 1 + manifest.yml | 1 + .../config/block.block.instagramblock.yml | 32 +++++++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 web/sites/default/config/block.block.instagramblock.yml diff --git a/docker-compose.yml b/docker-compose.yml index 6e13003..71c1a8a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -36,6 +36,7 @@ services: "BRIGHTCOVE_ACCOUNT": "SECRET", "BRIGHTCOVE_CLIENT": "SECRET", "BRIGHTCOVE_SECRET": "SECRET", + "INSTAGRAM_ACCESS_TOKEN": "SECRET", "CRON_KEY": "SECRET", "HASH_SALT": "SECRET", "ROOT_USER_NAME": "root", diff --git a/manifest-prod.yml b/manifest-prod.yml index bdf6384..5a76a51 100644 --- a/manifest-prod.yml +++ b/manifest-prod.yml @@ -9,6 +9,7 @@ default_config: &defaults # "BRIGHTCOVE_ACCOUNT": ... # "BRIGHTCOVE_CLIENT": ... # "BRIGHTCOVE_SECRET": ... + # "INSTAGRAM_ACCESS_TOKEN": ... # "CRON_KEY": ... # "HASH_SALT": ... # "ROOT_USER_NAME": ..., diff --git a/manifest.yml b/manifest.yml index 36aecec..664f804 100644 --- a/manifest.yml +++ b/manifest.yml @@ -9,6 +9,7 @@ default_config: &defaults # "BRIGHTCOVE_ACCOUNT": ... # "BRIGHTCOVE_CLIENT": ... # "BRIGHTCOVE_SECRET": ... + # "INSTAGRAM_ACCESS_TOKEN": ... # "CRON_KEY": ... # "HASH_SALT": ... # "ROOT_USER_NAME": ..., diff --git a/web/sites/default/config/block.block.instagramblock.yml b/web/sites/default/config/block.block.instagramblock.yml new file mode 100644 index 0000000..d09975e --- /dev/null +++ b/web/sites/default/config/block.block.instagramblock.yml @@ -0,0 +1,32 @@ +uuid: 4fe47205-ad99-41c4-b10e-a7303517f0b2 +langcode: en +status: true +dependencies: + module: + - instagram_block + - system + theme: + - nsf +id: instagramblock +theme: nsf +region: content +weight: -5 +provider: null +plugin: instagram_block_block +settings: + id: instagram_block_block + label: 'NSF on Instagram' + provider: instagram_block + label_display: visible + access_token: SECRET + count: 6 + width: 250 + height: 250 + img_resolution: thumbnail + cache_time_minutes: 1440 +visibility: + request_path: + id: request_path + pages: '' + negate: false + context_mapping: { } From 9da82c974678a193c913b78ae9ea6f9623a57bf9 Mon Sep 17 00:00:00 2001 From: Fureigh Date: Fri, 4 May 2018 16:57:20 -0700 Subject: [PATCH 3/3] Refactor the 'homepage' to be a regular page plus blocks Previously, the main page was generated by a view (as a 'page' display). This commit adds a blank page node at the same URL, deletes the no-longer-used page display of that view, and updates the block view to 1) match the appearance of the earlier approach and 2) be Tumblr-specific. The Tumblr feeds are aggregator sources 1 and 2, hence the filter for "less than or equal to 2". https://github.com/18F/nsf/issues/155 https://github.com/18F/nsf/issues/162 --- .../config/block.block.nsf_page_title.yml | 11 +- ...ck.block.views_block__nsf_blog_block_1.yml | 30 ++++ .../default/config/views.view.nsf_blog.yml | 137 ++++++++-------- .../ce367652-adf0-41fb-ba60-bc548040cca3.json | 153 ++++++++++++++++++ 4 files changed, 266 insertions(+), 65 deletions(-) create mode 100644 web/sites/default/config/block.block.views_block__nsf_blog_block_1.yml create mode 100644 web/sites/default/content/node/ce367652-adf0-41fb-ba60-bc548040cca3.json diff --git a/web/sites/default/config/block.block.nsf_page_title.yml b/web/sites/default/config/block.block.nsf_page_title.yml index 8ab51af..d08d4da 100644 --- a/web/sites/default/config/block.block.nsf_page_title.yml +++ b/web/sites/default/config/block.block.nsf_page_title.yml @@ -2,6 +2,8 @@ uuid: 1f8d24dc-a5d7-4f72-b183-4432efefea2b langcode: en status: true dependencies: + module: + - system theme: - nsf _core: @@ -9,7 +11,7 @@ _core: id: nsf_page_title theme: nsf region: content -weight: -5 +weight: -8 provider: null plugin: page_title_block settings: @@ -17,4 +19,9 @@ settings: label: 'Page title' provider: core label_display: '0' -visibility: { } +visibility: + request_path: + id: request_path + pages: '' + negate: true + context_mapping: { } diff --git a/web/sites/default/config/block.block.views_block__nsf_blog_block_1.yml b/web/sites/default/config/block.block.views_block__nsf_blog_block_1.yml new file mode 100644 index 0000000..a44d850 --- /dev/null +++ b/web/sites/default/config/block.block.views_block__nsf_blog_block_1.yml @@ -0,0 +1,30 @@ +uuid: 12a04aa3-6f99-4beb-8dfc-59881beed555 +langcode: en +status: true +dependencies: + config: + - views.view.nsf_blog + module: + - system + - views + theme: + - nsf +id: views_block__nsf_blog_block_1 +theme: nsf +region: content +weight: -4 +provider: null +plugin: 'views_block:nsf_blog-block_1' +settings: + id: 'views_block:nsf_blog-block_1' + label: '' + provider: views + label_display: visible + views_label: '' + items_per_page: none +visibility: + request_path: + id: request_path + pages: '' + negate: false + context_mapping: { } diff --git a/web/sites/default/config/views.view.nsf_blog.yml b/web/sites/default/config/views.view.nsf_blog.yml index 60578f1..42eeec3 100644 --- a/web/sites/default/config/views.view.nsf_blog.yml +++ b/web/sites/default/config/views.view.nsf_blog.yml @@ -5,9 +5,9 @@ dependencies: module: - aggregator id: nsf_blog -label: Blog +label: 'External blogs' module: views -description: 'NSF custom view. Displays blog entries imported from external blog.' +description: 'NSF custom view. Displays blog entries imported from external sources.' tag: '' base_table: aggregator_item base_field: iid @@ -148,7 +148,20 @@ display: plugin_id: date title: 'NSF on Tumblr' header: { } - footer: { } + footer: + area: + id: area + table: views + field: area + relationship: none + group_type: group + admin_label: '' + empty: false + tokenize: false + content: + value: 'Social Media Policies' + format: basic_html + plugin_id: text empty: { } relationships: { } arguments: { } @@ -162,26 +175,19 @@ display: block_1: display_plugin: block id: block_1 - display_title: Block + display_title: 'Tumblr block' position: 3 display_options: display_extenders: { } - style: - type: default defaults: - style: false - row: false - pager: false + style: true + row: true + pager: true fields: false footer: true - row: - type: fields - pager: - type: some - options: - items_per_page: 5 - offset: 0 - block_description: 'Blog entries (all)' + filters: false + filter_groups: false + block_description: 'NSF on Tumblr' fields: title: table: aggregator_item @@ -314,6 +320,57 @@ display: entity_type: aggregator_item entity_field: timestamp plugin_id: field + display_description: '' + block_category: 'Social Media' + filters: + fid: + id: fid + table: aggregator_item + field: fid + relationship: none + group_type: group + admin_label: '' + operator: '<=' + value: + min: '' + max: '' + value: '2' + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + placeholder: '' + min_placeholder: '' + max_placeholder: '' + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: aggregator_item + entity_field: fid + plugin_id: numeric + filter_groups: + operator: AND + groups: + 1: AND cache_metadata: max-age: -1 contexts: @@ -338,52 +395,6 @@ display: path: blog.xml displays: default: default - page_1: page_1 - cache_metadata: - max-age: -1 - contexts: - - 'languages:language_content' - - 'languages:language_interface' - tags: { } - page_1: - display_plugin: page - id: page_1 - display_title: Page - position: 1 - display_options: - display_extenders: { } - path: blog - filters: { } - defaults: - filters: false - filter_groups: false - use_more: false - use_more_always: false - use_more_text: false - title: true - footer: false - filter_groups: - operator: AND - groups: - 1: AND - enabled: true - use_more: false - use_more_always: false - use_more_text: more - footer: - area: - id: area - table: views - field: area - relationship: none - group_type: group - admin_label: '' - empty: false - tokenize: false - content: - value: 'Social Media Policies' - format: basic_html - plugin_id: text cache_metadata: max-age: -1 contexts: diff --git a/web/sites/default/content/node/ce367652-adf0-41fb-ba60-bc548040cca3.json b/web/sites/default/content/node/ce367652-adf0-41fb-ba60-bc548040cca3.json new file mode 100644 index 0000000..f72f234 --- /dev/null +++ b/web/sites/default/content/node/ce367652-adf0-41fb-ba60-bc548040cca3.json @@ -0,0 +1,153 @@ +{ + "_links": { + "self": { + "href": "http:\/\/default\/blog?_format=hal_json" + }, + "type": { + "href": "http:\/\/drupal.org\/rest\/type\/node\/page" + }, + "http:\/\/drupal.org\/rest\/relation\/node\/page\/revision_uid": [ + { + "href": "http:\/\/default\/user\/1?_format=hal_json" + } + ], + "http:\/\/drupal.org\/rest\/relation\/node\/page\/uid": [ + { + "href": "http:\/\/default\/user\/1?_format=hal_json", + "lang": "en" + } + ] + }, + "nid": [ + { + "value": 3 + } + ], + "uuid": [ + { + "value": "ce367652-adf0-41fb-ba60-bc548040cca3" + } + ], + "vid": [ + { + "value": 3 + } + ], + "langcode": [ + { + "value": "en", + "lang": "en" + } + ], + "type": [ + { + "target_id": "page" + } + ], + "revision_timestamp": [ + { + "value": "2018-05-04T23:24:09+00:00", + "format": "Y-m-d\\TH:i:sP" + } + ], + "_embedded": { + "http:\/\/drupal.org\/rest\/relation\/node\/page\/revision_uid": [ + { + "_links": { + "self": { + "href": "http:\/\/default\/user\/1?_format=hal_json" + }, + "type": { + "href": "http:\/\/drupal.org\/rest\/type\/user\/user" + } + }, + "uuid": [ + { + "value": "41754bd2-a1ed-4d85-afcd-d950e0e73015" + } + ] + } + ], + "http:\/\/drupal.org\/rest\/relation\/node\/page\/uid": [ + { + "_links": { + "self": { + "href": "http:\/\/default\/user\/1?_format=hal_json" + }, + "type": { + "href": "http:\/\/drupal.org\/rest\/type\/user\/user" + } + }, + "uuid": [ + { + "value": "41754bd2-a1ed-4d85-afcd-d950e0e73015" + } + ], + "lang": "en" + } + ] + }, + "status": [ + { + "value": true, + "lang": "en" + } + ], + "title": [ + { + "value": "National Science Foundation", + "lang": "en" + } + ], + "created": [ + { + "value": "2018-05-04T23:23:32+00:00", + "lang": "en", + "format": "Y-m-d\\TH:i:sP" + } + ], + "changed": [ + { + "value": "2018-05-04T23:24:09+00:00", + "lang": "en", + "format": "Y-m-d\\TH:i:sP" + } + ], + "promote": [ + { + "value": false + } + ], + "sticky": [ + { + "value": false, + "lang": "en" + } + ], + "default_langcode": [ + { + "value": true, + "lang": "en" + } + ], + "revision_translation_affected": [ + { + "value": true, + "lang": "en" + } + ], + "moderation_state": [ + { + "value": "published", + "lang": "en" + } + ], + "path": [ + { + "alias": "\/blog", + "pid": 2, + "langcode": "en", + "lang": "en" + } + ] +} \ No newline at end of file