diff --git a/config/.gitignore b/config/.gitignore
index 6849a8304..a3190354e 100644
--- a/config/.gitignore
+++ b/config/.gitignore
@@ -1,10 +1,15 @@
+# Ignore all readmes
+*/README.md
+
# Ignore dev for local
dev-active/*.json
dev-active/.htaccess
+# Ingore beta server changes (is this what we want?)
+beta-active/*
# Ignore specific config files in staging
-staging/devel.settings.json
-staging/menu.menu.devel.json
-
+*/devel.settings.json
+*/menu.menu.devel.json
+*/stage_file_proxy.settings.json
diff --git a/config/staging/README.md b/config/staging/README.md
index 83f8e92c0..f4c4fb9ca 100644
--- a/config/staging/README.md
+++ b/config/staging/README.md
@@ -1,4 +1,2 @@
-This directory contains the active configuration for your Backdrop site. To move
-this configuration between environments, contents from this directory should be
-placed in the staging directory on the target server. To make this configuration
-active, see admin/config/development/configuration/sync on the target server.
+This directory contains configuration to be imported into your Backdrop site. To
+make this configuration active, see admin/config/development/configuration/sync.
diff --git a/config/staging/block.custom.home_card_cta.json b/config/staging/block.custom.home_card_cta.json
new file mode 100644
index 000000000..a7ae0b365
--- /dev/null
+++ b/config/staging/block.custom.home_card_cta.json
@@ -0,0 +1,12 @@
+{
+ "_config_name": "block.custom.home_card_cta",
+ "delta": "home_card_cta",
+ "info": "Home Card - CTA",
+ "title": "",
+ "description": "",
+ "body": {
+ "value": "Explore more features ",
+ "format": "full_html"
+ },
+ "default_langcode": "und"
+}
diff --git a/config/staging/block.custom.home_card_d7.json b/config/staging/block.custom.home_card_d7.json
new file mode 100644
index 000000000..5d1efec18
--- /dev/null
+++ b/config/staging/block.custom.home_card_d7.json
@@ -0,0 +1,12 @@
+{
+ "_config_name": "block.custom.home_card_d7",
+ "delta": "home_card_d7",
+ "info": "Home Card - D7",
+ "title": "Upgrade from Drupal 7 with ease",
+ "description": "",
+ "body": {
+ "value": "
\r\n Backdrop has a built-in upgrade path from Drupal 7 and will feel familiar to anyone migrating. \r\n
",
+ "format": "filtered_html"
+ },
+ "default_langcode": "und"
+}
diff --git a/config/staging/block.custom.home_card_functionality.json b/config/staging/block.custom.home_card_functionality.json
new file mode 100644
index 000000000..60c844fb9
--- /dev/null
+++ b/config/staging/block.custom.home_card_functionality.json
@@ -0,0 +1,12 @@
+{
+ "_config_name": "block.custom.home_card_functionality",
+ "delta": "home_card_functionality",
+ "info": "Home Card - Functionality",
+ "title": "Add more functionality quickly and easily",
+ "description": "",
+ "body": {
+ "value": "\r\n Browse and install add-ons right from your site, created by a large, active, open source community. \r\n
",
+ "format": "filtered_html"
+ },
+ "default_langcode": "und"
+}
diff --git a/config/staging/block.custom.home_card_manage_content.json b/config/staging/block.custom.home_card_manage_content.json
new file mode 100644
index 000000000..28b4a65cb
--- /dev/null
+++ b/config/staging/block.custom.home_card_manage_content.json
@@ -0,0 +1,12 @@
+{
+ "_config_name": "block.custom.home_card_manage_content",
+ "delta": "home_card_manage_content",
+ "info": "Home Card - Manage Content",
+ "title": "Create and manage your own content",
+ "description": "",
+ "body": {
+ "value": "\r\n No need to be a web programmer to simply create, publish, and maintain your site’s content. \r\n
",
+ "format": "filtered_html"
+ },
+ "default_langcode": "und"
+}
diff --git a/config/staging/block.custom.home_card_performance.json b/config/staging/block.custom.home_card_performance.json
new file mode 100644
index 000000000..03becd1a8
--- /dev/null
+++ b/config/staging/block.custom.home_card_performance.json
@@ -0,0 +1,12 @@
+{
+ "_config_name": "block.custom.home_card_performance",
+ "delta": "home_card_performance",
+ "info": "Home Card - Performance",
+ "title": "Serve pages fast, even on shared hosting",
+ "description": "",
+ "body": {
+ "value": "\r\n With a commitment to performance, you can expect to see your pages fly! \r\n
",
+ "format": "filtered_html"
+ },
+ "default_langcode": "und"
+}
diff --git a/config/staging/entity.view_modes.json b/config/staging/entity.view_modes.json
index 0157a2ecb..400b4e2dc 100644
--- a/config/staging/entity.view_modes.json
+++ b/config/staging/entity.view_modes.json
@@ -4,6 +4,9 @@
"node": {
"project_search": {
"label": "Project Search"
+ },
+ "card": {
+ "label": "Card"
}
}
}
diff --git a/config/staging/field.bundle.node.feature.json b/config/staging/field.bundle.node.feature.json
index 045717467..d0deb06cb 100644
--- a/config/staging/field.bundle.node.feature.json
+++ b/config/staging/field.bundle.node.feature.json
@@ -20,6 +20,9 @@
},
"print": {
"custom_settings": false
+ },
+ "card": {
+ "custom_settings": true
}
},
"extra_fields": {
diff --git a/config/staging/field.bundle.taxonomy_term.organization.json b/config/staging/field.bundle.taxonomy_term.organization.json
index e76a3990b..f5382d679 100644
--- a/config/staging/field.bundle.taxonomy_term.organization.json
+++ b/config/staging/field.bundle.taxonomy_term.organization.json
@@ -15,6 +15,13 @@
"weight": "2"
}
},
- "display": []
+ "display": {
+ "description": {
+ "default": {
+ "weight": "0",
+ "visible": true
+ }
+ }
+ }
}
}
diff --git a/config/staging/field.instance.node.feature.body.json b/config/staging/field.instance.node.feature.body.json
index 867d45f9d..fcfc13f64 100644
--- a/config/staging/field.instance.node.feature.body.json
+++ b/config/staging/field.instance.node.feature.body.json
@@ -17,7 +17,8 @@
"settings": {
"text_processing": "1",
"display_summary": 0,
- "user_register_form": false
+ "user_register_form": false,
+ "allowed_formats": []
},
"display": {
"default": {
@@ -35,6 +36,12 @@
"trim_length": 600
},
"module": "text"
+ },
+ "card": {
+ "label": "hidden",
+ "type": "hidden",
+ "weight": "5",
+ "settings": []
}
},
"description": "",
diff --git a/config/staging/field.instance.node.feature.field_backdrop_version.json b/config/staging/field.instance.node.feature.field_backdrop_version.json
index b2c46136d..524df6922 100644
--- a/config/staging/field.instance.node.feature.field_backdrop_version.json
+++ b/config/staging/field.instance.node.feature.field_backdrop_version.json
@@ -36,6 +36,12 @@
"type": "hidden",
"weight": "2",
"settings": []
+ },
+ "card": {
+ "label": "inline",
+ "type": "hidden",
+ "weight": "4",
+ "settings": []
}
}
}
diff --git a/config/staging/field.instance.node.feature.field_blurb.json b/config/staging/field.instance.node.feature.field_blurb.json
index ec02a116a..5eb51b63c 100644
--- a/config/staging/field.instance.node.feature.field_blurb.json
+++ b/config/staging/field.instance.node.feature.field_blurb.json
@@ -20,7 +20,8 @@
"default_value_function": null,
"settings": {
"text_processing": "0",
- "user_register_form": false
+ "user_register_form": false,
+ "allowed_formats": []
},
"display": {
"default": {
@@ -36,6 +37,13 @@
"weight": "0",
"settings": [],
"module": "text"
+ },
+ "card": {
+ "label": "hidden",
+ "type": "text_default",
+ "weight": "0",
+ "settings": [],
+ "module": "text"
}
}
}
diff --git a/config/staging/field.instance.node.feature.field_feature_type.json b/config/staging/field.instance.node.feature.field_feature_type.json
index 5b2eaf527..99b4b94bd 100644
--- a/config/staging/field.instance.node.feature.field_feature_type.json
+++ b/config/staging/field.instance.node.feature.field_feature_type.json
@@ -32,6 +32,12 @@
"type": "hidden",
"weight": "3",
"settings": []
+ },
+ "card": {
+ "label": "hidden",
+ "type": "hidden",
+ "weight": "1",
+ "settings": []
}
}
}
diff --git a/config/staging/field.instance.node.feature.field_organization.json b/config/staging/field.instance.node.feature.field_organization.json
index d346c775f..7d21bd789 100644
--- a/config/staging/field.instance.node.feature.field_organization.json
+++ b/config/staging/field.instance.node.feature.field_organization.json
@@ -31,6 +31,12 @@
"type": "hidden",
"weight": "5",
"settings": []
+ },
+ "card": {
+ "label": "hidden",
+ "type": "hidden",
+ "weight": "7",
+ "settings": []
}
}
}
diff --git a/config/staging/field.instance.node.feature.field_screen_lg.json b/config/staging/field.instance.node.feature.field_screen_lg.json
index ebfaa4a23..0b0f28196 100644
--- a/config/staging/field.instance.node.feature.field_screen_lg.json
+++ b/config/staging/field.instance.node.feature.field_screen_lg.json
@@ -30,7 +30,8 @@
"user_register_form": false,
"max_dimensions": "",
"min_dimensions": "",
- "orientate": 0
+ "orientate": 0,
+ "alt_field_required": 0
},
"display": {
"default": {
@@ -50,6 +51,12 @@
"type": "hidden",
"weight": "6",
"settings": []
+ },
+ "card": {
+ "label": "hidden",
+ "type": "hidden",
+ "weight": "2",
+ "settings": []
}
}
}
diff --git a/config/staging/field.instance.node.feature.field_video.json b/config/staging/field.instance.node.feature.field_video.json
index 15da7dad1..19659d4e6 100644
--- a/config/staging/field.instance.node.feature.field_video.json
+++ b/config/staging/field.instance.node.feature.field_video.json
@@ -42,6 +42,12 @@
"type": "hidden",
"weight": "7",
"settings": []
+ },
+ "card": {
+ "label": "hidden",
+ "type": "hidden",
+ "weight": "6",
+ "settings": []
}
}
}
diff --git a/config/staging/layout.layout.default.json b/config/staging/layout.layout.default.json
index 44cb6eeb4..0c3b27404 100644
--- a/config/staging/layout.layout.default.json
+++ b/config/staging/layout.layout.default.json
@@ -366,6 +366,7 @@
"display": "auto",
"enabled": {
"mastodon": "mastodon",
+ "bluesky": "bluesky",
"facebook": "facebook",
"github": "github",
"linkedin": "linkedin",
@@ -384,7 +385,7 @@
"plugin": "default",
"data": {
"settings": {
- "classes": "col-sm-6"
+ "classes": "col-md-6"
}
}
}
@@ -410,7 +411,7 @@
"plugin": "default",
"data": {
"settings": {
- "classes": "col-sm-6"
+ "classes": "col-md-6"
}
}
}
diff --git a/config/staging/layout.layout.home.json b/config/staging/layout.layout.home.json
index bb3327b50..747f94d80 100644
--- a/config/staging/layout.layout.home.json
+++ b/config/staging/layout.layout.home.json
@@ -8,8 +8,8 @@
"module": null,
"weight": -9,
"storage": 1,
- "layout_template": "borg_sutro",
- "disabled": false,
+ "layout_template": "borg_sutro_grid",
+ "disabled": true,
"settings": {
"title": "",
"title_display": "none",
@@ -23,38 +23,26 @@
],
"top": [
"2ccf25c8-e89e-4531-b83a-585d462a1e02",
- "e50b4f98-4eb2-4ae0-9d3c-60932d8a5a6d"
+ "e50b4f98-4eb2-4ae0-9d3c-60932d8a5a6d",
+ "55c9ae11-1555-467f-9500-efd5ae2257a4"
],
- "top1": [
- "af96a11b-a617-457e-8e00-e6a56cf0f640"
- ],
- "top2": [
- "231ef900-0d0f-4d58-a43f-636a2b11e958"
- ],
- "top3": [
- "e66902ae-5fac-47b7-8500-b84bff8c4dd9"
- ],
- "content": [],
- "half1": [
- "712c691e-6273-4634-8000-d97d82d86e88"
- ],
- "half2": [
- "78355c13-bb46-4609-a607-7fa6192a1afd",
- "f763943b-8712-44ff-ba00-e45044734b4b",
- "a2d68242-5eb9-422e-8700-0fa9e7c6b9a1"
- ],
- "below": [
- "65611a78-5d6e-4d50-8705-058169d6120c",
- "1bcb4583-cc63-43dc-8908-08af956e6975"
- ],
- "below1": [
- "67447c68-4227-4401-ad00-f50c7b1a6690"
- ],
- "below2": [
- "a9d84586-db47-4e43-a75d-93e603166bfb"
+ "top1": [],
+ "top2": [],
+ "top3": [],
+ "top4": [],
+ "content": [
+ "712c691e-6273-4634-8000-d97d82d86e88",
+ "9c5d45ac-6a49-44bd-9000-e670a46b735d",
+ "acc17d01-491b-42c9-b43f-632ef8cb53ee"
],
+ "half1": [],
+ "half2": [],
+ "below": [],
+ "below1": [],
+ "below2": [],
"bottom": [
- "ab1a0052-0f34-4e5d-ba00-00f61a41f411"
+ "72cf526c-2292-46bd-a017-2395ee4c228b",
+ "f4fd0ab5-c082-46ed-a306-6f12f92d850c"
],
"footer": [
"c66acea2-a5a6-4e74-aa05-5ed51a7cb134"
@@ -190,7 +178,7 @@
"title": "",
"style": "default",
"block_settings": {
- "version": "1.31.0"
+ "version": "1.30.1"
},
"contexts": [],
"admin_label": "",
@@ -207,48 +195,20 @@
}
}
},
- "af96a11b-a617-457e-8e00-e6a56cf0f640": {
- "plugin": "layout:custom_block",
- "data": {
- "status": 1,
- "module": "layout",
- "delta": "custom_block",
- "settings": {
- "title_display": "default",
- "title": "What is Backdrop CMS?",
- "style": "default",
- "block_settings": [],
- "contexts": [],
- "content": "\r\n Backdrop is a free and Open Source Content Management System that helps you build modern, comprehensive websites on a reasonable budget.\r\n
\r\n\r\n A fork of the successful Drupal project, it's an excellent alternative for organizations of all sizes.\r\n
",
- "format": "filtered_html",
- "admin_label": "",
- "admin_description": ""
- },
- "uuid": "af96a11b-a617-457e-8e00-e6a56cf0f640",
- "style": {
- "plugin": "default",
- "data": {
- "settings": {
- "classes": ""
- }
- }
- }
- }
- },
- "231ef900-0d0f-4d58-a43f-636a2b11e958": {
- "plugin": "views:showcase-block_2",
+ "55c9ae11-1555-467f-9500-efd5ae2257a4": {
+ "plugin": "views:product_features-block",
"data": {
"status": 1,
"module": "views",
- "delta": "showcase-block_2",
+ "delta": "product_features-block",
"settings": {
"link_to_view": 0,
- "more_link": false,
+ "more_link": 1,
"use_pager": false,
"pager_id": 0,
- "items_per_page": "1",
+ "items_per_page": "4",
"offset": 0,
- "path": "showcase",
+ "path": "features",
"fields_override": null,
"title_display": "default",
"title": "",
@@ -261,37 +221,7 @@
"admin_label": "",
"admin_description": ""
},
- "uuid": "231ef900-0d0f-4d58-a43f-636a2b11e958",
- "style": {
- "plugin": "default",
- "data": {
- "settings": {
- "classes": ""
- }
- }
- }
- }
- },
- "e66902ae-5fac-47b7-8500-b84bff8c4dd9": {
- "plugin": "block:backdrop_live",
- "data": {
- "status": 1,
- "module": "block",
- "delta": "backdrop_live",
- "settings": {
- "title_display": "default",
- "title": "",
- "style": "default",
- "block_settings": {
- "delta": "backdrop_live",
- "description": "Promote Backdrop LIVE",
- "reusable": true
- },
- "contexts": [],
- "admin_label": "",
- "admin_description": ""
- },
- "uuid": "e66902ae-5fac-47b7-8500-b84bff8c4dd9",
+ "uuid": "55c9ae11-1555-467f-9500-efd5ae2257a4",
"style": {
"plugin": "default",
"data": {
@@ -331,26 +261,22 @@
}
}
},
- "78355c13-bb46-4609-a607-7fa6192a1afd": {
- "plugin": "block:books",
+ "9c5d45ac-6a49-44bd-9000-e670a46b735d": {
+ "plugin": "borg_blocks:resources",
"data": {
"status": 1,
- "module": "block",
- "delta": "books",
+ "module": "borg_blocks",
+ "delta": "resources",
"settings": {
"title_display": "default",
"title": "",
"style": "default",
- "block_settings": {
- "delta": "books",
- "description": "",
- "reusable": true
- },
+ "block_settings": [],
"contexts": [],
"admin_label": "",
"admin_description": ""
},
- "uuid": "78355c13-bb46-4609-a607-7fa6192a1afd",
+ "uuid": "9c5d45ac-6a49-44bd-9000-e670a46b735d",
"style": {
"plugin": "default",
"data": {
@@ -361,111 +287,48 @@
}
}
},
- "f763943b-8712-44ff-ba00-e45044734b4b": {
- "plugin": "block:resources",
+ "acc17d01-491b-42c9-b43f-632ef8cb53ee": {
+ "plugin": "borg_blocks:community",
"data": {
"status": 1,
- "module": "block",
- "delta": "resources",
+ "module": "borg_blocks",
+ "delta": "community",
"settings": {
"title_display": "default",
"title": "",
"style": "default",
- "block_settings": {
- "delta": "resources",
- "description": "",
- "reusable": true
- },
+ "block_settings": [],
"contexts": [],
"admin_label": "",
"admin_description": ""
},
- "uuid": "f763943b-8712-44ff-ba00-e45044734b4b",
+ "uuid": "acc17d01-491b-42c9-b43f-632ef8cb53ee",
"style": {
"plugin": "default",
"data": {
"settings": {
- "classes": ""
- }
- }
- }
- }
- },
- "a2d68242-5eb9-422e-8700-0fa9e7c6b9a1": {
- "plugin": "layout:custom_block",
- "data": {
- "status": 1,
- "module": "layout",
- "delta": "custom_block",
- "settings": {
- "title_display": "default",
- "title": "Badges",
- "style": "default",
- "block_settings": [],
- "contexts": [],
- "content": "Linux Foundation Core Infrastructure Initiative\r\n\r\n ",
- "format": "full_html"
- },
- "uuid": "a2d68242-5eb9-422e-8700-0fa9e7c6b9a1",
- "style": {
- "plugin": "default",
- "data": {
- "settings": {
- "classes": ""
+ "classes": "bd-community__outer-wrapper"
}
}
}
}
},
- "65611a78-5d6e-4d50-8705-058169d6120c": {
- "plugin": "views:showcase-block_1",
+ "72cf526c-2292-46bd-a017-2395ee4c228b": {
+ "plugin": "borg_blocks:audiences",
"data": {
"status": 1,
- "module": "views",
- "delta": "showcase-block_1",
+ "module": "borg_blocks",
+ "delta": "audiences",
"settings": {
- "link_to_view": 0,
- "more_link": false,
- "use_pager": false,
- "pager_id": 0,
- "items_per_page": "3",
- "offset": 0,
- "path": "showcase",
- "fields_override": null,
"title_display": "default",
"title": "",
"style": "default",
"block_settings": [],
"contexts": [],
- "allowed": [],
- "path_override": false,
- "exposed": []
- },
- "uuid": "65611a78-5d6e-4d50-8705-058169d6120c",
- "style": {
- "plugin": "default",
- "data": {
- "settings": {
- "classes": "dark"
- }
- }
- }
- }
- },
- "1bcb4583-cc63-43dc-8908-08af956e6975": {
- "plugin": "borg_project_metrics:backdrop_project_metrics",
- "data": {
- "status": 1,
- "module": "borg_project_metrics",
- "delta": "backdrop_project_metrics",
- "settings": {
- "title_display": "default",
- "title": "",
- "style": "default",
- "block_settings": [],
- "contexts": []
+ "admin_label": "",
+ "admin_description": ""
},
- "uuid": "1bcb4583-cc63-43dc-8908-08af956e6975",
+ "uuid": "72cf526c-2292-46bd-a017-2395ee4c228b",
"style": {
"plugin": "default",
"data": {
@@ -476,14 +339,14 @@
}
}
},
- "67447c68-4227-4401-ad00-f50c7b1a6690": {
+ "f4fd0ab5-c082-46ed-a306-6f12f92d850c": {
"plugin": "views:news-block",
"data": {
"status": 1,
"module": "views",
"delta": "news-block",
"settings": {
- "link_to_view": null,
+ "link_to_view": 0,
"more_link": false,
"use_pager": false,
"pager_id": 0,
@@ -498,68 +361,11 @@
"contexts": [],
"allowed": [],
"path_override": false,
- "exposed": []
- },
- "uuid": "67447c68-4227-4401-ad00-f50c7b1a6690",
- "style": {
- "plugin": "default",
- "data": {
- "settings": {
- "classes": ""
- }
- }
- }
- }
- },
- "a9d84586-db47-4e43-a75d-93e603166bfb": {
- "plugin": "views:supporters_home-block_2",
- "data": {
- "status": 1,
- "module": "views",
- "delta": "supporters_home-block_2",
- "settings": {
- "link_to_view": 0,
- "more_link": false,
- "use_pager": false,
- "pager_id": 0,
- "items_per_page": "16",
- "offset": 0,
- "path": null,
- "fields_override": null,
- "title_display": "default",
- "title": "",
- "style": "default",
- "block_settings": [],
- "contexts": [],
- "allowed": [],
- "path_override": false,
- "exposed": []
- },
- "uuid": "a9d84586-db47-4e43-a75d-93e603166bfb",
- "style": {
- "plugin": "default",
- "data": {
- "settings": {
- "classes": ""
- }
- }
- }
- }
- },
- "ab1a0052-0f34-4e5d-ba00-00f61a41f411": {
- "plugin": "borg_blocks:upgrade",
- "data": {
- "status": 1,
- "module": "borg_blocks",
- "delta": "upgrade",
- "settings": {
- "title_display": "default",
- "title": "",
- "style": "default",
- "block_settings": [],
- "contexts": []
+ "exposed": [],
+ "admin_label": "",
+ "admin_description": ""
},
- "uuid": "ab1a0052-0f34-4e5d-ba00-00f61a41f411",
+ "uuid": "f4fd0ab5-c082-46ed-a306-6f12f92d850c",
"style": {
"plugin": "default",
"data": {
diff --git a/config/staging/layout.layout.home_page.json b/config/staging/layout.layout.home_page.json
new file mode 100644
index 000000000..54b27e2d3
--- /dev/null
+++ b/config/staging/layout.layout.home_page.json
@@ -0,0 +1,277 @@
+{
+ "_config_name": "layout.layout.home_page",
+ "path": "home",
+ "name": "home_page",
+ "title": "Home Page",
+ "description": null,
+ "renderer_name": "standard",
+ "module": null,
+ "weight": 0,
+ "storage": 1,
+ "layout_template": "borg_sutro_grid",
+ "disabled": false,
+ "settings": {
+ "title": "",
+ "title_display": "none",
+ "title_block": "123ef4d4-b52c-42e1-9900-bc55bc73d9e7"
+ },
+ "positions": {
+ "header": [
+ "5de372e6-a26c-4431-9a30-4825894508ce"
+ ],
+ "top": [
+ "318840b1-1af9-4772-ab03-3dc811ea09ad",
+ "b61ac8eb-1d79-4fbf-a506-6d0d10b0642c"
+ ],
+ "content": [
+ "123ef4d4-b52c-42e1-9900-bc55bc73d9e7",
+ "1070cf09-693e-4aa8-a22c-44639dabfc5b",
+ "e90b0196-6899-4eea-a600-bfba41475bc7"
+ ],
+ "bottom": [
+ "2b1e738f-b5cb-49b8-8500-ca6f07baee41"
+ ],
+ "footer": [
+ "30511366-6fc1-4157-aa15-216c13438d74"
+ ],
+ "title": []
+ },
+ "contexts": [],
+ "relationships": [],
+ "content": {
+ "5de372e6-a26c-4431-9a30-4825894508ce": {
+ "plugin": "copy_blocks:region_copy",
+ "data": {
+ "status": 1,
+ "module": "copy_blocks",
+ "delta": "region_copy",
+ "settings": {
+ "title_display": "default",
+ "title": "",
+ "style": "default",
+ "block_settings": [],
+ "contexts": [],
+ "admin_label": "",
+ "admin_description": "",
+ "source_region": "default:header"
+ },
+ "uuid": "5de372e6-a26c-4431-9a30-4825894508ce",
+ "style": {
+ "plugin": "default",
+ "data": {
+ "settings": {
+ "classes": ""
+ }
+ }
+ }
+ }
+ },
+ "318840b1-1af9-4772-ab03-3dc811ea09ad": {
+ "plugin": "borg_blocks:tagline",
+ "data": {
+ "status": 1,
+ "module": "borg_blocks",
+ "delta": "tagline",
+ "settings": {
+ "title_display": "default",
+ "title": "",
+ "style": "default",
+ "block_settings": {
+ "version": "1.13.0"
+ },
+ "contexts": [],
+ "admin_label": "",
+ "admin_description": ""
+ },
+ "uuid": "318840b1-1af9-4772-ab03-3dc811ea09ad",
+ "style": {
+ "plugin": "default",
+ "data": {
+ "settings": {
+ "classes": ""
+ }
+ }
+ }
+ }
+ },
+ "b61ac8eb-1d79-4fbf-a506-6d0d10b0642c": {
+ "plugin": "views:product_features-block",
+ "data": {
+ "status": 1,
+ "module": "views",
+ "delta": "product_features-block",
+ "settings": {
+ "link_to_view": 0,
+ "more_link": 1,
+ "use_pager": false,
+ "pager_id": 0,
+ "items_per_page": "4",
+ "offset": 0,
+ "path": "features",
+ "fields_override": null,
+ "title_display": "default",
+ "title": "",
+ "style": "default",
+ "block_settings": [],
+ "contexts": [],
+ "allowed": [],
+ "path_override": false,
+ "exposed": [],
+ "admin_label": "",
+ "admin_description": ""
+ },
+ "uuid": "b61ac8eb-1d79-4fbf-a506-6d0d10b0642c",
+ "style": {
+ "plugin": "default",
+ "data": {
+ "settings": {
+ "classes": ""
+ }
+ }
+ }
+ }
+ },
+ "123ef4d4-b52c-42e1-9900-bc55bc73d9e7": {
+ "plugin": "borg_blocks:audiences",
+ "data": {
+ "status": 1,
+ "module": "borg_blocks",
+ "delta": "audiences",
+ "settings": {
+ "title_display": "default",
+ "title": "",
+ "style": "default",
+ "block_settings": [],
+ "contexts": [],
+ "admin_label": "",
+ "admin_description": ""
+ },
+ "uuid": "123ef4d4-b52c-42e1-9900-bc55bc73d9e7",
+ "style": {
+ "plugin": "default",
+ "data": {
+ "settings": {
+ "classes": ""
+ }
+ }
+ }
+ }
+ },
+ "1070cf09-693e-4aa8-a22c-44639dabfc5b": {
+ "plugin": "borg_blocks:resources",
+ "data": {
+ "status": 1,
+ "module": "borg_blocks",
+ "delta": "resources",
+ "settings": {
+ "title_display": "default",
+ "title": "",
+ "style": "default",
+ "block_settings": [],
+ "contexts": [],
+ "admin_label": "",
+ "admin_description": ""
+ },
+ "uuid": "1070cf09-693e-4aa8-a22c-44639dabfc5b",
+ "style": {
+ "plugin": "default",
+ "data": {
+ "settings": {
+ "classes": ""
+ }
+ }
+ }
+ }
+ },
+ "e90b0196-6899-4eea-a600-bfba41475bc7": {
+ "plugin": "views:news-block",
+ "data": {
+ "status": 1,
+ "module": "views",
+ "delta": "news-block",
+ "settings": {
+ "link_to_view": 0,
+ "more_link": false,
+ "use_pager": false,
+ "pager_id": 0,
+ "items_per_page": "1",
+ "offset": 0,
+ "path": "news",
+ "fields_override": null,
+ "title_display": "default",
+ "title": "",
+ "style": "default",
+ "block_settings": [],
+ "contexts": [],
+ "allowed": [],
+ "path_override": false,
+ "exposed": [],
+ "admin_label": "",
+ "admin_description": ""
+ },
+ "uuid": "e90b0196-6899-4eea-a600-bfba41475bc7",
+ "style": {
+ "plugin": "default",
+ "data": {
+ "settings": {
+ "classes": ""
+ }
+ }
+ }
+ }
+ },
+ "2b1e738f-b5cb-49b8-8500-ca6f07baee41": {
+ "plugin": "borg_blocks:community",
+ "data": {
+ "status": 1,
+ "module": "borg_blocks",
+ "delta": "community",
+ "settings": {
+ "title_display": "default",
+ "title": "",
+ "style": "default",
+ "block_settings": [],
+ "contexts": [],
+ "admin_label": "",
+ "admin_description": ""
+ },
+ "uuid": "2b1e738f-b5cb-49b8-8500-ca6f07baee41",
+ "style": {
+ "plugin": "default",
+ "data": {
+ "settings": {
+ "classes": ""
+ }
+ }
+ }
+ }
+ },
+ "30511366-6fc1-4157-aa15-216c13438d74": {
+ "plugin": "copy_blocks:region_copy",
+ "data": {
+ "status": 1,
+ "module": "copy_blocks",
+ "delta": "region_copy",
+ "settings": {
+ "title_display": "default",
+ "title": "",
+ "style": "default",
+ "block_settings": [],
+ "contexts": [],
+ "admin_label": "",
+ "admin_description": "",
+ "source_region": "default:footer"
+ },
+ "uuid": "30511366-6fc1-4157-aa15-216c13438d74",
+ "style": {
+ "plugin": "default",
+ "data": {
+ "settings": {
+ "classes": ""
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/config/staging/layout.menu_item.home_page.json b/config/staging/layout.menu_item.home_page.json
new file mode 100644
index 000000000..2b810cd7e
--- /dev/null
+++ b/config/staging/layout.menu_item.home_page.json
@@ -0,0 +1,20 @@
+{
+ "_config_name": "layout.menu_item.home_page",
+ "name": "home_page",
+ "title": "",
+ "path": "home",
+ "menu": {
+ "title": null,
+ "weight": 0,
+ "type": "none",
+ "name": "main-menu",
+ "parent": {
+ "title": null,
+ "weight": 0,
+ "type": "none",
+ "name": "main-menu"
+ }
+ },
+ "conditions": [],
+ "arguments": []
+}
diff --git a/config/staging/menu.menu.menu-cms-audiences.json b/config/staging/menu.menu.menu-cms-audiences.json
new file mode 100644
index 000000000..83480f46f
--- /dev/null
+++ b/config/staging/menu.menu.menu-cms-audiences.json
@@ -0,0 +1,6 @@
+{
+ "_config_name": "menu.menu.menu-cms-audiences",
+ "title": "CMS Audiences",
+ "menu_name": "menu-cms-audiences",
+ "description": "Shown on homepage"
+}
diff --git a/config/staging/system.core.json b/config/staging/system.core.json
index 5a64a3c48..9ef752988 100644
--- a/config/staging/system.core.json
+++ b/config/staging/system.core.json
@@ -16,7 +16,7 @@
"user_picture_dimensions": "1024x1024",
"user_picture_file_size": "800",
"user_picture_guidelines": "",
- "site_frontpage": "node/19",
+ "site_frontpage": "home",
"cache": 1,
"page_cache_maximum_age": "300",
"page_compression": 1,
@@ -46,7 +46,8 @@
"2": "main-menu",
"3": "management",
"5": "user-menu",
- "7": "menu-footer-menu"
+ "7": "menu-footer-menu",
+ "8": "menu-cms-audiences"
},
"menu_route_handler": "layout_route_handler",
"file_default_scheme": "public",
@@ -120,5 +121,11 @@
},
"install_version": "1.0.x",
"user_login_appearance": "tabs",
- "login_admin_theme": 1
+ "login_admin_theme": 1,
+ "site_logo_attributes": {
+ "width": "",
+ "height": ""
+ },
+ "site_logo_upload": "",
+ "site_favicon_upload": ""
}
diff --git a/config/staging/views.view.news.json b/config/staging/views.view.news.json
index bf8562c98..148f847f4 100644
--- a/config/staging/views.view.news.json
+++ b/config/staging/views.view.news.json
@@ -151,10 +151,10 @@
"separator": ", ",
"field_api_classes": 0
},
- "view_node": {
- "id": "view_node",
- "table": "views_entity_node",
- "field": "view_node",
+ "field_image": {
+ "id": "field_image",
+ "table": "field_data_field_image",
+ "field": "field_image",
"relationship": "none",
"group_type": "group",
"ui_name": "",
@@ -166,7 +166,7 @@
"make_link": 0,
"path": "",
"absolute": 0,
- "external": false,
+ "external": 0,
"replace_spaces": 0,
"path_case": "none",
"trim_whitespace": 0,
@@ -200,7 +200,24 @@
"hide_empty": 0,
"empty_zero": 0,
"hide_alter_empty": 1,
- "text": "Read more"
+ "click_sort_column": "fid",
+ "type": "image",
+ "settings": {
+ "image_style": "hero_featured",
+ "image_link": "",
+ "image_float": "",
+ "image_load": "lazy"
+ },
+ "group_column": "",
+ "group_columns": [],
+ "group_rows": true,
+ "delta_limit": "all",
+ "delta_offset": 0,
+ "delta_reversed": false,
+ "delta_first_last": false,
+ "multi_type": "separator",
+ "separator": ", ",
+ "field_api_classes": 0
}
},
"filters": {
diff --git a/config/staging/views.view.product_features.json b/config/staging/views.view.product_features.json
index cbeb6e663..3d0d05d9d 100644
--- a/config/staging/views.view.product_features.json
+++ b/config/staging/views.view.product_features.json
@@ -2,14 +2,14 @@
"_config_name": "views.view.product_features",
"name": "product_features",
"description": "",
- "tag": "default",
+ "tag": "",
"disabled": false,
"base_table": "node",
- "human_name": "Product Features",
- "core": "1.4.2",
+ "human_name": "product_features",
+ "core": "1.29.3",
"display": {
"default": {
- "display_title": "Master",
+ "display_title": "Default",
"display_plugin": "default",
"display_options": {
"query": {
@@ -32,8 +32,8 @@
"offset": "0"
}
},
- "style_plugin": "grid",
- "row_plugin": "fields",
+ "style_plugin": "list",
+ "row_plugin": "node",
"fields": {
"field_icon_class": {
"id": "field_icon_class",
@@ -106,10 +106,10 @@
"group_type": "group",
"ui_name": "",
"label": "",
- "exclude": 0,
+ "exclude": 1,
"alter": {
- "alter_text": 1,
- "text": " [title] ",
+ "alter_text": 0,
+ "text": "",
"make_link": 0,
"path": "",
"absolute": 0,
@@ -147,7 +147,7 @@
"hide_empty": 0,
"empty_zero": 0,
"hide_alter_empty": 1,
- "link_to_node": 1
+ "link_to_node": 0
},
"field_blurb": {
"id": "field_blurb",
@@ -157,7 +157,7 @@
"group_type": "group",
"ui_name": "",
"label": "",
- "exclude": 0,
+ "exclude": 1,
"alter": {
"alter_text": 0,
"text": "",
@@ -211,6 +211,56 @@
"multi_type": "separator",
"separator": ", ",
"field_api_classes": 0
+ },
+ "nothing": {
+ "id": "nothing",
+ "table": "views",
+ "field": "nothing",
+ "relationship": "none",
+ "group_type": "group",
+ "ui_name": "",
+ "label": "",
+ "exclude": 0,
+ "alter": {
+ "alter_text": true,
+ "text": "\r\n
[title] \r\n [field_blurb]\r\n",
+ "make_link": 0,
+ "path": "",
+ "absolute": 0,
+ "external": 0,
+ "replace_spaces": 0,
+ "path_case": "none",
+ "trim_whitespace": 0,
+ "alt": "",
+ "rel": "",
+ "link_class": "",
+ "prefix": "",
+ "suffix": "",
+ "target": "",
+ "nl2br": 0,
+ "max_length": "",
+ "word_boundary": 1,
+ "ellipsis": 1,
+ "more_link": 0,
+ "more_link_text": "",
+ "more_link_path": "",
+ "strip_tags": 0,
+ "trim": 0,
+ "preserve_tags": "",
+ "html": 0
+ },
+ "element_type": "0",
+ "element_class": "",
+ "element_label_type": "",
+ "element_label_class": "",
+ "element_label_colon": false,
+ "element_wrapper_type": "0",
+ "element_wrapper_class": "",
+ "element_default_classes": 1,
+ "empty": "",
+ "hide_empty": 0,
+ "empty_zero": 0,
+ "hide_alter_empty": 0
}
},
"filters": {
@@ -234,6 +284,19 @@
}
},
"sorts": {
+ "promote": {
+ "id": "promote",
+ "table": "node",
+ "field": "promote",
+ "relationship": "none",
+ "group_type": "group",
+ "ui_name": "",
+ "order": "DESC",
+ "exposed": false,
+ "expose": {
+ "label": ""
+ }
+ },
"created": {
"id": "created",
"table": "node",
@@ -241,28 +304,58 @@
"order": "ASC"
}
},
- "title": "Product Features",
+ "title": "",
"row_options": {
- "default_field_elements": 1,
- "inline": [],
- "separator": "",
- "hide_empty": 0
+ "relationship": "none",
+ "view_mode": "card",
+ "title": 1,
+ "links": 1,
+ "comments": 0
},
"style_options": {
- "grouping": [],
"row_class": "",
"default_row_class": 1,
"row_class_special": 1,
- "columns": "3",
- "alignment": "horizontal",
- "deprecated_table": 1,
- "fill_single_line": 1,
- "caption": "",
- "summary": ""
- }
+ "uses_fields": 0,
+ "type": "ul",
+ "wrapper_class": "",
+ "class": "l-top__wrapper"
+ },
+ "css_class": "",
+ "use_more": 1,
+ "use_more_always": false,
+ "use_more_text": "Explore more features"
}
},
- "page": {
+ "block": {
+ "display_title": "Block",
+ "display_plugin": "block",
+ "display_options": {
+ "query": {
+ "type": "views_query",
+ "options": []
+ },
+ "field": {
+ "title": {
+ "link_to_node": 1
+ }
+ },
+ "block_description": "Hero Home Cards",
+ "pager": {
+ "type": "some",
+ "options": {
+ "items_per_page": "4",
+ "offset": "0"
+ }
+ },
+ "defaults": {
+ "pager": false,
+ "pager_options": false
+ },
+ "pager_options": null
+ }
+ },
+ "page_1": {
"display_title": "Page",
"display_plugin": "page",
"display_options": {
@@ -270,7 +363,11 @@
"type": "views_query",
"options": []
},
- "path": "features"
+ "path": "features",
+ "title": "Features of Backdrop CMS",
+ "defaults": {
+ "title": false
+ }
}
}
}
diff --git a/config/staging/views.view.showcase.json b/config/staging/views.view.showcase.json
index 032a4f720..a2ae303ee 100644
--- a/config/staging/views.view.showcase.json
+++ b/config/staging/views.view.showcase.json
@@ -624,7 +624,9 @@
"fields": false,
"header": true,
"pager": false,
- "pager_options": false
+ "pager_options": false,
+ "arguments": false,
+ "relationships": false
},
"pager": {
"type": "full",
@@ -651,7 +653,27 @@
}
}
},
- "pager_options": null
+ "pager_options": null,
+ "arguments": {
+ "name": {
+ "id": "name",
+ "table": "taxonomy_term_data",
+ "field": "name",
+ "relationship": "field_organization_tid"
+ }
+ },
+ "relationships": {
+ "field_organization_tid": {
+ "id": "field_organization_tid",
+ "table": "field_data_field_organization",
+ "field": "field_organization_tid",
+ "relationship": "none",
+ "group_type": "group",
+ "ui_name": "",
+ "label": "term from field_organization",
+ "required": 0
+ }
+ }
}
},
"feed_1": {
diff --git a/www/layouts/borg_sutro/borg_sutro.php b/www/layouts/borg_sutro/borg_sutro.php
index d6e9ee62a..562eada4f 100644
--- a/www/layouts/borg_sutro/borg_sutro.php
+++ b/www/layouts/borg_sutro/borg_sutro.php
@@ -20,6 +20,10 @@ function template_preprocess_layout__borg_sutro(&$variables) {
$top_region_count++;
}
+ $variables['corner_spacer_class'] = '';
+ $variables['corner_container_class'] ='';
+ $variables['top_column_classes'] = array();
+
if ($top_region_count) {
switch ($top_region_count) {
case 1:
diff --git a/www/layouts/borg_sutro_grid/borg_sutro_grid.css b/www/layouts/borg_sutro_grid/borg_sutro_grid.css
new file mode 100644
index 000000000..5b6b0afa1
--- /dev/null
+++ b/www/layouts/borg_sutro_grid/borg_sutro_grid.css
@@ -0,0 +1,24 @@
+/* BEGIN Override general style that screws with the layout */
+.front .l-hero,
+.l-wrapper-inner[class] {
+ max-width: 9999em;
+ padding-inline: 0;
+}
+
+.front article .content .field,
+.front section .content .field {
+ margin: 0;
+ padding: 0;
+}
+
+.front p {
+ font-size: inherit;
+ line-height: 1.666;
+}
+
+.front .l-messages {
+ max-width: 1000px;
+ margin-inline: auto;
+ padding: 2em;
+}
+/* END Overrides */
\ No newline at end of file
diff --git a/www/layouts/borg_sutro_grid/borg_sutro_grid.info b/www/layouts/borg_sutro_grid/borg_sutro_grid.info
new file mode 100644
index 000000000..fdd5bb807
--- /dev/null
+++ b/www/layouts/borg_sutro_grid/borg_sutro_grid.info
@@ -0,0 +1,22 @@
+type = layout
+name = New Home Grid
+backdrop = 1.x
+
+; Specify regions for this layout.
+regions[header] = Header
+regions[top] = Top
+regions[content] = Content
+regions[bottom] = Bottom
+regions[footer] = Footer
+
+; The default region automatically receives the "Main Content" block if needed.
+default region = content
+
+; Preview
+preview = boxton.png
+
+; Include the Bootstrap4 Grid System
+libraries[] = bootstrap4-gs
+
+; Stylesheet
+stylesheets[all][] = borg_sutro_grid.css
\ No newline at end of file
diff --git a/www/layouts/borg_sutro_grid/boxton.png b/www/layouts/borg_sutro_grid/boxton.png
new file mode 100644
index 000000000..7e59ca967
Binary files /dev/null and b/www/layouts/borg_sutro_grid/boxton.png differ
diff --git a/www/layouts/borg_sutro_grid/layout--borg-sutro-grid.tpl.php b/www/layouts/borg_sutro_grid/layout--borg-sutro-grid.tpl.php
new file mode 100644
index 000000000..4eb46a0c0
--- /dev/null
+++ b/www/layouts/borg_sutro_grid/layout--borg-sutro-grid.tpl.php
@@ -0,0 +1,84 @@
+
+>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/www/modules/custom/borg_blocks/borg_blocks.module b/www/modules/custom/borg_blocks/borg_blocks.module
index 3c2509ecc..b945c9751 100644
--- a/www/modules/custom/borg_blocks/borg_blocks.module
+++ b/www/modules/custom/borg_blocks/borg_blocks.module
@@ -4,10 +4,32 @@
* Provides custom blocks for Backdropcms.org
*/
+/**
+ * Modules included in core.
+ */
+define('MODULES_CORE', 75);
+
+/**
+ * Percent of top Drupal Modules ready.
+ */
+define('MODULES_TOP', 97);
+
+/**
+ * Projects available.
+ */
+define('MODULES_AVAILABLE', 1300);
+
+
/**
* Implements hook_block_info().
*/
function borg_blocks_block_info() {
+ // New home page block.
+ $blocks['community'] = array(
+ 'info' => t('Join the community'),
+ 'description' => t('Home page: Community section'),
+ );
+
$blocks['branding'] = array(
'info' => t('Branding'),
'description' => t('Backdrop CMS logomark and wordmark.'),
@@ -16,6 +38,10 @@ function borg_blocks_block_info() {
'info' => t('Tagline & Download'),
'description' => t('Tagline and download'),
);
+ $blocks['audiences'] = array(
+ 'info' => t('Backdrop for Audiences'),
+ 'description' => t('Homepage block'),
+ );
$blocks['greeting'] = array(
'info' => t('Greeting'),
'description' => t('Backdrop CMS greeting block.'),
@@ -43,17 +69,17 @@ function borg_blocks_block_view($delta = '', $settings = array(), $contexts = ar
$block = array();
switch ($delta) {
- case 'branding':
- $options = array('attributes' => array('class' => array('site-name')));
- $output = l(t('backdrop'), '', $options);
- $uri = backdrop_get_path('module', 'borg_blocks') . '/images/logo.png';
- $image = theme('image', array('uri' => $uri, 'alt' => t('Backdrop CMS Logo')));
- $options = array('html' => TRUE, 'attributes' => array('class' => array('logo'), 'title' => t('Backdrop CMS Home')));
- $output .= l($image, '', $options);
+ case 'community':
+ $block_title = 'Get Involved
';
+ $block_title .= '';
+ $block['subject'] = $block_title;
+ $block['content'] = borg_blocks_community($settings);
+ break;
+ case 'branding':
$block['subject'] = NULL;
- $block['content'] = $output;
+ $block['content'] = borg_blocks_branding($settings);
break;
case 'tagline':
@@ -63,15 +89,18 @@ function borg_blocks_block_view($delta = '', $settings = array(), $contexts = ar
case 'greeting':
global $user;
-
$block['subject'] = NULL;
if ($user->uid) {
$block['content'] = t('Hi !name!', array('!name' => theme('username', array('account' => $user))));
}
break;
- case 'upgrade':
+ case 'audiences':
+ $block['subject'] = NULL;
+ $block['content'] = borg_blocks_audiences($settings);
+ break;
+ case 'upgrade':
$block['subject'] = t('Upgrade from Drupal 7');
$block['content'] = borg_blocks_upgrade($settings);
break;
@@ -92,72 +121,196 @@ function borg_blocks_block_view($delta = '', $settings = array(), $contexts = ar
return $block;
}
-function borg_blocks_tagline($settings) {
- $version = check_plain($settings['version']);
+/**
+ * Block callback.
+ */
+function borg_blocks_community($settings) {
+ $copy = t('Whether you’re a developer, designer, or enthusiast, your contributions make Backdrop better for everyone. Join a vibrant open source community.');
+
+ $button_attributes = array(
+ 'class' => array('borg__button', 'borg__button--primary', 'borg__button--right-arrow'));
+ $options = array('attributes' => $button_attributes);
+ $button = l(t('Join the conversation'), 'https://forum.backdropcms.org', $options);
+
+ $image_path = backdrop_get_path('module', 'borg_blocks') . '/images/';
+ $photo_files = array(
+ 'Backdrop-BDay-Nantes.jpg',
+ 'Backdrop-BDay-Oakland.jpg',
+ 'Justin-Laryn.jpg',
+ 'migrating-backdrop-on-pantheon.jpg',
+ 'tcbackdrop.jpg',
+ );
+ $items = array();
+ foreach ($photo_files as $filename) {
+ $items[] = theme('image', array('path' => $image_path . $filename));
+ }
+ $attributes = array('class' => array('b-community__photos'));
+ $photos = theme('item_list', array('items' => $items, 'attributes' => $attributes));
+
+ return array(
+ 'copy' => $copy,
+ 'photos' => $photos,
+ 'button' => $button,
+ );
+}
- $demo_attributes = array('class' => array('button', 'demo'));
+/**
+ * Block callback.
+ */
+function borg_blocks_branding($settings) {
+ $options = array('attributes' => array('class' => array('site-name')));
+ $output = l(t('backdrop'), '', $options);
+
+ $uri = backdrop_get_path('module', 'borg_blocks') . '/images/logo.png';
+ $image = theme('image', array('uri' => $uri, 'alt' => t('Backdrop CMS Logo')));
+ $options = array('html' => TRUE, 'attributes' => array('class' => array('logo'), 'title' => t('Backdrop CMS Home')));
+ $output .= l($image, '', $options);
+ return $output;
+}
+
+/**
+ * Block callback.
+ */
+function borg_blocks_tagline($settings) {
+ $button_class_name = 'borg__button';
if (module_exists('tugboat')) {
- $demo_text = t('Demo Backdrop');
- $demo_link = l($demo_text, 'demo', array('attributes' => $demo_attributes, 'html' => TRUE));
+ $demo_text = t('Demo Backdrop CMS');
+ $demo_link = l($demo_text, 'demo',
+ array(
+ 'attributes' => array(
+ 'class' => array(
+ $button_class_name,
+ $button_class_name . '--primary',
+ )
+ ),
+ 'html' => TRUE,
+ )
+ );
}
else {
$pantheon_url = 'https://dashboard.pantheon.io/sites/create?upstream_id=bf703821-4c18-45a1-88b8-3d9ec302273d';
$demo_text = t('Backdrop on Pantheon');
- $demo_link = l($demo_text, $pantheon_url, array('attributes' => $demo_attributes, 'html' => TRUE));
+ $demo_link = l($demo_text, $pantheon_url,
+ array(
+ 'attributes' => array(
+ 'class' => array(
+ $button_class_name,
+ $button_class_name . '--primary',
+ )
+ ),
+ 'html' => TRUE,
+ )
+ );
}
- $dl_url = 'https://github.com/backdrop/backdrop/releases/download/' . $version . '/backdrop.zip';
- $dl_text = t('Download Backdrop') . ' v ' . $version . ' ';
- $dl_attributes = array('class' => array('button', 'download'));
- $download_link = l($dl_text, $dl_url, array('attributes' => $dl_attributes, 'html' => TRUE));
-
- //$output = 'Backdrop CMS ';
- $output = 'Backdrop CMS ';
- $output .= 'Put your content center stage. ';
- //$output .= 'Backdrop is the free and Open Source Content Management System that helps you build modern, comprehensive websites for businesses and non-profits.
';
-
- $output .= '';
- $output .= $demo_link;
- $output .= '
';
- $output .= l(t('more ways to try'), 'try-backdrop');
- $output .= '
';
- $output .= '
';
+ // Initiate a curl session.
+ $data = _borg_blocks_get_version();
+
+ $version = $data['latest']['version'];
+ $dl_url = $data['latest']['download_link'];
+ $dl_text = t('Download Backdrop CMS') . ' v ' . $version . ' ';
+
+ $download_link = l($dl_text, $dl_url,
+ array(
+ 'attributes' => array(
+ 'class' => array(
+ $button_class_name,
+ $button_class_name . '--secondary',
+ )
+ ),
+ 'html' => TRUE,
+ )
+ );
+ $output =
+ '' .
+ ''. t('Put your content center stage') . ' ' .
+ ' ' .
+ '' .
+ t('Backdrop CMS is a free and Open Source Content Management System that helps you build modern, comprehensive websites on a reasonable budget.') .
+ '
';
- $requirements = l(t('requirements'), 'requirements');
- $installing = l(t('installing'), 'installation');
- $upgrading = l(t('upgrading'), 'upgrade');
+ $output .= '';
+ $output .= '' . $demo_link . ' ';
+ $output .= '' . $download_link . ' ';
+ $output .= ' ';
- $output .= '';
- $output .= $download_link;
- $output .= '
';
- $output .= $requirements . ' | ' . $installing . ' | ' . $upgrading;
- $output .= '
';
- $output .= '
';
+ return $output;
+}
+
+/**
+ * Block callback.
+ */
+function borg_blocks_audiences($settings) {
+ $button_class_name = 'borg__button';
+
+ $output =
+ ''.
+ t('Sites Showcase') .
+ ' ' .
+ '' .
+ t('A flexible CMS for any person or organization') .
+ ' ' .
+ '' .
+ t('A flexible CMS for any person or organization') .
+ '
' .
+ t('Backdrop CMS is being used across more than 3,600+ sites for both individuals and organization of all kinds.') .
+ '
' .
+ l(
+ t('See the Showcase'),
+ 'showcase',
+ array(
+ 'attributes' => array(
+ 'class' => array(
+ $button_class_name,
+ $button_class_name . '--primary',
+ $button_class_name . '--right-arrow',
+ )
+ ),
+ )
+ ) .
+ '
';
+
+ $output .= '';
+ $audiences_menu = menu_load_links('menu-cms-audiences');
+ foreach ($audiences_menu as $key => $audiences_menu_item) {
+ if (!empty($audiences_menu_item['hidden'])) {
+ break;
+ }
+ $mlid = $audiences_menu_item['mlid'];
+
+ $options = $audiences_menu_item['options'];
+ $options['attributes']['class'][] = 'audiences-block__organization-link';
+ $options['attributes']['class'][] = 'audiences-block__organization-link--' . $mlid;
+ $options['attributes']['class'][] = 'chonky-link-bar';
+
+ $output .=
+ '' .
+ l($audiences_menu_item['link_title'], $audiences_menu_item['link_path'], $options) .
+ ' ';
+ }
+
+ $output .= ' ';
return $output;
}
+/**
+ * Block callback.
+ */
function borg_blocks_upgrade($settings) {
- // Included in core
- $modules_core = 75;
- // Percent ready
- $modules_top = 97;
- // Number of modules
- $projects_available = 1100;
-
$path = backdrop_get_path('module', 'borg_blocks');
$button = l(t('Upgrade from Drupal'), 'node/4967', array('attributes' => array('class' => array('button'))));
- $included_modules = l(t("$modules_core+ included modules"), 'https://docs.backdropcms.org/documentation/features-added-to-core');
+ $included_modules = l(t("MODULES_CORE+ included modules"), 'https://docs.backdropcms.org/documentation/features-added-to-core');
$included_modules_icon = ' ';
$included_modules_icon_link = l($included_modules_icon, 'https://docs.backdropcms.org/documentation/features-added-to-core', array('html' => TRUE, 'attributes' => array('class' => array('icon'))));
- $top_modules = l(t("$modules_top% of top modules"), 'https://docs.backdropcms.org/documentation/top-100-drupal-7-modules');
+ $top_modules = l(t("MODULES_TOP% of top modules"), 'https://docs.backdropcms.org/documentation/top-100-drupal-7-modules');
$top_modules_icon = ' ';
$top_modules_icon_link = l($top_modules_icon, 'https://docs.backdropcms.org/documentation/top-100-drupal-7-modules', array('html' => TRUE, 'attributes' => array('class' => array('icon'))));
- $total_addons = l(t("$projects_available+ total add-ons"), 'node/1686');
+ $total_addons = l(t("MODULES_AVAILABLE+ total add-ons"), 'node/1686');
$total_addons_icon = ' ';
$total_addons_icon_link = l($total_addons_icon, 'node/1686', array('html' => TRUE, 'attributes' => array('class' => array('icon'))));
@@ -166,17 +319,17 @@ function borg_blocks_upgrade($settings) {
$output .= ' ';
$output .= $included_modules_icon_link;
$output .= '
' . $included_modules . ' ';
- $output .= '
' . t("More than $modules_core Drupal modules have been merged into Backdrop core.") . '
';
+ $output .= '
' . t("More than MODULES_CORE Drupal modules have been merged into Backdrop core.") . '
';
$output .= '
';
$output .= ' ';
$output .= $top_modules_icon_link;
$output .= '
' . $top_modules . ' ';
- $output .= '
' . t("Of the top 100 Drupal 7 modules, $modules_top of them are ready for Backdrop CMS.") . '
';
+ $output .= '
' . t("Of the top 100 Drupal 7 modules, MODULES_TOP of them are ready for Backdrop CMS.") . '
';
$output .= '
';
$output .= ' ';
$output .= $total_addons_icon_link;
$output .= '
' . $total_addons . ' ';
- $output .= '
' . t("More than $projects_available modules, themes, and layouts are available for use today.") . '
';
+ $output .= '
' . t("More than MODULES_AVAILABLE modules, themes, and layouts are available for use today.") . '
';
$output .= '
';
$output .= ' ';
$output .= '';
@@ -200,11 +353,16 @@ function borg_blocks_block_configure($delta = '', $settings = array()) {
'version' => '1.13.0',
);
+ $data = _borg_blocks_get_version();
+ $version = $data['latest']['version'];
+
$form['version'] = array(
'#type' => 'textfield',
'#size' => 10,
'#title' => t('Current Version Number'),
- '#default_value' => $settings['version'],
+ '#default_value' => $version,
+ '#disabled' => TRUE,
+ '#description' => t('Clear all caches to update. This value is now determined automatically. '),
);
}
@@ -228,3 +386,43 @@ function borg_blocks_form_supporter_node_form_alter(&$form, &$form_state, $form_
$form['actions']['submit']['#value'] = t('Submit');
}
}
+
+/**
+ * Prepare variables for Block templates.
+ *
+ * @see block--borg-blocks--community.tpl.php
+ */
+function borg_blocks_preprocess_block(&$variables){
+ if ($variables['block']->module == 'borg_blocks') {
+ if ($variables['block']->delta == 'community') {
+ $variables['copy'] = $variables['content']['copy'];
+ $variables['photos'] = $variables['content']['photos'];
+ $variables['button'] = $variables['content']['button'];
+ }
+ }
+}
+
+/**
+ * Helper function, get core version from JSON API.
+ */
+function _borg_blocks_get_version() {
+ $cached = cache_get('backdrop_core_version_latest');
+ $data = isset($cached->data) ? $cached->data : array();
+ if (empty($data)) {
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
+ curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
+ curl_setopt($ch, CURLOPT_URL, 'https://backdropcms.org/core/latest.json');
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
+ curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
+ $json = curl_exec($ch);
+ $res_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+ curl_close($ch);
+ $data = json_decode($json, TRUE);
+
+ $expires = time() + 60*60; // Expire in no less than 1 hour.
+ cache_set('backdrop_core_version_latest', $data, 'cache', $expires);
+ }
+
+ return $data;
+}
\ No newline at end of file
diff --git a/www/modules/custom/borg_blocks/images/Backdrop-BDay-Nantes.jpg b/www/modules/custom/borg_blocks/images/Backdrop-BDay-Nantes.jpg
new file mode 100644
index 000000000..9bdd22eac
Binary files /dev/null and b/www/modules/custom/borg_blocks/images/Backdrop-BDay-Nantes.jpg differ
diff --git a/www/modules/custom/borg_blocks/images/Backdrop-BDay-Oakland.jpg b/www/modules/custom/borg_blocks/images/Backdrop-BDay-Oakland.jpg
new file mode 100644
index 000000000..b6e1124da
Binary files /dev/null and b/www/modules/custom/borg_blocks/images/Backdrop-BDay-Oakland.jpg differ
diff --git a/www/modules/custom/borg_blocks/images/Justin-Laryn.jpg b/www/modules/custom/borg_blocks/images/Justin-Laryn.jpg
new file mode 100644
index 000000000..358d3a3d1
Binary files /dev/null and b/www/modules/custom/borg_blocks/images/Justin-Laryn.jpg differ
diff --git a/www/modules/custom/borg_blocks/images/migrating-backdrop-on-pantheon.jpg b/www/modules/custom/borg_blocks/images/migrating-backdrop-on-pantheon.jpg
new file mode 100644
index 000000000..3e2683d0f
Binary files /dev/null and b/www/modules/custom/borg_blocks/images/migrating-backdrop-on-pantheon.jpg differ
diff --git a/www/modules/custom/borg_blocks/images/tcbackdrop.jpg b/www/modules/custom/borg_blocks/images/tcbackdrop.jpg
new file mode 100644
index 000000000..504ea0e26
Binary files /dev/null and b/www/modules/custom/borg_blocks/images/tcbackdrop.jpg differ
diff --git a/www/modules/custom/borg_project_metrics/borg_project_metrics.module b/www/modules/custom/borg_project_metrics/borg_project_metrics.module
index c654337a9..b8507b785 100644
--- a/www/modules/custom/borg_project_metrics/borg_project_metrics.module
+++ b/www/modules/custom/borg_project_metrics/borg_project_metrics.module
@@ -302,6 +302,11 @@ function borg_project_metrics_parse_metrics($type) {
* Implements hook_block_info().
*/
function borg_project_metrics_block_info() {
+ // New home page block.
+ $blocks['resources'] = array(
+ 'info' => t('Get Started with Backdrop'),
+ 'description' => t('Home page: Resources section'),
+ );
$blocks['backdrop_project_metrics'] = array(
'info' => t('Backdrop Project Metrics'),
'description' => t('The number of users, commits, and comments to Backdrop since the project started.'),
@@ -315,64 +320,128 @@ function borg_project_metrics_block_info() {
*/
function borg_project_metrics_block_view($delta = '', $settings = array()) {
$block = array();
+ switch ($delta) {
+ case 'resources':
+ $block_title = 'Resources
';
+ $block_title .= 'Get Started with Backdrop
';
+ $block['subject'] = $block_title;
+ $block['content'] = borg_project_metrics_resources($settings);
+ break;
+ case 'backdrop_project_metrics':
+ $block['subject'] = NULL;
+ $block['content'] = borg_project_metrics_callback($settings);
+ break;
+ }
+ return $block;
+}
+
+/**
+ * Block callback.
+ */
+function borg_project_metrics_resources($settings) {
+ $copy = t('Our documentation is written and maintained for people, by people, just like our code.');
+
+ $resource_links = array(
+ 'api' => array(
+ 'url' => 'https://api.backdropcms.org',
+ 'name' => t('Documentation & API'),
+ 'more' => t('Find complete documentation for people who are using Backdrop CMS.'),
+ ),
+ 'forum' => array(
+ 'url' => 'https://forum.backdropcms.org',
+ 'name' => t('Visit the Backdrop Forum'),
+ 'more' => t('Visit our forum with questions. All answers will be provided with dignity and respect.'),
+ ),
+ 'hours' => array(
+ 'url' => '/support/meetings',
+ 'name' => t('Join Office Hours'),
+ 'more' => t('Visit our virtual office hours every Wednesday from 12-2 pm EST'),
+ ),
+ );
+ $items = array();
+ foreach ($resource_links as $resource) {
+ $link_content = '' . $resource['name'] . '
';
+ $link_content .= $resource['more'];
+ $items[] = l($link_content, $resource['url'], array('html' => TRUE));
+ }
+ $attributes = array('class' => array('b-resources__links'));
+ $resources = theme('item_list', array('items' => $items, 'attributes' => $attributes));
+
+ return array(
+ 'copy' => $copy,
+ 'resources' => $resources,
+ 'commits' => borg_project_metrics_get_commits(),
+ 'members' => borg_project_metrics_get_members(),
+ 'projects' => '1300+ ' . t('Modules and add-ons available'),
+ );
+}
+
+/**
+ * Block callback.
+ */
+function borg_project_metrics_callback($settings) {
+ // Get the metrics.
+ $commits = borg_project_metrics_get_commits();
+
+ $users = borg_project_metrics_get_members();
+
+ $comment_data = borg_project_metrics_get_display_metric_from_db('comments');
+ $comments = number_format($comment_data['total_to_date']);
+
+ // Path to images directory.
+ $images_path = backdrop_get_path('module', 'borg_project_metrics');
+
+ // Block content.
+ $metrics_content = <<
+
+
+
+
+ $commits
+ commits
+
+
+
+
+
+ $users
+ community members
+
+
+
+
+ HTML;
+
+ return $metrics_content;
+}
- // Get the metrics.
+function borg_project_metrics_get_commits() {
$commit_data = borg_project_metrics_get_display_metric_from_db('commits');
$commits = number_format($commit_data['total_to_date']);
+ return $commits;
+}
- $comment_data = borg_project_metrics_get_display_metric_from_db('comments');
- $comments = number_format($comment_data['total_to_date']);
-
+function borg_project_metrics_get_members() {
//$user_data = borg_project_metrics_get_display_metric_from_db('users');
//$users = number_format($user_data['total_to_date']);
$user_count = db_query("SELECT COUNT(uid) FROM {users} WHERE status = 1")->fetchField();
$users = number_format($user_count);
-
- // Path to images directory.
- $images_path = backdrop_get_path('module', 'borg_project_metrics');
-
- // Block content.
- $metrics_content = <<
-
-
-
-
- $commits
- commits
-
-
-
-
-
- $users
- community members
-
-
-
-
-HTML;
- switch ($delta) {
- case 'backdrop_project_metrics':
- $block['subject'] = NULL;
- $block['content'] = $metrics_content;
- return $block;
- break;
- }
+ return $users;
}
/**
@@ -576,3 +645,20 @@ function borg_project_metrics_preprocess_views_view(&$variables) {
$view->set_title($title);
}
}
+
+/**
+ * Prepare variables for Block templates.
+ *
+ * @see block--borg-blocks--resources.tpl.php
+ */
+function borg_project_metrics_preprocess_block(&$variables){
+ if ($variables['block']->module == 'borg_project_metrics') {
+ if ($variables['block']->delta == 'resources') {
+ $variables['copy'] = $variables['content']['copy'];
+ $variables['resources'] = $variables['content']['resources'];
+ $variables['projects'] = $variables['content']['projects'];
+ $variables['commits'] = $variables['content']['commits'];
+ $variables['members'] = $variables['content']['members'];
+ }
+ }
+}
diff --git a/www/themes/backdropcms/css/borg-components.css b/www/themes/backdropcms/css/borg-components.css
index 081948f8d..087ee6042 100644
--- a/www/themes/backdropcms/css/borg-components.css
+++ b/www/themes/backdropcms/css/borg-components.css
@@ -5,102 +5,6 @@
******************************************************************************/
-/*******************************************************************************
- * Custom tagline block.
- ******************************************************************************/
-.block-borg-blocks-tagline {
- text-align: center;
- padding: 30px 0;
-}
-.block-borg-blocks-tagline h1 {
- margin: 1rem 0;
- font-size: 2.66rem;
- font-weight: normal;
- color: #000;
-}
-body.front .block-borg-blocks-tagline h2 {
- margin: 0 0 1em 0;
- line-height: 1.125em;
- font-weight: 300;
- color: #000;
-}
-.block-borg-blocks-tagline p {
- font-size: 1.66rem;
-}
-.block-borg-blocks-tagline .tagline-section {
- text-align: left;
- margin: 15px auto;
- max-width: 315px;
-}
-.block-borg-blocks-tagline a.button {
- font-size: 1.25rem; /* 20px */
- background-color: rgba(255, 255, 255, .3);
- text-transform: none;
- border: 2px solid #000;
- margin: 10px 5px 5px 0;
-}
-.block-borg-blocks-tagline a.button:hover {
- background-color: rgba(255, 255, 255, .6);
-}
-.block-borg-blocks-tagline a.button span.version {
- font-size: 1rem; /* 16px */
-}
-.block-borg-blocks-tagline .subtext {
- font-size: 1rem; /* 16px */
- margin-top: 0;
- margin-left: 25px;
-}
-.block-borg-blocks-tagline .subtext a {
- font-weight: 300;
- color: #fff;
- text-decoration: underline;
-}
-.block-borg-blocks-tagline .subtext a:hover {
- text-decoration: none;
-}
-
-@media (min-width: 25em) { /* 400px @ 16px font size */
- .block-borg-blocks-tagline .subtext {
- text-align: left;
- }
-}
-@media (min-width: 48em) { /* 768px @ 16px font size -- MD */
- .block-borg-blocks-tagline {
- padding-top: 50px;
- padding-bottom: 15px;
- }
- .block-borg-blocks-tagline h2 {
- margin: 0 0 1em 0;
- }
- .block-borg-blocks-tagline .tagline-section {
- display: inline-block;
- padding: 0 15px;
- }
- .block-borg-blocks-tagline .subtext {
- margin-top: 0;
- }
-}
-@media (min-width: 62em) { /* 992px @ 16px font size -- LG */
- .block-borg-blocks-tagline {
- padding-bottom: 30px;
- }
- .block-borg-blocks-tagline h1 {
- font-size: 4.25rem;
- margin: 1rem 0 .75rem 0;
- }
- .block-borg-blocks-tagline h2 {
- font-size: 3rem;
- }
- .block-borg-blocks-tagline a.button {
- font-size: 1.5rem; /* 24px */
- }
- .block-borg-blocks-tagline a.button span.version,
- .block-borg-blocks-tagline .subtext {
- font-size: 1.125rem; /* 18px */
- }
-}
-
-
/*******************************************************************************
* Spacer classes
*******************************************************************************/
diff --git a/www/themes/backdropcms/css/components-views.css b/www/themes/backdropcms/css/components-views.css
index 558c183e5..ea91b27bb 100644
--- a/www/themes/backdropcms/css/components-views.css
+++ b/www/themes/backdropcms/css/components-views.css
@@ -162,6 +162,7 @@
text-decoration: underline;
}
.block-views-news-block .feed-icon {
+ overflow: hidden; /* Prevents horizontal scrollbar */
text-align: right;
position: relative;
top: -10px;
diff --git a/www/themes/backdropcms/css/page-front.css b/www/themes/backdropcms/css/page-front.css
new file mode 100644
index 000000000..546e9c8ce
--- /dev/null
+++ b/www/themes/backdropcms/css/page-front.css
@@ -0,0 +1,849 @@
+/*******************************************************************************
+ * page-front.css
+ *
+ * Contains styles only needed for the front page of the site.
+ *
+ * These elements were separated from the compontents.css file because there is
+ * a lot of code in here that's not needed for most of the site, so it didn't
+ * need to be loaded all the time.
+ ******************************************************************************/
+
+body {
+ --layout__max-width: 1440px;
+ --section__padding: 32px;
+ --section__fontSize: 1.125rem;
+ --section__title__fontSize: 2rem;
+}
+@media (min-width: 48em) {
+ body {
+ --section__padding: 64px;
+ --section__fontSize: 1.25rem;
+ --section__title__fontSize: 2.5rem;
+ }
+}
+
+body[class] {
+ font-family: "IBM Plex Sans", "Open Sans", Helvetica, sans-serif;
+ font-optical-sizing: auto;
+ font-variation-settings: "wdth" 100;
+}
+
+
+.section-wrapper {
+ line-height: 1.6;
+}
+
+.visual-tag,
+.block-views-news-block .block-title {
+ display: block;
+ width: min-content;
+ height: min-content;
+ padding: 0.571em 1.143em;
+ border: 1px solid var(--color__accent--primary);
+ font-family: "IBM Plex Mono", Consolas, 'Courier New', Courier, monospace;
+ font-size: 14px;
+ font-weight: 500;
+ line-height: 1.143;
+ white-space: nowrap;
+}
+
+/**
+ * Hero Tagline section
+ */
+.tagline-block__headline-wrapper {
+ color: #fff;
+}
+
+.block-borg-blocks-tagline {
+ position: relative;
+ z-index: 0;
+ color: #fff;
+}
+
+.block-borg-blocks-tagline p {
+ margin: 0;
+ padding: 0;
+ font: inherit;
+}
+
+/* Grid image behind hero */
+.tagline-block__headline-wrapper:before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: -10;
+ mask-image: url(/themes/backdropcms/images/diagonal-grid.svg);
+ mask-size: 580px;
+ background-color: #666;
+}
+
+/* Gradients to overlay background image */
+.block-borg-blocks-tagline:before,
+.block-borg-blocks-tagline .block-content:before,
+.block-borg-blocks-tagline .block-content:after {
+ content: '';
+ position: absolute;
+ z-index: -1;
+ display: block;
+}
+
+.block-borg-blocks-tagline:before {
+ top: 0;
+ right:0;
+ bottom: 0;
+ left: 0;
+ background: linear-gradient(to bottom, #0005 75%, #000);
+}
+
+.block-borg-blocks-tagline .block-content:before {
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 144px;
+ background: linear-gradient(to left, #0000, #000c);
+}
+
+.block-borg-blocks-tagline .block-content:after {
+ top: 0;
+ right: 0;
+ bottom: 0;
+ width: 144px;
+ background: linear-gradient(to right, #0000, #000c);
+}
+
+.block-borg-blocks-tagline .block-content {
+ display: flex;
+ flex-direction: column;
+ gap: 2rem;
+ margin: 0 auto;
+ padding: 7.5rem 2rem;
+ /* 28px at desktop in mockup */
+ font-size: clamp(18px, 2.5vw ,1.75rem);
+ text-align: center;
+ /* This media query should match the width on .tagline-block__headline-wrapper */
+ @media (min-width: 30em) {
+ width: min-content;
+ }
+}
+
+.tagline-block__visual-tag {
+ margin: 0 auto;
+ border-color: 1px solid #01FDA6;
+ background: #0008;
+}
+
+.tagline-block__headline-wrapper[class] {
+ display: flex;
+ flex-direction: column;
+ gap: 2rem;
+ margin: 0 auto;
+ /* 100px at desktop in mock */
+ font-size: clamp(1.5em, 8vw, 3.57em);
+ line-height: 0.96;
+ font-weight: 600;
+ color: #fff;
+ @media (min-width: 30em) {
+ width: 10em;
+ }
+ @media (min-width: 48em) {
+ /* 100px at desktop in mock */
+ font-size: 3.57em;
+ }
+}
+
+.block-borg-blocks-tagline .block-content p {
+ font: inherit;
+}
+
+.tagline-block__ctas {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.75rem;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ justify-content: center;
+}
+
+/**
+ * Borg Buttons
+ */
+.borg__button {
+ display: inline-block;
+ font-size: 1.125rem;
+ padding: 0.6em 1.111em;
+ color: #fff;
+ background: #000;
+}
+
+.borg__button[class] {
+ text-decoration: none;
+}
+
+.borg__button:hover,
+.borg__button:focus {
+ color: #fff;
+ background: #222;
+}
+
+.borg__button--primary {
+ background: var(--color__accent--primary);
+}
+
+.borg__button--primary:hover,
+.borg__button--primary:focus {
+ background: var(--color__accent--primary--dark);
+}
+
+.borg__button--right-arrow {
+ position: relative;
+ padding-inline-end: 2.25em;
+}
+
+.borg__button--right-arrow:after {
+ content: '';
+ position: absolute;
+ right: 0.75em;
+ top: 50%;
+ display: block;
+ width: 1em;
+ height: 1em;
+ background: currentColor;
+ mask-image: url(../images/arrow-right.svg);
+ mask-size: contain;
+ mask-repeat: no-repeat;
+ transform: translateY(-50%) translateY(0.125em);
+}
+
+/* Content containers of major sections */
+.view-product-features,
+.l-top__wrapper,
+.block-borg-blocks-audiences .block-content,
+.block-views-news-block,
+.b-resources,
+.b-community {
+ max-width: var(--layout__max-width);
+ margin: 0 auto;
+}
+
+/**
+ * Dark Hero Cards
+ */
+.l-hero {
+ background: #000;
+}
+
+.l-top__outer-wrapper {
+ padding-bottom: var(--section__padding);
+}
+
+.l-top__wrapper {
+ --dark-hero-card__max-width: 18em;
+ display: flex;
+ flex-direction: column;
+ gap: 2rem;
+ padding: 0 var(--section__padding);
+ padding-bottom: 32px;
+ color: #fff;
+ list-style: none;
+ background: #000;
+}
+@media (min-width: 48em) {
+ .l-top__wrapper {
+ display: grid;
+ justify-content: center;
+ grid-template-columns: repeat(2, minmax(0, var(--dark-hero-card__max-width)));
+ }
+}
+@media (min-width: 75em) {
+ .l-top__wrapper {
+ grid-template-columns: repeat(4, minmax(0, var(--dark-hero-card__max-width)));
+ }
+}
+
+.l-top__item {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+}
+
+.view-product-features .views-row {
+ display: flex;
+ margin: 0;
+}
+
+.dark-hero-card,
+.view-product-features .view-mode-card {
+ --dark-hero-card__border-color: #303030;
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ max-width: var(--dark-hero-card__max-width);
+ margin-inline: auto;
+ padding: 32px;
+ border: 1px solid var(--dark-hero-card__border-color);
+ font-size: 1rem;
+ line-height: 1.5;
+}
+
+.dark-hero-card,
+.view-product-features .view-mode-card:before {
+ content: '';
+ display: block;
+ width: 40px;
+ height: 40px;
+ margin: 0 auto;
+ background: var(--color__accent--primary--light);
+ mask-repeat: no-repeat;
+ mask-size: contain;
+}
+
+.dark-hero-card:after,
+.view-product-features .view-mode-card:after {
+ content: '';
+ position: absolute;
+ bottom: -1px;
+ right: -1px;
+ width: 0;
+ height: 0;
+ border: 12px solid #000;
+ border-top-color: var(--dark-hero-card__border-color);
+ border-left-color: var(--dark-hero-card__border-color);
+}
+
+.dark-hero-card--rocket-launch:before {
+ mask-image: url('/core/misc/icons/rocket-launch.svg');
+}
+.dark-hero-card--puzzle-piece:before {
+ mask-image: url('/core/misc/icons/puzzle-piece.svg');
+}
+.dark-hero-card--drop:before {
+ mask-image: url('/core/misc/icons/drop.svg');
+}
+.dark-hero-card--browser:before {
+ mask-image: url('/core/misc/icons/browser.svg');
+}
+
+.dark-hero-card h2,
+.view-product-features .view-mode-card h2,
+.view-product-features .view-mode-card h3 {
+ font-size: var(--section__fontSize);
+ line-height: 1.2;
+ font-weight: 700;
+ margin: 0;
+ padding: 0;
+}
+
+.view-product-features .view-mode-card .field,
+.view-product-features .view-mode-card .content {
+ margin: 0;
+ padding: 0;
+}
+
+.dark-hero-card p,
+.view-product-features .view-mode-card p {
+ margin: 0;
+ font: inherit;
+}
+
+.dark-hero-card p + p,
+.view-product-features .view-mode-card p {
+ margin-top: 0.75em;
+}
+
+.block-block-home-card-cta {
+ text-align: right;
+}
+
+.block-block-home-card-cta {
+ margin-top: 1rem;
+ margin-bottom: 0.5rem;
+ @media (min-width: 48em) {
+ position: absolute;
+ top: calc(100% + 24px);
+ right: 0;
+ }
+}
+
+.view-product-features .more-link a,
+.top-cards__cta {
+ display: inline-block;
+ padding: 0.25em 0;
+ font-weight: 600;
+ color: #fff;
+ box-shadow: inset 0 -1px 0 0 var(--color__accent--primary--light);
+}
+
+.view-product-features .more-link a {
+ margin-right: 64px;
+}
+
+.top-cards__cta:hover,
+.top-cards__cta:focus {
+ color: inherit;
+ box-shadow: inset 0 -2px 0 0 var(--color__accent--primary--light);
+}
+
+/**
+ * Chonky Link bar
+ */
+.chonky-link-bar__outer-wrapper {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ font-size: 1.25rem;
+}
+@media (min-width: 48em) {
+ .chonky-link-bar__outer-wrapper {
+ font-size: 1.5rem;
+ }
+}
+
+.chonky-link-bar__item + .chonky-link-bar__item {
+ border-top: 1px solid #EAE1FF;
+}
+
+.chonky-link-bar {
+ display: block;
+ padding: 1.4em 1em;
+ color: inherit;
+ font-weight: 600;
+}
+
+.chonky-link-bar:hover,
+.chonky-link-bar:focus {
+ background: #F9F8FB;
+ box-shadow: inset 0 -4px 0 0 var(--color__accent--primary);
+ color: inherit;
+}
+
+/**
+ * Audiences Section
+ */
+.block-borg-blocks-audiences {
+ padding: 60px var(--section__padding) 60px;
+}
+@media (min-width: 64em) {
+ .block-borg-blocks-audiences {
+ padding-block: 120px;
+ }
+}
+
+.block-borg-blocks-audiences .block-content {
+ display: flex;
+ flex-direction: column;
+ gap: 1.5rem 2rem;
+}
+@media (min-width: 64em) {
+ .block-borg-blocks-audiences .block-content {
+ display: grid;
+ justify-content: center;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ grid-template-rows: min-content min-content 1fr;
+ grid-auto-rows: min-content;
+ padding: 0 var(--section__padding);
+ }
+}
+
+.audiences-block__title,
+.audiences-block__body {
+ grid-column: 1;
+}
+
+.audiences-block__title {
+ margin: 0;
+}
+
+.audiences-block__body {
+ font-size: var(--section__fontSize);
+}
+
+.audiences-block__body .borg__button {
+ margin-top: 40px;
+}
+
+.audiences-block__organizations {
+ grid-row: 1 / span 3;
+ grid-column: 2;
+ padding-top: 1.5em; /* On top of 1.5em gap */
+}
+@media (min-width: 64em) {
+ .audiences-block__organizations {
+ padding-top: 0;
+ }
+}
+
+.audiences-block__organization-item {
+ margin: 0;
+ padding: 0;
+}
+
+.audiences-block__organization-link {
+ display: flex;
+ align-items: center;
+ line-height: 1.6;
+ /* @todo REMOVE THIS: Temporary hack until we can get all of these links pointing somewhere */
+ pointer-events: none;
+}
+
+.audiences-block__organization-link:before {
+ content: '';
+ display: inline-block;
+ width: 1.6em;
+ height: 1.6em;
+ margin-right: 0.5em;
+ background-color: var(--color__accent--primary);
+ mask-size: contain;
+ mask-repeat: no-repeat;
+}
+
+.audiences-block__organization-link--1344:before {
+ mask-image: url(../images/community.svg);
+}
+
+.audiences-block__organization-link--1345:before {
+ mask-image: url(../images/graduation-cap.svg);
+}
+
+.audiences-block__organization-link--1346:before {
+ mask-image: url(../images/book.svg);
+}
+
+.audiences-block__organization-link--1343:before {
+ mask-image: url(../images/business.svg);
+}
+
+.audiences-block__organization-link--1347:before {
+ mask-image: url(../images/newspaper.svg);
+}
+
+/**
+ * News Section
+ */
+@media (min-width: 34em) { /* 544px @ 16px font size -- SM */
+ .block-views-news-block {
+ padding: var(--section__padding);
+ }
+}
+@media (min-width: 48em) {
+ .block-views-news-block {
+ padding-bottom: 120px;
+ }
+}
+
+.block-views-news-block .section-wrapper {
+ border: 1px solid #EAE1FF;
+ background: #F9F8FB;
+}
+
+@media (min-width: 48em) {
+ .block-views-news-block .section-wrapper {
+ display: grid;
+ grid-template-columns: 66.67% 33.33%;
+ grid-auto-rows: min-content;
+ }
+}
+
+.block-views-news-block .latest-news__text-wrapper {
+ align-self: center;
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ padding: 32px;
+ padding-right: 32px;
+}
+
+@media (min-width: 48em) {
+ .block-views-news-block .latest-news__text-wrapper {
+ padding: 48px;
+ }
+}
+
+
+.block-views-news-block .block-title {
+ margin: 0;
+}
+
+.latest-news__image {
+ display: flex;
+ align-items: stretch;
+ justify-content: stretch;
+ grid-column: 2;
+}
+
+.latest-news__image a {
+ display: flex;
+ align-items: stretch;
+ justify-content: stretch;
+ width: 100%;
+ height: 100%;
+}
+
+.latest-news__image img {
+ display: block;
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+
+.latest-news__title[class] {
+ margin: 0;
+ font-size: var(--section__title__fontSize);
+ font-weight: 700;
+ line-height: 1.5;
+}
+
+.latest-news__title[class] a {
+ text-decoration: none;
+ color: inherit;
+}
+
+.latest-news__title[class] a:hover,
+.latest-news__title[class] a:focus {
+ text-decoration: underline;
+}
+
+.latest-news__body {
+ font-size: var(--section__fontSize);
+}
+
+.latest-news__body :first-child {
+ margin-top: 0;
+}
+.latest-news__body :last-child {
+ margin-bottom: 0;
+}
+
+/**
+ * Resources section
+ */
+.b-resources__outer-wrapper {
+ background: #F9F8FB;
+}
+
+.b-resources {
+ padding: calc(var(--section__padding) * 2) var(--section__padding);
+}
+
+@media (min-width: 48em) {
+ .b-resources {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 2rem;
+ padding-block: 120px ;
+ }
+}
+
+.b-resources__body {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ font-size: var(--section__fontSize);
+}
+
+.b-resources__body p,
+.b-resources__body ul {
+ margin: 0;
+}
+
+.b-resources__title {
+ margin: 0;
+ font-size: var(--section__title__fontSize);
+ font-weight: 700;
+}
+
+.b-resources__body ul {
+ font-weight: 600;
+ list-style: none;
+ padding: 0;
+}
+
+.b-resources__body li {
+ position: relative;
+ padding-left: 1.75em;
+ margin-bottom: 0.75rem;
+}
+
+.b-resources__body li:before {
+ content: '';
+ position: absolute;
+ left: 0;
+ width: 1.25em;
+ height: 1.25em;
+ mask-image: url(../images/checkmark.svg);
+ mask-repeat: no-repeat;
+ mask-position: center center;
+ mask-size: contain;
+ background: var(--color__accent--primary);
+}
+
+.b-resources__links {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ font-size: var(--section__fontSize);
+}
+
+.b-resources__links[class] a {
+ display: block;
+ padding: 32px 0 24px;
+ text-decoration: none;
+ color: inherit;
+ box-shadow: inset 0 -1px 0 #EAE1FF;
+}
+
+.b-resources__links[class] a:hover,
+.b-resources__links[class] a:focus {
+ box-shadow: inset 0 -4px 0 var(--color__accent--primary);
+}
+
+.b-resources__resource-name {
+ font-size: 1.5rem;
+ margin-bottom: 1rem;
+ font-weight: bold;
+ color: var(--color__accent--primary);
+}
+
+.b-resources__links[class] a:hover .b-resources__resource-name,
+.b-resources__links[class] a:focus .b-resources__resource-name {
+ color: inherit;
+}
+
+/**
+ * Community section
+ */
+.b-community__outer-wrapper {
+ padding-block: 60px;
+ padding-inline: var(--section__padding);
+ /* bottom area already has large padding-top */
+ padding-top: 0;
+}
+@media (min-width: 48em) {
+ .b-community__outer-wrapper {
+ padding-block: 120px;
+ /* Prevent images from making a scrollbar */
+ overflow: hidden;
+ /* bottom area already has large padding-top */
+ padding-top: 60px;
+ }
+}
+
+.b-community {
+ display: flex;
+ flex-direction: column;
+ gap: 24px;
+ max-width: 43em; /* From design */
+ margin-bottom: 48px;
+ font-size: var(--section__fontSize);
+ text-align: center;
+}
+
+.b-community h2 {
+ margin: 0;
+ font-size: var(--section__title__fontSize);
+}
+
+.b-community .visual-tag {
+ margin-inline: auto;
+ margin-bottom: 24px;
+}
+
+.b-community .borg__button {
+ align-self: center;
+}
+
+.b-community__photos {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 32px;
+ width: 100%;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.b-community__photos li {
+ width: 100%;
+ margin: 0;
+ padding: 0;
+}
+
+.b-community__photos img {
+ display: block;
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+
+/* Hide pictures after the first 4 for mobile */
+.b-community__photos li:nth-child(n + 5) {
+ display: none;
+}
+
+@media (min-width: 48em) {
+ .b-community__photos {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ }
+ /* Unhide all images */
+ .b-community__photos[class] li {
+ display: block;
+ }
+ /* Hide pictures after the first 3 for mobile */
+ .b-community__photos li:nth-child(n + 4) {
+ display: none;
+ }
+
+}
+
+@media (min-width: 75em) {
+ .b-community__photos {
+ grid-template-columns: repeat(5, minmax(0, 1fr));
+ }
+ /* Unhide all images */
+ .b-community__photos[class] li {
+ display: block;
+ }
+}
+
+/** Header hack **************************************************************/
+/** Remove with Borg 2.x *****************************************************/
+
+body {
+ min-width: 360px;
+}
+a.logo {
+ margin: 0 0 0 15px;
+}
+.l-header .block-system-user-menu {
+ display: none;
+}
+@media (min-width: 34em) {
+ .l-header .block-borg-blocks-branding {
+ width: 34%;
+ }
+ .l-header .block-system-main-menu {
+ text-align: right;
+ width: 60%;
+ }
+ .l-header .block-system-user-menu {
+ display: none;
+ }
+}
+@media (min-width: 48em) { /* 768px @ 16px font size -- MD */
+ .l-header .block-borg-blocks-branding {
+ width: 25%;
+ }
+ .l-header .block-system-main-menu {
+ width: 70%;
+ }
+}
+
+/** Footer hack **************************************************************/
+/** Remove with Borg 2.x *****************************************************/
+.block-on-the-web-social-links a svg {
+ background-color: #000;
+}
\ No newline at end of file
diff --git a/www/themes/backdropcms/images/arrow-right.svg b/www/themes/backdropcms/images/arrow-right.svg
new file mode 100644
index 000000000..52a1077c8
--- /dev/null
+++ b/www/themes/backdropcms/images/arrow-right.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/www/themes/backdropcms/images/book.svg b/www/themes/backdropcms/images/book.svg
new file mode 100644
index 000000000..6c21eba94
--- /dev/null
+++ b/www/themes/backdropcms/images/book.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/www/themes/backdropcms/images/business.svg b/www/themes/backdropcms/images/business.svg
new file mode 100644
index 000000000..3abf96451
--- /dev/null
+++ b/www/themes/backdropcms/images/business.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/www/themes/backdropcms/images/checkmark.svg b/www/themes/backdropcms/images/checkmark.svg
new file mode 100644
index 000000000..f3b497ad9
--- /dev/null
+++ b/www/themes/backdropcms/images/checkmark.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/www/themes/backdropcms/images/community.svg b/www/themes/backdropcms/images/community.svg
new file mode 100644
index 000000000..da6c92a5c
--- /dev/null
+++ b/www/themes/backdropcms/images/community.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/www/themes/backdropcms/images/diagonal-grid.svg b/www/themes/backdropcms/images/diagonal-grid.svg
new file mode 100755
index 000000000..a933e84bc
--- /dev/null
+++ b/www/themes/backdropcms/images/diagonal-grid.svg
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/www/themes/backdropcms/images/graduation-cap.svg b/www/themes/backdropcms/images/graduation-cap.svg
new file mode 100644
index 000000000..ce0ea15ec
--- /dev/null
+++ b/www/themes/backdropcms/images/graduation-cap.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/www/themes/backdropcms/images/newspaper.svg b/www/themes/backdropcms/images/newspaper.svg
new file mode 100644
index 000000000..f3a98f71d
--- /dev/null
+++ b/www/themes/backdropcms/images/newspaper.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/www/themes/backdropcms/template.php b/www/themes/backdropcms/template.php
index 50bb2a5aa..141090f74 100644
--- a/www/themes/backdropcms/template.php
+++ b/www/themes/backdropcms/template.php
@@ -18,29 +18,16 @@
* @see page.tpl.php
*/
function backdropcms_preprocess_page(&$variables) {
- $variables['fp'] = '';
- $user_pages = array('login', 'register', 'password');
- if (arg(0) == 'user') {
- if (!in_array(arg(1), $user_pages) && (is_numeric(arg(1)) && arg(2) != 'edit')) {
- $variables['fp'] = "
-
- " . '
-
- ';
- }
+ $path = backdrop_get_path('theme', 'backdropcms');
+
+ if (backdrop_is_front_page()) {
+ backdrop_add_css($path . '/css/page-front.css', array('group' => CSS_THEME));
+
+ // Load IBM Plex variable fonts.
+ backdrop_add_css(
+ 'https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&display=swap',
+ array('type' => 'external')
+ );
}
}
@@ -48,12 +35,88 @@ function backdropcms_preprocess_page(&$variables) {
* Preare varibles for node.tpl.php.
*/
function backdropcms_preprocess_node(&$variables) {
+ // Get the theme location.
+ $path = backdrop_get_path('theme', 'borg');
+
if ($variables['type'] == 'feature') {
- $variables['icon_class'] = '';
+ $variables['icon'] = '';
$node = $variables['node'];
if (property_exists($node, 'field_icon_class') && !empty($node->field_icon_class)) {
- $class = $node->field_icon_class[LANGUAGE_NONE][0]['safe_value'];
- $variables['icon_class'] = $class;
+ $name = $node->field_icon_class[LANGUAGE_NONE][0]['safe_value'];
+ $variables['icon'] = icon('$name');
+ backdrop_add_icons(array($name));
+ if ($variables['view_mode'] == 'card') {
+ $variables['classes'][] = 'dark-hero-card--' . $name;
+ }
+ }
+ }
+ // For showcase nodes include a special stylesheet.
+ if ($variables['type'] == 'showcase') {
+ backdrop_add_css($path . '/css/node-showcase.css');
+ }
+
+ // For project nodes include a special stylesheet.
+ if (($variables['type'] == 'core') || substr($variables['type'], 0, 8) == 'project_'){
+ if ($variables['type'] == 'project_release') {
+
+ }
+ else {
+ unset($variables['content']['project_release_downloads']['#prefix']);
+ $variables['classes'][] = 'node-project';
+ backdrop_add_css($path . '/css/node-project.css');
+ }
+ }
+}
+
+/**
+ * Implements template_preprocess_block().
+ */
+function backdropcms_preprocess_block(&$variables) {
+ if ($variables['title'] == 'Latest News') {
+ // Massively simplifying the markup of this block so CSS layout is easier to accomplish
+ // Getting the single result from the view, and rendering it without views markup bloat
+ $data = views_get_view_result('news', 'block');
+
+ $title = $data[0]->node_title;
+ if (isset($data[0]->nid)) {
+ $article_url = backdrop_get_path_alias('node/' . $data[0]->nid);
+ $title = '' . $title . ' ';
+ }
+
+ $content = [
+ 'title' => ['#markup' => '' . $title . ' '],
+ 'body' => ['#markup' =>
+ '' .
+ $data[0]->field_body[0]['rendered']['#markup'] .
+ '
'
+ ],
+ 'image' => ['#markup' =>
+ render($data[0]->field_field_image[0]['rendered'])
+ ]
+ ];
+
+ $variables['content'] = $content;
+ }
+}
+
+/**
+ * Preare varibles for views templates.
+ *
+ * @see views-view.tpl.php.
+ */
+function backdropcms_preprocess_views_view(&$variables) {
+ $view = $variables['view'];
+ if ($view->name == 'product_features') {
+
+ // Make the icons available for use in CSS.
+ $icons_needed = array();
+ foreach ($view->result as $count => $item) {
+ if (!empty($item->field_field_icon_class)) {
+ $icons_needed[] = $item->field_field_icon_class[0]['raw']['safe_value'];
+ }
+ }
+ if (!empty($icons_needed)) {
+ backdrop_add_icons($icons_needed);
}
}
}
@@ -97,6 +160,104 @@ function backdropcms_menu_link(array $variables) {
return '' . $output . $sub_menu . " \n";
}
+/**
+ * Overrides theme_item_list().
+ * - Only adds the outer div if there is a title.
+ */
+function backdropcms_item_list($variables) {
+ $items = $variables['items'];
+ $title = $variables['title'];
+ $type = $variables['type'];
+ $list_attributes = $variables['attributes'];
+ $wrapper_attributes = $variables['wrapper_attributes'];
+
+ $output = '';
+ if ($items) {
+ $output .= '<' . $type . backdrop_attributes($list_attributes) . '>';
+
+ $num_items = count($items);
+ $i = 0;
+ foreach ($items as $key => $item) {
+ $i++;
+ $attributes = array();
+
+ if (is_array($item)) {
+ $value = '';
+ if (isset($item['data'])) {
+ $value .= $item['data'];
+ }
+ $attributes = array_diff_key($item, array('data' => 0, 'children' => 0));
+
+ // Append nested child list, if any.
+ if (isset($item['children'])) {
+ // HTML attributes for the outer list are defined in the 'attributes'
+ // theme variable, but not inherited by children. For nested lists,
+ // all non-numeric keys in 'children' are used as list attributes.
+ $child_list_attributes = array();
+ foreach ($item['children'] as $child_key => $child_item) {
+ if (is_string($child_key)) {
+ $child_list_attributes[$child_key] = $child_item;
+ unset($item['children'][$child_key]);
+ }
+ }
+ $value .= theme('item_list', array(
+ 'items' => $item['children'],
+ 'type' => $type,
+ 'attributes' => $child_list_attributes,
+ ));
+ }
+ }
+ else {
+ $value = $item;
+ }
+
+ $attributes['class'][] = ($i % 2 ? 'odd' : 'even');
+ if ($i == 1) {
+ $attributes['class'][] = 'first';
+ }
+ if ($i == $num_items) {
+ $attributes['class'][] = 'last';
+ }
+
+ $output .= '' . $value . ' ';
+ }
+ $output .= "$type>";
+ }
+ elseif (!empty($variables['empty'])) {
+ $output .= render($variables['empty']);
+ }
+
+ // Only output the list container and title if there are any list items.
+ if ($output !== '') {
+ // Check to see whether the list title exists before adding a header. Empty
+ // headers are not semantic and present accessibility challenges.
+ if (isset($title) && $title !== '') {
+ $title = '' . $title . ' ';
+ }
+
+ // Add any attributes specified for the wrapper div tag.
+ if (!isset($wrapper_attributes['class'])) {
+ // Make sure that the 'class' key exists in the array.
+ $wrapper_attributes['class'] = array();
+ }
+ elseif (is_string($wrapper_attributes['class'])) {
+ // Do not choke if 'class' was provided as a string which may include
+ // commas, spaces, or semicolons. Convert sub-strings into array items.
+ $wrapper_class_items = array_map('trim', preg_split("/[;,]/", $wrapper_attributes['class']));
+ $wrapper_attributes['class'] = $wrapper_class_items;
+ }
+ // Finally, include a default CSS class "item-list".
+ $wrapper_attributes['class'][] = 'item-list';
+
+ // CHANGED: only add the outer wrapper if there is a title.
+ if (!empty($title)) {
+ $output = '' . $title . $output . '
';
+ }
+ }
+
+ return $output;
+}
+
/**
* Overrides theme_field__body__docs().
*/
@@ -150,3 +311,11 @@ function backdropcms_field__body__docs($variables) {
}
}
}
+
+/**
+ * Overrides theme_system_powered_by().
+
+function backdropcms_system_powered_by() {
+ return '' . t('Backdrop CMS and the Backdrop logo are registered trademarks of the Softrware Freedom conservancy.', array('@url' => 'https://backdropcms.org')) . ' ';
+}
+*/
\ No newline at end of file
diff --git a/www/themes/backdropcms/templates/block--borg-blocks--community.tpl.php b/www/themes/backdropcms/templates/block--borg-blocks--community.tpl.php
new file mode 100644
index 000000000..a7c2260b2
--- /dev/null
+++ b/www/themes/backdropcms/templates/block--borg-blocks--community.tpl.php
@@ -0,0 +1,27 @@
+
+
diff --git a/www/themes/backdropcms/templates/block--borg-project-metrics--resources.tpl.php b/www/themes/backdropcms/templates/block--borg-project-metrics--resources.tpl.php
new file mode 100644
index 000000000..6689d9fc7
--- /dev/null
+++ b/www/themes/backdropcms/templates/block--borg-project-metrics--resources.tpl.php
@@ -0,0 +1,34 @@
+
+>
+
+
+
+
+
+
+
+
+
+
+
+ Community Members
+ Commits
+
+
+
+
+
+
\ No newline at end of file
diff --git a/www/themes/backdropcms/templates/block--views--news-block.tpl.php b/www/themes/backdropcms/templates/block--views--news-block.tpl.php
new file mode 100644
index 000000000..4e14280cd
--- /dev/null
+++ b/www/themes/backdropcms/templates/block--views--news-block.tpl.php
@@ -0,0 +1,30 @@
+
+>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/www/themes/backdropcms/templates/node--feature.tpl.php b/www/themes/backdropcms/templates/node--feature.tpl.php
index 8c40abf70..e4a86c7cf 100644
--- a/www/themes/backdropcms/templates/node--feature.tpl.php
+++ b/www/themes/backdropcms/templates/node--feature.tpl.php
@@ -8,7 +8,7 @@
>
-
+
diff --git a/www/themes/backdropcms/templates/page.tpl.php b/www/themes/backdropcms/templates/page.tpl.php
index 3737c470d..2a067402f 100644
--- a/www/themes/backdropcms/templates/page.tpl.php
+++ b/www/themes/backdropcms/templates/page.tpl.php
@@ -11,9 +11,10 @@
+
+
-
>
diff --git a/www/themes/backdropcms/templates/views-view--product-features--block.tpl.php b/www/themes/backdropcms/templates/views-view--product-features--block.tpl.php
new file mode 100644
index 000000000..fbb2bef98
--- /dev/null
+++ b/www/themes/backdropcms/templates/views-view--product-features--block.tpl.php
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/www/themes/borg/css/base.css b/www/themes/borg/css/base.css
index a2223b067..7bfd5648a 100644
--- a/www/themes/borg/css/base.css
+++ b/www/themes/borg/css/base.css
@@ -14,6 +14,13 @@ body {
min-width: 320px;
}
+body {
+ --color__accent--primary: #4D00FF;
+ --color__accent--primary--dark: #3909a9;
+ --color__accent--primary--light: #B79CF6;
+ --color__accent--secondary: #01FDA6;
+}
+
@media (max-width: 47.9375em) { /* 767px @ 16px font size -- MD */
/* Larger font for smaller screens */
body {
diff --git a/www/themes/borg/css/components.css b/www/themes/borg/css/components.css
index 32dbdb35d..c675b732a 100644
--- a/www/themes/borg/css/components.css
+++ b/www/themes/borg/css/components.css
@@ -333,11 +333,19 @@ article.comment ul.links.inline {
padding: 10px;
}
+/*******************************************************************************
+ * General submitted
+*******************************************************************************/
+div.submitted {
+ color: #595959; /* AAA */
+}
+
/*******************************************************************************
* All entity footers
*******************************************************************************/
article footer {
font-size: 0.875rem; /* 16px */
+ color: #000;
background-color: #f7f7f7;
border: 1px solid #E8E6E5;
border-radius: 10px;
@@ -625,6 +633,28 @@ a.feed-icon {
color: #7D7D7D;
}
+/*******************************************************************************
+ * Social media icons - general.
+*******************************************************************************/
+
+div.fa-mastodon {
+ display: inline-block;
+ -webkit-mask-image: url(../images/mastodon-logo-black.svg);
+ mask-image: url(../images/mastodon-logo-black.svg);
+ background-image: url(../images/mastodon-logo-black.svg);
+ background-color: #007CBA;
+ content: '-';
+}
+
+div.fa-bluesky {
+ display: inline-block;
+ -webkit-mask-image: url(../images/bluesky-logo-black.svg);
+ mask-image: url(../images/bluesky-logo-black.svg);
+ background-image: url(../images/bluesky-logo-black.svg);
+ background-color: #007CBA;
+ content: '-';
+}
+
/*******************************************************************************
* On The Web social media links block.
*******************************************************************************/
@@ -634,6 +664,9 @@ a.feed-icon {
.block-on-the-web-social-links a i {
color: #007CBA;
}
+.block-on-the-web-social-links a svg {
+ background-color: #007CBA;
+}
.l-footer .block-on-the-web-social-links a i {
text-align: left;
}
@@ -644,19 +677,51 @@ a.feed-icon {
color: #000;
}
+/* add top/bottom margin */
+svg.otw-square {
+ margin: 5px;
+}
+
+/* 8 iccons should stack */
+a.otw-icon {
+ display: inline-block;
+ width: 25%;
+ text-align: center;
+}
+
a.otw-svg-mask {
+ width: 28px;
+ height: 32px;
+}
+a.otw-svg-mask-2 {
+ display: inline-block;
margin: 5px;
background: #007CBA;
width: 28px;
height: 32px;
}
-a.otw-svg-mask:first-child {
- margin-left: 0;
-}
-a.otw-svg-mask:last-child {
- margin-right: 0;
+
+@media (min-width: 22.5em) { /* 360px @ 16px font size -- SM */
+ a.otw-icon {
+ width: auto;
+ text-align: left;
+ }
+ a.otw-icon:first-child svg.otw-square {
+ margin-left: 0;
+ }
+ a.otw-icon:last-child svg.otw-square {
+ margin-right: 0;
+ }
+
+ a.otw-svg-mask:first-child {
+ margin-left: 0;
+ }
+ a.otw-svg-mask:last-child {
+ margin-right: 0;
+ }
}
+
@media (min-width: 34em) { /* 544px @ 16px font size -- SM */
.block-on-the-web-social-links {
padding-bottom: 0;
@@ -808,6 +873,10 @@ a.otw-svg-mask:last-child {
margin: 0 0 1em;
}
+.field-prefix {
+ line-height: 2.2em;
+}
+
/*******************************************************************************
* Site contact form.
@@ -857,6 +926,8 @@ body.user-form .page-title {
*******************************************************************************/
#user-login .help p {
font-size: 1.5rem; /* 24px */
+ text-align: right;
+ margin-top: .6em;
}
#user-login .form-item {
padding: 15px 0;
@@ -937,6 +1008,8 @@ body.user-form .page-title {
}
#user-register-form .help p {
font-size: 1.5rem; /* 24px */
+ text-align: right;
+ margin-top: .6em;
}
#user-register-form fieldset .form-item {
padding: 5px 0;
@@ -994,7 +1067,8 @@ body.user-form .page-title {
}
#user-register-form .form-type-textfield label,
#user-register-form .form-type-email label {
- width: 140px;
+ width: 145px;
+ text-align: right;
}
#user-register-form .form-item input[type="text"],
#user-register-form .form-item input[type="email"] {
@@ -1006,8 +1080,9 @@ body.user-form .page-title {
padding-left: 165px;
}
- #user-register-form .form-type-checkbox label {
-
+ /* Hide bad descriptions.*/
+ #user-register-form .form-item-captcha-response div.description {
+ display: none;
}
#user-register-form #edit-contact .form-item input {
flex: none;
@@ -1465,14 +1540,28 @@ div.addressfield-container-inline::after {
.views-exposed-form input[type="submit"],
.views-exposed-form .form-submit {
font-size: 1rem;
+ margin: 0;
}
@media (min-width: 34em) { /* 544px @ 16px font size -- SM */
.views-exposed-form {
- padding: 30px;
+ padding: 30px 0;
margin-bottom: 30px;
}
}
+/* Exposed forms in l-top *****************************************************/
+.l-top .views-exposed-form {
+ background: transparent;
+ padding: 15px 0;
+}
+.l-top .views-exposed-form label {
+ text-transform: uppercase;
+ letter-spacing: .5px;
+}
+.l-top .views-exposed-form select {
+ border: 1.5px solid black;
+}
+
/*******************************************************************************
* Font Awesome
*******************************************************************************/
diff --git a/www/themes/borg/css/menu-dropdown.theme.css b/www/themes/borg/css/menu-dropdown.theme.css
index 95e895fbe..b4d68025b 100644
--- a/www/themes/borg/css/menu-dropdown.theme.css
+++ b/www/themes/borg/css/menu-dropdown.theme.css
@@ -61,6 +61,22 @@
text-align: center;
text-shadow: none;
}
+@media (min-width: 48em) {
+ .menu-dropdown a span.sub-arrow {
+ top: 50%;
+ right: 10px;
+ width: 0.5em;
+ height: 0.5em;
+ margin-top: 0;
+ border: 1px solid transparent;
+ border-right-color: var(--color__accent--primary--light);
+ border-bottom-color: var(--color__accent--primary--light);
+ transform: translate(0, -50%) rotate(45deg);
+ background: transparent;
+ border-radius: 0;
+ }
+}
+
.menu-dropdown span.sub-arrow:before {
display: block;
content: '+';
@@ -144,22 +160,6 @@
.js .menu-dropdown li.has-children > a {
padding-right: 28px;
}
- .menu-dropdown a span.sub-arrow {
- top: 50%;
- margin-top: -2px;
- right: 10px;
- width: 0;
- height: 0;
- border-width: 5px;
- border-style: solid dashed dashed dashed;
- border-color: #fff transparent transparent transparent;
- background: transparent;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- -ms-border-radius: 0;
- -o-border-radius: 0;
- border-radius: 0;
- }
.menu-dropdown a.highlighted span.sub-arrow:before {
display: none;
}
diff --git a/www/themes/borg/template.php b/www/themes/borg/template.php
index d7469f81e..e7e885615 100644
--- a/www/themes/borg/template.php
+++ b/www/themes/borg/template.php
@@ -8,14 +8,6 @@
* Alter functions: modify renderable structures before used.
******************************************************************************/
-/**
- * Implements hook_form_id_alter()
- * Modify the user edit form for usability++
- */
-function borg_form_user_profile_form_alter(&$form, &$form_state) {
-
-}
-
/**
* Implements hook_form_FORM_ID_alter().
*/
@@ -30,7 +22,7 @@ function borg_form_user_register_form_alter(&$form, &$form_state) {
// Remove description text from password.
unset($form['account']['pass']['#description']);
// Fix the description text for email address.
- $form['account']['mail']['#description'] = t('This e-mail address is not made public and will only be used if you request to receive a new password.');
+ $form['account']['mail']['#description'] = t('This e-mail address is not made public and will only be used if you choose to receive messages.');
}
/**
@@ -87,10 +79,22 @@ function borg_preprocess_page(&$variables) {
$arg0 = check_plain(arg(0));
$arg1 = check_plain(arg(1));
$arg2 = check_plain(arg(2));
+
// Add the Source Sans Pro font.
- backdrop_add_css('https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700', array('type' => 'external'));
+ $source_sans = 'https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700';
+ backdrop_add_css($source_sans, array('type' => 'external'));
+
// Add FontAwesome.
- backdrop_add_js('https://use.fontawesome.com/baf3c35582.js', array('type' => 'external'));
+ $font_awesome = 'https://use.fontawesome.com/baf3c35582.js';
+ backdrop_add_js($font_awesome, array('type' => 'external'));
+
+ // Add ForkAwesome.
+ $fork_awesome = 'https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css';
+ $attributes = array(
+ 'integrity' => 'sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY=',
+ 'crossorigin' => 'anonymous',
+ );
+ backdrop_add_css($fork_awesome, array('type' => 'external', 'attributes' => $attributes));
// Add a body class based on the admin bar.
if (module_exists('admin_bar') && user_access('admin_bar')) {
@@ -98,7 +102,6 @@ function borg_preprocess_page(&$variables) {
}
$path = backdrop_get_path('theme', 'borg');
-
// Add Flexslider to the front page only.
if (backdrop_is_front_page()) {
backdrop_add_css($path . '/css/page-front.css');
@@ -138,12 +141,12 @@ function borg_preprocess_page(&$variables) {
}
}
- // Add a node class based on the node ID...
+ // Add a class based on the node ID...
if ($arg0 == 'node' && is_numeric($arg1) && !$arg2) {
$variables['classes'][] = 'node-' . $arg1;
}
- // ...or add body classes based on args.
+ // ...or add classes based on args.
elseif ($arg0) {
$variables['classes'][] = $arg0;
if ($arg1) {
@@ -359,26 +362,6 @@ function borg_preprocess_node(&$variables){
// Change the submitted by language for all nodes.
$variables['submitted'] = t('Posted by !username on !datetime', array(
'!username' => $variables['name'], '!datetime' => $variables['date']));
-
- // Get the theme location.
- $path = backdrop_get_path('theme', 'borg');
-
- // For project nodes include a special stylesheet.
- if (($variables['type'] == 'core') || substr($variables['type'], 0, 8) == 'project_'){
- if ($variables['type'] == 'project_release') {
-
- }
- else {
- unset($variables['content']['project_release_downloads']['#prefix']);
- $variables['classes'][] = 'node-project';
- backdrop_add_css($path . '/css/node-project.css');
- }
- }
-
- // For showcase nodes include a special stylesheet.
- if ($variables['type'] == 'showcase') {
- backdrop_add_css($path . '/css/node-showcase.css');
- }
}
/**
@@ -725,9 +708,9 @@ function borg_menu_tree__user_menu($variables) {
$output .= ' ';
$output .= ' ';
- $output .= ' ';
- $output .= ' ';
- $output .= ' ';
+ $output .= ' ';
+ $output .= ' ';
+ $output .= ' ';
$output .= '';
@@ -805,8 +788,10 @@ function borg_on_the_web_item($variables) {
$type = $config->get('type');
$target = $config->get('target');
- // Add a new link class for SVG masks.
- $link_classes[] = 'otw-svg-mask';
+ if ($type == 'anchor') {
+ // Add a new link class for SVG masks.
+ $link_classes[] = 'otw-svg-mask';
+ }
// Determine attributes for the link
$attributes = array(
+ $comments + comments +
+