From dcc5f01fb8f391a319b48127fc25fe2b62f0c649 Mon Sep 17 00:00:00 2001
From: Yasmeen Abuerrub <yabuerrub@hotmail.com>
Date: Thu, 7 Sep 2017 18:46:23 +0300
Subject: [PATCH] Issue #2907351: Changed [Varbase SEO] with an optimization
 round to have better init Metatag configs

---
 .../varbase_core/varbase_core.module          |  2 +
 .../varbase_core/varbase_core.tokens.inc      | 47 +++++++++++++++++++
 .../install/metatag.metatag_defaults.403.yml  |  8 ++++
 .../install/metatag.metatag_defaults.404.yml  |  8 ++++
 .../metatag.metatag_defaults.front.yml        | 14 ++++++
 .../metatag.metatag_defaults.global.yml       | 30 ++++++++++++
 .../install/metatag.metatag_defaults.node.yml | 17 +++++++
 ...ag.metatag_defaults.node__landing_page.yml |  9 ++++
 .../metatag.metatag_defaults.node__page.yml   | 14 ++++++
 ...metatag.metatag_defaults.taxonomy_term.yml |  9 ++++
 .../install/metatag.metatag_defaults.user.yml |  8 ++++
 .../varbase_seo/varbase_seo.install           |  2 +
 12 files changed, 168 insertions(+)
 create mode 100644 modules/varbase_features/varbase_core/varbase_core.module
 create mode 100644 modules/varbase_features/varbase_core/varbase_core.tokens.inc
 create mode 100644 modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.403.yml
 create mode 100644 modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.404.yml
 create mode 100644 modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.front.yml
 create mode 100644 modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.global.yml
 create mode 100644 modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.node.yml
 create mode 100644 modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.node__landing_page.yml
 create mode 100644 modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.node__page.yml
 create mode 100644 modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.taxonomy_term.yml
 create mode 100644 modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.user.yml

diff --git a/modules/varbase_features/varbase_core/varbase_core.module b/modules/varbase_features/varbase_core/varbase_core.module
new file mode 100644
index 00000000..ff337934
--- /dev/null
+++ b/modules/varbase_features/varbase_core/varbase_core.module
@@ -0,0 +1,2 @@
+<?php
+module_load_include('inc', 'varbase_core', 'varbase_core.tokens');
diff --git a/modules/varbase_features/varbase_core/varbase_core.tokens.inc b/modules/varbase_features/varbase_core/varbase_core.tokens.inc
new file mode 100644
index 00000000..5ebb8308
--- /dev/null
+++ b/modules/varbase_features/varbase_core/varbase_core.tokens.inc
@@ -0,0 +1,47 @@
+<?php
+
+use Drupal\Core\Render\BubbleableMetadata;
+
+/**
+ * Implements hook_token_info().
+ */
+function varbase_core_token_info() {
+  // Default theme token.
+  $info['types']['default-active-theme'] = array(
+    'name' => t('Default theme'),
+    'description' => t('Tokens related to the Default theme.'),
+  );
+  $info['tokens']['default-active-theme']['path'] = array(
+    'name' => t('Path'),
+    'description' => t('The path of the Default theme.'),
+  );
+
+  return $info;
+}
+
+/**
+ * Implements hook_tokens().
+ */
+function varbase_core_tokens($type, $tokens, array $data, array $options, BubbleableMetadata $bubbleable_metadata) {
+  $replacements = array();
+  $language_manager = \Drupal::languageManager();
+  $url_options = array('absolute' => TRUE);
+  if (isset($options['langcode'])) {
+    $url_options['language'] = $language_manager->getLanguage($options['langcode']);
+    $langcode = $options['langcode'];
+  }
+  else {
+    $langcode = $language_manager->getCurrentLanguage()->getId();
+  }
+
+  if ($type == 'default-active-theme') {
+    foreach ($tokens as $name => $original) {
+      switch ($name) {
+        case 'path':
+          $replacements[$original] = \Drupal::theme()->getActiveTheme()->getPath();
+          break;
+      }
+    }
+  }
+  return $replacements;
+}
diff --git a/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.403.yml b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.403.yml
new file mode 100644
index 00000000..3f88243f
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.403.yml
@@ -0,0 +1,8 @@
+langcode: en
+status: true
+dependencies: {  }
+id: '403'
+label: '403 access denied'
+tags:
+  canonical_url: '[site:url]'
+  shortlink: '[site:url]'
diff --git a/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.404.yml b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.404.yml
new file mode 100644
index 00000000..2e44127e
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.404.yml
@@ -0,0 +1,8 @@
+langcode: en
+status: true
+dependencies: {  }
+id: '404'
+label: '404 page not found'
+tags:
+  canonical_url: '[site:url]'
+  shortlink: '[site:url]'
diff --git a/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.front.yml b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.front.yml
new file mode 100644
index 00000000..4c802d7c
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.front.yml
@@ -0,0 +1,14 @@
+langcode: en
+status: true
+dependencies: {  }
+id: front
+label: 'Front page'
+tags:
+  shortlink: '[site:url]'
+  title: '[site:name] | [site:slogan]'
+  canonical_url: '[site:url]'
+  google_plus_name: '[site:name] | [site:slogan]'
+  og_url: '[site:url]'
+  og_title: '[site:name] | [site:slogan]'
+  twitter_cards_page_url: '[site:url]'
+  twitter_cards_title: '[site:name] | [site:slogan]'
diff --git a/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.global.yml b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.global.yml
new file mode 100644
index 00000000..f5041c9e
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.global.yml
@@ -0,0 +1,30 @@
+langcode: en
+status: true
+dependencies: {  }
+id: global
+label: Global
+tags:
+  generator: 'Varbase 8 (https://www.vardot.com)'
+  shortlink: '[current-page:url:unaliased]'
+  title: '[current-page:title] | [site:name]'
+  rights: '©[current-date:html_year] [site:name]. All rights reserved.'
+  canonical_url: '[current-page:url:absolute]'
+  referrer: origin
+  google_plus_image: '[site:url][default-active-theme:path]/share-logo.png'
+  apple_mobile_web_app_capable: 'yes'
+  mobileoptimized: width
+  handheldfriendly: 'true'
+  og_site_name: '[site:name]'
+  og_url: '[current-page:url:absolute]'
+  og_type: website
+  og_image: '[site:url][default-active-theme:path]/share-logo.png'
+  og_title: '[current-page:title] | [site:name]'
+  og_image_url: '[site:url][default-active-theme:path]/share-logo.png'
+  twitter_cards_page_url: '[current-page:url:absolute]'
+  twitter_cards_image: '[site:url][default-active-theme:path]/share-logo.png'
+  twitter_cards_title: '[current-page:title] | [site:name]'
+  twitter_cards_type: summary
+  schema_web_site_publisher: 'a:7:{s:5:"@type";s:12:"Organization";s:3:"@id";s:0:"";s:4:"name";s:6:"Vardot";s:3:"url";s:14:"www.vardot.com";s:6:"sameAs";s:0:"";s:4:"logo";a:2:{s:5:"@type";s:11:"ImageObject";s:3:"url";s:39:"[site:url][current-theme:path]/logo.png";}s:5:"pivot";s:0:"";}'
+  schema_web_site_url: '[site:url]'
+  schema_web_site_type: WebSite
+  schema_web_site_name: '[site:name]'
diff --git a/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.node.yml b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.node.yml
new file mode 100644
index 00000000..c83b3dd2
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.node.yml
@@ -0,0 +1,17 @@
+langcode: en
+status: true
+dependencies: {  }
+id: node
+label: Content
+tags:
+  title: '[node:title] | [site:name]'
+  description: '[node:summary]'
+  abstract: '[node:summary]'
+  google_plus_image: '[node:field_image:entity:field_image:1200x630:url]'
+  og_description: '[node:summary]'
+  og_type: article
+  og_image: '[node:field_image:entity:field_image:1200x630:url]'
+  og_image_url: '[node:field_image:entity:field_image:1200x630:url]'
+  twitter_cards_description: '[node:summary]'
+  twitter_cards_image: '[node:field_image:entity:field_image:280x150:url]'
+  twitter_cards_type: summary_large_image
diff --git a/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.node__landing_page.yml b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.node__landing_page.yml
new file mode 100644
index 00000000..6e980f55
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.node__landing_page.yml
@@ -0,0 +1,9 @@
+langcode: en
+status: true
+dependencies: {  }
+id: node__landing_page
+label: 'Content: Landing page'
+tags:
+  title: '[node:title] | [site:name]'
+  description: '[node:field_description:value]'
+  schema_web_page_type: WebPage
diff --git a/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.node__page.yml b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.node__page.yml
new file mode 100644
index 00000000..4dafadc4
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.node__page.yml
@@ -0,0 +1,14 @@
+langcode: en
+status: true
+dependencies: {  }
+id: node__page
+label: 'Content: Basic page'
+tags:
+  title: '[node:title] | [site:name]'
+  schema_article_author: 'a:7:{s:5:"@type";s:6:"Person";s:3:"@id";s:0:"";s:4:"name";s:26:"[node:author:display-name]";s:3:"url";s:17:"[node:author:url]";s:6:"sameAs";s:0:"";s:4:"logo";a:0:{}s:5:"pivot";s:0:"";}'
+  schema_article_publisher: 'a:7:{s:5:"@type";s:12:"Organization";s:3:"@id";s:0:"";s:4:"name";s:11:"[site:name]";s:3:"url";s:10:"[site:url]";s:6:"sameAs";s:0:"";s:4:"logo";a:2:{s:5:"@type";s:11:"ImageObject";s:3:"url";s:39:"[site:url][current-theme:path]/logo.png";}s:5:"pivot";s:0:"";}'
+  schema_article_date_published: '[node:created:html_datetime]'
+  schema_article_date_modified: '[node:changed:html_datetime]'
+  schema_article_description: '[node:summary]'
+  schema_article_type: Article
+  schema_article_headline: '[node:title]'
diff --git a/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.taxonomy_term.yml b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.taxonomy_term.yml
new file mode 100644
index 00000000..c7a81ea4
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.taxonomy_term.yml
@@ -0,0 +1,9 @@
+langcode: en
+status: true
+dependencies: {  }
+id: taxonomy_term
+label: 'Taxonomy term'
+tags:
+  title: '[term:name] | [site:name]'
+  description: '[term:description]'
+  abstract: '[term:description]'
diff --git a/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.user.yml b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.user.yml
new file mode 100644
index 00000000..02e01e21
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/metatag.metatag_defaults.user.yml
@@ -0,0 +1,8 @@
+langcode: en
+status: true
+dependencies: {  }
+id: user
+label: User
+tags:
+  title: '[user:name] | [site:name]'
+  og_type: profile
diff --git a/modules/varbase_features/varbase_seo/varbase_seo.install b/modules/varbase_features/varbase_seo/varbase_seo.install
index c8be9f9d..4abb9955 100644
--- a/modules/varbase_features/varbase_seo/varbase_seo.install
+++ b/modules/varbase_features/varbase_seo/varbase_seo.install
@@ -5,6 +5,8 @@
  * Install, update and uninstall functions for the Varbase SEO module.
  */
 
+use Symfony\Component\Yaml\Yaml;
+
 /**
  * Enable Metatag: Facebook module.
  */
-- 
GitLab