diff --git a/core/modules/content_translation/migrations/d7_taxonomy_term_entity_translation.yml b/core/modules/content_translation/migrations/d7_taxonomy_term_entity_translation.yml index f4ab6731bfa20e1318a96391557e8c4c3181e80a..a156ab68de67e998195b4a745787deea386a01df 100644 --- a/core/modules/content_translation/migrations/d7_taxonomy_term_entity_translation.yml +++ b/core/modules/content_translation/migrations/d7_taxonomy_term_entity_translation.yml @@ -20,7 +20,6 @@ process: content_translation_uid: uid content_translation_created: created changed: changed - forum_container: is_container destination: plugin: entity:taxonomy_term translations: true diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php index 8679f83f6dccb16f7724c8012604feffd0ec12b1..f2fd4711b154894326bbc82e7547cfa4d8d33cf2 100644 --- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php +++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php @@ -150,7 +150,7 @@ public function testFieldInstances() { $this->assertLinkFields('node.blog.field_link', DRUPAL_REQUIRED); $this->assertEntityReferenceFields('node.article.field_tags', ['tags']); - $this->assertEntityReferenceFields('node.forum.taxonomy_forums', ['forums']); + $this->assertEntityReferenceFields('node.forum.taxonomy_forums', ['sujet_de_discussion']); $this->assertEntityReferenceFields('node.test_content_type.field_term_reference', ['tags', 'test_vocabulary']); // Tests that fields created by the Title module are not migrated. diff --git a/core/modules/forum/forum.module b/core/modules/forum/forum.module index 4c92235d129eb09419eb13b120ec39a6560e4f1e..f7a6edfa9199ebafb06954acd2c7b9c9ddb7dc10 100644 --- a/core/modules/forum/forum.module +++ b/core/modules/forum/forum.module @@ -13,6 +13,17 @@ use Drupal\Core\Url; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Routing\RouteMatchInterface; +use Drupal\language\Plugin\migrate\source\d7\LanguageContentSettingsTaxonomyVocabulary as D7LanguageContentSettingsTaxonomyVocabulary; +use Drupal\migrate\Plugin\MigrateSourceInterface; +use Drupal\migrate\Plugin\MigrationInterface; +use Drupal\migrate\Row; +use Drupal\taxonomy\Plugin\migrate\source\d6\Term as D6Term; +use Drupal\taxonomy\Plugin\migrate\source\d6\Vocabulary as D6Vocabulary; +use Drupal\taxonomy\Plugin\migrate\source\d6\VocabularyPerType as D6VocabularyPerType; +use Drupal\taxonomy\Plugin\migrate\source\d7\Term as D7Term; +use Drupal\taxonomy\Plugin\migrate\source\d7\TermEntityTranslation; +use Drupal\taxonomy\Plugin\migrate\source\d7\Vocabulary as D7Vocabulary; +use Drupal\taxonomy\Plugin\migrate\source\d7\VocabularyTranslation as D7VocabularyTranslation; use Drupal\taxonomy\VocabularyInterface; use Drupal\user\Entity\User; @@ -648,3 +659,102 @@ function template_preprocess_forum_submitted(&$variables) { } $variables['time'] = isset($variables['topic']->created) ? \Drupal::service('date.formatter')->formatTimeDiffSince($variables['topic']->created) : ''; } + +/** + * Implements hook_migrate_prepare_row(). + */ +function forum_migrate_prepare_row(Row $row, MigrateSourceInterface $source, MigrationInterface $migration) { + $source_plugin = $migration->getSourcePlugin(); + if (is_a($source_plugin, D6Term::class) || is_a($source_plugin, D7Term::class) || is_a($source_plugin, TermEntityTranslation::class)) { + $connection = $source_plugin->getDatabase(); + if ($connection) { + if ($connection->schema()->tableExists('variable')) { + $query = $connection->select('variable', 'v') + ->fields('v', ['value']) + ->condition('name', 'forum_containers'); + $result = $query->execute()->fetchCol(); + if ($result) { + $forum_container_tids = unserialize($result[0], ['allowed_classes' => FALSE]); + $current_tid = $row->getSourceProperty('tid'); + $row->setSourceProperty('is_container', in_array($current_tid, $forum_container_tids)); + } + } + } + } +} + +/** + * Implements hook_migrate_MIGRATION_ID_prepare_row(). + */ +function forum_migrate_d7_taxonomy_vocabulary_prepare_row(Row $row, MigrateSourceInterface $source, MigrationInterface $migration) { + // If the vocabulary being migrated is the one defined in the + // 'forum_nav_vocabulary' variable, set the 'forum_vocabulary' source + // property to true so we know this is the vocabulary used by Forum. + $connection = $migration->getSourcePlugin()->getDatabase(); + if ($connection) { + if ($connection->schema()->tableExists('variable')) { + $query = $connection->select('variable', 'v') + ->fields('v', ['value']) + ->condition('name', 'forum_nav_vocabulary'); + $result = $query->execute()->fetchCol(); + if ($result) { + $forum_nav_vocabulary = unserialize($result[0], ['allowed_classes' => FALSE]); + if ($forum_nav_vocabulary == $row->getSourceProperty('vid')) { + $row->setSourceProperty('forum_vocabulary', TRUE); + } + } + } + } +} + +/** + * Implements hook_migration_plugins_alter(). + */ +function forum_migration_plugins_alter(array &$migrations) { + // Function to append the forum_vocabulary process plugin. + $merge_forum_vocabulary = function ($process) { + $process[] = [ + 'plugin' => 'forum_vocabulary', + 'machine_name' => 'forums', + ]; + return $process; + }; + $merge_forum_field_name = function ($process) { + $process[] = [ + 'plugin' => 'forum_vocabulary', + 'machine_name' => 'taxonomy_forums', + ]; + return $process; + }; + foreach ($migrations as $migration_id => $migration) { + // Add process for forum_nav_vocabulary. + /** @var \Drupal\migrate\Plugin\migrate\source\SqlBase $source_plugin */ + $source_plugin = \Drupal::service('plugin.manager.migration') + ->createStubMigration($migration) + ->getSourcePlugin(); + if (is_a($source_plugin, D6Vocabulary::class) + || is_a($source_plugin, D6VocabularyPerType::class)) { + if (isset($migration['process']['vid'])) { + $migrations[$migration_id]['process']['vid'] = $merge_forum_vocabulary($migration['process']['vid']); + } + if (isset($migration['process']['field_name'])) { + $migrations[$migration_id]['process']['field_name'] = $merge_forum_field_name($migration['process']['field_name']); + } + } + + if (is_a($source_plugin, D7Vocabulary::class) + && !is_a($source_plugin, D7VocabularyTranslation::class) + && !is_a($source_plugin, D7LanguageContentSettingsTaxonomyVocabulary::class)) { + if (isset($migration['process']['vid'])) { + $process[] = $migrations[$migration_id]['process']['vid']; + $migrations[$migration_id]['process']['vid'] = $merge_forum_vocabulary($process); + } + } + // Add process for forum_container. + if (is_a($source_plugin, D6Term::class) + || is_a($source_plugin, D7Term::class) + || is_a($source_plugin, TermEntityTranslation::class)) { + $migrations[$migration_id]['process']['forum_container'] = 'is_container'; + } + } +} diff --git a/core/modules/forum/src/Plugin/migrate/process/ForumVocabulary.php b/core/modules/forum/src/Plugin/migrate/process/ForumVocabulary.php new file mode 100644 index 0000000000000000000000000000000000000000..44fad9a9a58e657b1c4d675efd3458140131d6aa --- /dev/null +++ b/core/modules/forum/src/Plugin/migrate/process/ForumVocabulary.php @@ -0,0 +1,46 @@ +<?php + +namespace Drupal\forum\Plugin\migrate\process; + +use Drupal\migrate\MigrateExecutableInterface; +use Drupal\migrate\ProcessPluginBase; +use Drupal\migrate\Row; + +/** + * Checks if the vocabulary being migrated is the one used for forums. + * + * Drupal 8 Forum is expecting specific machine names for its field and + * vocabulary names. This process plugin forces a given machine name to the + * field or vocabulary that is being migrated. + * + * The 'forum_vocabulary' source property is evaluated in the + * d6_taxonomy_vocabulary or d7_taxonomy_vocabulary source plugins and is set to + * true if the vocabulary vid being migrated is the same as the one in the + * 'forum_nav_vocabulary' variable on the source site. + * + * Example: + * + * @code + * process: + * field_name: + * plugin: forum_vocabulary + * machine_name: taxonomy_forums + * @endcode + * + * @MigrateProcessPlugin( + * id = "forum_vocabulary" + * ) + */ +class ForumVocabulary extends ProcessPluginBase { + + /** + * {@inheritdoc} + */ + public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) { + if ($row->getSourceProperty('forum_vocabulary') && !empty($this->configuration['machine_name'])) { + $value = $this->configuration['machine_name']; + } + return $value; + } + +} diff --git a/core/modules/forum/tests/fixtures/drupal6.php b/core/modules/forum/tests/fixtures/drupal6.php index bb44bff4049c29a2c521d4f877aef895f8c1a1bf..b9cd499e015a34304725cf7a0bdf7c7911bd619b 100644 --- a/core/modules/forum/tests/fixtures/drupal6.php +++ b/core/modules/forum/tests/fixtures/drupal6.php @@ -4,7 +4,7 @@ * @file * A database agnostic dump for testing purposes. * - * This file was generated by the Drupal 10.1.0-dev db-tools.php script. + * This file was generated by the Drupal 11.0-dev db-tools.php script. */ use Drupal\Core\Database\Database; @@ -2047,6 +2047,18 @@ 'active' => '0', 'locked' => '0', )) +->values(array( + 'field_name' => 'field_forums', + 'type' => 'text', + 'global_settings' => 'a:4:{s:15:"text_processing";s:1:"0";s:10:"max_length";s:0:"";s:14:"allowed_values";s:0:"";s:18:"allowed_values_php";s:0:"";}', + 'required' => '0', + 'multiple' => '0', + 'db_storage' => '1', + 'module' => 'text', + 'db_columns' => 'a:1:{s:5:"value";a:5:{s:4:"type";s:4:"text";s:4:"size";s:3:"big";s:8:"not null";b:0;s:8:"sortable";b:1;s:5:"views";b:1;}}', + 'active' => '1', + 'locked' => '0', +)) ->values(array( 'field_name' => 'field_sync', 'type' => 'email', @@ -2188,6 +2200,18 @@ 'widget_module' => 'nodereference', 'widget_active' => '0', )) +->values(array( + 'field_name' => 'field_forums', + 'type_name' => 'forum', + 'weight' => '31', + 'label' => 'forums', + 'widget_type' => 'text_textfield', + 'widget_settings' => 'a:4:{s:4:"rows";i:5;s:4:"size";s:2:"60";s:13:"default_value";a:1:{i:0;a:2:{s:5:"value";s:0:"";s:14:"_error_element";s:44:"default_value_widget][field_forums][0][value";}}s:17:"default_value_php";N;}', + 'display_settings' => 'a:6:{s:5:"label";a:2:{s:6:"format";s:5:"above";s:7:"exclude";i:0;}s:6:"teaser";a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}s:4:"full";a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}i:4;a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}i:2;a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}i:3;a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}}', + 'description' => '', + 'widget_module' => 'text', + 'widget_active' => '1', +)) ->values(array( 'field_name' => 'field_sync', 'type_name' => 'employee', @@ -2261,6 +2285,51 @@ 'mysql_character_set' => 'utf8', )); +$connection->schema()->createTable('content_type_forum', array( + 'fields' => array( + 'vid' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + 'unsigned' => TRUE, + ), + 'nid' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + 'unsigned' => TRUE, + ), + 'field_forums_value' => array( + 'type' => 'text', + 'not null' => FALSE, + 'size' => 'big', + ), + ), + 'primary key' => array( + 'vid', + ), + 'indexes' => array( + 'nid' => array( + 'nid', + ), + ), + 'mysql_character_set' => 'utf8', +)); + +$connection->insert('content_type_forum') +->fields(array( + 'vid', + 'nid', + 'field_forums_value', +)) +->values(array( + 'vid' => '23', + 'nid' => '20', + 'field_forums_value' => 'green', +)) +->execute(); $connection->schema()->createTable('date_format_locale', array( 'fields' => array( 'format' => array( @@ -6739,6 +6808,11 @@ 'vid' => '22', 'tid' => '8', )) +->values(array( + 'nid' => '20', + 'vid' => '23', + 'tid' => '10', +)) ->execute(); $connection->schema()->createTable('history', array( 'fields' => array( @@ -6787,7 +6861,12 @@ ->values(array( 'uid' => '1', 'nid' => '19', - 'timestamp' => '1675403296', + 'timestamp' => '1687738850', +)) +->values(array( + 'uid' => '1', + 'nid' => '20', + 'timestamp' => '1679803849', )) ->values(array( 'uid' => '1', @@ -10356,9 +10435,9 @@ 'menu_name' => 'navigation', 'mlid' => '479', 'plid' => '0', - 'link_path' => 'upload/js', - 'router_path' => 'upload/js', - 'link_title' => '', + 'link_path' => 'admin/content/node-type/employee/fields/field_sync/remove', + 'router_path' => 'admin/content/node-type/employee/fields/field_sync/remove', + 'link_title' => 'Remove field', 'options' => 'a:0:{}', 'module' => 'system', 'hidden' => '-1', @@ -10382,22 +10461,22 @@ ->values(array( 'menu_name' => 'navigation', 'mlid' => '480', - 'plid' => '167', - 'link_path' => 'admin/settings/uploads', - 'router_path' => 'admin/settings/uploads', - 'link_title' => 'File uploads', - 'options' => 'a:1:{s:10:"attributes";a:1:{s:5:"title";s:45:"Control how files may be attached to content.";}}', + 'plid' => '0', + 'link_path' => 'admin/content/node-type/forum/fields/field_forums/remove', + 'router_path' => 'admin/content/node-type/forum/fields/field_forums/remove', + 'link_title' => 'Remove field', + 'options' => 'a:0:{}', 'module' => 'system', - 'hidden' => '0', + 'hidden' => '-1', 'external' => '0', 'has_children' => '0', 'expanded' => '0', 'weight' => '0', - 'depth' => '3', + 'depth' => '1', 'customized' => '0', - 'p1' => '144', - 'p2' => '167', - 'p3' => '480', + 'p1' => '480', + 'p2' => '0', + 'p3' => '0', 'p4' => '0', 'p5' => '0', 'p6' => '0', @@ -10410,9 +10489,9 @@ 'menu_name' => 'navigation', 'mlid' => '481', 'plid' => '0', - 'link_path' => 'admin/content/node-type/employee/fields/field_sync/remove', - 'router_path' => 'admin/content/node-type/employee/fields/field_sync/remove', - 'link_title' => 'Remove field', + 'link_path' => 'upload/js', + 'router_path' => 'upload/js', + 'link_title' => '', 'options' => 'a:0:{}', 'module' => 'system', 'hidden' => '-1', @@ -10433,6 +10512,33 @@ 'p9' => '0', 'updated' => '0', )) +->values(array( + 'menu_name' => 'navigation', + 'mlid' => '482', + 'plid' => '167', + 'link_path' => 'admin/settings/uploads', + 'router_path' => 'admin/settings/uploads', + 'link_title' => 'File uploads', + 'options' => 'a:1:{s:10:"attributes";a:1:{s:5:"title";s:45:"Control how files may be attached to content.";}}', + 'module' => 'system', + 'hidden' => '0', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '0', + 'depth' => '3', + 'customized' => '0', + 'p1' => '144', + 'p2' => '167', + 'p3' => '482', + 'p4' => '0', + 'p5' => '0', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) ->execute(); $connection->schema()->createTable('menu_router', array( 'fields' => array( @@ -12736,6 +12842,50 @@ 'weight' => '1', 'file' => 'sites/all/modules/cck/includes/content.admin.inc', )) +->values(array( + 'path' => 'admin/content/node-type/forum/fields/field_forums', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:24:"administer content types";}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:3:{i:0;s:23:"content_field_edit_form";i:1;s:5:"forum";i:2;s:12:"field_forums";}', + 'fit' => '63', + 'number_parts' => '6', + 'tab_parent' => 'admin/content/node-type/forum/fields', + 'tab_root' => 'admin/content/node-type/forum', + 'title' => 'forums', + 'title_callback' => 't', + 'title_arguments' => '', + 'type' => '128', + 'block_callback' => '', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'file' => 'sites/all/modules/cck/includes/content.admin.inc', +)) +->values(array( + 'path' => 'admin/content/node-type/forum/fields/field_forums/remove', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:24:"administer content types";}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:3:{i:0;s:25:"content_field_remove_form";i:1;s:5:"forum";i:2;s:12:"field_forums";}', + 'fit' => '127', + 'number_parts' => '7', + 'tab_parent' => '', + 'tab_root' => 'admin/content/node-type/forum/fields/field_forums/remove', + 'title' => 'Remove field', + 'title_callback' => 't', + 'title_arguments' => '', + 'type' => '4', + 'block_callback' => '', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'file' => 'sites/all/modules/cck/includes/content.admin.inc', +)) ->values(array( 'path' => 'admin/content/node-type/page', 'load_functions' => '', @@ -15755,6 +15905,23 @@ 'tnid' => '0', 'translate' => '0', )) +->values(array( + 'nid' => '20', + 'vid' => '23', + 'type' => 'forum', + 'language' => '', + 'title' => 'Earth topic 1', + 'uid' => '1', + 'status' => '1', + 'created' => '1679803825', + 'changed' => '1679803825', + 'comment' => '2', + 'promote' => '0', + 'moderate' => '0', + 'sticky' => '0', + 'tnid' => '0', + 'translate' => '0', +)) ->execute(); $connection->schema()->createTable('node_access', array( 'fields' => array( @@ -15896,6 +16063,13 @@ 'last_comment_uid' => '1', 'comment_count' => '3', )) +->values(array( + 'nid' => '20', + 'last_comment_timestamp' => '1679803825', + 'last_comment_name' => NULL, + 'last_comment_uid' => '1', + 'comment_count' => '0', +)) ->execute(); $connection->schema()->createTable('node_counter', array( 'fields' => array( @@ -16031,6 +16205,17 @@ 'timestamp' => '1501955771', 'format' => '1', )) +->values(array( + 'nid' => '20', + 'vid' => '23', + 'uid' => '1', + 'title' => 'Earth topic 1', + 'body' => 'Foo', + 'teaser' => 'Foo', + 'log' => '', + 'timestamp' => '1679803825', + 'format' => '1', +)) ->execute(); $connection->schema()->createTable('node_type', array( 'fields' => array( @@ -17268,10 +17453,10 @@ 'name' => 'text', 'type' => 'module', 'owner' => '', - 'status' => '0', + 'status' => '1', 'throttle' => '0', 'bootstrap' => '0', - 'schema_version' => '-1', + 'schema_version' => '6003', 'weight' => '0', 'info' => 'a:8:{s:4:"name";s:4:"Text";s:11:"description";s:32:"Defines simple text field types.";s:12:"dependencies";a:1:{i:0;s:7:"content";}s:7:"package";s:3:"CCK";s:4:"core";s:3:"6.x";s:10:"dependents";a:0:{}s:7:"version";N;s:3:"php";s:5:"4.3.5";}', )) @@ -17688,6 +17873,34 @@ 'vid' => '7', 'name' => 'General discussion', 'description' => '', + 'weight' => '2', +)) +->values(array( + 'tid' => '9', + 'vid' => '7', + 'name' => 'Earth', + 'description' => '', + 'weight' => '0', +)) +->values(array( + 'tid' => '10', + 'vid' => '7', + 'name' => 'Birds', + 'description' => '', + 'weight' => '0', +)) +->values(array( + 'tid' => '11', + 'vid' => '8', + 'name' => 'Oak', + 'description' => '', + 'weight' => '0', +)) +->values(array( + 'tid' => '12', + 'vid' => '8', + 'name' => 'Ash', + 'description' => '', 'weight' => '0', )) ->execute(); @@ -17724,6 +17937,22 @@ 'tid' => '8', 'parent' => '0', )) +->values(array( + 'tid' => '9', + 'parent' => '0', +)) +->values(array( + 'tid' => '10', + 'parent' => '9', +)) +->values(array( + 'tid' => '11', + 'parent' => '0', +)) +->values(array( + 'tid' => '12', + 'parent' => '0', +)) ->execute(); $connection->schema()->createTable('term_node', array( 'fields' => array( @@ -17767,6 +17996,16 @@ 'vid' => '22', 'tid' => '8', )) +->values(array( + 'nid' => '20', + 'vid' => '23', + 'tid' => '10', +)) +->values(array( + 'nid' => '20', + 'vid' => '23', + 'tid' => '12', +)) ->execute(); $connection->schema()->createTable('term_relation', array( 'fields' => array( @@ -18128,8 +18367,8 @@ 'signature' => '', 'signature_format' => '0', 'created' => '0', - 'access' => '1679873221', - 'login' => '1679872166', + 'access' => '1687738850', + 'login' => '1687738850', 'status' => '1', 'timezone' => NULL, 'language' => '', @@ -18471,6 +18710,10 @@ 'name' => 'content_extra_weights_employee', 'value' => 'a:11:{s:5:"title";s:2:"-5";s:10:"body_field";s:1:"0";s:20:"revision_information";s:2:"20";s:6:"author";s:2:"20";s:7:"options";s:2:"25";s:16:"comment_settings";s:2:"30";s:8:"language";s:1:"0";s:11:"translation";s:2:"30";s:4:"menu";s:2:"-2";s:4:"book";s:2:"10";s:4:"path";s:2:"30";}', )) +->values(array( + 'name' => 'content_extra_weights_forum', + 'value' => 'a:9:{s:5:"title";s:2:"-5";s:10:"body_field";s:1:"0";s:20:"revision_information";s:2:"20";s:6:"author";s:2:"20";s:7:"options";s:2:"25";s:16:"comment_settings";s:2:"30";s:4:"menu";s:2:"-2";s:8:"taxonomy";s:2:"-3";s:4:"path";s:2:"30";}', +)) ->values(array( 'name' => 'content_extra_weights_story', 'value' => 'a:9:{s:5:"title";s:2:"-5";s:10:"body_field";s:2:"-2";s:20:"revision_information";s:2:"19";s:6:"author";s:2:"18";s:7:"options";s:2:"20";s:16:"comment_settings";s:2:"22";s:4:"menu";s:2:"-3";s:8:"taxonomy";s:2:"-4";s:11:"attachments";s:2:"21";}', @@ -18497,7 +18740,7 @@ )) ->values(array( 'name' => 'css_js_query_string', - 'value' => 's:20:"sEOgby8SAkMTxRZndiw7";', + 'value' => 's:20:"mEOgby8SAkMTxRZndiw7";', )) ->values(array( 'name' => 'date:story:4:field_test_datestamp_fromto', @@ -18887,6 +19130,10 @@ 'name' => 'forum_block_num_1', 'value' => 's:1:"4";', )) +->values(array( + 'name' => 'forum_containers', + 'value' => 'a:1:{i:0;s:1:"9";}', +)) ->values(array( 'name' => 'forum_hot_topic', 'value' => 's:2:"15";', @@ -19387,6 +19634,19 @@ 'description' => '', 'help' => '', 'relations' => '1', + 'hierarchy' => '1', + 'multiple' => '0', + 'required' => '0', + 'tags' => '0', + 'module' => 'taxonomy', + 'weight' => '0', +)) +->values(array( + 'vid' => '8', + 'name' => 'Trees', + 'description' => 'A list of trees.', + 'help' => '', + 'relations' => '1', 'hierarchy' => '0', 'multiple' => '0', 'required' => '0', @@ -19394,6 +19654,19 @@ 'module' => 'taxonomy', 'weight' => '0', )) +->values(array( + 'vid' => '9', + 'name' => 'FreeTags', + 'description' => '', + 'help' => '', + 'relations' => '1', + 'hierarchy' => '0', + 'multiple' => '0', + 'required' => '0', + 'tags' => '1', + 'module' => 'taxonomy', + 'weight' => '0', +)) ->execute(); $connection->schema()->createTable('vocabulary_node_types', array( 'fields' => array( @@ -19427,6 +19700,14 @@ 'vid' => '7', 'type' => 'forum', )) +->values(array( + 'vid' => '8', + 'type' => 'forum', +)) +->values(array( + 'vid' => '9', + 'type' => 'forum', +)) ->execute(); $connection->schema()->createTable('watchdog', array( 'fields' => array( diff --git a/core/modules/forum/tests/fixtures/drupal7.php b/core/modules/forum/tests/fixtures/drupal7.php index 5715b03824bbf9a5b039d50d4cffaa256fcc84c8..95f92005c0b125e6215b8b082dc664511dbd63d8 100644 --- a/core/modules/forum/tests/fixtures/drupal7.php +++ b/core/modules/forum/tests/fixtures/drupal7.php @@ -1353,6 +1353,49 @@ 'mysql_character_set' => 'utf8', )); +$connection->schema()->createTable('cache_variable', array( + 'fields' => array( + 'cid' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + 'default' => '', + ), + 'data' => array( + 'type' => 'blob', + 'not null' => FALSE, + 'size' => 'big', + ), + 'expire' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'created' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'serialized' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'small', + 'default' => '0', + ), + ), + 'primary key' => array( + 'cid', + ), + 'indexes' => array( + 'expire' => array( + 'expire', + ), + ), + 'mysql_character_set' => 'utf8', +)); + $connection->schema()->createTable('comment', array( 'fields' => array( 'cid' => array( @@ -1770,6 +1813,153 @@ 'locked' => '0', )) ->execute(); +$connection->schema()->createTable('entity_translation', array( + 'fields' => array( + 'entity_type' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '128', + 'default' => '', + ), + 'entity_id' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'unsigned' => TRUE, + ), + 'revision_id' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'unsigned' => TRUE, + ), + 'language' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '32', + 'default' => '', + ), + 'source' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '32', + 'default' => '', + ), + 'uid' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'status' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '1', + ), + 'translate' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'created' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'changed' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + ), + 'primary key' => array( + 'entity_type', + 'entity_id', + 'language', + ), + 'mysql_character_set' => 'utf8', +)); + +$connection->schema()->createTable('entity_translation_revision', array( + 'fields' => array( + 'entity_type' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '128', + 'default' => '', + ), + 'entity_id' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'unsigned' => TRUE, + ), + 'revision_id' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'unsigned' => TRUE, + ), + 'language' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '32', + 'default' => '', + ), + 'source' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '32', + 'default' => '', + ), + 'uid' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'status' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '1', + ), + 'translate' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'created' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'changed' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + ), + 'primary key' => array( + 'entity_type', + 'revision_id', + 'language', + ), + 'indexes' => array( + 'revision_id' => array( + 'revision_id', + ), + ), + 'mysql_character_set' => 'utf8', +)); + $connection->schema()->createTable('field_config', array( 'fields' => array( 'id' => array( @@ -1908,7 +2098,7 @@ 'storage_module' => 'field_sql_storage', 'storage_active' => '1', 'locked' => '0', - 'data' => 'a:7:{s:8:"settings";a:3:{s:14:"allowed_values";a:1:{i:0;a:2:{s:10:"vocabulary";s:4:"tags";s:6:"parent";i:0;}}s:21:"options_list_callback";N;s:23:"entity_translation_sync";b:0;}s:12:"entity_types";a:0:{}s:12:"translatable";s:1:"0";s:7:"storage";a:5:{s:4:"type";s:17:"field_sql_storage";s:8:"settings";a:0:{}s:6:"module";s:17:"field_sql_storage";s:6:"active";s:1:"1";s:7:"details";a:1:{s:3:"sql";a:2:{s:18:"FIELD_LOAD_CURRENT";a:1:{s:21:"field_data_field_tags";a:1:{s:3:"tid";s:14:"field_tags_tid";}}s:19:"FIELD_LOAD_REVISION";a:1:{s:25:"field_revision_field_tags";a:1:{s:3:"tid";s:14:"field_tags_tid";}}}}}s:12:"foreign keys";a:1:{s:3:"tid";a:2:{s:5:"table";s:18:"taxonomy_term_data";s:7:"columns";a:1:{s:3:"tid";s:3:"tid";}}}s:7:"indexes";a:1:{s:3:"tid";a:1:{i:0;s:3:"tid";}}s:2:"id";s:1:"3";}', + 'data' => 'a:7:{s:8:"settings";a:3:{s:14:"allowed_values";a:1:{i:0;a:2:{s:10:"vocabulary";s:4:"tags";s:6:"parent";i:0;}}s:21:"options_list_callback";s:28:"i18n_taxonomy_allowed_values";s:23:"entity_translation_sync";b:0;}s:12:"entity_types";a:0:{}s:12:"translatable";s:1:"0";s:7:"storage";a:5:{s:4:"type";s:17:"field_sql_storage";s:8:"settings";a:0:{}s:6:"module";s:17:"field_sql_storage";s:6:"active";s:1:"1";s:7:"details";a:1:{s:3:"sql";a:2:{s:18:"FIELD_LOAD_CURRENT";a:1:{s:21:"field_data_field_tags";a:1:{s:3:"tid";s:14:"field_tags_tid";}}s:19:"FIELD_LOAD_REVISION";a:1:{s:25:"field_revision_field_tags";a:1:{s:3:"tid";s:14:"field_tags_tid";}}}}}s:12:"foreign keys";a:1:{s:3:"tid";a:2:{s:5:"table";s:18:"taxonomy_term_data";s:7:"columns";a:1:{s:3:"tid";s:3:"tid";}}}s:7:"indexes";a:1:{s:3:"tid";a:1:{i:0;s:3:"tid";}}s:2:"id";s:1:"3";}', 'cardinality' => '-1', 'translatable' => '0', 'deleted' => '0', @@ -1938,7 +2128,7 @@ 'storage_module' => 'field_sql_storage', 'storage_active' => '1', 'locked' => '0', - 'data' => 'a:7:{s:8:"settings";a:3:{s:14:"allowed_values";a:1:{i:0;a:2:{s:10:"vocabulary";s:19:"sujet_de_discussion";s:6:"parent";i:0;}}s:21:"options_list_callback";N;s:23:"entity_translation_sync";b:0;}s:12:"entity_types";a:0:{}s:12:"translatable";s:1:"0";s:7:"storage";a:5:{s:4:"type";s:17:"field_sql_storage";s:8:"settings";a:0:{}s:6:"module";s:17:"field_sql_storage";s:6:"active";s:1:"1";s:7:"details";a:1:{s:3:"sql";a:2:{s:18:"FIELD_LOAD_CURRENT";a:1:{s:26:"field_data_taxonomy_forums";a:1:{s:3:"tid";s:19:"taxonomy_forums_tid";}}s:19:"FIELD_LOAD_REVISION";a:1:{s:30:"field_revision_taxonomy_forums";a:1:{s:3:"tid";s:19:"taxonomy_forums_tid";}}}}}s:12:"foreign keys";a:1:{s:3:"tid";a:2:{s:5:"table";s:18:"taxonomy_term_data";s:7:"columns";a:1:{s:3:"tid";s:3:"tid";}}}s:7:"indexes";a:1:{s:3:"tid";a:1:{i:0;s:3:"tid";}}s:2:"id";s:1:"5";}', + 'data' => 'a:7:{s:8:"settings";a:3:{s:14:"allowed_values";a:1:{i:0;a:2:{s:10:"vocabulary";s:19:"sujet_de_discussion";s:6:"parent";i:0;}}s:21:"options_list_callback";s:28:"i18n_taxonomy_allowed_values";s:23:"entity_translation_sync";b:0;}s:12:"entity_types";a:0:{}s:12:"translatable";s:1:"0";s:7:"storage";a:5:{s:4:"type";s:17:"field_sql_storage";s:8:"settings";a:0:{}s:6:"module";s:17:"field_sql_storage";s:6:"active";s:1:"1";s:7:"details";a:1:{s:3:"sql";a:2:{s:18:"FIELD_LOAD_CURRENT";a:1:{s:26:"field_data_taxonomy_forums";a:1:{s:3:"tid";s:19:"taxonomy_forums_tid";}}s:19:"FIELD_LOAD_REVISION";a:1:{s:30:"field_revision_taxonomy_forums";a:1:{s:3:"tid";s:19:"taxonomy_forums_tid";}}}}}s:12:"foreign keys";a:1:{s:3:"tid";a:2:{s:5:"table";s:18:"taxonomy_term_data";s:7:"columns";a:1:{s:3:"tid";s:3:"tid";}}}s:7:"indexes";a:1:{s:3:"tid";a:1:{i:0;s:3:"tid";}}s:2:"id";s:1:"5";}', 'cardinality' => '1', 'translatable' => '0', 'deleted' => '0', @@ -2095,15 +2285,6 @@ 'data' => 'a:6:{s:5:"label";s:7:"Comment";s:8:"settings";a:2:{s:15:"text_processing";i:1;s:18:"user_register_form";b:0;}s:8:"required";b:1;s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:12:"text_default";s:6:"weight";i:0;s:8:"settings";a:0:{}s:6:"module";s:4:"text";}}s:6:"widget";a:4:{s:4:"type";s:13:"text_textarea";s:8:"settings";a:1:{s:4:"rows";i:5;}s:6:"weight";i:0;s:6:"module";s:4:"text";}s:11:"description";s:0:"";}', 'deleted' => '0', )) -->values(array( - 'id' => '9', - 'field_id' => '1', - 'field_name' => 'comment_body', - 'entity_type' => 'comment', - 'bundle' => 'comment_node_book', - 'data' => 'a:6:{s:5:"label";s:7:"Comment";s:8:"settings";a:2:{s:15:"text_processing";i:1;s:18:"user_register_form";b:0;}s:8:"required";b:1;s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:12:"text_default";s:6:"weight";i:0;s:8:"settings";a:0:{}s:6:"module";s:4:"text";}}s:6:"widget";a:4:{s:4:"type";s:13:"text_textarea";s:8:"settings";a:1:{s:4:"rows";i:5;}s:6:"weight";i:0;s:6:"module";s:4:"text";}s:11:"description";s:0:"";}', - 'deleted' => '1', -)) ->values(array( 'id' => '11', 'field_id' => '5', @@ -2149,6 +2330,42 @@ 'data' => 'a:6:{s:5:"label";s:5:"event";s:6:"widget";a:5:{s:6:"weight";s:1:"2";s:4:"type";s:9:"date_text";s:6:"module";s:4:"date";s:6:"active";i:1;s:8:"settings";a:7:{s:12:"input_format";s:13:"m/d/Y - H:i:s";s:19:"input_format_custom";s:0:"";s:10:"year_range";s:5:"-3:+3";s:9:"increment";i:1;s:14:"label_position";s:5:"above";s:10:"text_parts";a:0:{}s:11:"no_fieldset";i:0;}}s:8:"settings";a:6:{s:13:"default_value";s:3:"now";s:18:"default_value_code";s:0:"";s:14:"default_value2";s:4:"same";s:19:"default_value_code2";s:0:"";s:18:"user_register_form";b:0;s:23:"entity_translation_sync";b:0;}s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:5:"above";s:4:"type";s:12:"date_default";s:8:"settings";a:6:{s:11:"format_type";s:4:"long";s:15:"multiple_number";s:0:"";s:13:"multiple_from";s:0:"";s:11:"multiple_to";s:0:"";s:6:"fromto";s:4:"both";s:19:"show_remaining_days";b:0;}s:6:"module";s:4:"date";s:6:"weight";i:12;}}s:8:"required";i:0;s:11:"description";s:0:"";}', 'deleted' => '0', )) +->values(array( + 'id' => '95', + 'field_id' => '1', + 'field_name' => 'comment_body', + 'entity_type' => 'comment', + 'bundle' => 'comment_node_et', + 'data' => 'a:6:{s:5:"label";s:7:"Comment";s:8:"settings";a:2:{s:15:"text_processing";i:1;s:18:"user_register_form";b:0;}s:8:"required";b:1;s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:12:"text_default";s:6:"weight";i:0;s:8:"settings";a:0:{}s:6:"module";s:4:"text";}}s:6:"widget";a:4:{s:4:"type";s:13:"text_textarea";s:8:"settings";a:1:{s:4:"rows";i:5;}s:6:"weight";i:0;s:6:"module";s:4:"text";}s:11:"description";s:0:"";}', + 'deleted' => '0', +)) +->values(array( + 'id' => '96', + 'field_id' => '2', + 'field_name' => 'body', + 'entity_type' => 'node', + 'bundle' => 'et', + 'data' => 'a:6:{s:5:"label";s:4:"Body";s:6:"widget";a:4:{s:4:"type";s:26:"text_textarea_with_summary";s:8:"settings";a:2:{s:4:"rows";i:20;s:12:"summary_rows";i:5;}s:6:"weight";i:-4;s:6:"module";s:4:"text";}s:8:"settings";a:3:{s:15:"display_summary";b:1;s:15:"text_processing";i:1;s:18:"user_register_form";b:0;}s:7:"display";a:2:{s:7:"default";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:12:"text_default";s:8:"settings";a:0:{}s:6:"module";s:4:"text";s:6:"weight";i:0;}s:6:"teaser";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:23:"text_summary_or_trimmed";s:8:"settings";a:1:{s:11:"trim_length";i:600;}s:6:"module";s:4:"text";s:6:"weight";i:0;}}s:8:"required";b:0;s:11:"description";s:0:"";}', + 'deleted' => '0', +)) +->values(array( + 'id' => '97', + 'field_id' => '1', + 'field_name' => 'comment_body', + 'entity_type' => 'comment', + 'bundle' => 'comment_node_test_content_type', + 'data' => 'a:6:{s:5:"label";s:7:"Comment";s:8:"settings";a:2:{s:15:"text_processing";i:1;s:18:"user_register_form";b:0;}s:8:"required";b:1;s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:12:"text_default";s:6:"weight";i:0;s:8:"settings";a:0:{}s:6:"module";s:4:"text";}}s:6:"widget";a:4:{s:4:"type";s:13:"text_textarea";s:8:"settings";a:1:{s:4:"rows";i:5;}s:6:"weight";i:0;s:6:"module";s:4:"text";}s:11:"description";s:0:"";}', + 'deleted' => '0', +)) +->values(array( + 'id' => '98', + 'field_id' => '2', + 'field_name' => 'body', + 'entity_type' => 'node', + 'bundle' => 'test_content_type', + 'data' => 'a:6:{s:5:"label";s:4:"Body";s:6:"widget";a:4:{s:4:"type";s:26:"text_textarea_with_summary";s:8:"settings";a:2:{s:4:"rows";i:20;s:12:"summary_rows";i:5;}s:6:"weight";i:-4;s:6:"module";s:4:"text";}s:8:"settings";a:3:{s:15:"display_summary";b:1;s:15:"text_processing";i:1;s:18:"user_register_form";b:0;}s:7:"display";a:2:{s:7:"default";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:12:"text_default";s:8:"settings";a:0:{}s:6:"module";s:4:"text";s:6:"weight";i:0;}s:6:"teaser";a:5:{s:5:"label";s:6:"hidden";s:4:"type";s:23:"text_summary_or_trimmed";s:8:"settings";a:1:{s:11:"trim_length";i:600;}s:6:"module";s:4:"text";s:6:"weight";i:0;}}s:8:"required";b:0;s:11:"description";s:0:"";}', + 'deleted' => '0', +)) ->execute(); $connection->schema()->createTable('field_data_body', array( 'fields' => array( @@ -4158,47 +4375,228 @@ 'mysql_character_set' => 'utf8', )); -$connection->schema()->createTable('image_effects', array( +$connection->schema()->createTable('i18n_string', array( 'fields' => array( - 'ieid' => array( - 'type' => 'serial', - 'not null' => TRUE, - 'size' => 'normal', - 'unsigned' => TRUE, - ), - 'isid' => array( + 'lid' => array( 'type' => 'int', 'not null' => TRUE, 'size' => 'normal', 'default' => '0', - 'unsigned' => TRUE, ), - 'weight' => array( - 'type' => 'int', + 'textgroup' => array( + 'type' => 'varchar', 'not null' => TRUE, - 'size' => 'normal', - 'default' => '0', + 'length' => '50', + 'default' => 'default', ), - 'name' => array( + 'context' => array( 'type' => 'varchar', 'not null' => TRUE, 'length' => '255', + 'default' => '', ), - 'data' => array( - 'type' => 'blob', + 'objectid' => array( + 'type' => 'varchar', 'not null' => TRUE, - 'size' => 'normal', + 'length' => '255', + 'default' => '', ), - ), - 'primary key' => array( - 'ieid', - ), - 'mysql_character_set' => 'utf8', -)); - -$connection->insert('image_effects') -->fields(array( - 'ieid', + 'type' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + 'default' => '', + ), + 'property' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + 'default' => '', + ), + 'objectindex' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'big', + 'default' => '0', + ), + 'format' => array( + 'type' => 'varchar', + 'not null' => FALSE, + 'length' => '255', + ), + ), + 'primary key' => array( + 'lid', + ), + 'indexes' => array( + 'group_context' => array( + 'textgroup', + array( + 'context', + '50', + ), + ), + ), + 'mysql_character_set' => 'utf8', +)); + +$connection->insert('i18n_string') +->fields(array( + 'lid', + 'textgroup', + 'context', + 'objectid', + 'type', + 'property', + 'objectindex', + 'format', +)) +->values(array( + 'lid' => '272', + 'textgroup' => 'taxonomy', + 'context' => 'vocabulary:2:name', + 'objectid' => '2', + 'type' => 'vocabulary', + 'property' => 'name', + 'objectindex' => '2', + 'format' => '', +)) +->values(array( + 'lid' => '273', + 'textgroup' => 'taxonomy', + 'context' => 'vocabulary:2:description', + 'objectid' => '2', + 'type' => 'vocabulary', + 'property' => 'description', + 'objectindex' => '2', + 'format' => '', +)) +->values(array( + 'lid' => '274', + 'textgroup' => 'taxonomy', + 'context' => 'vocabulary:1:name', + 'objectid' => '1', + 'type' => 'vocabulary', + 'property' => 'name', + 'objectindex' => '1', + 'format' => '', +)) +->values(array( + 'lid' => '275', + 'textgroup' => 'taxonomy', + 'context' => 'vocabulary:1:description', + 'objectid' => '1', + 'type' => 'vocabulary', + 'property' => 'description', + 'objectindex' => '1', + 'format' => '', +)) +->execute(); +$connection->schema()->createTable('i18n_translation_set', array( + 'fields' => array( + 'tsid' => array( + 'type' => 'serial', + 'not null' => TRUE, + 'size' => 'normal', + 'unsigned' => TRUE, + ), + 'title' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + 'default' => '', + ), + 'type' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '32', + 'default' => '', + ), + 'bundle' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '128', + 'default' => '', + ), + 'master_id' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + 'unsigned' => TRUE, + ), + 'status' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '1', + ), + 'created' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'changed' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + ), + 'primary key' => array( + 'tsid', + ), + 'indexes' => array( + 'entity_bundle' => array( + 'type', + 'bundle', + ), + ), + 'mysql_character_set' => 'utf8', +)); + +$connection->schema()->createTable('image_effects', array( + 'fields' => array( + 'ieid' => array( + 'type' => 'serial', + 'not null' => TRUE, + 'size' => 'normal', + 'unsigned' => TRUE, + ), + 'isid' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + 'unsigned' => TRUE, + ), + 'weight' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'name' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + ), + 'data' => array( + 'type' => 'blob', + 'not null' => TRUE, + 'size' => 'normal', + ), + ), + 'primary key' => array( + 'ieid', + ), + 'mysql_character_set' => 'utf8', +)); + +$connection->insert('image_effects') +->fields(array( + 'ieid', 'isid', 'weight', 'name', @@ -4463,6 +4861,15 @@ 'primary key' => array( 'lid', ), + 'indexes' => array( + 'textgroup_context' => array( + 'textgroup', + array( + 'context', + '50', + ), + ), + ), 'mysql_character_set' => 'utf8', )); @@ -5995,6 +6402,38 @@ 'context' => '', 'version' => '7.92', )) +->values(array( + 'lid' => '272', + 'location' => 'taxonomy:vocabulary:2:name', + 'textgroup' => 'taxonomy', + 'source' => 'Subject of discussion', + 'context' => 'vocabulary:2:name', + 'version' => '1', +)) +->values(array( + 'lid' => '273', + 'location' => 'taxonomy:vocabulary:2:description', + 'textgroup' => 'taxonomy', + 'source' => 'Forum navigation vocabulary', + 'context' => 'vocabulary:2:description', + 'version' => '1', +)) +->values(array( + 'lid' => '274', + 'location' => 'taxonomy:vocabulary:1:name', + 'textgroup' => 'taxonomy', + 'source' => 'Tags', + 'context' => 'vocabulary:1:name', + 'version' => '1', +)) +->values(array( + 'lid' => '275', + 'location' => 'taxonomy:vocabulary:1:description', + 'textgroup' => 'taxonomy', + 'source' => 'Use tags to group articles on similar topics into categories.', + 'context' => 'vocabulary:1:description', + 'version' => '1', +)) ->execute(); $connection->schema()->createTable('locales_target', array( 'fields' => array( @@ -6027,6 +6466,12 @@ 'size' => 'normal', 'default' => '0', ), + 'i18n_status' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), ), 'primary key' => array( 'lid', @@ -6043,6 +6488,7 @@ 'language', 'plid', 'plural', + 'i18n_status', )) ->values(array( 'lid' => '163', @@ -6050,6 +6496,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '678', @@ -6057,6 +6504,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '684', @@ -6064,6 +6512,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '687', @@ -6071,6 +6520,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '688', @@ -6078,6 +6528,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '758', @@ -6085,6 +6536,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '761', @@ -6092,6 +6544,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '761', @@ -6099,6 +6552,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '762', @@ -6106,6 +6560,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '762', @@ -6113,6 +6568,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '763', @@ -6120,6 +6576,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '763', @@ -6127,6 +6584,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '764', @@ -6134,6 +6592,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '764', @@ -6141,6 +6600,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '765', @@ -6148,6 +6608,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '765', @@ -6155,6 +6616,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '766', @@ -6162,6 +6624,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '766', @@ -6169,6 +6632,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '767', @@ -6176,6 +6640,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '767', @@ -6183,6 +6648,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '768', @@ -6190,6 +6656,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '768', @@ -6197,6 +6664,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '797', @@ -6204,6 +6672,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '798', @@ -6211,6 +6680,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '800', @@ -6218,6 +6688,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '800', @@ -6225,6 +6696,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '801', @@ -6232,6 +6704,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '801', @@ -6239,6 +6712,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '802', @@ -6246,6 +6720,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '803', @@ -6253,6 +6728,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '804', @@ -6260,6 +6736,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '805', @@ -6267,6 +6744,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '805', @@ -6274,6 +6752,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '806', @@ -6281,6 +6760,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->values(array( 'lid' => '806', @@ -6288,6 +6768,7 @@ 'language' => 'is', 'plid' => '0', 'plural' => '0', + 'i18n_status' => '0', )) ->execute(); $connection->schema()->createTable('menu_custom', array( @@ -11275,9 +11756,9 @@ 'module' => 'system', 'hidden' => '-1', 'external' => '0', - 'has_children' => '0', + 'has_children' => '1', 'expanded' => '0', - 'weight' => '2', + 'weight' => '1', 'depth' => '2', 'customized' => '0', 'p1' => '5', @@ -13019,95 +13500,581 @@ 'p9' => '0', 'updated' => '0', )) -->execute(); -$connection->schema()->createTable('menu_router', array( - 'fields' => array( - 'path' => array( - 'type' => 'varchar', - 'not null' => TRUE, - 'length' => '255', - 'default' => '', - ), - 'load_functions' => array( - 'type' => 'blob', - 'not null' => TRUE, - 'size' => 'normal', - ), - 'to_arg_functions' => array( - 'type' => 'blob', - 'not null' => TRUE, - 'size' => 'normal', - ), - 'access_callback' => array( - 'type' => 'varchar', - 'not null' => TRUE, - 'length' => '255', - 'default' => '', - ), - 'access_arguments' => array( - 'type' => 'blob', - 'not null' => FALSE, - 'size' => 'normal', - ), - 'page_callback' => array( - 'type' => 'varchar', - 'not null' => TRUE, - 'length' => '255', - 'default' => '', - ), - 'page_arguments' => array( - 'type' => 'blob', - 'not null' => FALSE, - 'size' => 'normal', - ), - 'delivery_callback' => array( - 'type' => 'varchar', - 'not null' => TRUE, - 'length' => '255', - 'default' => '', - ), - 'fit' => array( - 'type' => 'int', - 'not null' => TRUE, - 'size' => 'normal', - 'default' => '0', - ), - 'number_parts' => array( - 'type' => 'int', - 'not null' => TRUE, - 'size' => 'normal', - 'default' => '0', - ), - 'context' => array( - 'type' => 'int', - 'not null' => TRUE, - 'size' => 'normal', - 'default' => '0', - ), - 'tab_parent' => array( - 'type' => 'varchar', - 'not null' => TRUE, - 'length' => '255', - 'default' => '', - ), - 'tab_root' => array( - 'type' => 'varchar', - 'not null' => TRUE, - 'length' => '255', - 'default' => '', - ), - 'title' => array( - 'type' => 'varchar', - 'not null' => TRUE, - 'length' => '255', - 'default' => '', - ), - 'title_callback' => array( - 'type' => 'varchar', - 'not null' => TRUE, - 'length' => '255', - 'default' => '', - ), +->values(array( + 'menu_name' => 'navigation', + 'mlid' => '966', + 'plid' => '6', + 'link_path' => 'node/add/et', + 'router_path' => 'node/add/et', + 'link_title' => 'et', + 'options' => 'a:0:{}', + 'module' => 'system', + 'hidden' => '0', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '0', + 'depth' => '2', + 'customized' => '0', + 'p1' => '6', + 'p2' => '966', + 'p3' => '0', + 'p4' => '0', + 'p5' => '0', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'navigation', + 'mlid' => '967', + 'plid' => '6', + 'link_path' => 'node/add/test-content-type', + 'router_path' => 'node/add/test-content-type', + 'link_title' => 'test_content_type', + 'options' => 'a:0:{}', + 'module' => 'system', + 'hidden' => '0', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '0', + 'depth' => '2', + 'customized' => '0', + 'p1' => '6', + 'p2' => '967', + 'p3' => '0', + 'p4' => '0', + 'p5' => '0', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'management', + 'mlid' => '968', + 'plid' => '48', + 'link_path' => 'admin/config/regional/i18n', + 'router_path' => 'admin/config/regional/i18n', + 'link_title' => 'Multilingual settings', + 'options' => 'a:1:{s:10:"attributes";a:1:{s:5:"title";s:69:"Configure extended options for multilingual content and translations.";}}', + 'module' => 'system', + 'hidden' => '0', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '10', + 'depth' => '4', + 'customized' => '0', + 'p1' => '1', + 'p2' => '8', + 'p3' => '48', + 'p4' => '968', + 'p5' => '0', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'management', + 'mlid' => '969', + 'plid' => '968', + 'link_path' => 'admin/config/regional/i18n/configure', + 'router_path' => 'admin/config/regional/i18n/configure', + 'link_title' => 'Multilingual system', + 'options' => 'a:1:{s:10:"attributes";a:1:{s:5:"title";s:69:"Configure extended options for multilingual content and translations.";}}', + 'module' => 'system', + 'hidden' => '-1', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '0', + 'depth' => '5', + 'customized' => '0', + 'p1' => '1', + 'p2' => '8', + 'p3' => '48', + 'p4' => '968', + 'p5' => '969', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'management', + 'mlid' => '970', + 'plid' => '48', + 'link_path' => 'admin/config/regional/entity_translation', + 'router_path' => 'admin/config/regional/entity_translation', + 'link_title' => 'Entity translation', + 'options' => 'a:1:{s:10:"attributes";a:1:{s:5:"title";s:83:"Configure which entities can be translated and enable or disable language fallback.";}}', + 'module' => 'system', + 'hidden' => '0', + 'external' => '0', + 'has_children' => '1', + 'expanded' => '0', + 'weight' => '0', + 'depth' => '4', + 'customized' => '0', + 'p1' => '1', + 'p2' => '8', + 'p3' => '48', + 'p4' => '970', + 'p5' => '0', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'navigation', + 'mlid' => '971', + 'plid' => '39', + 'link_path' => 'node/%/edit/%', + 'router_path' => 'node/%/edit/%', + 'link_title' => 'Edit', + 'options' => 'a:0:{}', + 'module' => 'system', + 'hidden' => '-1', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '0', + 'depth' => '3', + 'customized' => '0', + 'p1' => '5', + 'p2' => '39', + 'p3' => '971', + 'p4' => '0', + 'p5' => '0', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'navigation', + 'mlid' => '972', + 'plid' => '365', + 'link_path' => 'node/%/translate/delete/%', + 'router_path' => 'node/%/translate/delete/%', + 'link_title' => 'Delete', + 'options' => 'a:0:{}', + 'module' => 'system', + 'hidden' => '0', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '0', + 'depth' => '3', + 'customized' => '0', + 'p1' => '5', + 'p2' => '365', + 'p3' => '972', + 'p4' => '0', + 'p5' => '0', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'navigation', + 'mlid' => '973', + 'plid' => '39', + 'link_path' => 'node/%/edit/add/%/%', + 'router_path' => 'node/%/edit/add/%/%', + 'link_title' => 'Edit', + 'options' => 'a:0:{}', + 'module' => 'system', + 'hidden' => '-1', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '0', + 'depth' => '3', + 'customized' => '0', + 'p1' => '5', + 'p2' => '39', + 'p3' => '973', + 'p4' => '0', + 'p5' => '0', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'management', + 'mlid' => '974', + 'plid' => '970', + 'link_path' => 'admin/config/regional/entity_translation/translatable/%', + 'router_path' => 'admin/config/regional/entity_translation/translatable/%', + 'link_title' => 'Confirm change in translatability.', + 'options' => 'a:1:{s:10:"attributes";a:1:{s:5:"title";s:53:"Confirmation page for changing field translatability.";}}', + 'module' => 'system', + 'hidden' => '0', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '0', + 'depth' => '5', + 'customized' => '0', + 'p1' => '1', + 'p2' => '8', + 'p3' => '48', + 'p4' => '970', + 'p5' => '974', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'management', + 'mlid' => '975', + 'plid' => '968', + 'link_path' => 'admin/config/regional/i18n/strings', + 'router_path' => 'admin/config/regional/i18n/strings', + 'link_title' => 'Strings', + 'options' => 'a:1:{s:10:"attributes";a:1:{s:5:"title";s:33:"Options for user defined strings.";}}', + 'module' => 'system', + 'hidden' => '-1', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '20', + 'depth' => '5', + 'customized' => '0', + 'p1' => '1', + 'p2' => '8', + 'p3' => '48', + 'p4' => '968', + 'p5' => '975', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'management', + 'mlid' => '976', + 'plid' => '413', + 'link_path' => 'admin/config/regional/translate/i18n_string', + 'router_path' => 'admin/config/regional/translate/i18n_string', + 'link_title' => 'Strings', + 'options' => 'a:1:{s:10:"attributes";a:1:{s:5:"title";s:29:"Refresh user defined strings.";}}', + 'module' => 'system', + 'hidden' => '-1', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '20', + 'depth' => '5', + 'customized' => '0', + 'p1' => '1', + 'p2' => '8', + 'p3' => '48', + 'p4' => '413', + 'p5' => '976', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'navigation', + 'mlid' => '977', + 'plid' => '176', + 'link_path' => 'taxonomy/term/%/translate', + 'router_path' => 'taxonomy/term/%/translate', + 'link_title' => 'Translate', + 'options' => 'a:0:{}', + 'module' => 'system', + 'hidden' => '-1', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '10', + 'depth' => '2', + 'customized' => '0', + 'p1' => '176', + 'p2' => '977', + 'p3' => '0', + 'p4' => '0', + 'p5' => '0', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'management', + 'mlid' => '978', + 'plid' => '48', + 'link_path' => 'admin/config/regional/i18n_translation', + 'router_path' => 'admin/config/regional/i18n_translation', + 'link_title' => 'Translation sets', + 'options' => 'a:1:{s:10:"attributes";a:1:{s:5:"title";s:26:"Translation sets overview.";}}', + 'module' => 'system', + 'hidden' => '0', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '10', + 'depth' => '4', + 'customized' => '0', + 'p1' => '1', + 'p2' => '8', + 'p3' => '48', + 'p4' => '978', + 'p5' => '0', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'management', + 'mlid' => '979', + 'plid' => '212', + 'link_path' => 'admin/structure/taxonomy/%/translate', + 'router_path' => 'admin/structure/taxonomy/%/translate', + 'link_title' => 'Translate', + 'options' => 'a:0:{}', + 'module' => 'system', + 'hidden' => '-1', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '10', + 'depth' => '5', + 'customized' => '0', + 'p1' => '1', + 'p2' => '20', + 'p3' => '180', + 'p4' => '212', + 'p5' => '979', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'management', + 'mlid' => '980', + 'plid' => '978', + 'link_path' => 'admin/config/regional/i18n_translation/configure', + 'router_path' => 'admin/config/regional/i18n_translation/configure', + 'link_title' => 'Translation sets', + 'options' => 'a:1:{s:10:"attributes";a:1:{s:5:"title";s:38:"Overview of existing translation sets.";}}', + 'module' => 'system', + 'hidden' => '-1', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '0', + 'depth' => '5', + 'customized' => '0', + 'p1' => '1', + 'p2' => '8', + 'p3' => '48', + 'p4' => '978', + 'p5' => '980', + 'p6' => '0', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'management', + 'mlid' => '981', + 'plid' => '226', + 'link_path' => 'admin/structure/taxonomy/%/list/list', + 'router_path' => 'admin/structure/taxonomy/%/list/list', + 'link_title' => 'Terms', + 'options' => 'a:0:{}', + 'module' => 'system', + 'hidden' => '-1', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '-20', + 'depth' => '6', + 'customized' => '0', + 'p1' => '1', + 'p2' => '20', + 'p3' => '180', + 'p4' => '212', + 'p5' => '226', + 'p6' => '981', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'management', + 'mlid' => '982', + 'plid' => '226', + 'link_path' => 'admin/structure/taxonomy/%/list/sets', + 'router_path' => 'admin/structure/taxonomy/%/list/sets', + 'link_title' => 'Translation sets', + 'options' => 'a:0:{}', + 'module' => 'system', + 'hidden' => '-1', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '0', + 'depth' => '6', + 'customized' => '0', + 'p1' => '1', + 'p2' => '20', + 'p3' => '180', + 'p4' => '212', + 'p5' => '226', + 'p6' => '982', + 'p7' => '0', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->values(array( + 'menu_name' => 'management', + 'mlid' => '983', + 'plid' => '982', + 'link_path' => 'admin/structure/taxonomy/%/list/sets/add', + 'router_path' => 'admin/structure/taxonomy/%/list/sets/add', + 'link_title' => 'Create new translation', + 'options' => 'a:0:{}', + 'module' => 'system', + 'hidden' => '-1', + 'external' => '0', + 'has_children' => '0', + 'expanded' => '0', + 'weight' => '0', + 'depth' => '7', + 'customized' => '0', + 'p1' => '1', + 'p2' => '20', + 'p3' => '180', + 'p4' => '212', + 'p5' => '226', + 'p6' => '982', + 'p7' => '983', + 'p8' => '0', + 'p9' => '0', + 'updated' => '0', +)) +->execute(); +$connection->schema()->createTable('menu_router', array( + 'fields' => array( + 'path' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + 'default' => '', + ), + 'load_functions' => array( + 'type' => 'blob', + 'not null' => TRUE, + 'size' => 'normal', + ), + 'to_arg_functions' => array( + 'type' => 'blob', + 'not null' => TRUE, + 'size' => 'normal', + ), + 'access_callback' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + 'default' => '', + ), + 'access_arguments' => array( + 'type' => 'blob', + 'not null' => FALSE, + 'size' => 'normal', + ), + 'page_callback' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + 'default' => '', + ), + 'page_arguments' => array( + 'type' => 'blob', + 'not null' => FALSE, + 'size' => 'normal', + ), + 'delivery_callback' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + 'default' => '', + ), + 'fit' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'number_parts' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'context' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + ), + 'tab_parent' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + 'default' => '', + ), + 'tab_root' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + 'default' => '', + ), + 'title' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + 'default' => '', + ), + 'title_callback' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '255', + 'default' => '', + ), 'title_arguments' => array( 'type' => 'varchar', 'not null' => TRUE, @@ -14787,6 +15754,181 @@ 'weight' => '-10', 'include_file' => 'modules/system/system.admin.inc', )) +->values(array( + 'path' => 'admin/config/regional/entity_translation', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:29:"administer entity translation";}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:1:{i:0;s:29:"entity_translation_admin_form";}', + 'delivery_callback' => '', + 'fit' => '15', + 'number_parts' => '4', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'admin/config/regional/entity_translation', + 'title' => 'Entity translation', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '6', + 'description' => 'Configure which entities can be translated and enable or disable language fallback.', + 'position' => '', + 'weight' => '0', + 'include_file' => 'sites/all/modules/entity_translation/entity_translation.admin.inc', +)) +->values(array( + 'path' => 'admin/config/regional/entity_translation/translatable/%', + 'load_functions' => 'a:1:{i:5;N;}', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:28:"toggle field translatability";}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:2:{i:0;s:36:"entity_translation_translatable_form";i:1;i:5;}', + 'delivery_callback' => '', + 'fit' => '62', + 'number_parts' => '6', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'admin/config/regional/entity_translation/translatable/%', + 'title' => 'Confirm change in translatability.', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '6', + 'description' => 'Confirmation page for changing field translatability.', + 'position' => '', + 'weight' => '0', + 'include_file' => 'sites/all/modules/entity_translation/entity_translation.admin.inc', +)) +->values(array( + 'path' => 'admin/config/regional/i18n', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:29:"administer site configuration";}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:2:{i:0;s:20:"variable_module_form";i:1;s:4:"i18n";}', + 'delivery_callback' => '', + 'fit' => '15', + 'number_parts' => '4', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'admin/config/regional/i18n', + 'title' => 'Multilingual settings', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '6', + 'description' => 'Configure extended options for multilingual content and translations.', + 'position' => '', + 'weight' => '10', + 'include_file' => '', +)) +->values(array( + 'path' => 'admin/config/regional/i18n/configure', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:29:"administer site configuration";}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:2:{i:0;s:20:"variable_module_form";i:1;s:4:"i18n";}', + 'delivery_callback' => '', + 'fit' => '31', + 'number_parts' => '5', + 'context' => '1', + 'tab_parent' => 'admin/config/regional/i18n', + 'tab_root' => 'admin/config/regional/i18n', + 'title' => 'Multilingual system', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '140', + 'description' => 'Configure extended options for multilingual content and translations.', + 'position' => '', + 'weight' => '0', + 'include_file' => '', +)) +->values(array( + 'path' => 'admin/config/regional/i18n/strings', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:29:"administer site configuration";}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:2:{i:0;s:18:"variable_edit_form";i:1;a:3:{i:0;s:27:"i18n_string_allowed_formats";i:1;s:27:"i18n_string_source_language";i:2;s:39:"i18n_string_textgroup_class_[textgroup]";}}', + 'delivery_callback' => '', + 'fit' => '31', + 'number_parts' => '5', + 'context' => '1', + 'tab_parent' => 'admin/config/regional/i18n', + 'tab_root' => 'admin/config/regional/i18n', + 'title' => 'Strings', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '132', + 'description' => 'Options for user defined strings.', + 'position' => '', + 'weight' => '20', + 'include_file' => '', +)) +->values(array( + 'path' => 'admin/config/regional/i18n_translation', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:29:"administer site configuration";}', + 'page_callback' => 'i18n_translation_admin_overview', + 'page_arguments' => 'a:0:{}', + 'delivery_callback' => '', + 'fit' => '15', + 'number_parts' => '4', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'admin/config/regional/i18n_translation', + 'title' => 'Translation sets', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '6', + 'description' => 'Translation sets overview.', + 'position' => '', + 'weight' => '10', + 'include_file' => 'sites/all/modules/i18n/i18n_translation/i18n_translation.admin.inc', +)) +->values(array( + 'path' => 'admin/config/regional/i18n_translation/configure', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:29:"administer site configuration";}', + 'page_callback' => 'i18n_translation_admin_overview', + 'page_arguments' => 'a:0:{}', + 'delivery_callback' => '', + 'fit' => '31', + 'number_parts' => '5', + 'context' => '1', + 'tab_parent' => 'admin/config/regional/i18n_translation', + 'tab_root' => 'admin/config/regional/i18n_translation', + 'title' => 'Translation sets', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '140', + 'description' => 'Overview of existing translation sets.', + 'position' => '', + 'weight' => '0', + 'include_file' => 'sites/all/modules/i18n/i18n_translation/i18n_translation.admin.inc', +)) ->values(array( 'path' => 'admin/config/regional/language', 'load_functions' => '', @@ -15069,7 +16211,7 @@ 'access_callback' => 'user_access', 'access_arguments' => 'a:1:{i:0;s:19:"translate interface";}', 'page_callback' => 'drupal_get_form', - 'page_arguments' => 'a:2:{i:0;s:26:"locale_translate_edit_form";i:1;i:5;}', + 'page_arguments' => 'a:2:{i:0;s:38:"i18n_string_locale_translate_edit_form";i:1;i:5;}', 'delivery_callback' => '', 'fit' => '62', 'number_parts' => '6', @@ -15085,7 +16227,7 @@ 'description' => '', 'position' => '', 'weight' => '0', - 'include_file' => 'modules/locale/locale.admin.inc', + 'include_file' => 'sites/all/modules/i18n/i18n_string/i18n_string.pages.inc', )) ->values(array( 'path' => 'admin/config/regional/translate/export', @@ -15107,10 +16249,35 @@ 'theme_callback' => '', 'theme_arguments' => 'a:0:{}', 'type' => '132', - 'description' => '', + 'description' => '', + 'position' => '', + 'weight' => '30', + 'include_file' => 'modules/locale/locale.admin.inc', +)) +->values(array( + 'path' => 'admin/config/regional/translate/i18n_string', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:19:"translate interface";}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:1:{i:0;s:30:"i18n_string_admin_refresh_form";}', + 'delivery_callback' => '', + 'fit' => '31', + 'number_parts' => '5', + 'context' => '1', + 'tab_parent' => 'admin/config/regional/translate', + 'tab_root' => 'admin/config/regional/translate', + 'title' => 'Strings', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '132', + 'description' => 'Refresh user defined strings.', 'position' => '', - 'weight' => '30', - 'include_file' => 'modules/locale/locale.admin.inc', + 'weight' => '20', + 'include_file' => 'sites/all/modules/i18n/i18n_string/i18n_string.admin.inc', )) ->values(array( 'path' => 'admin/config/regional/translate/import', @@ -15168,7 +16335,7 @@ 'to_arg_functions' => '', 'access_callback' => 'user_access', 'access_arguments' => 'a:1:{i:0;s:19:"translate interface";}', - 'page_callback' => 'locale_translate_seek_screen', + 'page_callback' => 'i18n_string_locale_translate_seek_screen', 'page_arguments' => 'a:0:{}', 'delivery_callback' => '', 'fit' => '31', @@ -15185,7 +16352,7 @@ 'description' => '', 'position' => '', 'weight' => '10', - 'include_file' => 'modules/locale/locale.admin.inc', + 'include_file' => 'sites/all/modules/i18n/i18n_string/i18n_string.pages.inc', )) ->values(array( 'path' => 'admin/config/search', @@ -17637,6 +18804,181 @@ 'weight' => '-20', 'include_file' => 'modules/taxonomy/taxonomy.admin.inc', )) +->values(array( + 'path' => 'admin/structure/taxonomy/%/list/list', + 'load_functions' => 'a:1:{i:3;s:37:"taxonomy_vocabulary_machine_name_load";}', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:19:"administer taxonomy";}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:2:{i:0;s:23:"taxonomy_overview_terms";i:1;i:3;}', + 'delivery_callback' => '', + 'fit' => '59', + 'number_parts' => '6', + 'context' => '1', + 'tab_parent' => 'admin/structure/taxonomy/%/list', + 'tab_root' => 'admin/structure/taxonomy/%', + 'title' => 'Terms', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '140', + 'description' => '', + 'position' => '', + 'weight' => '-20', + 'include_file' => 'modules/taxonomy/taxonomy.admin.inc', +)) +->values(array( + 'path' => 'admin/structure/taxonomy/%/list/sets', + 'load_functions' => 'a:1:{i:3;s:37:"taxonomy_vocabulary_machine_name_load";}', + 'to_arg_functions' => '', + 'access_callback' => 'i18n_taxonomy_vocabulary_translation_tab_sets_access', + 'access_arguments' => 'a:1:{i:0;i:3;}', + 'page_callback' => 'i18n_taxonomy_translation_sets_overview', + 'page_arguments' => 'a:1:{i:0;i:3;}', + 'delivery_callback' => '', + 'fit' => '59', + 'number_parts' => '6', + 'context' => '1', + 'tab_parent' => 'admin/structure/taxonomy/%/list', + 'tab_root' => 'admin/structure/taxonomy/%', + 'title' => 'Translation sets', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '132', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.admin.inc', +)) +->values(array( + 'path' => 'admin/structure/taxonomy/%/list/sets/add', + 'load_functions' => 'a:1:{i:3;s:37:"taxonomy_vocabulary_machine_name_load";}', + 'to_arg_functions' => '', + 'access_callback' => 'i18n_taxonomy_vocabulary_translation_tab_sets_access', + 'access_arguments' => 'a:1:{i:0;i:3;}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:2:{i:0;s:35:"i18n_taxonomy_translation_term_form";i:1;i:3;}', + 'delivery_callback' => '', + 'fit' => '119', + 'number_parts' => '7', + 'context' => '1', + 'tab_parent' => 'admin/structure/taxonomy/%/list/sets', + 'tab_root' => 'admin/structure/taxonomy/%', + 'title' => 'Create new translation', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '388', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.admin.inc', +)) +->values(array( + 'path' => 'admin/structure/taxonomy/%/list/sets/delete/%', + 'load_functions' => 'a:2:{i:3;s:37:"taxonomy_vocabulary_machine_name_load";i:7;s:34:"i18n_taxonomy_translation_set_load";}', + 'to_arg_functions' => '', + 'access_callback' => 'i18n_taxonomy_vocabulary_translation_tab_sets_access', + 'access_arguments' => 'a:1:{i:0;i:3;}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:2:{i:0;s:35:"i18n_translation_set_delete_confirm";i:1;i:7;}', + 'delivery_callback' => '', + 'fit' => '238', + 'number_parts' => '8', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'admin/structure/taxonomy/%/list/sets/delete/%', + 'title' => 'Delete translation', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '0', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => '', +)) +->values(array( + 'path' => 'admin/structure/taxonomy/%/list/sets/edit/%', + 'load_functions' => 'a:2:{i:3;s:37:"taxonomy_vocabulary_machine_name_load";i:7;s:34:"i18n_taxonomy_translation_set_load";}', + 'to_arg_functions' => '', + 'access_callback' => 'i18n_taxonomy_vocabulary_translation_tab_sets_access', + 'access_arguments' => 'a:1:{i:0;i:3;}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:3:{i:0;s:35:"i18n_taxonomy_translation_term_form";i:1;i:3;i:2;i:7;}', + 'delivery_callback' => '', + 'fit' => '238', + 'number_parts' => '8', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'admin/structure/taxonomy/%/list/sets/edit/%', + 'title' => 'Edit translation', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '0', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.admin.inc', +)) +->values(array( + 'path' => 'admin/structure/taxonomy/%/translate', + 'load_functions' => 'a:1:{i:3;s:37:"taxonomy_vocabulary_machine_name_load";}', + 'to_arg_functions' => '', + 'access_callback' => 'i18n_object_translate_access', + 'access_arguments' => 'a:2:{i:0;s:19:"taxonomy_vocabulary";i:1;i:3;}', + 'page_callback' => 'i18n_page_translate_localize', + 'page_arguments' => 'a:2:{i:0;s:19:"taxonomy_vocabulary";i:1;i:3;}', + 'delivery_callback' => '', + 'fit' => '29', + 'number_parts' => '5', + 'context' => '1', + 'tab_parent' => 'admin/structure/taxonomy/%', + 'tab_root' => 'admin/structure/taxonomy/%', + 'title' => 'Translate', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '132', + 'description' => '', + 'position' => '', + 'weight' => '10', + 'include_file' => 'sites/all/modules/i18n/i18n.pages.inc', +)) +->values(array( + 'path' => 'admin/structure/taxonomy/%/translate/%', + 'load_functions' => 'a:2:{i:3;s:37:"taxonomy_vocabulary_machine_name_load";i:5;s:18:"i18n_language_load";}', + 'to_arg_functions' => '', + 'access_callback' => 'i18n_object_translate_access', + 'access_arguments' => 'a:2:{i:0;s:19:"taxonomy_vocabulary";i:1;i:3;}', + 'page_callback' => 'i18n_page_translate_localize', + 'page_arguments' => 'a:3:{i:0;s:19:"taxonomy_vocabulary";i:1;i:3;i:2;i:5;}', + 'delivery_callback' => '', + 'fit' => '58', + 'number_parts' => '6', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'admin/structure/taxonomy/%/translate/%', + 'title' => 'Translate', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '0', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => 'sites/all/modules/i18n/i18n.pages.inc', +)) ->values(array( 'path' => 'admin/structure/taxonomy/add', 'load_functions' => '', @@ -18587,6 +19929,31 @@ 'weight' => '0', 'include_file' => 'modules/comment/comment.pages.inc', )) +->values(array( + 'path' => 'entity_translation/taxonomy_term/autocomplete', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:14:"access content";}', + 'page_callback' => 'entity_translation_taxonomy_term_autocomplete', + 'page_arguments' => 'a:0:{}', + 'delivery_callback' => '', + 'fit' => '7', + 'number_parts' => '3', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'entity_translation/taxonomy_term/autocomplete', + 'title' => 'Entity translation autocomplete', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '0', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => '', +)) ->values(array( 'path' => 'file/ajax', 'load_functions' => '', @@ -18737,6 +20104,81 @@ 'weight' => '0', 'include_file' => 'modules/forum/forum.pages.inc', )) +->values(array( + 'path' => 'i18n/taxonomy/autocomplete/language/%', + 'load_functions' => 'a:1:{i:4;N;}', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:14:"access content";}', + 'page_callback' => 'i18n_taxonomy_autocomplete_language', + 'page_arguments' => 'a:2:{i:0;i:4;i:1;N;}', + 'delivery_callback' => '', + 'fit' => '30', + 'number_parts' => '5', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'i18n/taxonomy/autocomplete/language/%', + 'title' => 'Autocomplete taxonomy', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '0', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.pages.inc', +)) +->values(array( + 'path' => 'i18n/taxonomy/autocomplete/vocabulary/%/%', + 'load_functions' => 'a:2:{i:4;s:37:"taxonomy_vocabulary_machine_name_load";i:5;N;}', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:14:"access content";}', + 'page_callback' => 'i18n_taxonomy_autocomplete_language', + 'page_arguments' => 'a:2:{i:0;i:5;i:1;i:4;}', + 'delivery_callback' => '', + 'fit' => '60', + 'number_parts' => '6', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'i18n/taxonomy/autocomplete/vocabulary/%/%', + 'title' => 'Autocomplete taxonomy', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '0', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.pages.inc', +)) +->values(array( + 'path' => 'i18n_string/save', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'user_access', + 'access_arguments' => 'a:1:{i:0;s:23:"use on-page translation";}', + 'page_callback' => 'i18n_string_l10n_client_save_string', + 'page_arguments' => 'a:0:{}', + 'delivery_callback' => '', + 'fit' => '3', + 'number_parts' => '2', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'i18n_string/save', + 'title' => 'Save string', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '0', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => 'sites/all/modules/i18n/i18n_string/i18n_string.pages.inc', +)) ->values(array( 'path' => 'node', 'load_functions' => '', @@ -18816,10 +20258,10 @@ 'path' => 'node/%/edit', 'load_functions' => 'a:1:{i:1;s:9:"node_load";}', 'to_arg_functions' => '', - 'access_callback' => 'node_access', - 'access_arguments' => 'a:2:{i:0;s:6:"update";i:1;i:1;}', - 'page_callback' => 'node_page_edit', - 'page_arguments' => 'a:1:{i:0;i:1;}', + 'access_callback' => 'entity_translation_edit_access', + 'access_arguments' => 'a:6:{i:0;s:4:"node";i:1;i:1;i:2;b:0;i:3;a:10:{s:5:"title";s:4:"Edit";s:13:"page callback";s:14:"node_page_edit";s:14:"page arguments";a:1:{i:0;i:1;}s:15:"access callback";s:11:"node_access";s:16:"access arguments";a:2:{i:0;s:6:"update";i:1;i:1;}s:6:"weight";i:0;s:4:"type";i:132;s:7:"context";i:3;s:4:"file";s:14:"node.pages.inc";s:6:"module";s:4:"node";}i:4;s:6:"update";i:5;i:1;}', + 'page_callback' => 'entity_translation_edit_page', + 'page_arguments' => 'a:5:{i:0;s:4:"node";i:1;i:1;i:2;b:0;i:3;a:10:{s:5:"title";s:4:"Edit";s:13:"page callback";s:14:"node_page_edit";s:14:"page arguments";a:1:{i:0;i:1;}s:15:"access callback";s:11:"node_access";s:16:"access arguments";a:2:{i:0;s:6:"update";i:1;i:1;}s:6:"weight";i:0;s:4:"type";i:132;s:7:"context";i:3;s:4:"file";s:14:"node.pages.inc";s:6:"module";s:4:"node";}i:4;i:1;}', 'delivery_callback' => '', 'fit' => '5', 'number_parts' => '3', @@ -18837,6 +20279,56 @@ 'weight' => '0', 'include_file' => 'modules/node/node.pages.inc', )) +->values(array( + 'path' => 'node/%/edit/%', + 'load_functions' => 'a:2:{i:1;s:9:"node_load";i:3;s:32:"entity_translation_language_load";}', + 'to_arg_functions' => '', + 'access_callback' => 'entity_translation_edit_access', + 'access_arguments' => 'a:6:{i:0;s:4:"node";i:1;i:1;i:2;i:3;i:3;a:10:{s:5:"title";s:4:"Edit";s:13:"page callback";s:14:"node_page_edit";s:14:"page arguments";a:1:{i:0;i:1;}s:15:"access callback";s:11:"node_access";s:16:"access arguments";a:2:{i:0;s:6:"update";i:1;i:1;}s:6:"weight";i:0;s:4:"type";i:132;s:7:"context";i:3;s:4:"file";s:14:"node.pages.inc";s:6:"module";s:4:"node";}i:4;s:6:"update";i:5;i:1;}', + 'page_callback' => 'entity_translation_edit_page', + 'page_arguments' => 'a:5:{i:0;s:4:"node";i:1;i:1;i:2;i:3;i:3;a:10:{s:5:"title";s:4:"Edit";s:13:"page callback";s:14:"node_page_edit";s:14:"page arguments";a:1:{i:0;i:1;}s:15:"access callback";s:11:"node_access";s:16:"access arguments";a:2:{i:0;s:6:"update";i:1;i:1;}s:6:"weight";i:0;s:4:"type";i:132;s:7:"context";i:3;s:4:"file";s:14:"node.pages.inc";s:6:"module";s:4:"node";}i:4;i:1;}', + 'delivery_callback' => '', + 'fit' => '10', + 'number_parts' => '4', + 'context' => '3', + 'tab_parent' => 'node/%/edit', + 'tab_root' => 'node/%', + 'title' => 'Edit', + 'title_callback' => 'entity_translation_edit_title', + 'title_arguments' => 'a:1:{i:0;i:3;}', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '140', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => 'modules/node/node.pages.inc', +)) +->values(array( + 'path' => 'node/%/edit/add/%/%', + 'load_functions' => 'a:3:{i:1;s:9:"node_load";i:4;s:32:"entity_translation_language_load";i:5;s:32:"entity_translation_language_load";}', + 'to_arg_functions' => '', + 'access_callback' => 'entity_translation_add_access', + 'access_arguments' => 'a:7:{i:0;s:4:"node";i:1;i:1;i:2;i:4;i:3;i:5;i:4;a:10:{s:5:"title";s:4:"Edit";s:13:"page callback";s:14:"node_page_edit";s:14:"page arguments";a:1:{i:0;i:1;}s:15:"access callback";s:11:"node_access";s:16:"access arguments";a:2:{i:0;s:6:"update";i:1;i:1;}s:6:"weight";i:0;s:4:"type";i:132;s:7:"context";i:3;s:4:"file";s:14:"node.pages.inc";s:6:"module";s:4:"node";}i:5;s:6:"update";i:6;i:1;}', + 'page_callback' => 'entity_translation_add_page', + 'page_arguments' => 'a:6:{i:0;s:4:"node";i:1;i:1;i:2;i:4;i:3;i:5;i:4;a:10:{s:5:"title";s:4:"Edit";s:13:"page callback";s:14:"node_page_edit";s:14:"page arguments";a:1:{i:0;i:1;}s:15:"access callback";s:11:"node_access";s:16:"access arguments";a:2:{i:0;s:6:"update";i:1;i:1;}s:6:"weight";i:0;s:4:"type";i:132;s:7:"context";i:3;s:4:"file";s:14:"node.pages.inc";s:6:"module";s:4:"node";}i:5;i:1;}', + 'delivery_callback' => '', + 'fit' => '44', + 'number_parts' => '6', + 'context' => '3', + 'tab_parent' => 'node/%/edit', + 'tab_root' => 'node/%', + 'title' => 'Edit', + 'title_callback' => 'Add translation', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '132', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => 'modules/node/node.pages.inc', +)) ->values(array( 'path' => 'node/%/revisions', 'load_functions' => 'a:1:{i:1;s:9:"node_load";}', @@ -18941,14 +20433,14 @@ 'path' => 'node/%/translate', 'load_functions' => 'a:1:{i:1;s:9:"node_load";}', 'to_arg_functions' => '', - 'access_callback' => '_translation_tab_access', - 'access_arguments' => 'a:1:{i:0;i:1;}', - 'page_callback' => 'translation_node_overview', - 'page_arguments' => 'a:1:{i:0;i:1;}', + 'access_callback' => 'entity_translation_node_tab_access', + 'access_arguments' => 'a:3:{i:0;i:1;i:1;s:23:"_translation_tab_access";i:2;i:1;}', + 'page_callback' => 'entity_translation_overview', + 'page_arguments' => 'a:4:{i:0;s:4:"node";i:1;i:1;i:2;a:3:{s:13:"page callback";s:25:"translation_node_overview";s:4:"file";s:21:"translation.pages.inc";s:6:"module";s:11:"translation";}i:3;i:1;}', 'delivery_callback' => '', 'fit' => '5', 'number_parts' => '3', - 'context' => '1', + 'context' => '3', 'tab_parent' => 'node/%', 'tab_root' => 'node/%', 'title' => 'Translate', @@ -18956,11 +20448,36 @@ 'title_arguments' => '', 'theme_callback' => '', 'theme_arguments' => 'a:0:{}', - 'type' => '132', + 'type' => '132', + 'description' => '', + 'position' => '', + 'weight' => '1', + 'include_file' => 'sites/all/modules/entity_translation/entity_translation.admin.inc', +)) +->values(array( + 'path' => 'node/%/translate/delete/%', + 'load_functions' => 'a:2:{i:1;s:9:"node_load";i:4;s:32:"entity_translation_language_load";}', + 'to_arg_functions' => '', + 'access_callback' => 'entity_translation_node_tab_access', + 'access_arguments' => 'a:1:{i:0;i:1;}', + 'page_callback' => 'drupal_get_form', + 'page_arguments' => 'a:4:{i:0;s:33:"entity_translation_delete_confirm";i:1;s:4:"node";i:2;i:1;i:3;i:4;}', + 'delivery_callback' => '', + 'fit' => '22', + 'number_parts' => '5', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'node/%/translate/delete/%', + 'title' => 'Delete', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '6', 'description' => '', 'position' => '', - 'weight' => '2', - 'include_file' => 'modules/translation/translation.pages.inc', + 'weight' => '0', + 'include_file' => 'sites/all/modules/entity_translation/entity_translation.admin.inc', )) ->values(array( 'path' => 'node/%/view', @@ -19037,6 +20554,31 @@ 'weight' => '0', 'include_file' => 'modules/node/node.pages.inc', )) +->values(array( + 'path' => 'node/add/et', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'node_access', + 'access_arguments' => 'a:2:{i:0;s:6:"create";i:1;s:2:"et";}', + 'page_callback' => 'node_add', + 'page_arguments' => 'a:1:{i:0;s:2:"et";}', + 'delivery_callback' => '', + 'fit' => '7', + 'number_parts' => '3', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'node/add/et', + 'title' => 'et', + 'title_callback' => 'check_plain', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '6', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => 'modules/node/node.pages.inc', +)) ->values(array( 'path' => 'node/add/forum', 'load_functions' => '', @@ -19087,6 +20629,31 @@ 'weight' => '0', 'include_file' => 'modules/node/node.pages.inc', )) +->values(array( + 'path' => 'node/add/test-content-type', + 'load_functions' => '', + 'to_arg_functions' => '', + 'access_callback' => 'node_access', + 'access_arguments' => 'a:2:{i:0;s:6:"create";i:1;s:17:"test_content_type";}', + 'page_callback' => 'node_add', + 'page_arguments' => 'a:1:{i:0;s:17:"test_content_type";}', + 'delivery_callback' => '', + 'fit' => '7', + 'number_parts' => '3', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'node/add/test-content-type', + 'title' => 'test_content_type', + 'title_callback' => 'check_plain', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '6', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => 'modules/node/node.pages.inc', +)) ->values(array( 'path' => 'rss.xml', 'load_functions' => '', @@ -19343,7 +20910,7 @@ 'to_arg_functions' => '', 'access_callback' => 'user_access', 'access_arguments' => 'a:1:{i:0;s:14:"access content";}', - 'page_callback' => 'taxonomy_autocomplete', + 'page_callback' => 'i18n_taxonomy_autocomplete_field', 'page_arguments' => 'a:0:{}', 'delivery_callback' => '', 'fit' => '3', @@ -19360,7 +20927,7 @@ 'description' => '', 'position' => '', 'weight' => '0', - 'include_file' => 'modules/taxonomy/taxonomy.pages.inc', + 'include_file' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.pages.inc', )) ->values(array( 'path' => 'taxonomy/term/%', @@ -19368,7 +20935,7 @@ 'to_arg_functions' => '', 'access_callback' => 'user_access', 'access_arguments' => 'a:1:{i:0;s:14:"access content";}', - 'page_callback' => 'taxonomy_term_page', + 'page_callback' => 'i18n_taxonomy_term_page', 'page_arguments' => 'a:1:{i:0;i:2;}', 'delivery_callback' => '', 'fit' => '6', @@ -19377,7 +20944,7 @@ 'tab_parent' => '', 'tab_root' => 'taxonomy/term/%', 'title' => 'Taxonomy term', - 'title_callback' => 'taxonomy_term_title', + 'title_callback' => 'i18n_taxonomy_term_name', 'title_arguments' => 'a:1:{i:0;i:2;}', 'theme_callback' => '', 'theme_arguments' => 'a:0:{}', @@ -19385,7 +20952,7 @@ 'description' => '', 'position' => '', 'weight' => '0', - 'include_file' => 'modules/taxonomy/taxonomy.pages.inc', + 'include_file' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.pages.inc', )) ->values(array( 'path' => 'taxonomy/term/%/edit', @@ -19437,13 +21004,63 @@ 'weight' => '0', 'include_file' => 'modules/taxonomy/taxonomy.pages.inc', )) +->values(array( + 'path' => 'taxonomy/term/%/translate', + 'load_functions' => 'a:1:{i:2;s:18:"taxonomy_term_load";}', + 'to_arg_functions' => '', + 'access_callback' => 'i18n_object_translate_access', + 'access_arguments' => 'a:2:{i:0;s:13:"taxonomy_term";i:1;i:2;}', + 'page_callback' => 'i18n_page_translate_tab', + 'page_arguments' => 'a:2:{i:0;s:13:"taxonomy_term";i:1;i:2;}', + 'delivery_callback' => '', + 'fit' => '13', + 'number_parts' => '4', + 'context' => '1', + 'tab_parent' => 'taxonomy/term/%', + 'tab_root' => 'taxonomy/term/%', + 'title' => 'Translate', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '132', + 'description' => '', + 'position' => '', + 'weight' => '10', + 'include_file' => 'sites/all/modules/i18n/i18n.pages.inc', +)) +->values(array( + 'path' => 'taxonomy/term/%/translate/%', + 'load_functions' => 'a:2:{i:2;s:18:"taxonomy_term_load";i:4;s:18:"i18n_language_load";}', + 'to_arg_functions' => '', + 'access_callback' => 'i18n_object_translate_access', + 'access_arguments' => 'a:2:{i:0;s:13:"taxonomy_term";i:1;i:2;}', + 'page_callback' => 'i18n_page_translate_tab', + 'page_arguments' => 'a:3:{i:0;s:13:"taxonomy_term";i:1;i:2;i:2;i:4;}', + 'delivery_callback' => '', + 'fit' => '26', + 'number_parts' => '5', + 'context' => '0', + 'tab_parent' => '', + 'tab_root' => 'taxonomy/term/%/translate/%', + 'title' => 'Translate', + 'title_callback' => 't', + 'title_arguments' => '', + 'theme_callback' => '', + 'theme_arguments' => 'a:0:{}', + 'type' => '0', + 'description' => '', + 'position' => '', + 'weight' => '0', + 'include_file' => 'sites/all/modules/i18n/i18n.pages.inc', +)) ->values(array( 'path' => 'taxonomy/term/%/view', 'load_functions' => 'a:1:{i:2;s:18:"taxonomy_term_load";}', 'to_arg_functions' => '', 'access_callback' => 'user_access', 'access_arguments' => 'a:1:{i:0;s:14:"access content";}', - 'page_callback' => 'taxonomy_term_page', + 'page_callback' => 'i18n_taxonomy_term_page', 'page_arguments' => 'a:1:{i:0;i:2;}', 'delivery_callback' => '', 'fit' => '13', @@ -19460,7 +21077,7 @@ 'description' => '', 'position' => '', 'weight' => '0', - 'include_file' => 'modules/taxonomy/taxonomy.pages.inc', + 'include_file' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.pages.inc', )) ->values(array( 'path' => 'user', @@ -20309,6 +21926,21 @@ 'disabled' => '1', 'orig_type' => 'blog', )) +->values(array( + 'type' => 'et', + 'name' => 'et', + 'base' => 'node_content', + 'module' => 'node', + 'description' => '', + 'help' => '', + 'has_title' => '1', + 'title_label' => 'Title', + 'custom' => '1', + 'modified' => '1', + 'locked' => '0', + 'disabled' => '0', + 'orig_type' => 'et', +)) ->values(array( 'type' => 'forum', 'name' => 'Forum topic', @@ -20339,6 +21971,21 @@ 'disabled' => '0', 'orig_type' => 'page', )) +->values(array( + 'type' => 'test_content_type', + 'name' => 'test_content_type', + 'base' => 'node_content', + 'module' => 'node', + 'description' => '', + 'help' => '', + 'has_title' => '1', + 'title_label' => 'Title', + 'custom' => '1', + 'modified' => '1', + 'locked' => '0', + 'disabled' => '0', + 'orig_type' => 'test_content_type', +)) ->execute(); $connection->schema()->createTable('queue', array( 'fields' => array( @@ -21083,6 +22730,20 @@ 'module' => '', 'weight' => '0', )) +->values(array( + 'name' => 'Drupali18nConfigTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/i18n/i18n.test', + 'module' => 'i18n', + 'weight' => '0', +)) +->values(array( + 'name' => 'Drupali18nTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/i18n/i18n.test', + 'module' => 'i18n', + 'weight' => '0', +)) ->values(array( 'name' => 'DrupalLocalStreamWrapper', 'type' => 'class', @@ -21202,6 +22863,167 @@ 'module' => 'field', 'weight' => '0', )) +->values(array( + 'name' => 'EntityTranslationCommentHandler', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler.comment.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationCommentTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/tests/entity_translation.test', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationContentTranslationTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/tests/entity_translation.test', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationDefaultHandler', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationHandlerFactory', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler_factory.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationHandlerInterface', + 'type' => 'interface', + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationHierarchyTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/tests/entity_translation.test', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationHookTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/tests/entity_translation.test', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationIntegrationTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/tests/entity_translation.test', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationNodeHandler', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler.node.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationTaxonomyAutocompleteTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/tests/entity_translation.test', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationTaxonomyTermHandler', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler.taxonomy_term.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/tests/entity_translation.test', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationToggleFieldsTranslatabilityTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/tests/entity_translation.test', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationTranslationTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/tests/entity_translation.test', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'EntityTranslationUserHandler', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler.user.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'entity_translation_handler_field_field', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_field_field.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'entity_translation_handler_field_label', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_field_label.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'entity_translation_handler_field_translate_link', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_field_translate_link.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'entity_translation_handler_filter_entity_type', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_filter_entity_type.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'entity_translation_handler_filter_language', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_filter_language.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'entity_translation_handler_filter_translation_exists', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_filter_translation_exists.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) +->values(array( + 'name' => 'entity_translation_handler_relationship', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_relationship.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) ->values(array( 'name' => 'FieldAttachOtherTestCase', 'type' => 'class', @@ -21597,8 +23419,78 @@ ->values(array( 'name' => 'HtaccessTest', 'type' => 'class', - 'filename' => 'modules/system/system.test', - 'module' => 'system', + 'filename' => 'modules/system/system.test', + 'module' => 'system', + 'weight' => '0', +)) +->values(array( + 'name' => 'i18nStringTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/i18n/i18n_string/i18n_string.test', + 'module' => 'i18n_string', + 'weight' => '0', +)) +->values(array( + 'name' => 'i18nTaxonomyTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.test', + 'module' => 'i18n_taxonomy', + 'weight' => '0', +)) +->values(array( + 'name' => 'i18n_object_wrapper', + 'type' => 'class', + 'filename' => 'sites/all/modules/i18n/i18n_object.inc', + 'module' => 'i18n', + 'weight' => '0', +)) +->values(array( + 'name' => 'i18n_string_object', + 'type' => 'class', + 'filename' => 'sites/all/modules/i18n/i18n_string/i18n_string.inc', + 'module' => 'i18n_string', + 'weight' => '0', +)) +->values(array( + 'name' => 'i18n_string_object_wrapper', + 'type' => 'class', + 'filename' => 'sites/all/modules/i18n/i18n_string/i18n_string.inc', + 'module' => 'i18n_string', + 'weight' => '0', +)) +->values(array( + 'name' => 'i18n_string_textgroup_cached', + 'type' => 'class', + 'filename' => 'sites/all/modules/i18n/i18n_string/i18n_string.inc', + 'module' => 'i18n_string', + 'weight' => '0', +)) +->values(array( + 'name' => 'i18n_string_textgroup_default', + 'type' => 'class', + 'filename' => 'sites/all/modules/i18n/i18n_string/i18n_string.inc', + 'module' => 'i18n_string', + 'weight' => '0', +)) +->values(array( + 'name' => 'i18n_taxonomy_term', + 'type' => 'class', + 'filename' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.inc', + 'module' => 'i18n_taxonomy', + 'weight' => '0', +)) +->values(array( + 'name' => 'i18n_taxonomy_translation_set', + 'type' => 'class', + 'filename' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.inc', + 'module' => 'i18n_taxonomy', + 'weight' => '0', +)) +->values(array( + 'name' => 'i18n_translation_set', + 'type' => 'class', + 'filename' => 'sites/all/modules/i18n/i18n_translation/i18n_translation.inc', + 'module' => 'i18n_translation', 'weight' => '0', )) ->values(array( @@ -21944,6 +23836,13 @@ 'module' => '', 'weight' => '0', )) +->values(array( + 'name' => 'MigrateTranslationEntityHandler', + 'type' => 'class', + 'filename' => 'sites/all/modules/entity_translation/includes/translation.migrate.inc', + 'module' => 'entity_translation', + 'weight' => '0', +)) ->values(array( 'name' => 'ModuleDependencyTestCase', 'type' => 'class', @@ -23134,6 +25033,13 @@ 'module' => 'user', 'weight' => '0', )) +->values(array( + 'name' => 'VariableTestCase', + 'type' => 'class', + 'filename' => 'sites/all/modules/variable/variable.test', + 'module' => 'variable', + 'weight' => '0', +)) ->execute(); $connection->schema()->createTable('registry_file', array( 'fields' => array( @@ -23635,6 +25541,142 @@ 'filename' => 'sites/all/modules/date/tests/DateValidationTestCase.test', 'hash' => '675c3dce13d95e424364de4db2c49d88cba19ce8eb86530341374c82a3b1292f', )) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler.comment.inc', + 'hash' => 'c1667be0bdea8805be52b10bad904f60a278213b749d4c9903e3887b6165448c', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler.inc', + 'hash' => 'd470382679e75b63f370e7d476a737eb104e7bae0937668d912873bc2c94ce89', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler.node.inc', + 'hash' => '255963e0d0a38349e1c5cb3ff072819b9c39cb5760a71b312ddaac1dd2edbb82', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler.taxonomy_term.inc', + 'hash' => '587417ed1ba9debd4caef9b32722ca003be28c325d12f3fcb82b70384c095814', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler.user.inc', + 'hash' => '4574d55fc756f566bc10f574231ee7900a181fbaa68d647ae973d9e06b4167ac', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/includes/translation.handler_factory.inc', + 'hash' => '80ed7658c3d685bc18e7d29129893b2fb48dcda029e730241c1d0f53db7ad367', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/includes/translation.migrate.inc', + 'hash' => 'e5c56971c44ad5352089481e48e01fb83bfefbb5359c8033949ce5227a917d42', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/tests/entity_translation.test', + 'hash' => 'b3aa79b5d0805999336c000aafa63c9384303bd5018ca57d78cb94fa380eb854', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_field_field.inc', + 'hash' => '4681a5b5e8963b562e6fbb39c3385024034f392162eb4ff7f52a1684db628ea8', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_field_label.inc', + 'hash' => 'd31ea1af45150832df052fad29af729c6c028a54fa44d62a023a861bbeba744d', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_field_translate_link.inc', + 'hash' => '78cfa9c4e9b074e5d45d887fe8f69a8966fc0112d95a6abc74b9b13421b58047', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_filter_entity_type.inc', + 'hash' => 'd86bb73731c60f8ebaa3d8c29f837403935e91fe062c5ab6293901aa253da3e7', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_filter_language.inc', + 'hash' => '44c3a6928b8f7cde5fea6ae7cff973982d6c7781a3c8be663838ff770435c939', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_filter_translation_exists.inc', + 'hash' => '25d8ee7f5d45a5e3984572d00816368902121574f04277a67bbabd004b67f39a', +)) +->values(array( + 'filename' => 'sites/all/modules/entity_translation/views/entity_translation_handler_relationship.inc', + 'hash' => 'aac136a9eab8c4b832edd73b942e124c3fdf1f48b6c8a8d0bf5383ba1d32259c', +)) +->values(array( + 'filename' => 'sites/all/modules/i18n/i18n.test', + 'hash' => 'c52b5076bfd40ec8820a1f58dd9ea6f8d0098c771f65d740298143137d52866e', +)) +->values(array( + 'filename' => 'sites/all/modules/i18n/i18n_object.inc', + 'hash' => '13118a2525f7ef27040f1c4824fcd05258154fcba128bdb5802c0aac471293c8', +)) +->values(array( + 'filename' => 'sites/all/modules/i18n/i18n_string/i18n_string.admin.inc', + 'hash' => 'ace6c13b12cbb5379c803def1f4c4ba073457aa7fe84d1f87a4a4693e28b216c', +)) +->values(array( + 'filename' => 'sites/all/modules/i18n/i18n_string/i18n_string.inc', + 'hash' => '35569a693d0bb7df4035acefddc026087676f5671f0957ec56bbdd63eadd1fbc', +)) +->values(array( + 'filename' => 'sites/all/modules/i18n/i18n_string/i18n_string.test', + 'hash' => '5127520c1b08f78d3314d6df948b6a59eeb5a889c74687a196bfa3244c33f6d8', +)) +->values(array( + 'filename' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.admin.inc', + 'hash' => '5b609efc7ae96ddf4129dc9ee59a4a17fd522c8f9c6e148ffb1ac6eb24700246', +)) +->values(array( + 'filename' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.inc', + 'hash' => '7bc643c59e25c8a00491bc70258821793bbcb232a70510eff071a02bb1e4343e', +)) +->values(array( + 'filename' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.pages.inc', + 'hash' => 'cd0cb343cbfe113a13583450618163b90e6bee8778f79b6dc76ce12dfd13a2f4', +)) +->values(array( + 'filename' => 'sites/all/modules/i18n/i18n_taxonomy/i18n_taxonomy.test', + 'hash' => '29fc8c69345e4d2b8eda25ae5d7775772ff1432452f07d51d66b727857ba3690', +)) +->values(array( + 'filename' => 'sites/all/modules/i18n/i18n_translation/i18n_translation.inc', + 'hash' => 'e7e38105a080efcb1d947e7e6d2f1487127b166905b2722c516582827ddaf143', +)) +->values(array( + 'filename' => 'sites/all/modules/variable/includes/forum.variable.inc', + 'hash' => '84ab5992d648c704b2ae6d680cf8e02d3150cccd8939170f7e8fd82ac054b516', +)) +->values(array( + 'filename' => 'sites/all/modules/variable/includes/locale.variable.inc', + 'hash' => '27173d9c9e526a8ba88c5f48bf516aaac59ad932b64ef654621bc11f1ccd9f7a', +)) +->values(array( + 'filename' => 'sites/all/modules/variable/includes/menu.variable.inc', + 'hash' => 'bc776840ee32060a9fda616ca154d3fd315461fbe07ce822d7969b79fccd8160', +)) +->values(array( + 'filename' => 'sites/all/modules/variable/includes/node.variable.inc', + 'hash' => '596064101f8fbd3affdb61ca1240354ce0b51778601a8b02c021a1150bbf4e06', +)) +->values(array( + 'filename' => 'sites/all/modules/variable/includes/system.variable.inc', + 'hash' => '909bae0f1e3a4d85c32c385a92a58c559576fb60fd13a0e4f71127eee27afd3e', +)) +->values(array( + 'filename' => 'sites/all/modules/variable/includes/taxonomy.variable.inc', + 'hash' => '7792f07f8ea088cd8c3350e16f4cacef262c319c2e605dd911f17999a872f09e', +)) +->values(array( + 'filename' => 'sites/all/modules/variable/includes/translation.variable.inc', + 'hash' => '3e4e82f779986bfb32987d6b27bdab9f907ba5e18841847f138a20c42cf725d4', +)) +->values(array( + 'filename' => 'sites/all/modules/variable/includes/user.variable.inc', + 'hash' => 'b80094c1db0037f396f197bdd70c19e87afe76f4378c5c6089c4199af3bcb03a', +)) +->values(array( + 'filename' => 'sites/all/modules/variable/variable.test', + 'hash' => 'a6614814c24aee5ae1d2f2f8c23c08138466c41a82e57ee670e070d7cdd6e4b2', +)) ->execute(); $connection->schema()->createTable('role', array( 'fields' => array( @@ -23829,6 +25871,11 @@ 'permission' => 'administer content types', 'module' => 'node', )) +->values(array( + 'rid' => '3', + 'permission' => 'administer entity translation', + 'module' => 'entity_translation', +)) ->values(array( 'rid' => '3', 'permission' => 'administer fields', @@ -24034,6 +26081,21 @@ 'permission' => 'skip comment approval', 'module' => 'comment', )) +->values(array( + 'rid' => '3', + 'permission' => 'toggle field translatability', + 'module' => 'entity_translation', +)) +->values(array( + 'rid' => '3', + 'permission' => 'translate admin strings', + 'module' => 'i18n_string', +)) +->values(array( + 'rid' => '3', + 'permission' => 'translate any entity', + 'module' => 'entity_translation', +)) ->values(array( 'rid' => '3', 'permission' => 'translate content', @@ -24044,6 +26106,16 @@ 'permission' => 'translate interface', 'module' => 'locale', )) +->values(array( + 'rid' => '3', + 'permission' => 'translate node entities', + 'module' => 'entity_translation', +)) +->values(array( + 'rid' => '3', + 'permission' => 'translate user-defined strings', + 'module' => 'i18n_string', +)) ->values(array( 'rid' => '3', 'permission' => 'use advanced search', @@ -26326,10 +28398,10 @@ 'name' => 'entity_translation', 'type' => 'module', 'owner' => '', - 'status' => '0', + 'status' => '1', 'bootstrap' => '0', - 'schema_version' => '-1', - 'weight' => '0', + 'schema_version' => '7009', + 'weight' => '11', 'info' => 'a:12:{s:4:"name";s:18:"Entity Translation";s:11:"description";s:58:"Allows entities to be translated into different languages.";s:7:"package";s:33:"Multilingual - Entity Translation";s:4:"core";s:3:"7.x";s:9:"configure";s:40:"admin/config/regional/entity_translation";s:12:"dependencies";a:1:{i:0;s:14:"locale (>7.14)";}s:17:"test_dependencies";a:2:{i:0;s:17:"pathauto:pathauto";i:1;s:11:"title:title";}s:5:"files";a:15:{i:0;s:40:"includes/translation.handler_factory.inc";i:1;s:32:"includes/translation.handler.inc";i:2;s:40:"includes/translation.handler.comment.inc";i:3;s:37:"includes/translation.handler.node.inc";i:4;s:46:"includes/translation.handler.taxonomy_term.inc";i:5;s:37:"includes/translation.handler.user.inc";i:6;s:32:"includes/translation.migrate.inc";i:7;s:29:"tests/entity_translation.test";i:8;s:49:"views/entity_translation_handler_relationship.inc";i:9;s:57:"views/entity_translation_handler_field_translate_link.inc";i:10;s:48:"views/entity_translation_handler_field_label.inc";i:11;s:55:"views/entity_translation_handler_filter_entity_type.inc";i:12;s:52:"views/entity_translation_handler_filter_language.inc";i:13;s:62:"views/entity_translation_handler_filter_translation_exists.inc";i:14;s:48:"views/entity_translation_handler_field_field.inc";}s:5:"mtime";i:1664867622;s:7:"version";N;s:3:"php";s:5:"5.2.4";s:9:"bootstrap";i:0;}', )) ->values(array( @@ -26370,10 +28442,10 @@ 'name' => 'i18n', 'type' => 'module', 'owner' => '', - 'status' => '0', - 'bootstrap' => '0', - 'schema_version' => '-1', - 'weight' => '0', + 'status' => '1', + 'bootstrap' => '1', + 'schema_version' => '7001', + 'weight' => '10', 'info' => 'a:11:{s:4:"name";s:20:"Internationalization";s:11:"description";s:49:"Extends Drupal support for multilingual features.";s:12:"dependencies";a:2:{i:0;s:6:"locale";i:1;s:8:"variable";}s:7:"package";s:35:"Multilingual - Internationalization";s:4:"core";s:3:"7.x";s:5:"files";a:2:{i:0;s:15:"i18n_object.inc";i:1;s:9:"i18n.test";}s:9:"configure";s:26:"admin/config/regional/i18n";s:5:"mtime";i:1664867462;s:7:"version";N;s:3:"php";s:5:"5.2.4";s:9:"bootstrap";i:0;}', )) ->values(array( @@ -26480,10 +28552,10 @@ 'name' => 'i18n_string', 'type' => 'module', 'owner' => '', - 'status' => '0', + 'status' => '1', 'bootstrap' => '0', - 'schema_version' => '-1', - 'weight' => '0', + 'schema_version' => '7004', + 'weight' => '10', 'info' => 'a:11:{s:4:"name";s:18:"String translation";s:11:"description";s:57:"Provides support for translation of user defined strings.";s:12:"dependencies";a:2:{i:0;s:6:"locale";i:1;s:4:"i18n";}s:7:"package";s:35:"Multilingual - Internationalization";s:4:"core";s:3:"7.x";s:5:"files";a:3:{i:0;s:21:"i18n_string.admin.inc";i:1;s:15:"i18n_string.inc";i:2;s:16:"i18n_string.test";}s:9:"configure";s:34:"admin/config/regional/i18n/strings";s:5:"mtime";i:1664867462;s:7:"version";N;s:3:"php";s:5:"5.2.4";s:9:"bootstrap";i:0;}', )) ->values(array( @@ -26502,10 +28574,10 @@ 'name' => 'i18n_taxonomy', 'type' => 'module', 'owner' => '', - 'status' => '0', + 'status' => '1', 'bootstrap' => '0', - 'schema_version' => '-1', - 'weight' => '0', + 'schema_version' => '7004', + 'weight' => '5', 'info' => 'a:10:{s:4:"name";s:20:"Taxonomy translation";s:11:"description";s:30:"Enables multilingual taxonomy.";s:12:"dependencies";a:3:{i:0;s:8:"taxonomy";i:1;s:11:"i18n_string";i:2;s:16:"i18n_translation";}s:7:"package";s:35:"Multilingual - Internationalization";s:4:"core";s:3:"7.x";s:5:"files";a:4:{i:0;s:17:"i18n_taxonomy.inc";i:1;s:23:"i18n_taxonomy.pages.inc";i:2;s:23:"i18n_taxonomy.admin.inc";i:3;s:18:"i18n_taxonomy.test";}s:5:"mtime";i:1664867462;s:7:"version";N;s:3:"php";s:5:"5.2.4";s:9:"bootstrap";i:0;}', )) ->values(array( @@ -26513,9 +28585,9 @@ 'name' => 'i18n_translation', 'type' => 'module', 'owner' => '', - 'status' => '0', + 'status' => '1', 'bootstrap' => '0', - 'schema_version' => '-1', + 'schema_version' => '0', 'weight' => '0', 'info' => 'a:10:{s:4:"name";s:16:"Translation sets";s:11:"description";s:47:"Simple translation sets API for generic objects";s:12:"dependencies";a:1:{i:0;s:4:"i18n";}s:7:"package";s:35:"Multilingual - Internationalization";s:4:"core";s:3:"7.x";s:5:"files";a:1:{i:0;s:20:"i18n_translation.inc";}s:5:"mtime";i:1664867462;s:7:"version";N;s:3:"php";s:5:"5.2.4";s:9:"bootstrap";i:0;}', )) @@ -26700,9 +28772,9 @@ 'name' => 'variable', 'type' => 'module', 'owner' => '', - 'status' => '0', - 'bootstrap' => '0', - 'schema_version' => '-1', + 'status' => '1', + 'bootstrap' => '1', + 'schema_version' => '0', 'weight' => '0', 'info' => 'a:10:{s:4:"name";s:8:"Variable";s:11:"description";s:43:"Variable Information and basic variable API";s:7:"package";s:8:"Variable";s:4:"core";s:3:"7.x";s:5:"files";a:9:{i:0;s:27:"includes/forum.variable.inc";i:1;s:28:"includes/locale.variable.inc";i:2;s:26:"includes/menu.variable.inc";i:3;s:26:"includes/node.variable.inc";i:4;s:28:"includes/system.variable.inc";i:5;s:30:"includes/taxonomy.variable.inc";i:6;s:33:"includes/translation.variable.inc";i:7;s:26:"includes/user.variable.inc";i:8;s:13:"variable.test";}s:5:"mtime";i:1664867493;s:12:"dependencies";a:0:{}s:7:"version";N;s:3:"php";s:5:"5.2.4";s:9:"bootstrap";i:0;}', )) @@ -26905,6 +28977,19 @@ 'size' => 'normal', 'default' => '0', ), + 'language' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '12', + 'default' => 'und', + ), + 'i18n_tsid' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + 'unsigned' => TRUE, + ), ), 'primary key' => array( 'tid', @@ -26920,6 +29005,8 @@ 'description', 'format', 'weight', + 'language', + 'i18n_tsid', )) ->values(array( 'tid' => '1', @@ -26928,6 +29015,8 @@ 'description' => '', 'format' => NULL, 'weight' => '2', + 'language' => 'und', + 'i18n_tsid' => '0', )) ->values(array( 'tid' => '5', @@ -26936,6 +29025,8 @@ 'description' => 'Where the cool kids are.', 'format' => NULL, 'weight' => '3', + 'language' => 'und', + 'i18n_tsid' => '0', )) ->values(array( 'tid' => '6', @@ -26944,6 +29035,8 @@ 'description' => '', 'format' => NULL, 'weight' => '4', + 'language' => 'und', + 'i18n_tsid' => '0', )) ->values(array( 'tid' => '7', @@ -26952,6 +29045,8 @@ 'description' => '', 'format' => NULL, 'weight' => '1', + 'language' => 'und', + 'i18n_tsid' => '0', )) ->values(array( 'tid' => '8', @@ -26960,6 +29055,8 @@ 'description' => '', 'format' => NULL, 'weight' => '0', + 'language' => 'und', + 'i18n_tsid' => '0', )) ->execute(); $connection->schema()->createTable('taxonomy_term_hierarchy', array( @@ -27056,6 +29153,19 @@ 'size' => 'normal', 'default' => '0', ), + 'language' => array( + 'type' => 'varchar', + 'not null' => TRUE, + 'length' => '12', + 'default' => 'und', + ), + 'i18n_mode' => array( + 'type' => 'int', + 'not null' => TRUE, + 'size' => 'normal', + 'default' => '0', + 'unsigned' => TRUE, + ), ), 'primary key' => array( 'vid', @@ -27072,6 +29182,8 @@ 'hierarchy', 'module', 'weight', + 'language', + 'i18n_mode', )) ->values(array( 'vid' => '1', @@ -27081,6 +29193,8 @@ 'hierarchy' => '0', 'module' => 'taxonomy', 'weight' => '0', + 'language' => 'und', + 'i18n_mode' => '0', )) ->values(array( 'vid' => '2', @@ -27090,6 +29204,8 @@ 'hierarchy' => '1', 'module' => 'forum', 'weight' => '-10', + 'language' => 'und', + 'i18n_mode' => '0', )) ->execute(); $connection->schema()->createTable('url_alias', array( @@ -27282,8 +29398,8 @@ 'signature' => '', 'signature_format' => NULL, 'created' => '0', - 'access' => '1675415332', - 'login' => '1675410565', + 'access' => '1679731173', + 'login' => '1679731173', 'status' => '1', 'timezone' => NULL, 'language' => '', @@ -27414,6 +29530,10 @@ 'name' => 'additional_settings__active_tab_book', 'value' => 's:13:"edit-workflow";', )) +->values(array( + 'name' => 'additional_settings__active_tab_et', + 'value' => 's:9:"edit-menu";', +)) ->values(array( 'name' => 'additional_settings__active_tab_forum', 'value' => 's:15:"edit-submission";', @@ -27424,7 +29544,7 @@ )) ->values(array( 'name' => 'additional_settings__active_tab_test_content_type', - 'value' => 's:13:"edit-workflow";', + 'value' => 's:9:"edit-menu";', )) ->values(array( 'name' => 'admin_compact_mode', @@ -27460,39 +29580,39 @@ )) ->values(array( 'name' => 'cache_flush_cache', - 'value' => 'i:0;', + 'value' => 'i:1679731162;', )) ->values(array( 'name' => 'cache_flush_cache_block', - 'value' => 'i:0;', + 'value' => 'i:1679731162;', )) ->values(array( 'name' => 'cache_flush_cache_field', - 'value' => 'i:0;', + 'value' => 'i:1679731162;', )) ->values(array( 'name' => 'cache_flush_cache_filter', - 'value' => 'i:1675411087;', + 'value' => 'i:0;', )) ->values(array( 'name' => 'cache_flush_cache_form', - 'value' => 'i:0;', + 'value' => 'i:1679731162;', )) ->values(array( 'name' => 'cache_flush_cache_image', - 'value' => 'i:1675411087;', + 'value' => 'i:0;', )) ->values(array( 'name' => 'cache_flush_cache_menu', - 'value' => 'i:0;', + 'value' => 'i:1679731162;', )) ->values(array( 'name' => 'cache_flush_cache_page', - 'value' => 'i:0;', + 'value' => 'i:1679731162;', )) ->values(array( 'name' => 'cache_flush_cache_path', - 'value' => 'i:0;', + 'value' => 'i:1679731162;', )) ->values(array( 'name' => 'cache_flush_cache_variable', @@ -27554,6 +29674,10 @@ 'name' => 'comment_anonymous_blog', 'value' => 'i:0;', )) +->values(array( + 'name' => 'comment_anonymous_et', + 'value' => 'i:0;', +)) ->values(array( 'name' => 'comment_anonymous_forum', 'value' => 'i:0;', @@ -27562,6 +29686,10 @@ 'name' => 'comment_anonymous_page', 'value' => 'i:0;', )) +->values(array( + 'name' => 'comment_anonymous_test_content_type', + 'value' => 'i:0;', +)) ->values(array( 'name' => 'comment_article', 'value' => 's:1:"2";', @@ -27578,6 +29706,10 @@ 'name' => 'comment_default_mode_blog', 'value' => 'i:1;', )) +->values(array( + 'name' => 'comment_default_mode_et', + 'value' => 'i:1;', +)) ->values(array( 'name' => 'comment_default_mode_forum', 'value' => 'i:1;', @@ -27586,6 +29718,10 @@ 'name' => 'comment_default_mode_page', 'value' => 'i:1;', )) +->values(array( + 'name' => 'comment_default_mode_test_content_type', + 'value' => 'i:1;', +)) ->values(array( 'name' => 'comment_default_per_page_article', 'value' => 's:2:"50";', @@ -27594,6 +29730,10 @@ 'name' => 'comment_default_per_page_blog', 'value' => 's:2:"50";', )) +->values(array( + 'name' => 'comment_default_per_page_et', + 'value' => 's:2:"50";', +)) ->values(array( 'name' => 'comment_default_per_page_forum', 'value' => 's:2:"50";', @@ -27602,6 +29742,14 @@ 'name' => 'comment_default_per_page_page', 'value' => 's:2:"50";', )) +->values(array( + 'name' => 'comment_default_per_page_test_content_type', + 'value' => 's:2:"50";', +)) +->values(array( + 'name' => 'comment_et', + 'value' => 's:1:"2";', +)) ->values(array( 'name' => 'comment_form_location_article', 'value' => 'i:1;', @@ -27610,6 +29758,10 @@ 'name' => 'comment_form_location_blog', 'value' => 'i:1;', )) +->values(array( + 'name' => 'comment_form_location_et', + 'value' => 'i:1;', +)) ->values(array( 'name' => 'comment_form_location_forum', 'value' => 'i:1;', @@ -27618,6 +29770,10 @@ 'name' => 'comment_form_location_page', 'value' => 'i:1;', )) +->values(array( + 'name' => 'comment_form_location_test_content_type', + 'value' => 'i:1;', +)) ->values(array( 'name' => 'comment_forum', 'value' => 's:1:"2";', @@ -27634,6 +29790,10 @@ 'name' => 'comment_preview_blog', 'value' => 's:1:"1";', )) +->values(array( + 'name' => 'comment_preview_et', + 'value' => 's:1:"1";', +)) ->values(array( 'name' => 'comment_preview_forum', 'value' => 's:1:"1";', @@ -27642,6 +29802,10 @@ 'name' => 'comment_preview_page', 'value' => 's:1:"1";', )) +->values(array( + 'name' => 'comment_preview_test_content_type', + 'value' => 's:1:"1";', +)) ->values(array( 'name' => 'comment_subject_field_article', 'value' => 'i:1;', @@ -27650,6 +29814,10 @@ 'name' => 'comment_subject_field_blog', 'value' => 'i:1;', )) +->values(array( + 'name' => 'comment_subject_field_et', + 'value' => 'i:1;', +)) ->values(array( 'name' => 'comment_subject_field_forum', 'value' => 'i:1;', @@ -27658,6 +29826,14 @@ 'name' => 'comment_subject_field_page', 'value' => 'i:1;', )) +->values(array( + 'name' => 'comment_subject_field_test_content_type', + 'value' => 'i:1;', +)) +->values(array( + 'name' => 'comment_test_content_type', + 'value' => 's:1:"2";', +)) ->values(array( 'name' => 'configurable_timezones', 'value' => 'b:1;', @@ -27668,7 +29844,7 @@ )) ->values(array( 'name' => 'cron_last', - 'value' => 'i:1675411087;', + 'value' => 'i:1679731162;', )) ->values(array( 'name' => 'cron_threshold_error', @@ -27680,7 +29856,7 @@ )) ->values(array( 'name' => 'css_js_query_string', - 'value' => 's:6:"rphyrh";', + 'value' => 's:6:"rs2gzt";', )) ->values(array( 'name' => 'ctools_last_cron', @@ -27730,6 +29906,18 @@ 'name' => 'entity_cache_tables_created', 'value' => 'N;', )) +->values(array( + 'name' => 'entity_translation_entity_types', + 'value' => 'a:1:{s:4:"node";s:4:"node";}', +)) +->values(array( + 'name' => 'entity_translation_revision_enabled', + 'value' => 'b:1;', +)) +->values(array( + 'name' => 'entity_translation_taxonomy_autocomplete', + 'value' => 'b:1;', +)) ->values(array( 'name' => 'error_level', 'value' => 'i:1;', @@ -27872,7 +30060,7 @@ )) ->values(array( 'name' => 'javascript_parsed', - 'value' => 'a:9:{i:0;s:14:"misc/drupal.js";i:1;s:14:"misc/jquery.js";i:2;s:27:"misc/jquery-extend-3.4.0.js";i:3;s:44:"misc/jquery-html-prefilter-3.5.0-backport.js";i:4;s:19:"misc/jquery.once.js";i:5;s:24:"modules/system/system.js";i:6;s:12:"misc/form.js";s:10:"refresh:fr";s:7:"waiting";s:10:"refresh:is";s:7:"waiting";}', + 'value' => 'a:10:{i:0;s:14:"misc/drupal.js";i:1;s:14:"misc/jquery.js";i:2;s:27:"misc/jquery-extend-3.4.0.js";i:3;s:44:"misc/jquery-html-prefilter-3.5.0-backport.js";i:4;s:19:"misc/jquery.once.js";i:5;s:19:"misc/tableheader.js";i:6;s:12:"misc/form.js";i:7;s:16:"misc/collapse.js";s:10:"refresh:fr";s:7:"waiting";s:10:"refresh:is";s:7:"waiting";}', )) ->values(array( 'name' => 'language_content_type_article', @@ -27888,7 +30076,7 @@ )) ->values(array( 'name' => 'language_content_type_et', - 'value' => 's:1:"4";', + 'value' => 's:1:"0";', )) ->values(array( 'name' => 'language_content_type_forum', @@ -27900,7 +30088,7 @@ )) ->values(array( 'name' => 'language_content_type_test_content_type', - 'value' => 's:1:"4";', + 'value' => 's:1:"0";', )) ->values(array( 'name' => 'language_count', @@ -27924,7 +30112,7 @@ )) ->values(array( 'name' => 'language_types', - 'value' => 'a:3:{s:8:"language";b:1;s:16:"language_content";b:0;s:12:"language_url";b:0;}', + 'value' => 'a:3:{s:8:"language";b:1;s:16:"language_content";b:1;s:12:"language_url";b:0;}', )) ->values(array( 'name' => 'locale_language_negotiation_session_param', @@ -27960,7 +30148,7 @@ )) ->values(array( 'name' => 'menu_masks', - 'value' => 'a:33:{i:0;i:501;i:1;i:493;i:2;i:250;i:3;i:247;i:4;i:246;i:5;i:245;i:6;i:125;i:7;i:123;i:8;i:122;i:9;i:121;i:10;i:117;i:11;i:63;i:12;i:62;i:13;i:61;i:14;i:60;i:15;i:59;i:16;i:58;i:17;i:44;i:18;i:31;i:19;i:30;i:20;i:29;i:21;i:24;i:22;i:21;i:23;i:15;i:24;i:14;i:25;i:13;i:26;i:11;i:27;i:7;i:28;i:6;i:29;i:5;i:30;i:3;i:31;i:2;i:32;i:1;}', + 'value' => 'a:38:{i:0;i:501;i:1;i:493;i:2;i:250;i:3;i:247;i:4;i:246;i:5;i:245;i:6;i:238;i:7;i:125;i:8;i:123;i:9;i:122;i:10;i:121;i:11;i:119;i:12;i:117;i:13;i:63;i:14;i:62;i:15;i:61;i:16;i:60;i:17;i:59;i:18;i:58;i:19;i:44;i:20;i:31;i:21;i:30;i:22;i:29;i:23;i:26;i:24;i:24;i:25;i:22;i:26;i:21;i:27;i:15;i:28;i:14;i:29;i:13;i:30;i:11;i:31;i:10;i:32;i:7;i:33;i:6;i:34;i:5;i:35;i:3;i:36;i:2;i:37;i:1;}', )) ->values(array( 'name' => 'menu_options_article', @@ -27974,6 +30162,10 @@ 'name' => 'menu_options_book', 'value' => 'a:1:{i:0;s:9:"main-menu";}', )) +->values(array( + 'name' => 'menu_options_et', + 'value' => 'a:0:{}', +)) ->values(array( 'name' => 'menu_options_forum', 'value' => 'a:1:{i:0;s:9:"main-menu";}', @@ -27984,7 +30176,7 @@ )) ->values(array( 'name' => 'menu_options_test_content_type', - 'value' => 'a:4:{i:0;s:9:"main-menu";i:1;s:10:"management";i:2;s:10:"navigation";i:3;s:9:"user-menu";}', + 'value' => 'a:0:{}', )) ->values(array( 'name' => 'menu_override_parent_selector', @@ -28002,6 +30194,10 @@ 'name' => 'menu_parent_book', 'value' => 's:11:"main-menu:0";', )) +->values(array( + 'name' => 'menu_parent_et', + 'value' => 's:11:"main-menu:0";', +)) ->values(array( 'name' => 'menu_parent_forum', 'value' => 's:11:"main-menu:0";', @@ -28038,6 +30234,10 @@ 'name' => 'node_options_book', 'value' => 'a:2:{i:0;s:6:"status";i:1;s:8:"revision";}', )) +->values(array( + 'name' => 'node_options_et', + 'value' => 'a:2:{i:0;s:6:"status";i:1;s:7:"promote";}', +)) ->values(array( 'name' => 'node_options_forum', 'value' => 'a:1:{i:0;s:6:"status";}', @@ -28048,7 +30248,7 @@ )) ->values(array( 'name' => 'node_options_test_content_type', - 'value' => 'a:3:{i:0;s:6:"status";i:1;s:7:"promote";i:2;s:8:"revision";}', + 'value' => 'a:2:{i:0;s:6:"status";i:1;s:7:"promote";}', )) ->values(array( 'name' => 'node_preview_article', @@ -28058,6 +30258,10 @@ 'name' => 'node_preview_blog', 'value' => 's:1:"1";', )) +->values(array( + 'name' => 'node_preview_et', + 'value' => 's:1:"1";', +)) ->values(array( 'name' => 'node_preview_forum', 'value' => 's:1:"1";', @@ -28066,6 +30270,10 @@ 'name' => 'node_preview_page', 'value' => 's:1:"1";', )) +->values(array( + 'name' => 'node_preview_test_content_type', + 'value' => 's:1:"1";', +)) ->values(array( 'name' => 'node_rank_comments', 'value' => 's:1:"0";', @@ -28098,6 +30306,10 @@ 'name' => 'node_submitted_book', 'value' => 'i:1;', )) +->values(array( + 'name' => 'node_submitted_et', + 'value' => 'i:1;', +)) ->values(array( 'name' => 'node_submitted_forum', 'value' => 'i:1;', @@ -28108,7 +30320,7 @@ )) ->values(array( 'name' => 'node_submitted_test_content_type', - 'value' => 'i:0;', + 'value' => 'i:1;', )) ->values(array( 'name' => 'overlap_cjk', @@ -28134,6 +30346,10 @@ 'name' => 'preprocess_js', 'value' => 'i:0;', )) +->values(array( + 'name' => 'save_continue_et', + 'value' => 's:19:"Save and add fields";', +)) ->values(array( 'name' => 'save_continue_test_content_type', 'value' => 's:19:"Save and add fields";', @@ -28218,6 +30434,10 @@ 'name' => 'theme_seven_settings', 'value' => 'a:15:{s:11:"toggle_logo";i:1;s:11:"toggle_name";i:1;s:13:"toggle_slogan";i:1;s:24:"toggle_node_user_picture";i:1;s:27:"toggle_comment_user_picture";i:0;s:32:"toggle_comment_user_verification";i:1;s:14:"toggle_favicon";i:1;s:16:"toggle_main_menu";i:1;s:21:"toggle_secondary_menu";i:0;s:12:"default_logo";i:1;s:9:"logo_path";s:0:"";s:11:"logo_upload";s:0:"";s:15:"default_favicon";i:1;s:12:"favicon_path";s:0:"";s:14:"favicon_upload";s:0:"";}', )) +->values(array( + 'name' => 'translation_language_type', + 'value' => 's:16:"language_content";', +)) ->values(array( 'name' => 'user_admin_role', 'value' => 's:1:"3";', @@ -28366,6 +30586,10 @@ 'name' => 'user_signatures', 'value' => 'i:0;', )) +->values(array( + 'name' => 'variable_module_list', + 'value' => 'a:2:{s:4:"i18n";a:1:{i:0;s:18:"i18n_language_list";}s:11:"i18n_string";a:7:{i:0;s:33:"i18n_string_translate_langcode_en";i:1;s:33:"i18n_string_translate_langcode_fr";i:2;s:33:"i18n_string_translate_langcode_is";i:3;s:27:"i18n_string_allowed_formats";i:4;s:27:"i18n_string_source_language";i:5;s:17:"i18n_string_debug";i:6;s:39:"i18n_string_textgroup_class_[textgroup]";}}', +)) ->execute(); // Reset the SQL mode. diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/Upgrade6Test.php b/core/modules/forum/tests/src/Functional/migrate_drupal/d6/Upgrade6Test.php index a6993ee6d422269d147a7f58d1e8412e579d22cf..f8ba9e6f9b61bb9b5d5cf74b26a0d93124303048 100644 --- a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/Upgrade6Test.php +++ b/core/modules/forum/tests/src/Functional/migrate_drupal/d6/Upgrade6Test.php @@ -48,6 +48,8 @@ protected function getSourceBasePath() { */ protected function getEntityCounts() { return [ + 'action' => 27, + 'base_field_override' => 22, 'block' => 33, 'block_content' => 1, 'block_content_type' => 1, @@ -55,32 +57,30 @@ protected function getEntityCounts() { 'comment_type' => 8, 'contact_form' => 2, 'contact_message' => 0, + 'date_format' => 12, 'editor' => 2, - 'field_config' => 38, - 'field_storage_config' => 22, - 'file' => 2, + 'entity_form_display' => 18, + 'entity_form_mode' => 1, + 'entity_view_display' => 34, + 'entity_view_mode' => 11, + 'field_config' => 41, + 'field_storage_config' => 25, + 'file' => 1, 'filter_format' => 7, 'image_style' => 6, - 'node' => 2, + 'menu' => 8, + 'menu_link_content' => 1, + 'node' => 3, 'node_type' => 7, + 'path_alias' => 4, 'search_page' => 3, 'shortcut' => 2, 'shortcut_set' => 1, - 'action' => 27, - 'menu' => 8, - 'path_alias' => 4, - 'taxonomy_term' => 3, - 'taxonomy_vocabulary' => 2, + 'taxonomy_term' => 7, + 'taxonomy_vocabulary' => 4, 'user' => 3, 'user_role' => 4, - 'menu_link_content' => 1, 'view' => 14, - 'date_format' => 12, - 'entity_form_display' => 18, - 'entity_form_mode' => 1, - 'entity_view_display' => 31, - 'entity_view_mode' => 11, - 'base_field_override' => 22, ]; } @@ -88,15 +88,7 @@ protected function getEntityCounts() { * {@inheritdoc} */ protected function getEntityCountsIncremental() { - $counts = $this->getEntityCounts(); - $counts['block_content'] = 3; - $counts['comment'] = 9; - $counts['file'] = 8; - $counts['menu_link_content'] = 11; - $counts['node'] = 19; - $counts['taxonomy_term'] = 16; - $counts['user'] = 8; - return $counts; + return []; } /** @@ -124,6 +116,7 @@ protected function getAvailablePaths() { 'Search', 'System', 'Taxonomy', + 'Text', 'Upload', 'User', 'Variable admin', diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/html-1.txt b/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/html-1.txt deleted file mode 100644 index 93e18a7177f4127fb1f230f2083b4c563ecd4cdc..0000000000000000000000000000000000000000 --- a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/html-1.txt +++ /dev/null @@ -1 +0,0 @@ -<h1>Test HTML</h1> diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-1.png b/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-1.png deleted file mode 100644 index 09e64d6edbc2440d585bbf463c727f51f9b294b7..0000000000000000000000000000000000000000 --- a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-1.png +++ /dev/null @@ -1,179 +0,0 @@ -‰PNG - -��� IHDR��h���ð����Ì¡“��™dIDATx^d¼÷¯eו&ö}kï{ß»ïUb%†*†¢˜%RE…VËê– ØîqÃØ° þaÜ°ÝðŸäßø§f<îi³[j©[‘-±EŠÅTÌXéUxéÞ{öú{³ªnØw‡¾wñ¯ÿù\�@$ ��HD�$HB"…>dz P�1=bÿæ> rr€„”(˜*Ö'!Ðã�(> ’±m9c¿ ¿ÿ¿ÍæB1Ša�4ËÂôô%-Þ)–èCˆ¤TÎÔ'% b·Ú}gãÔ¥X)p9òpÍ¡ÁÍ3+ÅÜa I7 -÷§¤»9"ÏepS3‹S$%À—h„‹‹Qy„Rš»Ëa¡s¯$Iyca“€³Uªah¢™ZsÔ*+h¹�ÈÝ¥äj°`‹K.I�Õ@—DP åF¥„H„ôRŒqŽ¶v¨1Ž4#P&BËE5™Qßæ+ÿ̓A 0ALJº`æ°g‰àä)\€ÅÇ’ÅaBìã;0Mð|+`QS -¡Â ÈQJs9EÒPÌA„$ä"ÅY¥€$TH0%3¹SJ‘Pè ɤµŒr‡—RZ<E”pp&ßÚAZ…C€š2cÌoqâ.éИ2ÿûŠRAÆá.¥¼“´Rà–¿Uh¸— ]–Ž©)¹6H“d ¨Îì)"Â(9O—�5yj£ÁQ‘h�ÌJ¡QÂ&òü)$—@L*‰“D—¼A‚¤IÐ$ùc.3¢„Z“Ü}„BÖb”Ñ$L�s*Ï!0ø]$Ýi YÐ� (M)ˆ`¾•‚0Ò ˆ`’æ’r`FJìsº JYE¨¯ÁG.dC))AAZ–jwÊZ…Ë̤òJ$¾‘¡×A’»‚p‰Tè`þÀRc133‚.÷æt'á0ÒŒe -YJ´nŠC:âh…jNÔ”M²B4’Dˆˆ…î#Ÿ$OZHDV0J(œBÃ(1t{|è©NÊu\ - �ãgr H£y<ñ%A®˜A„SòR¨æ h0ys –°6y#�5%.'_Óº+45&悲 -š îî-AÐH#]‰\1¥�°yЂbT1€Å`H‹or™!Ví>p›Q›$œ4ˆo<G†Í‹õÉ8<¨n•ìU-•)‰±nôA ¥dÐ$°˜8£\ò•&ðcr’Rƒ‰/€£?F -…’¸Ýr—ƒ,¦b$û - (yùMµ µV+åƒ -¦f+‰&9€‡Ë)Ò:.䤈Áà‹;MrH&Ñä´$3aÐHF€0ÀAK©CÎ)ŒF^µ´0мҕR:ØQîaH†† &™@ÌœSÓã€KÊSBN3X“ B׃#¤6PÍ%ƒPEšQLÀŒµáBÀH)M:\4†¨:UR¢»9J Ƈ¥+¹9;y cp†€ÇÎå¹hhf°4£wÔadpR4È;î -<ÀØBa“UŠ¤\’³pN"Ÿp°Ì¤Á›T‚ëdl5ùp¹=&BHq&43£$8pPTô'1ÁbòËPÉ juVÚ¡£°Žf �'Ýr&ØHżI`á“E" 2HZ‰’œfˆ9a�u7Ðò{h6+½UŠÅE.Ö™êa†UBCJD¥9! ‚s:~öàˆÓ9Ho3Ab)¦ÑŸk‚Ò(4,<"ƒäkñmŒ,h(’F0p?i_Qék¸*Ò¢�1Ü"vcr‹¤#M³ eEô³C`¬aEDâ�õIb¸%š`$G«(Âø�4¸ - ÿ*¥Z¢!�¢š·æ¡ÆÜ͈ –»CŠ(±ÚH¼’4“af¢(¹¼ÅF3ZâÄÊá…)u@¼°ƒ¤ jÍÃÕ!›¹×n0‘ا’cœI*ÇIt)ŽDò0ƒ¤Dƒ{Z£�µnÅUª;PÕR¤¡u3cdˆŽ¬¬j^Šc£AÒÌLƒ(9@X[ :î FÒH¹»»B3¤N'ŽkHãQ‰ -pŦx�8Iq² I…€;áUÊD-ÅBÌrâ„ÍA ÜRk,V ä+ñ�{RAÞÏšŒ7�éa²‚Æô4-•¾˜dFoä”)t¨tâl{±Ú[zÕà6Úl†aï€DDsb( "!Ô=ÅJ”j`â8âñø}ÂP�†Çþº¥UíHJ3¤æ‹?y÷#w4´38ˆIµÝ&’“¾8¾w/|"R.Bs{’W¸,Äv¾14¾ÁWþÅýŒf ëèP¸Hc>¥‘~ÈÀ‚ðëè@)t€d,ÀbIo(t7Ãb¾>\º™j}805rÑÛf(*f2ºJP1hL(¢/ÀècDuKä„ÊÀŒƒ¸\h %Ëó{\j'ÿhçÕU1Š…M+ϹÐÄäSPB¦êó¯œøõ=Ù ÿèüV+®&KŸÖè¿«˜B>À…xD‚B£ŠxŒYz®pæP8ir4�L^Y12s…@߯UjÍEI šˆa(ŸÛ¾´4%Ü#X¨›¸2ÔFœÖcd<LÚÐVó¢0ÍâVS QvwÑ…®“ß·ÛæV¬k+(j.Œ'c¬BÐ�[}òäS¿f¦ß’§ÀŒÍ0lÞwþì½÷®2YÎ HrfÌÕéܬ¨cHט ’hL6O9AÏx+¥ÂÜ�¡P1Ü`Eƒ4"¤Çó@2æ_ÞûÄÌP0»åyNi+æ²ñä¶L3‚*åèâzØ7x‘Ê š¹Î|ÿÈ?Ô…Å FºbC·W„š5 ºõÑÓ¯lÄ(B¼;cÏ=]ÿîAîƒqdÁHÀ�»é ¥Ï éL dtR^ \„œB<Á’陕ˆ7ÉÖ\h¦¡¬jÊ8äre~u‚ÉÉ)„Ô¥ -Tr? sžzæ—ׄ`8»`bÕelà‰?~à§WëÑÞÈå€\&€Æ¸±š -W¯ŸúÚ%g!WB¬îl§¾õ¥k¿úôð)R%Z$Ñ}HuŒèá‡@‹ñ!ú*p¥) ©rr8àî(&ƒ�4“4"šrešC0¬lHTC…FŠ®ÜŽMÙÊF儤 ÖXÚÝ#î8 ±¾ùùëw’^0ÿÆ¿xÏÛlˆyÒŸa :dXL—d$)?õå›ïêlï—þõß�US–Ô°xñÉß¼vK¬K•u@µKTò=C.‘£YÀ(ÕLõô`œ$Ñ‚žÜ!5i•�§äOΓId¸,8ì‹Ù’2…'M’‰e’³eåÁG c™|WZtœ�Ìï®N!v†vv‡Ú˜c«îüâoßZ?(†ê MÁMNK &X¸€³G—Puoöù›Ï^ýôÐR`�ز<ñÖߊ«Y…˜-ขeŠÕSžM©FtP·Ü˜qG†b!àÆ ¥è�=¤PJ&�ù -è¬ø¹h†Æõ¶J”¤”YëFÀÓšŒ‘º&œs‚¡ª€ÚrÁˆúÅáŽg^ÆŠÏýñ•×ÔD‰h.=ro‡ƒA-Gt¸5¶âµî[àå.\¿çROª—²†ï¼ºšÁA_G@» ÚÜ=)’ú™ñ)ŒOFÛ¯¤ KC4¥…‡A´�Ô$F@Èé\J¯=ÈEÃzím0®)ššÔ¢Øj0A°KéÛAÌ%Ñ<iëÝ#£dÑÖò<—øÆ-~s#4À¾vpô¥_Ý2`)Ó;i™‹»ös�ÀÞÅçî¿ë=ã/Wƒ®íœ¸Üæ‚—âøÃkE©½®*…̽{Ä-IÆü¥Â †¡ €žlwR=zïN€Fë&u&B€( oHr+@+P‚_ðWä0óUñ·+y²xrîbºa}c¡u ³´1#'TŸ~öWïzPŸZÝ<}ßb‹Ë†b¹@B[ -ðX»4¨¨¹�¼~þÄ#—ö(€RØî‡Ïm¾¿,ÄЪ"])˜´IS FHAJŽç¢¥…£šaa„Àä‚œô½p¥@™’ÒA®2:¥)‡¸¨tĈ“Ç]{˜ù ¡k_ÒØy4ºW6îÆôÒbm$˜ÃO}óðËŒ6lž9xéQ}úþ—(Äck/UlÇž½õ©¸¨£gY×{wþ`O]"CÕwí[_zãÒÊÝ› ë9*$ ûdt2æÝbt"¡E Í/¤HxÒ®³fÔSQ“ˆàÒRcŠ÷ƒ‚Ö|³8Ô�‰…ÊÜPüìó}œ¶%‘€'™%’ͪ7‘b·ðËű[tÀÉa>¦BSöð¹_^›·L¸ú¿ùàbxíÍ ïN5h›Ïœ¹xUÎÍc‡›ûe{î`¢Óêê§?m�B¯"áåW~ð寞{ûŠY}D¨¨s"k !…&E3öÐ+%^džõ¡@mSõž™"šÓòǽ^ Yr—�;fá¦I\nÌg<x¶|þÉ ®D±h+?þï¼üo?Î ¤ 0ÐLæ~âÅã >ÿÝ’,"\oß÷iÄ?äFa/þ´ãíþ«Ñ3<òâ—ÞúÁCïhå˜+»gÿì‹cß\\¼¾‚án«Íç'f-Ãmo«K»gÙ8‘dP½÷ï¼ðòOwJpˬ -oé ÈÛ-rNþ3Sæ6 L$¦ÂKpDzÅ=«Ï0—ÁF³Ú“%)µp=y˜4¾bY¶žœ}¸sÿó~y5½8¿ÿß»ñûÖ©kÞ‹ÕâOZÕÖš=ùôõ×yúçþn¿–f^UWàöI¹Ì\î±jìËNžúøvñÔ懞ڕK°\^ÐÀïÝ?»÷§ú›ÝzvïÀðÕºnë ÑB³áÎ#›‡ž¢“9SéæÏ¿yî†GlÔý9Ö¤J%b¸µ^úFk";H‹@A§S²0,Â$8½ã{øœb¨ž B®IÐ-üé§??Ðo~ûåºÃDÛúê‰ýåùç_?>/tÐ]±5fê2ÓìéG~óÑ\~mÿXþcD µÍ|µ7³Šqg6_§%ÊÉÍK ±ÏúÀËW_ý#Ù¢ D½øžýø¹·ÿî`öå§|HÛØœyÝZ E§ac8¼uî¾»Žžù@“[Õã3†xºX;Řœ„éå`Àhðì°qôö‡*Æ�go±$koÚ!|*4aló’z £Ø¶W¿Ù«j·þý—ÿ¶¡ò$þïsÃWïýþÙ³b ˆ4ƒC#ï8X=ùлWŽ ÙæüØ·n¾Wê0ǶaÕnßwô¬Ìüêα2XnH³ƒÛrsбmlsÉùà%ŽG¬žxéÚ¾¼ºgG¿¼9ˆó²nÃÆæÝ=•pæÖÅw6¤G]Zií¾'ÿGÌDŸÊ×D³”s(Ã:=”™QòÒ]'*i-Œí&+ÆG -@'\S2MÕ8ܽx³¸ÃvÞø~X*ÐxöÍ»N_xÿòC/Þw»„2lק냛W›Míîåu×zîO<pÍ·8sroëñÅj±:|øè`R–˜¶84XD7µžÞ~ø±º{Ð*(—?ýòÇ—*oBO»Ó¼6®7ugU-Šu}›6£u4¬pÿ]xëb2÷‡¨°"'Lj¶`òJ&Ç9hañ6'… ÒàLìi*¤%e®I¢!’Iƒ“&P.Ï<+…û·ïn¢4c»¹¾pu>”õãíO–ßï9ö£æaÆBÈRál˜?PlÛ6›ÏÖ_hß4³cO¾ó‘¶}áô|ïû|u={ä{³û÷)A’«Îl…:AhõÁgO=û/-®7C¡Ã7¾ñâð/O.ŽrX~ó‰[ÇèûÛ³gŽ\½:¿wÈâµÐ4k<ÔfáP$bÌû/Û×ÿÝ“¯½ºWä#`E[TK‚gË µZRt,ü_š©z–då‚ÉMÁ%+n�™ÓÎb$¤8A .FòÝedLs/îÆpýUµ¾'¬Õà7úÐ1l>ý³ÕƉ?Ö½c·ï|ùãY• ÄÃlEYišÍ«qãÀ�ÚpxÂ6…úÈüÆö²}°ñ>>ø_íl¾vý¿>¶œ Fª²xÛÜ(3Ï4ÊÝË7þÕ¿ÿäüÑÛKÀ¬ÍNþòºn}øØÕóþå…oùÆKvúÍ|öÎÿgu¾ý«÷—,Ëp°:ƒÆF9 ˜·ÂG¾óÜG?øp5#c’R4иœ²PEcË¡»d`&ÇƼ¡1èY@“S^@î ¸Ì>#—3å•Gtðir¹@\FïU'6ˆ¡n©nlȾâ;Û>þ†Žbý¥Ö@ k—¯-\=Ñ©›ÏnÍ@ 'Oηn5ìc߬~öé—®Öû×À±ÛŸœg·"ßv¶O”6÷ „yb¸~ïæ‰ÝnÞð&Íf»»q¿¾üùÿ¼ûü±ÝíüÙ;2â_ýÖüvý-�±pVŒ¡Âm±Ú~æ;õïs‡óÑ'A¨,B¯É»µ#Q,LB0Irôba$o-&ňޘ*Lila&F×@‚™z3„?pÔ Í0Ûº6«ë/ý£]k;uÇ}wç«Gî˜Ül€Ì K¸µË?uï€hÇ¿vãì#7ÉáÚ‰ózk«zîÎO¿zæ³;«Õûœ‰ÖÁ‡Ûûÿ~PV„ýÈÖº.w¯](,tm¿sskÿø©×ß·UÖ?çY?q¬lí_zWWßüîÏ ,‹zˆ¥´Xžzñ™õ«¯Ã(œL*I°Ñ#ìU -t¥#1y!L®Á9g&Uì…“DwØh LioïAgÌ�‰¶Ê - áäê‹"½ðØ«2?À=q¸Q.üzÞ -È¡4Wõ€i3]ûÝßyg§¾tð£váM‡ßüøËç.~êøøÆÞ݃G¿|¸³·Ú9sow§Ñl÷ê³Þ™5‚´¶\nàîñ.ß -à(;»KÕ5ßXÕ•N\3¬Y6.ÿè678?œ¹L€s[›Â$xù¹›¿øt"½:Ò(°‚ì �Lûl‚”2 -¨ íí8 8bƒ0Zƒ`L|†B=œENŽsiLó ‘–µÁÔŠ¨>ú‘¬q±¼¼¬eŸÃšþùácoø¬ÿÚy[¯¦ùÞW”è(ëko?úg{»{7?Û»üÔ¹KõÈþ7/üÉîrýù{ËÙ¥«ÛÛgžZÞº3pˆÃp÷s/¾7Ìå±ÍÓGþìÌ#÷ø:p¯GŽ\©û¾òîÝEÛZ_;8wim{7çëÝ]·*puf{鲂 -wÐðÔóW~Éé&+¡ñ"F”VSô’ µLo¢ wµÞ�ë¹eÂLáÊÌ¥U9&{ÿ¾QÁe‡$z~Ž¦"ÝE5–kêÆÑS¯ÎÛF9Üá¬ÝÞ×lÛoÝ{ì›óÁ?»®Z7*æ·×Í\ª¾Tûð“£X �Þ}êù[ò¢½×/Î7Ö÷f´æ˽/þiæf%›Ç -o¼ñ'ßý‡eu‚´Çùù³Ÿ½c¯Ý¨æ‚kóî²ìþì&P÷ÞØ.Cû[®lp³_µÓÖ Îpw(&8,g–¿ºLUÓ|+£2Á ¾ò/HÆ;#ܧâ'„žÇƒ1ëw$”_Å»ü„,ÖT )hm1¬#F/†\ò8u¿GRÀá»_û߯›ù…ïÞùð÷fëÅ_àls/O|º?÷õŸ~çß¼iMÊ@DªáIΟ¾xp°”¬Ò{s‡ TY¶úÝoÿíkÄÜ÷64=v°¤ ùùÿê§?söVW²A�Ãë¶úüé_Üìå—þê²×(@7¬þdû‡K“÷ª%&*oU” -Ÿ®ÖB÷Hµ´zFkòûã0x‚ñ`ÁA€½…Äø©º¹UncŠD4ƒù¥µY±;×n~H4,/Þ\ÕÖ¿ o>¥A¦¬ë O‰O$‰KWB `žaÖ;bvøƹÞ$±ºÍ̱«J�òÍbó׫ ©ò[{cv´zty{°&ƒÓ]Ø]H2S¦ü¡¹Iõ!F⩾™bO“ì ³3ÒÔâu6ö–Ë sfZìÖL]’SÉ(/åÃïз~ÔVm¬þþ`%ÈÄF–/^¹:È©mªï,>ë2 J.€)Lis¨»ÿç·_Z½¿P V„lPl(€0~xð‰(«C“¸yôv«zDj¾sîþÏ-;n»‘"E¤×áééy;£Ê”�"”"ÙYÑve阓º›„NÁÌ$Ó<) ->Øe37sè‹ÝRnsFU7sƒù‡¦–ÌD§‚uÙ£w·r’‡Tà´Ç;?{éëo¢k £¡†]ñ¶˜·ÃÚЧÐt—&3b˜<ú©ˆ±…ßüæ§w÷!uá‘€î WHû·Y¢KPf€FLæBÏOH’)5kˆzé_A_HÔµ`Nc¨@¡ÑÍg¾ `s�ázm¢.£:[CS(:¥ÝâM¯´æ·²¬‡±_Ïï½vì;w?"…* ˜<æ¨V6m¼úüÈÖÞzê0?üøÛ/üêÀàSù4¹þ?c˜›Ìz}—h’œÈŠ"9ˆŽýîcáÞn‘_ê*«ê… ¼§ùh9ÉÜ]¤£¶1XÖ¤¤ÚdN/>"™Ô}#LŒ·ƒ¹@’ÓÖÀŽQ”™¿pé*{ŽQù“‡žyç³Ñ³W7;ÖFå5a½ñ½/ýèã’=ë`}çÊOZ6BŠx±aéïý¿Ý¤’0=# ý¡É5UÀÜnA¿d;‰4Gô4Ï–ú©uĤbY]4Nh3•¸@:O;»ÝbÝ)êìËåc>Þµ"ùTkV6ÐdEÇrK¡æ - -d`]Œ%Z@æ´¦ìô÷ì﯃F1†åý~ë¯Æl±Ë$3p^–‡zŸ¯üwç;â):³ð)%S|“Òé™ê1ÊWnÓÅØZò?)“>ât¤Øa ë·Åâ}/É,¡?SY§{‚ÿÄ„¨Ž Ø1ñdi ŸøI“SÉ ¸%¡{LË¥!ç¾·ÿ“»€ÀÀ/s¯8÷òO¯ ´qŒ�šw½[;D‚–{A¢)‚¼vÊ\š(oiÀ˜‡qYž¦„MbM4&»&@ñºÍI¨Mb|@:{ÔWeÐÉæN=U‚§¢à˜Æ$E”œ—$dš‘}–|çÍOÚÔ¿>%ˆQ½_ì‹csÓÀO®ºÏš&¼r¹ùdZ™g$j�3бBïÅ©Q®™ÒÄé -øÈ+ÐœÖ ™§±ÞÞžLïÁ ¯â5 Nô‚ƒÌU$v8JÂkR¶ü¶È'£#$e LJ £:ŒÇI;vA„ÆÅî]¾S„™usÒ±_ƒŠyò:MS§Ât³�óÐ,{QJÒÔ¿äŠ7¢Éö'ÏÇ)g'žÜ uà :°øôVI¨ £hdC§UÿNétpÊR†EÂd…º››QWG^Lj%Ð0q˜]¥&uçͶ–žíãÅÑMhŠ#‘(Á8‚¯üåÃÓeU#Úqgz<†æ!÷eO¾É#“ìy?€fÈNÚ”>0 ’å“£# ,¨FMÙ I…ÎŽShœ ^à‘•‹¦sQɬ™C$(΂•&sA²ž‰LhPn}d¼+ùÖ±%ÃC‹í÷kΚÅRžS)c^Pâü›¿|JÖF¿ÈAÆh”Ö„8‡Ü TQÒË’\fdÇ¿ØR*aG -ôÈý0‰Ñ‰¢ÈO§øRpóN²ƒ2VŠ$¨0ñ%‘ÃVV`\Ò#<ꊑ«Š…,q¨ÛË^‘VJƈéæ°;ÙU*õ]="”²-R±R—6¼_ÕÖPÚvÒèÙ £Õâ11Rû˜Ð -rňŒ™†3Hpˆj`÷ùB«º–jR]É -6›4M˜ÚåY‹—‘Nê&6fªæXÌï²®H¢yC»ÃKiG×»¶‚dTc'KOkD¿ä)¸Ü'hI¬›hN¢O=òŠ )å— Y“ô÷˜žHͦm‘43‚Êàªw¨“VŒHWÕ»ÊM{ÊÄ_/t%d3¥¾û“)•‰²ôîè baÌYé¦Ê`=8Ñ<zâÛ¡›‡ï/MY§`Ì3üKv¼`’Õ)”DI¢š„ÉnH®&Ñ?9*lì˜õ¤’Ð9$„q&Ñ\™r䚤“ YM ê)4™BÐ(M -ŒÉqå$#¨®)1’i¯TR1& ¢ž‚ï8ÝûQöb›'Hƒ÷…º·á'Ný¢¤ŠÎ<~‡…ï�hïð)?Eò7Ù*ßÅD–ðÓWQYfÁQBÌt¨¥¡‰].’ 4Z:Ò’eb‹ikšŒ½V X˼“à~¶Õ c³ŒEE”í“u`ÉÙpúÉ3Ÿœ|õîÌQ䉖t1mM]ÏEë‚6ÉÀ½§7טzRãûþ—þÀv*°¸|)¥uaŽ)Û;ºÓšÉ«ä.™¥ÑŽ9’Y£IÐM&ZŸðd9I2D²hêIJIp—¦ôk×*NÁ#A1†0)’Ú@¹àæñs÷2<ùÈÞÞ'§êª(É–³SŸ¹öÞZjµÙF•yòQ2‡Š/–ø짯º0H– rwÕÖªû˜ÎiÛÙ'ÄË4LlžG÷´)²° -o„DQä\{êsp“Ìï³x”ùtÉ8îÝV)$guƇì”îᯔ‹Aî¡àTnÆ §¿ý¯7_ÂÑÓKΡÙpö±#w/Þ:`cmóÍå>楄Ö0ô˜µ¡¸*™µç/î<~Õ‚hŠ¤ÒºŒ„h(Lõð {öI¹Ñn(%4lS¾DqÅà¤kªT§¥0Fz‹(ÉOa±LóÑâ$£=èmIÀQ$ÙÛ„IrÕÜIfx²ƒÜÒg6ÐafÖ’˜IýÇ[-[›®¦2œºpû½]Tøâ€?BûäT™¸î•(„›,vå•þÚaIó9wTo¦Ò`Êz=,Ù³Ü4Æi -ê2„pxšœü§÷oLmöH¶ÄŒÉGˆÈq’H‚(`1ÈZ ©÷‚K•A݃îÖHá%;v‹#¨9è„'ŵÛñÜ ÐA]Z¾ö¹{ۛ̚AíØ—?/U(ZÍÏ]øìÒÙ®«3ötœ¾qúîÝ<#TÞ/¹ikÐ`>k«Dd0ˆÑ&£NÎ4Ýh%£žCÇídMc˜OÞʪyÚ^‰5°÷ñ§3nò¡5ʃŸ2pš˜�̽£N|”¡Û&ác¿.©·~d ‰ô-9¥Ô¦8™Vv~={ÚÎ,V¥8ˆÅ齈…뱧ÞûL—n¬«ãLõÔÑ“³ºñ››5ñOÞàS]4–Oì|âKï�•Ç&D¦±#錢Q ÑaÆ© ‹v4I1WâÕÑÁÙÈK½Ó•«B²˜Z¬ …<'É@Ô;ë'ç–ØsñÚdÏ|’œ:Ô94I ÒŠÏönœþìü“_\‘Q¶ûñç®]=h”Ÿß½ìõ©[_˜ Á@º“ÐìÌn^_Þ1¹xàE8°xîÜPL÷í¾×VnË÷ÂÂÉ…Úre˜ zV“e t®f’M¸6ÊKì¶çãÄ1þ©ðaºßC¸ÉQŠH·RÌ£ƒ«9hÁ^´‘Æ”w)ëÌò\({ã%ļàBF#aÝñÞ.@ Ì$.¬Þ6«iûàGŽ>÷èwh½{å¡óO}úÁ^Y?öóe{ô»?¹J‡7/J\Úûñ.JÙÚ03*• ]<|÷ãV6ÊãÛwîÛ(<Ø\ËV³— `,Dw6¸‘Ëjƒûlí3Bi_Ô|îPÔFàÑœ.Ÿ -.£ÅÓÈKÒf4Hn—X’bèˆ!4õœ²ÃC AxóðÇ FšÑ,¨àÙÑJGñÁÔ›=Ùéžäoëê«ÛøÑ÷Ÿý§aM”»7ß9þüòî›»Gn¶¿W?;ÄÊ[•‰À~ãA -æ«;W>^öüvª^ÛÝ]Ã}þë“(n6Gyf®#ËyTlÊŒk›m½ÙÊf[³˜cX9,pYþÇ \/‹5S?2 ® -*M]º-Ä ÿsp§9HKî1\¹ô8Ýy5fhFIŒ)Ü¡ÑÚfu,ÀÓ]##¹ã™pî5™)†˜:2``eÁþ3¿úÜlw^ÖCÝh7òЋü›k/|ðƒåÛÆ¢y6@ªÜ–V÷VÃrÿ ¡˜ÂIgÏyôÜ>†ªUÑÊ+·VbÛŒ¼)¶œ©Š[¾©•6A :ýÀúÆî!{ùÌ[î4Áè)èaˆç®YÑšîUЄZ±ºIeþ¡G©nfå¢b³nÑ”Ý dPÀÝ]Ža£ÀÉvÿa_¼kY}ÿø±#m½imfP1]ûñËßúùÓÏ߸ù2涜ÝcxÚòÖPH3Üç¤À@‡õ}*”sÁpöìÞÎŽbX©•V¨m\»Ôl(æ|ü™Ïî;úÎy-u®-¿z�˜8šAšµ4zS…{F0F’ ¤¥ÞŽ„ŒVI -\aw$»"âÏD‰–Y 1Wd¸ÕkVb Îô<È”gÇ@LKo8Üݨ7Öß9÷æ …–úîówß.wžœÃµšŸ¸4º¨+”'fü¡s;î‡'ê’�Î~õâòу]eEüÉ‹’†òØëƒ ÁôøC¯üýæ3ÇlqdQÛÆVµÙêÆ - .—çõ^T¨…F“F" —Œð±ŽÂÑ7³ñŠlY¼ÈMKM$˜`’bqæ8Iù&’SéQáO©9¤e1m—µ/ÿäV3Q¤ƒÏž}ú¢c]ïk¤n|B¯²‚ͺ:`Aÿ{h.£77n¼ôùïO=¼±ë€Yã±+ïëíç|óó"Çʈ“gÞøô¿Øzk½xüþ#3¿Çó·×|¹>\¯P"+¤Dª!Ò¤eVôüƒ`B.B,ýVŽ.·ÌÿJ0Ab…"v–ä‚4332`Æ!‚œ)b°’Ðœ‰^A=¼ux¿òi•aA#tgµ=ñÒùvk÷觬M€Èç|dxíECÝ6šv~Ù&‰(îÀ&2XŒ‘ÑIt׽óïT±ÓðÈÖÅa½òåƃ‡×EÜ9³"6¿}ÿß¼©R¸6¬Ïßúâ¿<ýÃÙá¥[í`ÿø?¿Øf„Ë#FìQZI;ÖTUa•ôÉ—’àÅÝ -áiËÐ}@õD*³ç‰Þ\ K1•Ù)l€œ™E EÖ*ó›i,0EZ�ŠQºq„Pêžhúðã¡ g¾~ê6²qªœYýðÒ¡Õµ©%©Cp%fËËèÏÍ“S üßݽÿƒé+Úâ…ÝͺØüÚçwZY_>úÜËzþ·ï»ÿÄ{ƒP‡³WþÓsÿËEÃu/ïÌý½»4ÕÔÐs?”·&‹âl®ÙË¡ìf€äJ¿Ÿi—J�A’™f™›cIŒ§ÒsȉFö´€“â �ÅhÅØ#“Ëc -@ l¨V¬Üùå@µÐƒ?€[]76XDÈšÁ”ºA¡”õBIjP7g{·ïœZÉJ:þ…ÈþÉÖuýñÓçßyè´½ôèÆë63ëÆ™²õ××MÎ"© ‡ý®ßX™Š"R赺*pªaªÓ>–µàb(p -ÄKŒ«t¡ $[‚Y!L.¹äd¤U‘E\£Œùô¤{j³a=ïKèì¤h·ç*Ù ç(3÷*E0d€ÉMNiš1(/›OlìœÎWMµã5iÀÆàœ ’v?yòú3«£—¯Üœ[‡{ï¿3_4£$ǽû7àS:6ô‹ Κ™_΀¾)È4UFkJ�2ÇF)F9å1åû«£ÀA‡Ð4Œá -)£ÁJ%4ÝÍOÿ15`ªšKPaš_"¯AÛ™0À -Š™sUlˆRemÊg÷fTj%æB %Û¯§f·Ž«.woß=Ø9u¸Óp¨¹Û‘Æ×Ô•ígm9\º´6l,öZ«»ï}åk_Ü™Í7ö©5ýÚÃh´@Bö#IS¦õÂUþÍ_>:]�c~mÝ>}-ÆÖ]dìÙHX\4d¸9]Pöâ‚Š<f3¥ã`}DZ¦ b¿QK{ª~D7i‚irR05Ëð=\¦Õ×/ü¯eæB³ÔÁ3 ÊxH¦ÁÚÊæm¨5V85ÛßÞ°Ù±å‡/,ÿÉÁç·~yê?ÿ‡wݯ/>ý·_Ÿ½}iqü¬]¿|ÈçϾrêÑE)ýw@Ñ_üúÿv€©‰˜ñZJ5uÕïüUH4²Ð%8G�¦¨Ä4’…Q~àÈ6â@¹Q° S: Ä@ÔÒˆ@,#²+0Í¡s’_!‘9ÿ•O—è‘fr îD1‹™Ötµ›jhq^ ->ê3AVÙÔVÃzcfeð»>ìrhµ¶_™†‹_9óÔíK®Á<óÄÛwÿáì£Ïmîvéî�ìlܼ53 ©�´ae[»Tßsf!MéË-|à+ÿýÃ�‚NƒàŒ‡Ë78Ì@8,+T(ÉE]8$š -³e[”Ãu5ÙxtÀH1ÀÉ4½d’˜Ì^T'§f{pÈÁ^cºl†ˆCåÇ¿òZk¥HÈɈ©æëŽBäË¥Ùà›FÂiMÖœFc3¬·üÖÏ?(äÑo?zçwå>]k å³íÛFܳmúôù‹wI¤ÚÐ L6Gr}îÿâ+ÿí9€œrÛ=°‘ãOÌä„“V Wb@Š>äÆ)ÔFI€sXÙó³`›å|Y N²b¼‘Ïq‡9¿§ÉU–ÂÖLìeÑÒ˧ D›ûÑ~½@BîVŽÝ†jK,,¼FàÑ{;ø0_»¯‹{rëá½[‡ZÕVöçkÑà$3E—æ„¥_=ëbÎé.^ø« -FïŽiä‘È8ìÌFƒ«0-f!‘:üv -¶¶w÷Ðk[§U›[˜áÂ$4E99ÕrÒ”8 ùÐÆFr�0ÒÔ$šðÁ}hB´W³z,NõÒÑÆYA ,TÃ佬¤F[³š¹¯.6TWu9Æ™gàÜÛ25ÛÖÔËÑIGÒJínÆ¥Öæ„TÀF@iö‹vï(áS®ér,D£–kÛ´{·÷–k+¾¿£Ræ‹Ùææemêý•[ïb†Ê71vt“Á�X -hX¶õÐ<ÒT%˜HP•NÅ%0:è¢\7„`aÞ/+fÞh3Ì€èJ (µ¹ç=$ƒÁÉDø¸{öÀ.Xkb“Õ@‚ˆˆs;!kbfCƒéL�šˆç•\É=9‹ƒ¾Òz¯lÞñÛwgÛƒÔ†¥Ì[µííí™z4ˆÀ‘UǼgâŽBg tk†B±ßrtg0w9ìÓŠ“€ØÞg˜*—˜ÞrÐÝÓÄ¢¶c+EƒÄBãÌ ¹;„ÌÄcí!x!¥©ˆÍ²–ÒÝdö›ÝæîhkTÈ]ÕGAFo7ãïÞÑ؇rZKïLcqMÔ¦á`plÕ›wÛbë`E•™™í7¬÷†{‹ó#ô"¦@ÊiGF¶bî‚3i&Q!¬LMuip˜Ü…öÐñ½ý¡@¥å%”<lï4cPR´œÐ{ËŒbh ×n’aæ«ZÃ#¦Cjîé%º$ÐÌà#$| fT£1(ÑQ¡·˜p뀯üÅýƒ*‰üéN¥’b½:h’²h.²UfÕŒƒéÞ°(»ûåÎzduw¾Ø<JáÎ]Q‹aeX<^YØv-"ìWzLyýÜ°V§!ò6bo”„þlö¯šClt˜ç|JbŠ–1[Ô»ŠFÇŸ\ÎÉ#›·ì�Æ2Ö¾1„ëàHÙ“GÌ6�oÓµ’jcæ®ähh>³4N¹¶ú› -ÐDºE²–;Lé ›¥Ë"zñ >™ šrÛ»]7ö®—MhË6ÎÏqòÝÛ3ÓºÍO/ÛÞÁµÅevOÜ1³0¢ú<¯¿º,jçO¢ðÉǯ{¡•µ ´ÞÜaÃc™^ -‘@ÀáUÛ/¿´ù×?ÛRƒ<”àÝ-œ²»ff3åC½O°X–) ™F®s9T¸3úÖb˜Ø˜îZ¹zžÈÀ:òp˃ÚnÞÎñözóÄbéœÝØX5T›m¯µûælyrn]œÀa»Â ÕC³±ýRhdȃB©p´²ºùÈ “o|éÖ%dSŸDŽ'$¤&vhtséþÿà_ÛjÌ.<»ùùoöº«&!/Ä”¸¤ÁiIÁàSÕÇàÊye<ÙOdjÚj,˜¡¬˜›NâSW¼’ô¥|u¸¡ý¶¸ïøƦ¯7ÎVûÛ}³ÕÆÑcîKBòž: W€ÌKõ¹Ë—0L%w�b dÇhç,YÓæW?½!@…A£4¢F¡dçT •4øCþ‚îüîW·‡ÅcÏ¿x¶]¸òöÉõA /dÕ£A¡ùyË;•›iM±€ÀÌùÆ·&‡œ¬°šf(ÍæÔ®”šœf2 ZÅt•É›+8#Hðÿ§®ÿz¶,;ï±Ï¬µ÷>öÚ4•Y••åU a lÐbHÎô´&b¤)¤E蟘ÿB/zn=Í„’†ö°›®A¢DeMú¼yý=nï½Öú>=ìeNC'ª2ï=yòÜ“k¯ýÏüŒÈZjd¹f{ë`g×B Æ,BÐñìjæ/BȆ>dzo1ëYpð¶!r¯¿ôÿò¬ƒ*¨¤U¦„NPô]µû´6³1‹IžT#'ž!aash0êCóÛß|ëêøŸÿýƒ;ßzéîÍjå.ýo}ùÙŸœ™¤ÃS°¬€rL÷)N¦â~Ü*U5º$ýo5�T:Ïár$ÃŽ2››¶°N˜…ò -ô.¬Û[“ÓÍ΋Eµ^4ÚìʫѤmŒkûÑëŸ=ÖfE5Êm¤7ͦ2¢ìY9MÄäLcVŠ‘zˆ15X jK³)UO!ÖÚ°´ Z茋ðñ4ÑÚ{žÿ·Ç«gþŸ®ÿwïÌë¯N>úÛw¾¿·øðˆA)ÅÊ)#ukU⧉…!Âp ze?‰M%-¹LsNX˜P˜Qüé™Â·D`ì׫®Q-t±A -³Q;ã íj¥@|/]©æ‡W·ƒ1,J�ÆkgT!T"D!0c@d;®;R€Þ�lÏi%ui€0êŽY×¢ýª6’Yk‘%gTBãS‚aÖ¢èg¿óëõéÏÿîäÿÍùÎÅÕ郇Ñï}]»õUŠå¸.“»ô옽¯\¬+oE‘dhúÄ[#–’!”ØB…*Ès¼X &Û€Q…ò+hqÖè¥9Ú\Ž¦vÞÀCUÑL7«½—vw¼ÀÓîrÄ•' <Ù¿\ „Ý;Ÿ/IÈ€2ªß ò„–04âDµæÚ«Ž$_MãyVϤ”µÝ#SÀÛ—¾÷ÕééÏ?yõîH»||Öñk¿r8[÷ë?ý‰bH†cújäžžPH(B(JTS -‘(ª‚Ãq˜ÔŸ'ušrý°í)\¶z1zJ4Ý�3H>¨öˆÓí8dTõtýÍ[ÍÜT¯N¦U€Ñ›ÏŽ_yëúã¿_ƒá»¯à#B³·Z’õôW—ãZáéCÉ‚¦1uµ¤^U¢líîý˜•@Ú£y$ªé -R¸þbû¤E«zhöÒ»ÿúåúòçßxi¢«'ÚÛŸL¸¿|ôøÿÚï¡ZG1IHèþ åå/ÿè2Á?5SI%QXc+q\GÉŽˆ&)9gʶʶÎ0Ì‚ -ñJæ:ù#‚ˆ°À†všÖù–©Úµ÷.„¦=Þœ^ŸÍæ}xe$ã«öÊó??|ý{«“ S¨ßøÂG¿tJú£¿üÞÞù³ÅÒ\¢q&ÚWš`'“ùîÔðdÑ$8ùµ×Zwí™ Š¡T‰ -Áô¯½¼|õü± -¨¡€¡Úkž9TQx÷ß¼ª—&oNª°¹0¯Žµ[[ôø—÷‹êtuVb -lêµ -èç/~鯢O -dðäÄDò¼MCZÑ: -äh›‘·Mø¼¬e7G¶$I¥V»ûÁ¬×\í^/.šÍat‰wnV£éÄ¢ì–{»g÷ÿÓá7ÇßÕŸÜ9_«ÞÜù»‡ ¨¤¿|®zz~ãÿ1XFEÖ�Nì—¿Ñ_éÑã3Õ¨’ZýõÿOwýÖÑ$tv|}Õ³{Ž“¸ ï¼ù“{‡—oÈ'@ÈàW¾¸û¿p6à»t½÷þ ëÒÙݺ–nå.>½ÿàþâWßùào×Á -Æ⬢¼ø¿$eÿñïýòH) HüaÛj0Ã<#‰>,ÈZô.Ê#㸳.HYhÌ¢mDÅbEÂFÃ~Óvõ•ØñÎXtÜO›Ë½½º>ܱdPjí,pñßùÖ›¶WýsGÕK'?×Î*ûÝ=ø»6»¿e[c� ¼sjö_¬v^^þÍSíÀ&© X½ô£‡Õå?}¹ê wÿÏoüá?þg DElëïÞZáûäTö!ôþ{_¤1õ²4¿þ;7¬rV[¡•–ÖÏÞ¿?šß}çÝÙhÄ?]£¢²#�E -4}û¯–ˆdOñ•·ê'>£Ô‰‹ú¡‰¶„*ÙLA}jç`®:Ói²M»Œñ‚ò}R|¿ã ö—çëÊô§2òWdgSt2‚ÕhƳê¥ÍhÇ°‡MÕ\8×Å_É«ÏúŸ®Éóñ»óûç¦k¾tõ“tmu:¥ksV½øú!ceO>ÿ|ÁÄ`²Y»àýQ}óÄ(ŒGïü÷êÅ—¾üþÆx ŠúÝñ{•¼ñG/|Þ Q?~ýíû¿Õ=ø«Ï\?ÿ½ïî ™hƒèÅ]\,{oß9m»å½?;špL=#šàȱ直üÖÏ×(8“X‰—%£Š"U=7)o[`ÁÅF3‹üfX”cýU¨éáb Øû95{¶‡½›³É|ö«—4Ð"©r=é«—Ÿ¬yÖ}ðÕÅ™™:†OÏ_ý:¸ûý«¼¹÷écR¸x¼?>CGÀ×ï,?ytÕ‚G°€5Ê´}ûÙIu|ùÆ'ÎÚß¿gñf½á›ÍlÞØ'ŸžŽ¿ô·ÇvúÝÝÕýÍx§¹7÷/öýsÌí?xÛ -`O595‚°jýäÆm§K÷ùßÿræë[0Z†]. ¨ÖQVèìµÑBüäÐ'–_Fi–T>&ÔIc�)ˆçÂ5 -BnË9”8SžŠ`i·-x³ž™ÑíƒÝY5®&†ìÈ+B‚‡FC€T<¾ü›/_<zÌèøI¿ýòõ½O~ýÁN!°>ø•RPBÕÿcÈAÕ†q‡±~zøý~þè‡/î?FýåúÓª:üµG'ßÔ@¼^<Û˜[ü¾Ö¿yãtò¬‡ßü·mødröJÕ»¿#T}]ÇFHÅLÓ÷ -«îäâêƒ]LÜ×ï^võkž.;iÏWJâ"-æ¸:8ÑQð� „S,–•…½hâ‹â<BRBH±?¥T:€Û—„2Z¼œ›Á:Õ®© zñ½ùΨAv^™ XC@m]m¦}/;ݦBüÙ§Ô:H£ îÌÎ×?:°(ŸŽ=ÈÎU¢BŠh†Ni ð£î«¯|~®£Æù‡GŽë;Oß[hˆÇ -‘öóï¼õ~x¥8Y}¯µ?|ñ7.ø¥¯ìº*0öÈAv¡ íòÁÑññÓÓ1a6ûÓ ~ãæÏÏz_9ü)"Žh Xn¸QxqýŒ!P·QžO|q[i¢6)b,E“fßÀ€!„,¼"±uX0 ™ÚœÙƒlî|ãÖ¤nÈ£G¦Áá|ÍÊÚŽìbFˆ+%B`ØûÒžÿç±7‚ˆ|tÞ3 ¦˜D?vŠ< ögO¯Ú<& ÐýÜù̾EÿäÃ?äÃ~ð ¢óÜýÓ³{Ÿ_›õ¥Æ�3�¸@,AÁ¯7ËÅÑÏî+=¸ñòc Ó¯œö/ÜýÉ?6¦wð›«{mÏñg“N}íéC)ç(–”$˜Ù·Í}QÊ`¶Ô,‘ÏXèâqý‹TTjõ—„ÙÏÍÁëw»^©¼ðC`ë‘iª€=†¾ºóPˆ²ùÿé½SíÕ"%&¸ª#Hƒ_°4ä7‚Rðpÿô1ÇAÆiXp0ú—¯øË£õM‡tréÔ†§áw‘GgJÒ{°Úµ»gÇg«:szmtm}4®ŸýÁßž}þÖɉ¹víîk|zSqˆBP¡ùäåW~&±T`T”ÄÊ/plU5 >W]!ÖïÛÙ3D;¿äCH}'¨_!úÕGæ+˜ýÉi (¦Š‘�* à7Í›�©æ¤°$jXûÁ N´Ú?Ÿ fs,%@¤„ñE# -YvÆ€aµY'ß…kŒÑ#gÙûÙ·Ú75 ->•nüæÁ'O|þ¨zùÅW¿ôè'ŠÒþèõ?øè¯çß{ͬÖóGÿUè@Uµ'½lIþx,ìã0*ˆ’;̉,‚IiÏ�Äm'þ”¸i©b(ÊGdÝœù5U”@ìô\AM3®èÐ4MEÀf k’ŠJ�/ -ãÝ…fbï@ÂPrx`Ø�ŠlÉŒ™#‚¬hFÀ -Á ’zš¨( ˜d^ƒ¡X§X™5X¤ÝÛûf÷å=♊eª]‹F{¡õÙß~ôøjîý³ÃÿÒ6bªðéæß}ïÿ9n6ø»?UcÆKUÀkVª9Ò°-¨@¨¹¬H£pMérÑ5Ë#ƒ:pîk$3(Ê6î©Ðþ¢D4Øõ͆jªK€‚èƒ ¢í©÷[›½SaLpBe5B”c–¢ã$4)ã7µ Ä ¢jð‘-Ì„¯„7õ»wß|ý&8¤¶³µ -ÄÁyñ~ôãNÁ�÷]U±!mܽ‹ÿòkÎÌïþ³Õ@"¤Z¿Vðp¤ ¬É¸AóƒŠn&.¸J*T²$wRœÊ/+ʉ(E!!1X†9r˜Ù©‚MÛÔŽŒK@-k/ÞófóìãOåÚNO/^ûœQ )ùUFe"I«ä=ŽQ›{졈 -?m4!° €ïî×rÚrûèA+‡oܾ>‡å8¬›j|“9ׇþéßýíYÂØ @Ê4zãz?>\ë¯,JŒz]{p‰HJª`Š -iFêfűb7möª¡K3î_(ïnÆ¢qà§Äë‘@ͬÍh‰,˵0zéüê‚D`B?úéÇå.O¯¹»ç%ÊP~£TYQÖeËieQ/Óh‚|ãÒEqö!%5=Áü7¿fXœ=º<âק×+ujÄÖ"Ö0°W€ D1„Í“þèX‰ˆ{S³1Ü=›Ïº¿yâëT;Tíz&£Ü½µÿWk!¿Ý±§LÕ“bË™¸;ñ{ƒd5Q›ReŽ[ú®IŽ^‹hâeLc¡éY�#k£h†›åòêè“'«ÅäÎëwö×ïýãÕäݯپò£îrá‚u5ËA@Ä¡QºY@’£1q‹â�J#ÕÝ/üâ|ôÄ(äš_ykì½VH}Z7ZÔa<êXhä�D‘‰.íU%,Ž?üÙ �K¦²Tae—?f•1ÐÚo‚ñ"LžuúÖÓg5hšŒµZ ¬ª….iaDÁ¨&½È2>TH-Ñ`Ó”9 –ŽÉâ|¼R#®ž×èÛöøüüâèá -›ÅUxax¼÷Ú'ç“—oNÎçB§½ ĉ2˜Dâ3±lJ¼Ib`béÁ(�*å>Z÷ÑèË{¾ÑÕF-Õ`ŪxKA@;4ÒzQqÏ>?¾êµî™ˆ9NH*�‹ÄB`ЄŠñô–VÈ×?o”h‘š°ä˜¯�™!poia–®Fqû%aÂüšró¤¿Ë~4ZƒÂÆ¢¨,ÏOÎêùko0wî6û´'»Gÿ�{;'_¼{¤¯].„„2KU)ëÛ ÂM”gB"U`QT$2Ó«˜ùUDÁjýñÉìÝH@ÉTU0¬»±p0a‚»:=¿T4ÀDlØ"ÃÀäMƒ(tR5`V?m ·?qHÛæuîJ -PB_Á{ ‚E¨ÄÅ…N[¸p`Qs9‰ÚŠ ˜.%gØ~,*ÄÂdv`ÕLÑoŽ·÷Âêdu0:ì&ºx8šÎ˜Âåe ˜U&%—4‹CDˆÏ'8p9À ¾â ©3.)„ˆöæík“ÿxçÚÝ@‚ ‘În°ëŒ,Èyá~¥F ƒQœ|á…÷ûÏŽ;PPcMeˆŒaKR ’,¯úžz&U1¡ -ƒ¼2Ðv -¹E§¨C cžÛ1…½K§ƒ…(à 1(ú[TÄUFDÜЖ›ÙZ¯²–™ÿ´?=ÑK¸^þâÚw_Žök3yÇOfªÀŽ"È÷¶Ÿ¦Í¿VÉØ@O¨êx*NјNç³›7o\<zu磧íHzô$\…Nƒ®E×£Õ&4¡d«À–`|ý¿ûèÙÑñÙj½¼pdÐVLL¨DÃ'Û|ÚaVxwIŒ•Ñg~ˆè¶<`îs²°"4 ¡tý‹×@q_R£‘Ž¹’\"HÄÝxo_ù^óóŸÿäxÖ°4/ß{ß×¼;ÝkaÆõîüërBW»7øÉ346kÇEQ:Ä×…"šC‘„ªêËçP”ªš×ïÞýÊÍq½3ÖÅbç¥nõÃÝo’Ñ@*ˆ›µrÖ}:Ïà<PSV¤Ú£ñÞ>ö«U+Ë~ñi‡Œƒ€ ÿ«{‚UÊ xliЖ”hù•�˜“³P‘ÍÓìGSœ…tX脬-3›èµR”$=Ö“°÷Gwþãf§]5~ö¢à›½§Šd¼ó¦T¦³{ý-@³ñûõûgI-1“P Ä×<gœA)é F<Ä¥²Å÷Ʀ_ûÖݸ^;«t0Ú|iñƒÍ¿¦ZˆÌ99Z®{ßbðâ ªg“JÙ{ma=5RO`týýƒ˜³”¡5‹HXöWˆê9°’å¶Æ²ÐC€öFyØÑñQ0w J˜Ôb)a’ù„t[ì(î?"{@øôö¿õÂOÞa|x0=ÏŸ-ÄÌ÷æ/ÀGÔ»êúb}Ã2Q_Á“.˜L¢D0 às… -âð?ucÒlX=“[´Sq~÷w¾}X£‚^÷×a— æßþ“ÿò=k �ű}0j/–ëug@$ˆÆ“1ÛªÃêÜ3{iF¬¯_ÿõß·V¼R̆ p¶ó+WITC¢†”3©$y꤆G{&&“%°2!'2_!å30|ô7IÒ%‚lÜfó£=ÝœßVliWß`CSC›'ó›ÔóÞ¯|ðé¾%¼\ô¾ö˜û‰ÉQ!÷?âÙãj‚}�¹ú•ëÓu?}µû•_ßð€TN]¨föð“ŸÜ‘ŽÄƒèîG«ÍfáD—WK¯f6mVÉÖi‚sF šÖ<Ú¯ëÚ„Á';õ‹©@„ ¹ø ˜¼GS”ÁÁ'§1í¨ÞzñvÍÈn g³Oi -7¥h'RD‰õpFT²bÆ5((©ÓñÎ˳ãMí=U¼Û;+˜6Ô÷þòÑ^ •©[X7Sò}&$\@*r—%5ùLN6£4Cd ®o·~ýâ¾ýîµW'µx+€ o'ÀB»«ég÷^G*â=MvV«¾_^\,6»{;c@Ue…‘©ßyA,Æ$‰pèz“QŽT ©òPm bq -�Pv·}û•Ÿ·c¸û¡)àÑrÕ’´Q9<%áÏ ”imA’iªl¨¯¿ØžÔ·*ÒÞºva¹;gãûì!Õ»M€êÐ?݃8Õ(P‘ûqª’Œ_J½Åå…w �"ž._ºûꌂ’èP‚7²i<¢U3½Eÿ|z!аžŸøÕòj¹nx]®Ïš×à:Õ�h�iúgqCƒTb”ã2¡JÊÛȤ<tóôœ0J‹�uøÖ—~vƒE}af ¾0ö=³x0…ÜŽymž–„1“±"Õ;ØÍhwòxùÚí3açè\úª6Aäbõp÷¶®ÅºéÓCBÁ`X{6²BSï p#›¬™2öJÓ/½ñö›fÌBTeÏìZTÅ@}ÀÇOnK§kÙèMþ _õÞ{QÖæƾyô4PP#€HX±Z|aüÏÃAG”±#чÇÏÛ6"{ J„"<ÈhJ -çJþÕ¯þâ=«‚‘òE(ª@hŠyaÒQÌ›\XD6~"·°êtOçwfW]ÎXíeqþt¯:>ªwFáï/_ª{&Aº -0Ù`Ñ?ŽÕaŽ’Õaì¼ýµ—g#•¥4¨GQUP¼ãspwozV§mk×/ü«Á%ux±Ùô€�®ÞY;KR‘qÕÿÄAAl�Ò¤Ö $j@¨'î!ªrªfSµý „€ª¤±üŠB¿õðg½š 6>aï†i¡$âF‰'qy¿Êa3É×SÚpDJ²3º3š´ªà7\m–¦ÁUxqõ£ûO?17®¿÷ÚW.}è±h˜…@yØÀ9MÅw€ Žn¾ûW´7hBï•{«ADt�} ŠÒvg#vó9¨n\ ¹xuïh‚[u£,È×^½ôÞ/ƒ1¢ÆïX1†Ó¹\ÚîD¤¨,ÝPHh7YquóÚû+m !b<=´ÐckóWÄàÇgˆ#V&å´1’3çÍnŠØEŠHžö*¼éÚWoè¹ôd¥rêéÍÝÿúÂébçÚöüjÝ…«Öxˆwð´?í}·N@b"*¾F -˜4Ñq~ãæ[¯Mdð´µ<òð‹³èÏ>í¨‚ê›uµw~\Ú@<^¿DF=ÃéfïÅË‹@/Õ7Lºñ€@(pÁ´ "p-£Ù>ÿ˜æ»~ÚÌ6k“/ŽŸ`–j2]EDI O9ø•?jô¬Ä.Mi&ƒ -` -ÌEð…# ¦ &“;Þ–@ï€\펯©:×1uÈÒyi¸&+·Ûµ—årþêÞ%g“nÕ÷Êj@‡@íë}=~ôé’€4ž \„ ”¹ý7ß>äq¥ FH}Å¢(Nþèæ“îç�AVgÓq5Ú|>ƒ8ï=¨¿þ̪Š¸…"ÈÆÏv°7wÍlþÁC!ci¦•¬BŠ³BÂnß¡Â7ßùîÏþl}ðö¼ÿéŠ&ðÃ' :y}²b8ëkPQ«É£ßÖ_€‚@€ƒ]5�’ª e,€E5¶Ù -,«&”¯XxrêñÚ¦Ó>¨ÖÞiU0Ífô‚<ídöâˇè®`:á>@ÿ@Áú@ÍÎÍïüüQ'Ä�šT©Q(x~ý7_ž…“ûþƒàaµ”rIÃÝñÅÚµhdýø¨? ùÕƒ9 t§$çÍÞûÕºXéþls‡úƒöüÑF ‘^xktý…/-žôhàm2((«¢»ùküÁÁ7¾ñòg?“?|ãgßêüÆ“p±úÆýO{Ü{çâÃÞMßœ„ËÓõb=ßUï=s¢|óѲŽ))àj0CKô‹Œ¦ÃìLADªàáy«ºœ„d^8Ötímß-°¯i-ì<*s»ÆiuãÊËÎlÚXuÖ6RŒZqÚn„.î½ùúÕ¥¢R’„,¡�õ—þ«ë�¸Ã‹ÝÚ†£«OÃa%Œl-^ÞW³RÑÐ>»Ä«ñl´~¸?%·jaåÜñCõ.y.²ivŽž†—¸S´ˆÔ?åí¡WƒŠLYþÈMn_þ“¡îí'?Þø¾¸3þ³—®®LèÞ¿ûÅ·>þÔ_ß;^7ß -¿èö¿·ùÁµ_Ÿ˜öÚ?<R4;ÿäm<ÝPÕ€†¤;“TëAiˆõ:Ä@Î[ Q7hä剂pö£ƒêÉ¥x´Ö€„Î6m«³ëúøryrLgFÈ®ƒ°"V�$õuÿøÚáÒ@RŠÓ!Eµ›|ã÷n‰Rèç+‡F�QVŸœ¼hC_T¨úprQ -kX-€ig~~ß=½Öx²ô&£+õŠ¨”Æ»ó§'î©åúùÅ&PX,[¢VÖ BQ I‰ô·Ì<]ûŸ}#Ͼò½?}éËŸ]Qüìèõ¯¾ó·ÿ•ÿöÓ'fs;òêñ·¿Ôݺ0ç„Z5W"§^¤Ðåú½ˆ6kVIõY”'ΰÌ~"øì?ø î#xÐVSõmw¹`ýàÁåBuß½vëËìWÑ”D9 @}wP?¸âT/ñÐ?`àððûßÜ ÞaÇu¶F•‹ÏÜÜ¥@¢Aiùq¿Ô«Á«'p¸{€ÏîwÇçèWÝ&˜µ‚*ËPõ ¬Ö÷[5úìâÎámvÔTø‰g7yûV7ëvµYµ:¿½ó13}ï¬?ÿÓÿæ;ï}pÏŠG4›ŸýòÛ¿þþãíw¾qüiU2~ïÙÉùùÉõ»Ê ›Gû0�¬I5 ÌL¶w7Ð Òà -Š"R¤™Ó…`ƒ2!Ÿ…¾J"Öj¯hýñ¦x>šŽûúÄ¿þ–YéÚ%£+Ð~÷K÷6 ÐPt1Febog/½ôæKS‚@oÚg§/Ô¸ D èá£)ŠVX_>ºØ;8¨Î_êåúÐoνh/žùd IÒõJV•ŸLFhÄ�ü�QÛGçÓ|/ÕüÀŸ/AV¿hCxôÇN E=ÿ˯ìLï|þ´'‚þ¨üüã;¿1ýÀí}ANÏ'·j`ñ♑"’)•à1ŸKvàXÔG1º)ˆF5mÒ¡ù_Pa"ðß+:PReèŒp΄ÍÕ§màpÕWöÍ·µZœ\^uÎ#Å”C"$'Ðwß#@Uñ] À¢âª»_úÒm -¡³lP¡èЋÓæ8’ -…ñüý¾îvzš\üüñhañä(àåtÅ:yØÇt1Yz -0’¬ÖÄ#ö®FÒ'>Úr\UÕ}ð©CèÚˆ1úèÉu½\T³·;{áògß™ît4í{g �|ØGØø&ÄÛ>.tä'Ò&Pé<cÖ>o'H Éü„@‘²éJ’©SèœFWÏÚÅøîtgZ3=/Î÷VW®[.Ñ+Pöw¯Lÿ]gˆpßìÞ™ž<Ú àµ¯ï.¢¨�e´wÙ‚Pæ¦Ô…‘A=~p¾;îºú|ùáÃj÷ÐÈÕƒ…¨{|K]ãzíaÝVs{ðtL&Y €W&És{B$â0KS Pû¹g‹ë;×/?|¼¶°ÿBûÏLjîC"ÅÐÌ£ÍíÏ"jž'J%/Å\ŠPAcÙQ%;»€h¦±sT'˜ÙÜ FQ‚S�f€¶ƒÑááhgw6¶Ð-Þ¿ÍÛ•`„–P‘tÐÖS¹û…¿#dö×õÛ£“ÿÝÉo~ñ•1S<›Å‹újêú@í¦KÁQ#UA/Ôµà—÷×ÓQ3 > -8Y·è°ëÝÑ3Á„ȤWF¢èâ ˆ†€†?R"àlv—ð<j 3‚ýGõ>4^?½ç•) ²§wÐæ'ߺXÚ.7°ïT“î Efj‰½‘ -IÑ ¼È?ª !o9 -Z§u…m IEqÿšÿüÓÆ+u?~EZqì-;�bUJ “¯>=Û äÛýóU7©&7¯¾uPôDƒÔ†w -ªjˆ—k®PD¸¢²¨;7²¹ë{“}ÿɧW³‘ã«=–ó'=&Ÿ xÂœÈÒ L4$c)�ð`ê�H¥˜Ç+°»´±ÁªG”&¸™¼õø”Qøã׿óçLCC&Ê7$gPL²š\²jQA ,P1%ÞR,$M$ç¹Õš;WƒŠTÐmv,f¶ñ©n6Lû/î;²êWNBÀT,Š¾~¹ÓƒôÍ·—²§ü±« -ÐÑû�VE ظöh3VŠBAN1¶•k?{"{×®ï¯îÿô©_š^<4Š§OÏ¥BÊŠGš‡@Tˆ?´¶ÑEY°ø¨‚�ÈÚaïȈUVéP`cÝÚÊt¿}ó·ŽþnA˜6ðçßûÚß«Qe5ÅØFià½(Gíñ<‚´O4ûAJñé”ØãdˆÄ;ë͋S»EòhÃƃ³½ŸÞåÚÁæÅ¥fº9õLU@�f ß>m+Cºù¯Î?º1-6R� -AœU+4(G˽áºï,SèŸ3P3?½‡{aÓöøJŒ§ÍyÍÝòä¢G”@‰†ð`iP?Â%%%Ð�R¤0‚RL¡§Áªg(òë/w¿ü‡óÊsPêøÏïkë!’`Àw[-Q,y4¦!V²ŠŒ8TB!„Øá"p¬³ýö£gÓWæ}‡��½²õ\YR3½Vkmön4nãõì’QÑ &y&ÍÇrýÖͪå[ÔTÞÊdµÞ:\¥Ð‘4Ì‚jøêY° zè7§mM•ËùÄú‹ã“µ¼8ÝÐñù¹Þ—ŠDIˆ:jèÇ]FHT:1“y#Š’×%³§Äò�½"œÿŨom€Î^üäƤUVQ(ÃÙíß";¶Ø™b6ñÚr$”äÒŠdôàÝÿ|.v4&;èJ83B?iö™-ÛjsîuuÖ£QaR0F•D%4³W¿ð¥ƒéƒ_àLWí¼¯{êaÔpP×Õ -ê yÔÊ}~Ui[ö¨à ,ÏÛµ_Mg³ÝͽãEÂɳ—ÞkT"Ç$åEJÖ�£ ÚdH¤Eº‚i{^œ\…™ýUH[¬“‹²Â§[uCl¡ì -œb€Ž—¶˜×cžô’h".lVæúy¡™pݬ‚niêÊÓÞ'ÔÂfí»Ó%«€G]<6‡_~÷U¬&`1°ñOúƒ¶FSo}ç”™©k!€ôÞŽ*Ôúâ’ ”¸ ‹e`+í…Ù=¬GpòÑfÙêù£M¨&G¤2ЈS}Œ abL>±Åáe>]œÑãZ•€à(>l hY„¡À ¶ayè›Eç5&Ö(¤Åf"~5àÉ”°¯ºzwF×Tã5“‚¨¢eWïv¸Ù™-9´«~utFŠ^HP—f÷…Ãf·oÏA‰Ä`£ó°'kQkè–µA^vu M`mžøúoÌê -«¾§öþý[ -A;sínøçOô'Ç�qRFÌ„‰”“qÌ#¤BQ¥")‚ÄI^ò$()¿AÁ’Æ€ˆJ„":±b@Á¤ÅÅ-CÍ-"9¥�R€ò%ÀÍ’(uŠ¶kÆ»ßüø4û¯ÚÚ4•ˆô½ˆ û/÷æí£Q=m—²YŸ¬ÇõÞÎôüát~ûWo3 -»j¬(÷ÄA‰v6«JU¤ªÔƒ,{dìÔˆsDJfcÖ'›3=7 ìÖ³zz!LÕªÝ4MrüÙ…uçÇçžDP€°\HšµˆJBC¡¤*ÃJG¯&Ê+:À.)Õf¥lCAÊDæD`„EË‚¡VU>±² KðÆTƒryžŠB(#Cv�Ï«ßûèç‡l¸/ P=ªªë¼ë&;2›å赋—ß¹±³XÎgctm À•xbÆ�žšˆE™˜Ú©œTÚÚ±�ž\_› zPU·vG8u§<…Å“ó5ÁÑÃ6Då`Ø®k5ƒp!g˜r=% -’kó4ÅÔâó)*ªZ\:ADÑúèg%CÒ½cÊ ¨ŠX\Ô3ZD1sôËk‹Ùqqs £óIûÊÿñÿööž#[¨…H@UI;éúV@¦³É³{·Z¾Õ œÔ4È m•I+]W�HƒïÝ…1ÕxRlOÖ0Û«7F]mVçmA:·ÕêBÚ Ï®Òü®€Œu8†mŽZzꈢ 2* Ò@0Ž÷|z«ØrLªZDã!›— w쬘çF°ñËømÑ•(žïå‘WŠ`~ ÞßQ÷Îÿy±ã5“¶Çž¸´¤Ò©_ƒw4š^ÓóŸÿ}óªßbUõÊL*Da`,Bõ„`ܪ&PQÞl‚óB4šPggÎV£YC@&ÈåçOx1«ãózµ„ñhóäh=sšc¨‚Ð�ƒŠu� =4ŠAÓL‡åC¦mØ9äö}Ùo -i×ei{I€dM\ðçHYX<ƒ‹Mi ã[«Eã#¶h¤ya„FãÉ©_š¸óÀbç%Õ÷MU5Ó‰Ó7g?ýàjí-¡¥4;VA£QÔA°q†˜BÛ -LÇc;·=µÇk“ɘ֕,î=ézrWOE}Å'÷κ-7̲—4¡~4Û“‡¬":ÜѨrœ(ö¤XüŠ4R1*–¬”„‰�¼M좫i,jJåž!|î¨Îivéò±Lo#£lnÍQÀp%&€HôM'àÚ2Û–æ3þô£¯{ñ•®Ì˜šž -°UDt-(h‚vk/Ø4h*¾<óÜŒBk혤ziø³%ù æÑçKEA’ÏVJ‚!I_c®È0*5häe"'Óï„¥*‘>#á4“ì@RɺØÃlKÁ’ ±Y²X4þÌ´mK¦Ïõª2÷_@5°vÓWm+…Ê»1/û.Ð0C®,رë*ýÛÖ|ý¸¯jjݸB$¨¾'+"*T{£‘¢Ût†ëQ=3Î^=^¨C3®Ùyôó–ˆHpŒUø褊+ÎÊg„…IW¦¢4è'%gŠ{Œ²[tò‰Åä6±3_A!Bôãå„âf‡9tPóVŲ~é#æŒ<Èû”óÃ`ã$õ[8÷ÔwÒwnœ®,‡B'°TPÃHž›q¥^‚¾sùÇ7¯_lF¶ºZά"Ö@$êň¨ Õ°îG^,£_«¡ª©&Ök89í‰j«óæìý.-$=ÃùƒÓ(PšL£ªKRpK! -ˆ)µrR;oÈ=HÀäÜ$.KS -B”$„äNÅ[[0"ÛRÊL&Ųb“÷¼.Q„ÿS\ðä”—0s„"ˆ€ï~çëûkKËÐNo-¯–|}³Ò¥aW÷Ȩ�†›½ùÅÅ‘Ô7ÿÕÅÿ𿻶XOio¹œT=�õ¤.°"Óz*êW^»ªß;K8šYÄ/_nFFÝe[‡öƒ_^¨Qe•F–gJÏš•H¨Ã`^íXÄè‘v{Q”:Ì\<ý3DN©d%ET-À`Ò1š°û‘¿¼ÅÌÂâÒÙÇ“•7Œõ_½Ãž‚ŽpLXÈÞìñ…îÕ^MÀW4‰Í'ÖÚ<åÿðßþéMÛºÁlˆ{PBñꩶ~µç}·ñÀ¼Šô<6•øОž^u“ŠšÞo6Oî_ªõfÖ¯Ýâäè²cUJZ«YÜ?£&s˜ÀìEUHw 1ê* -z¡r‚)P΢²ªfúU,XRŽñ‰ììg�±±âHj«ÿA%FhŠÐÉ„?9ïIÐ[¿óë&# ÊwȺXÍoè™ÔT¿³ÀàA¡fŽ+Ý\â-@^üþg'à 6ã•c -¨Ä«5Ð÷>H+6Ô®:¬G ¡†°>[…YMRYìVŸ‚E%«^ÂÙ‡—Q¢ Å*”÷0"`²Þ ÔPм¦š tª©6Û7gkh¢ 9ù•Ü,´Ð1À˜d080ýÊÌU“Œ!Pl_alà n™•bàøÖÿé݆ԛÊ1¢ îrò²¿š ú÷lزcìtZ5þ¢'3¹¡¹ü×ûcj}4vÞÊð¡U¯ª†18‡¶1*^“©'µ==ëhL•Q…õÑ Ø>LF{áþêâÓcc‚‚…‘Ã2�ñPY‚"'JeÁ‰“'ÅRø¶J©ÝdðÙÝzªt›)ïNT�SˆWÛÉ=jÚó„ɾ3Œ5„iÿ»ÿf'ˆA_‹Šâ¨ZõVßø’ùpÒªV7v\ïÙ«ÚR_O/'ö—{¯ÿÛðkAfEO(-ª·êýf=n\¯nåÉÌšCñøñzÏX˜6ëöêþåŠ -Ëg«põð’Õ£^Ó´ 0íbbæ|" r™9GAùHnMå"§À[RßÒr‹®‹!¿¢<¤HX§³Ñ�PÉë2š¢H_5Nu%"!x¤\½úÛ¿1멱F{8¨öbÑ‹¿údygsVNýªß¨ Z³t×Fµÿ÷ïûó_üéf_n6žI8 A xÖÁ/@{QÒ÷N›yì6WOOºÚý‡öøJëÚjè.uùèJ"ž™†È[špD¨ÄÀˆ?žuHˆÉŽ xˆè…ÞfHˆQÁFµTvƒdÌ+¦Š¨´÷òÁŒ4 ‡hMy†xýSßÌ[&Dˆ÷‘"z¤w¿ÿî$@V£hœ wZë¦ñO.o__-§£õâx%„–, Ùø£æ“ÿ©údõ}ú›¿¼ùŠUÏäý@3`d&‡* ÒmÀdOÓÅ·‹³Ó…pPA+ÝÕy§†zÔ£ã¥"2$ñWjÑq~2”|[PŒU -pDç$9¹’³ª$hBbjŽèHñ•)”GÆ×<Wª`!� EeÉÄÓÁ}÷w_3hI°ƒQ´“Qo× @`q^9ýIû…îxtÍzoɲ€vãêÑbÓ×—?ûÃßÿàù?Ì7†y†œ"ˆx°ÆW ~<F¯›M¿ºlÉTÆ9pÏÎZ¬ôôÉã+74Š$Ã0Žš‰"vx S*I ,¡[J•ïnBH{èùÕäìˆméKYj¼äT‹ªù)º°Y&•YM¬Ø»ú¿ü/YÀ©¦R…³Û“@ÞIorÝ~ö?|õúôÑ{ïîw‹IPïg«ÍÁ\¯ÎþøÆ»¿ÿÆŸüÉc<[|0„Y\ -ã)h�;£Žµ ‹ãs×Ü ú°<Û°í¤ýôÞ¢WDÂâÐOÉ/%’ô‘Ò´0~Q´¯Ëܪ¬_QŒÑ²_c¯Iõ9VÎ4ÈC‰bŠÏ -ÛLY4±‘ì4@T43U(%)2¤’˜½ª( Ýù¯¾3‡c¤uX£Õñùý×ÉvF@šºwë÷ÿisþ³Ÿ-ŸŒÙšÚDèÌõP¹§þ¯¿ûÛ¯ÿxý‹$ëÅ@@f” >ÒÎÌïœë)€¨®=êÆQm°?yxÐûgŽûÄëÂ2ÄH%6â°§5%HqiãJ9nâvWÆM å”6<¦<ƒq‹¿Všq>:³Í²~˜Ä8¹„Å‘bA}Å_úý7+t@B€h´[N¬ÙûQsÄ(u0Æ‘Y5‡õzsŒ/Î’³£5¯®»7šÿøà÷«ówízPm%TÀ«Wp‚´ÆلеWkYªîÞƒ+[“`ßÈÕ½Ç8ê7';d±¨ºµ">)®*¦MŸŠ¸É4 Òk©[rq#XRìØNª‹» ÉöUŠVYd�))ë"&\ñ"+Õ”J´gÌ}ŒÿÎ÷n ¡EQeÀéÅ弞ÜüÅþÔ@¨ØëÈýB*é¨2ýk›¾§jÕÌa:™ýFûå;'ý+“ƒoýßô}+œ%'ÞÚ n²UN[§Ä#Û8õçŸ]±E ¦›“sõ®{rÕ•f(æ|‡•æt&* TU(pŸÜ3#€l,Å™ƒd›ëX:?ÃsJ$�ŠLIlJ5Örñè¥:J³sk>(@¥E(RôxÀ}ÿæĉ)ž¯<9?ß½~t4'4ä•ß{_×N¼†ÆœKŸJ¿73ý¨þuvÿ/W¯Œ_¿ý÷Þqí;BÌ*èHHiæXœ_w8¦ÊšÐ¿®õ¸!Ë¡¿x¸™,ŽN—‘ü\Ç8 ¡ ~B”XcÈÌÃe‰5pˆm¶"VÜ¡Oj -`ȸóB�ˆy´åª¢T¢¿Ùî´¤*]!6À ¨jÎÈ9ÚM|õí?Ü ”Ø`¼ýB³szê/;oÀH°\ýòÿ}<kH¼[™ñÁŽëê)èNƒó‘køjón°(;_ÿŸÿæeë DU!CÚ†ÚZ¯Ý¬ŒFÒ|ö¨«‘ŒHϛNj~õôÄ¡Ht™-ôÈÔJ%˜¤ä�Q%�DåR0´U·û9”DPE¾Ù¼Je„¶ˆªE™4¦öl¶r»íß’Eb9?³“*’o~ã_Ï” 3'b)èX/¯Æu8½HBôð¿ÿ¤i;D[s8Z\ëÖ;Ä+Ýq—ÆŒÛ~L -Õ¯|òàÞ«ÐUC@å.Ø:¸<Šh¤ÝâèñJm¥Ž¶'›'ç¨ -pŽ%nÒ—!¤æ(#Eˆ F£ÙìA˜~Ê b=ÄÙy+uåJ]º*�0³§2•[Õlå×B¡–yv"´%JŠ™¤Ü~óûs(¶<IQ•D'tÞR{1yö?~üâ,†à;˜N?ºt;;¸¤Ýšë+f �„tðµ¿øùKÜ@°V½Š§LÊ‚€Ö…¹•õ£{—` ‡P‘;vöøTC´'Œ¶ˆÏMà4Î\EÇ*%U»¥1!»DCŽÑ¹Ÿ– -5 ´•XU%¶<"@”D!9êÇÝ®`€Lš$d~§ ¤ÈªÑ¼Z8°ˆ•—ï[•Æ`N_‘&æjcÎ>›`óàß=ù¯w›ÅÙ%U]¿|èÞ9ûÑéwš‹šÊ:œÕj…”î¾uïÞ»ÞÀ�(N,¦•§Éd<ÂËïŸöÒÔc’uµ|úøÁR�8hV!G,³|$Ì’ƒ:|/JÀÀ -€T€cO#w/E ·9þY¡Ûö à"_£÷¥Á¢‚À0“Ä H"v@a§§,–¨[£±YLO¬_þׯ3!mɗ㦗§wFí{ÿߣ/ìÌæ×_{ú¤êüàôj~íñÿôŽ›UÌ-Œjª`¤pöêùý7f²éƒw˜‚snV9¶•á`-úóÕç7lSˆï.Þ_j”ÙæEÆŠŠ†©™¦N¥¬—T�Æ]“‹Ä,O£AN™s_B‘5‰·(%C¤4)‹xJ·„jé~'M¥¬Üýü [„eX嘻”ÙËøzˆ'`þ»" -˜»1nïóóõŸýeøÂõzl¤º=?r¤Ýly5;Üœ¬¾3ÆöLÙ2¢ >ˆ½qûüÙlƒü 8\ÙšûÍÆOÂêôâ´Æ²9ÿìÉ"gX4Ì?ó!“>*2$U" ¢X=¦ftçÄŒóÖÉ›·Ô¤Î•|c%]æ4ZÈPøh -æL&gˆEP°€)ˆ2-Z4Þ«ã7¿|ì<%QHR•Âm,];{ï£ÿ4ÿâýÙÈ�™i³Zº©nVë TG³ -]¯ VŒ*xòâúéK@µ†j†¤Ûô°ÌäÏ.CðìÑ“ §>XÇv{i¹§· Òó`JÍbÚNuà»o•&¹‹„ªOrŠËŠ¬n±þH¯•ø3.aèÜƵBÌ£•QÉwчxgö«oÐ$h bL † "jÂýwïþ×¼¿?±üf Hê»ÜiØKeñ!ˆ*¢=<=ÞLÀÔÎ!jPQÓÔ½iÁPMОÞê8lL->ø“÷?ë8«ä[ :H˜%ÜŠ!„*iÀxoƒ¦nPê\Šlá;5þË(I†H”fãÒRÊPDÕ$—&Ä- -˜(‡þüH¶p‹ÜÎ Õ 29üò[Ĩo†&nP6•z/J}¨aôÖ뀎‘ dõ!{ÂêÙ™\]ìÆÁÇé|5¿ùáùµj´R@厫ž+ò닇×:a-ýæþg’ãkÉKc˜Í‡[iKxIe:IÑÊ@@ˆ „Õ«‹@öà*,ª„öÔ$‰skJmg �QIYq"ö© XÐI”-ýBñ®C‰¨õ«¿òFh¯©×ˆÁ#*1¨Á2³ú�äA˜«ù˜P+ "ηph6íCžï1€ˆú�€AjÜáñµ -Ä0÷U¬R ø 5w°<YÖ²èÙ1ÚÅÑý“ ¢ä…�$[Jåv£"Pªè€4G¤(N/˜Î0ƒª<ì6‰†í’aB&*†˜$@HG›ÄK4ù³–˜Ò&,¿kÅ[ iF¿¼oa=’O†D@!K´†,ë€~ñƒÛ_U…Þ稩äto3™h@%ˆ�Õtº\î"¬$õ`'ýš7´¾=¿¿²NÉ›‘¬Ÿ}v&Yû—ô¹yé6î -#Ö¹PFTIPA¶± „y 5Þß’$’Oi>ÝR)Z0Ò¥Ü+ѪXAêÀ3Ü -Jé¼ÄbxšÞ’`÷¶2›"€µÝô¶ªX°0ö»ÈˆÈ¢AD iJð½ÅÑĆË3a_!ˆw€P`<߬f¨oªÖ�Zq²œ0ôŸôN‚>ýèÂK‡ªÜ`Z#¤bVóµBÎHi(k„ iÉò#n‘Ò¸}~/A¿¶Ø�éé4¢ÒÛE¼+h8~¼ò‹U˜üîDëfj:ß7Ø*r[±öÞ"xQˈ@2¸{kd)ú®ó"dªY@íhÇ’´5ŠÃ! 3šÙU'Ô¯6û¬A±êÛ–ÐR{òø2˜Nx£¸¼üô1¤”^r¥””¡XÐ!)CRAÀô@>orª„qÆ]&Rÿr¢{Ÿ¦´üɺR:h!¢šôš®åVµ’úé±w☾õ½'OpÇ.V fQ1Α¥ A¥Ã‘5YEQl2¸õ¦F¶µ”wÇgX}EQ…ìĵµsíºá€¸Ts4éOZOF\«N¯>ºbU*ÿó5,ºïϪ˜jÅ< 8Ã|÷ÓâümTˆË+€%t h‚dl†Š‘Û€ &Ã)0ÀUÖj‘˜Ž„vŒÑ„Âá×wÂ3^·v‚.van;F•àݺOF† -|“ÀwëÅb¶ìŒfd î„E†£š˜ˆ«~e€(ùPY¸ZŒì‹m¥â,làòóÅò -)Ç»°-±bú& ª@Jqá "àPá\,¢Â…ï—OJV¿,NJ’À` -XbIIéA²””r50Ž[¢±>ƒjê`›[—/7Õx,ȾD·.XCkl´„k0@uðÃPô›Åå'e6ØÍ®ƒ U]I¿VF†À–„F•l†D™ÁÓõ»—òT'Ðw]†óûkŠio6íÏÍ9H2A$S§Ê:Š &µ -ài À OÅwËs©ì~2œˆ"I„¿ ŸE†§ Ühñj(Áp“ ÃÙ<V)jçEÃ!•“jöùçÓñÔ!*aP@F5ÚV6T5kŒHûÕùù†§ã†QÄìõ#Ä$jŒ�±ë™C諒„«ƒÅ³ÃJµÚÔ;Ÿµã@U-VõˆûGÏ6 ˜¹MÿÒ†sH8²™ D±òÀbg§e.U„±•Pòs -£Ú—R)p~i�| -ŠCz§Iy»ô ¶z„¹9«ˆ2{i¹øâÞé@Ë @ˆ¢A¢Š%(ö-ÙÄlß=êF“Ù¨" &rêÇu{ ŠÖx`ßwλڈ=˜5üç½RG€UnýíL'n½ xÿq³Qu"8Åë”"eðI¶ÙŽÈdÊMÅd¿`£Elž8aÖÆ¢)KŒû¯¨Ò•$›**ñĕסZ®lBG"j”UÍ %Ôýƒãk×æì+gÁ.¨ŽÙä:aׂi¢S*öçÏ6£ùÎdD*C±.v¶VÃÈÐw–L%7óɨ¶Ä ;üŠ{@ÄH{ýåcÝLû˵íï}Ü£"Jô³H+®e1·°Á¥¹0Ì,¸47zŽD,#ÁÅIJb33}Î@:ýŸŸ¡œÓ! ¡•yT !I/ÅÊ)m€b„ƒj®×ËWv¬ ¬AA %ÖN|cRئ[Û¡kV÷/ö'ã‘Á!dVÇ}͈²†;“Ê"TE¡ÛŸØ†Æh€~q°¼lOåÁ“K§ŒÂ -ˆe#oKR§ò9mÕ„q,=ƒ\I1(oKFÊX<À|º!Ç„¼ h¢°ó°^„ª’©Ç©9¢ h€˜²gEáAjü{~ÊõúöMŒX�®qI¼‚0 O*<Y-pZ÷›§Æ;;MS - "õå²Rák/@�d®)¢ã‹?ݸV?]ÍO7áhÏžl‚ hÆvKšÙ ©B®m;�be®JA(`V•a~û¡šFQLC‘¬!ö¶Ë±ÌÀâH$Cpt›K¥DÈ×�ñsT L—e§H?Pá±ï×Ñ0}Ø0ôb‘Ðè†0€€n¨Þl|˜5/?o^:h,%¿3©7Ç{žL@e}òñÝëçïßžuÜ6/÷vO5(ÄŠò¾¾tÇËË6áž;¹J›UÊRÀˆI\Á8ÆJ)'c¢ çƒL�$/8 d ¸DRL®¥TsB…º#‹ày€ú01Ã2fÀnÌdÿ•$jLjìÔxRÃ#A¯†»Î°žÎæìå¸Ábg‡5Ø: úÇ«7o9Šø£ -Šjº{¯™@‚-¬ù'ãÿöåWf§ëêÉŽÛLt~t]*ƒªêÈx}Ö.å×v½Z(K¥;W¦|‚¤€Ùò¢Bâs’7aNÐR^·5ÐÂ8 Kœ@Ä-O¡â<ãZš¦fmÒlH„„€„R€§ˆa|wêQÔ@q%0k?!.y«{§Õu€º¾\n`Îrþtï ¢mÖžŠï;>v#ôˆáüÙ®¯>z dwÏØ0ÞìTxw»ä -ON;@)ä/€a†.øî\ïEœÁs¯*7J=¿Ä³‘˜ní"bO0Ÿ¶„ÊIµ\|^:E!R³Uª”Öj Ò¹CDPóÊ-@Q`¢ -$Pº -`ÕŒ<ˆ?^žÌkÏ“êô´{sÖ?ÞÜ MmE%@Pïõ·ži@¬ÎÂÞ·¯ØZmWÍ6ëðéÎ.·A‘@VʺzìAò?•†Ð¢/]´zJD.Ñ¥¤¸J±ù›¤ßÝOq+j5Ä'bDÏ5êŸçËçœ:+Vl³11V"f;¿Ùºðûa7ˆª‡ß@ƒ1›"1+J73¼5Öl¼?ûlcNözT;9ìV,ýÅ£æºeUL>¨êû`îÊ:�zªV·ßMo`¹\ÉÑ´>9:ÿ]Zî1`@èÛ9Nµ¢'Mš%e¡ÓBgZJþ%l�¢@*iË/¿°ÌãþK듆(Š”æZÊ(õù|+cGSÓ+a£U"Ï0Ïy¹”¡±VPUO€þ«Ü£P¥�àyÕÎÛ*\îÚzéûß»==;yCPí‡n߬m^¥ŠEª*°"q·×ùLaÔª–^ÿÉá]„ðð½Íï¬<ÿZÎ&†Ä:è¹ñî”ÀM˜aÁ·ŠH‘DE¨/‘„�)ËðG6�Òpd@TÏ´4ýÎöÓ¨QèE *²�ÈP>Æœ¼X{¤¹TŽÈˆ8†1Á/¬D MÙ¹ ào|Õ8Òi ¨�FëN vkn¤“³úÚþæd§QGó•ñ‹ãéžÑùtñc:•½¶\Þ˜L؉»ö¨ŠÕî¯õ3½ËøÙ“—Ï®êD¿žðÉ-Æp¨˜û)&æE(a±-„b‘“&œ‘qyPã9º†LDŽj‹D3_ E8¨>Wra]å‘y<SÎQ>hÁuÖö}Ë‘âÅŒª!�© •Ë1‚í¯Ofg—–U= œ,^‘ -�åÓ]ƒÛÀh»•qkÏ€*Õˤ=?Þ\=kŸ"ð ¾ëg‚Ùe¸ÿ3‹·:îgNÈЄ‹à$DBÍYˆËnÌÍñK0qIJM/C~.ß+™¨ ¹Ùà ‹t’¢Ô¸ë)œíþêü5¬Œ'’@Ñ<‹ƒ õbnÁ,ûÝi˜?;Ý©�À[ÃzB³Á¤\rç±®lµµÙ˜´õUðŠÎÝ{ø´Gœ4ý¸ÈAÕ9×.UQ´$gñQÔóÉW觀‰ÀBÛ=dQZ¸*ëàÔöˆ…aNÊ Jü{Ñ’X -ë>Þÿ-Úâ²ÅÎiJM\TMH°D+ÊAž†°s÷…†BìªD÷3QµØÑd<Y,§ºfÌ0_.Ç -¤ÁVÇ—ûê�!Hj©k{4•¥æRkÒ`$`ß’»÷³'—ãñ{•?>#Ð×Þ«çH˜Œ®% `«E`PB¤¾K„& ¥#Mó -¤ã± -A,{ãœWIb$.s“ÔIˆ7D2E´|šÚªˆñ[pTL3âtŽyÇ1£&o°õ -lJƒ6¦mÐŽÎ×#qÎVÄž/ö¬rð#z¦>h ò#U}ç,3x`ê…dµ<wÎ=äwg“9�õWÁ†J}ç¬\õÀ@’ëjTL¸Å\@zJQ¢¥h¥„($�R\!WeÉÔQ2‚ˆ\RI2ÿ‚"¦¦Ôù å„”™¤³9C½( qLÎh -JM4)q'<ˆº[w'Dc Á‡ë^˜ÔJ½s~1èNftÞZZoD¬àtñ°iêDSU…àVnfJýÑÑñátçS©²x/€Ÿ%%PˆGZá9eŸ_Í|ùÁt7‚ÜzRŒ)NCCȧ^Á‰t>gD¦Zø,*Ih";~¤Ö -ÅD"6U%&,2¼±0@2&% -–VoŽÚ©’0ˆ¤¶:…`/76Œž‰ôâ¬ÙèdÒžê¦ÚÙ·ÿ´º9j, -’�•»z¸ª-�¸ãžoÝ$F$Äàt½ 8Œ+º�RA¤‚€ÌÓ£Takæ{çWlK' 8*RA!n#- -”4šFàaÔQ,,ŠEKµ7,t4|Òœs|t”A-·%õ_�7oŸ^#2,a0V•ú�P¯;š˜#Þo.W«ß¬«êâóé®5%¦3ªJk‚ëîS¿ÏZLhÁƒŠ^AA¬ ]œPMÇN™=g"U^JÈÌ©5TŽ˜²IÓg"¡€× ³3±p‘S+mŠÏG’Š>¯²¤�¹¹ªZ¸Ç�Eµ$í˜G‡ €<œ|¯èÑ‹ˆL*°8¦v†¦c³ -~d% w]XZdu>Ú7wšÈ2|UEP‚ µ¤�Ú-°‚A_ó48Fq¾4Ì¡>Z g5’ç‡W¥òÍ<!Eȃ,$HÝiŒkL²\…cU ù›ò¦$Y%Ž¢Üb>—KµO)ÕÀ‚$B4±«¨’.@�“]“( Ž~)†QÄ»�IÌiÅN¸–¼w-¬>Ûv½¯wgSEP2ªÈªPD‰™HV{›JÙL*¯*Þ Vì½Ør¢KbÁÔB€Ï“{ÁBõ 8,í6#a¬%K|(ðòúÈD)]|,ÔåøõÖ;+Æ×n×ÿ¨«{M1…çdVE YlÏÜ{Ëv}O:D!L9«åÈ6°Dyý4ìIØ´æ`þ`}³A ¢ÔÕЂ6ªnsãd¹§Èúz$‚a³n•#²ÍúÄ&LZ* P·•'I±ôåÒôE$J¬ ¦[4KÍc¤»¦Zeø²`üÓC Ó3’VW³y>ͶKݺ2ùŸp�ÐTÐ=è¢ÑaeëïðîÅùy”¾1 ‹WL@×j±+VOê–csA:qÏj:”#ž4MÅ&özUЀª´‹BO{›Å\…ׄB�ÙlºŽ#ãÁŒ>n‡O÷g{[ÀQ*¼¤ä˜´'J9cë"”F²…_–ÿ¢çùRM실ãLel¸ SM¹~ŒCUi@$Ý´�Ͷƒ•™}Öí$ñPÅ’ˆ²Aõç#¨H”ä²’O€éìxçÖáÓîú.à ’f@"!c@Ô¯t<íñÈ!õt}ßZ¼¢¡q¿ðŽˆ¨©ÜV¾$!,œª$µL�¿Óˆ)‚4žÃ¼FY MŸ—'@ ÔŸïѪ%´–×o¯vY;‰3‰ÀÆSO4O–A±¼Gc×óy…¾€€„ JŠdëe=5ÎEl¯B§çT¿ÚÔs£L *C$æ…Œß#x’i+$˜I%€vvífí33†À§+L·¡¤4,‡¿@ÉØš¸l%‰HĪølN‹S4Âöj¥j½ ¸r„¦rDn¥¼[˜â‘“¢¦¤1…1V>è�©‚•Œ]¯ˆ@FÆ - -Ou£º¹ìÏ[qõÛ÷óŠhÀU¦rD Þ;®ýªµèŒŽ ˆ`ÔSÁyíëX<1‰8¹¢ì@JæÒŽŽ´^(=G¤XÛEcÜôÊ´¸œi¿¦ÝŸå›3<‡ï2Ñ)Éb3‘Ýì#rA5½.D`oò%À´£‚&º¦{*µ"Õo`F+첂A‘hp¡BãK²‘<T`º�n¼»>ÆV¬Ñÿ=ÞÆœ4c^œË:T[A¬•>H׊„IÅI„ äÛº°¨²n= ¡CcË).¬F4À€Ë«œ„Nh(5ó>/xgÂV¹ImL(<‚BÄH²¤‰f¢˜Æ%�K#‘F7ó<š•T×æÀè›@4týÈÿ2"BòÎŽ$˜½oãƒÎ‚!J,šÀhÝ„õéÙœ[©m§*jéú Þ/[d Zj -™ë‰;†MÌ©1™Â¶bNs10fôha€§CbHÄôVË¿[†æuBô*ª¨R*|4¶ô¤˜ð¦¹wž¹n‰åE¸A.r¶ë)Œ‘ ¤³#o›U¨L x¢1V -jÁƒiœzß;h¦_»ùø8ìŒlmP¢×&£¨*z©IðK`$ -D‘ÐuýÊC@ã|d¦"AebWSs?Ýë‚¥!C%(ŸZ0¹Ô—1ݺC:¥ôése¸m˜ ÅŸ#†Ú¸¸±Ï¦²…Jd‚èÏYì’A -ÕÄ” !?ò—yøÕnÕê¤Þô ¢ -°�è\ö*rž'Ç;ÕèÝw®žÞ»1¯Ñ;OgàAAÀ·O.o5ä{Â:µHBè{ç„LÝ:0(Vƒ"ñ€Ä1RÊ6Y-£*xŽÁ½$=_’ÚKÀÄð•çó8ŒuE^7ÕìãÖVgÓ›ÅÙJAü—F´¦#bëK“WVyŒ2ÕͼAh§Ð r”Šj˜Œœ¸ ¡ªÓVæÕ_YªÑí‹®÷§?"*^Z\ą́"=š µÐv.ÔŒÆÊ@—4YÃ2nmAÀ¢(W>ož "ÅÕÊù P)tb†ùMHK;IžW;R@ÍäJG`É3g³\¶ñImŒôÖ¹ñ¯°õÈMÀ?Ä€µ!éĤªWd('‰æŽëÊn„-Gï|¥?ñ×y2·Aœ3õê»ÐÊ¢Ÿ3I =MÉT‚¢¬�Ök9 c¯V 4¥š“Þ¤ZYŒœ(þI",oy"…fê -å±Ü²•Pª»,~+Ðüg¹„NInß·qÄÛCu3ü¶îÊ\ªæ˜(ˆwa$Q“iЯàÙúÙîضýJC÷Ý//׫qÓ©tž0‚¨kUzÍ)ï1º™À÷<OáÌ{‡J¶¬ÐëDè:ðœÅá²àoååxQÔP²»tÄUÄŒ€º¸ÏUsÅÒ¥z®¢'Í Õ0ã5C;„2ÿ<1“Pò§,ÛÝ—Ž¤dåBI)Ž•Yú †‡¤ßFOŠt²Ów~}%¯½s²c¿ãfÕq- Á0JCtLkƒa ÎÓùËj^„ÞŠ˜6%æÓÃèVšd¯sºœ<ð‰´à™ÒTC)6¡‡h%9P—’JÞ0ä¹ä£ôÊBJKÁ#{¼,—7^•ÍÒ_ÌÕI:jK’†81™6¬N¼2ÇTŸ¼ät¼šér -β~éÉ™V¶_Ìš°Bß -±»®Åƒë® Áö¾nj×Wž–k>“˧֬ý½Ce âÛÁÅqéÔÆQJÜMqcÏYž1JTmaÁ5r0²bs„kêG«bfTeŸâº>2p§¤ Es±Dš,RRŒôò ü“]ìÞÄé¸ßse¤]""᥽µ"Ô“U75Ý£öZ½êü§¶ïåê˜ßš®Ö‚ ‡¦a”u¿~ÙÎ{¥‰¬„ 95í¦ö2®+Tݬü�©f*hFŽ¨ý”"ÅU/øÁ„•�̨f‘8þÌ4Í|nn…•ÈÉÌŽa¼Ü\Ôå‰x$Çjd4—Ó±ÈÜ€è7’¸vÅà&n„„PãD÷W¡Ð$óæl= ½_s‚«™6XŸ-kC½†ËÞo\ëWk€ $hHD–RëâŠfp|(ãYôMÝuSk늃‚ëÛÆ”¼&™¤|ØǺ)ªÅ @ÁBc÷2infR,S¬,xIJiW”Ds”ŠÔH¿ ¨nA½p» †&Þ[ù"äœZ¶Û¤BL”P -È‚€¤;Ç—³JÛ£_ŒF*³Æ¿îu*Ktk7ºqجú¤ˆ¬�k£«ãÕÌLŸÞà¸whm³´¾™j¤„¡wB8ÌL“þ¢�%hþ¡!�F/ÈD½Úî¨kd§¦µ§|šæ¬"—ž€’»A¹ÕYôÎ%ohÀ¼¬’ÚÙÛì»<‰Ïš¼¼Û|ŒÄxËI}Å‚Šd„†ðœ´—q,Þ\<[Y(Ö¨8¢¾ÅMï]w8©ëUY%kŒt¶?_V\X4–"3î@kd"ÔÐ9@Äd¶G§ˆ„õ_$•xy+æ-éÆ…A“ 4—Iq·0‘e¸Ô1iL[pã’ÝPòôœòh!‡ñr£”¾UÂG—?Ûzi†Bh=P †áB¡Du¾nŪÀ}ï{§«›ÑõÆÒ9T Jb+Þtv¹Ï*¹v쬂’ ®6ÍBŒG$PöÒr\‡<ï$Æx®‰–=”0Vš X¤°IŠÈCÌ#]ÈmÑÄ+/”Ù¼÷Tåy' ¡Ð¡ÜK*ãs 2ÍÁ|U“d¦>ßÓ_Ëú>J#*R.�D"ÍŠBÕ8¯ruR‡zµ=Óªk=¸…v0Ú¹óÚa¸Z·‚€‡ºaƒ+'ÙŠÌ›“[ªJ.àº7¤‚ „**’jÑ&2‘#RðÈY+C·{4%qJ¬XEÊöd±QœéXù©œ©i¬@¢´˜–uÎ_UŠ/ÍúÿYØ©´SE5;Ù -‡¾~ª1‰¢±†H‡²6h@ŒøøÀôâÖ+ëÕ5¶»Zx…~åóë‡è;ÇÖèBC˜¨ÑÉG·IhPè}͉!†E�Õ’<clšŠ¹?2´`ca¤Ä�¥˜ E_Q•|”Fh€J\™íF¢bòñÎúl„Es=ÆëXÆjsF?ÕO5%V”õ.}P3P‡(Ár`ð˜Ãa›úñG!´UµûJ³^¯zÔÓhdíÁ]+¾œ -šÆÒê¢íì5Øïo&ÃlÀ;3¨¬•ávË€¨ˆ‘‡‰Ãv“È„‡”ÒŨ™Ÿ“]o‰|hRÇ'6Ñh6DIºÁe›•°T î„aׄ„VIÙ·*„Ô+H™Ga9‘ù_óo2Þz˜C*EÕ}�¤‚?ÖÔ¦Ä ÒZ³z„ˆ®záàâÜ„¶åf2‚ÉÃxßzU–�`›ÆâriF»KÌ~ŒÇ3’ÚùࡪÖj»¡Rm@TBÄU@AŽ˜H:¶…²ÖÝðЄ@ÊYFR×BÁ˜oB�ˆv½ù©—SÚÅÛS½\OjÔƒ„çC/–ô#šÜ¦]PºwåÝRY €4$¡•ED5#PˆqMUHƒReÕÒÉR=„ùätÙ’n¤©kuP_¿5±*ËÖ�B£‰A½ì'M@b°™žÞ¤Ð_µ³ -:E–IÅ·˜�ER9¶í ª Q[J9¯s\«-J~ˆ››²ÆLÉú²qBfÚcÎ4¶«é”ë€Äl/‘ÑÂÛðTȼG($@~¤ki˜RqcT‘X=2T` -*Ów«Æ·Í£®†ÍhÜyeïÑ`¿æ0ºs·›ÕúrF{PMÆû6 #x0Ôìß_Õž]»‚Y< 0I ‰nwxŸs'â´æ*ó¶.Tn-v¼‚©žÃ(ã,w…šq´*I>°Ld‹®ÑePP1DŠs–E–$í[.ÊRæXCé½Ú˜¥zUCƒbHû64ÆÙe½‹:†Î¨wJºaö“·ÞâÑ(ðåy[aëX¡šNGt¶ Ë È -»OÖÐQèÂxb<4 ©(¨ºV¡K‰Oêâ H|*ñ99=Ý(¥(œ‹Èƒ—ØàÉ%Z¡øä)£æü€R:RÎLÈœbÍWVÿ×iÅ{„ˆÛF‚¨–4Äxb APàA‰š˜<[ råi¬8o6Wq4³¸ìœX�|åÍI··dqîu¹Xóœí|>2ýùz\c kTHdz³€ ®Úm µôN-‚Š¬:³MœÎøMÍ3G‘çÄò†4õJâQA¹‰šÐ[Äí\³pœoqCæ2äiX”*Æ‚ (©Äón«C´3 >=—"EO¾üyÅ2°X¯€ŒÁwëekšÊ6cèœ*¬Ï•¨óÚ÷½(TÕÞË•Ì÷±ß¯Úõ•b#£ýý1º«+”AÄRÉ^T$웩õ‹nÂ";{Ù2[Êmˆ„Á*ÕUÔW5”MÄe(‹—B¬äÏÙƒJbžòÜŽL¹„æÓ+÷ëÓ+R‹“¤pr·ù5ùÌ1šÊ ²xºÄæ‚©‚¢º~¹ -È;óŠ,ö¢€ú•ì¨s4DÆ4³¹s»Ußœ]®œ`UÛéáÜ¢[¬‡@l$(Œ/;C=ŽjÞ,¤²ˆ0êªÕÀºÕ'Êø•<‚Ò¹ä[“c¡nqpt»ü*™jAòn§µ3å(+_jë|¸nÓƒT€T‹¢A©Òù¯¤ Cšš$y#”N5¨�† ÍÔ4FÅ»Ž©rÚ-ú®ƒÃ½¾;bSC5™Næó*Èúä´bLÕŒjÂvÕ1V†@”k�0®žXØÈldÛ€‰®Ö0PÀ‘R¥…ÏÝ–”ŽFÁøHú”[.ò š7ìö¬)v¹÷#ñ¤*îç÷*nà(`C¦(žåª&ù�‹‚>Ÿ–ÈoØ›*4¤âÄÔB�Ud5�‹ ø‰i[®+3›é¦ss8qŸv¾C¬šzÔÔúõ2Œ3"x ž*jfS°Vų%�¹Ü�†Xf—„á~^œ+ !°8¢¦œc“¿–¹9/‰Ù°Ò%*ñ:>41ç$¦¥˜Ç¼Ç³XÑ¡k…òÜ‘?b$ñ³"o†O€‚:/†� °u ´^íÒ„W8®LÝ,Ö£kãÑÁœÝæ´ß ‹iF»ãÙÄøv½†¦jâµuÞÕc±óQl"B ]x¦0HÝ"a:ÕBÚÕeßd%Ëoãºæ"Câ�Ê”U#¢I¶UšR“%îWLÇi!j�G™×ü¾…[.®˜JʇÉ-ÃB‹3£Q³Ãˆ*B€Uô´¡óÐ=5<-qf*è'0½u cwr¼Ñf\×õd>¯Q» Ô£‰-™ ª‚:¬@úµØÊlĨX Ë L"C)Œ·Ûê¸Ý¢)õj(W"Œ1aŠò@ÉfsŸaMž"WäWí!?(ÿÄ|2 <7�2}N"¥È–/r©÷‡u-}…*BL«8ǦîNš34&,—¾mf×oߺ±£>tGïû�H†Ä4 ‰[´ÂÉX£âXû³êCߣ!õ�A@µ= äû5EŤù.©Ô%ØÚç° 7…lÀ1§+I‹”82¬‡Æb¶=矷Ñ,OHQš@ÉÙM¹àÉÿ:ŸÂ¦”™”W:Õb«™:µ(Ù\rðDBL\¯6/¾‚'Î9ž4û·_¼5®PÝñ§O¼aD¨vö§ãú¶55©ˆ5£ÉÕÍÍ„ƒbH= ZF¤þ2 æÒ)U»;s%X#hú.UJY‡Ÿ"Ñ¢ìèmÞ<UÊyb -™³»Ë3_i[YWâ]Ð|ñgÆðD Ü»-]iUßy0œAï�ŒAd0àw§´sµi•Æ;ÕøÕÛ‡c‹auôñC˜tjL5šLg#ë»Ö«ÖlAÕ{TqôèÖšk "ŒªÐ@X#÷LbÒœ˜û¨]#’QÒš`ÑR‘ÂÏ.ÓÑõüA‡9™Ûæ -¡ÆlZ’¼BñnKË®©mUšÞÝä’ ¸ŠîÏ&¨1¬LAA‚÷ ˜ZK*GrÙ‡º¢zÒàø¯Lç5ª[}|ÏNWžêf<7“QX·wÒ°µ†@ƒ÷‚Ú“Sfr} ý°b¾B ²¸Hý+lö´ÐUKº€‰ò ZÙ«¦,~IcK¾]Ö�±°� Ò,%Þ å„…ÓKøÖÄcV0ùØKí§”So±î1´‘¿ªI£+2†TD0õ—~…•3aöîѸ2pùàÓ£=x„;Ÿ§cj[×k0 e$ “™o!«4€Í2é Xfüy§Á¬!JSÚÉ¡®Œ¬·³…ø²r�j\ÄÂvËC¬²v[üíŒ(¿ÛF"Xˆ1 -TŠž´fO®ç—¶©ql”™ 0ŠzT ÙA$tô說É6£i%‡¯^7¦1íýž¹zuìæn2ÞÙOvªÞs×û~\! ˆï{Qn8À«:2!2*ZKÚµ¢Š¢º%˜Nÿ´ÐÉ•˜þ…Šf (åÚ -§>µUs6’§¿¨EÝ[Kv"£‚Q×£D‡k±h{$Æœ,IW(/t:a""0%bŸªx $E=ï÷v*ÆñtgçúLJ¸xøy?[^.\ƒÕto2›³ë4lú>ŒØ -ø>ª“ÞWk´AY‡ü�B+q†—¨'¥x+Rã’5²Îp8ä`rEÉžý[Yaš>·£·ó KÉi¹1BI$Ýùå"Çåͺ˜Z²,³‡ )A½ < Õ�ÄÖ<yé:›z²¿GGë¹{t²ÐŠ›f4išùÈ'ýʃm˜IU‚’ú€ÖèÕ¾s"lIû~€Ú̺Œ‚®T°´yóÄ~„ -YCIG¢w5&,PÜ|AËÒd¶vY[Mù_|õs3HÈÜLP,A¨š«úl“�jò¬4[ÑÓ}‡€jj À±·…ëcVê.š‰ÅÞTÕü`®1G_®góéÄHð½[$$bU‚àÁ ¢=Ú ¢ÊLaå,ªÛˆ÷©A¯¤¹“5ӕĶ²Ü2ÅØÙ,Åž" {qZ˜ûùÉ\ð¸¸u4Jz¯aè»Wôœ…µîÔªQ,@ôrJgï(#‰Ð[ƒ‚*ƒà×PâP%Ô‘®žîÔç›ñ»ÍþÈ»U·xøèlM†F;³ÝÙdd0„°<º"œWÆp*@Iiçûê!€j»²ˆ Úµ:óÓfNm¶¸$J;JZ‰X–(}ômB Bé¬Ê,qÜšg™ªç©XšÕd3$8b3<ló_ó{çSTA �m³–©‘A È”<)2¨H•Œ©V#ÕáwîîZ«Ýòéã§ç+°©FÍtwg6¡†®]û±¥ySBð+Ó:AT˜»Å8 ”M7UÑ®GÊ!¡€âà)Å{©ôâºòj~·9EÏcp;«A)[¹¬Ž"H©æ!–0¨ThšÆF -š4œÂUZdÊ7–5ê !ƒpUæ�Ô÷Þ 9øê ç®ÝœŽ¹©ûåÙ§oL3ŸïL«f:"/›eÛFj£¡Whm3Õ6H¨¦M ©lØX£ˆàײ°I©hK®%j¤ÅIƒ«Ò)±JiYèCE®.þå¢a ²uøÆ'd�è)åxqŠ,«eT«©Wk’'~!ʤä¯ØS5"b…Ð[I@1töÚ®1¶Â@§G÷žœ•UÈ6“f´sm:o ÷Ú:5`«jbT%ˆ’‘°1u¼õÕA�jx½i‰ÑoR½]@(n‹‰²¦ÆL-×6Mž_±ÆÍBJ<ð\Îi–dÕí¾Iéo£È 5Êè¤LËòï(ªP<²1sj*ê’ çAm}@d�$¦U‘AT|]£¿Qá«';{»w§ÇOžœýS¬G“ÙÎl<Q}ïJµjÌ`Ÿ@F@ÂZ(LN}@æÍy?e$·å€eCaêÀoWÅ¡ µ, eLLWA-ºôš§ãe0CDñRÊsÕÉÖ¶F¤ôšt0FäJ\pRU.£‚Üz6�¨EZ•3xbLM^ DˆDô=L¬°á¾WXcwÚ^-®6mê ÅØñ|go4ß›)8ׯ»I£X‘14èžIpÄê{‹Óã�޺ŕ1Öø®cËÈB[*Éñ‹Ê¹WóyŸ,:ªÑÒðŒz¦p=“»nNWH5Lh&–²èLyŠ+ñòæïhKbor¨¢¹fÉzbˆâ‘É2@ /ƒl©†¶"zTv—n³è;ñCçÏ6Óéd¶³¿S“¸Î·KçaLLŒª¾ï¼•¾gcT¨æ®^<Žèœ5aṈÚÖõI_GoL=g‰ýƒr$ebq΀b©qw©ÌÔäG…)Ï/ô¶‰¦ -FÊL¡WZhHF.ÖϽCNZ <èìÏ,ai—\ ±!Uñ¸¹B *m›€˜¬a¶ÖÑà…ŒI¡P‚RÑ -€®*VÀ,Š5$Ýšåq·ïƒ¥ù<ü*>ò³e&ú<˜+ݸå…y¹Jz¾ÕâÿåPþÓr¼ýËG)ßßøÿ'/‚<»tŠž����IEND®B`‚ \ No newline at end of file diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-2.jpg b/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-2.jpg deleted file mode 100644 index ace07d078a00bee3b0ab02f7f077e39c23f2aa03..0000000000000000000000000000000000000000 --- a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-2.jpg +++ /dev/null @@ -1,19 +0,0 @@ -ÿØÿà�JFIF��H�H��ÿÛ�C� - - - -%# , #&')*)-0-(0%()(ÿÛ�C - - - -(((((((((((((((((((((((((((((((((((((((((((((((((((ÿÀ��<�P"�ÿÄ��������������ÿÄ�8�������!1AQaq"¡#2B‘Á4±ÑCb’¢áðñÿÄ��������������ÿÄ�#����������!1"A4a±ÿÚ���?�óE |ôU‹SaÁÉz¢º>4—™~ÓL…S ×A:!àÛb\î%g8§ˆs¹Ð¬TÇfõÙ`8SïWÇ‚¾Âˆîû’ý�öñÕ<·» utF# Çï¦]—‚iëB¹§DOoÄuµ÷³[Û¸”±PJƒùOžÿ�]$¶ Ô¢k±¶"Ê¢÷{¢‰'”C=;l“lùcSî<DÑÙᩧˆwÒã·ç©QÙç[L‹6B«©ß§\ú±Ðõ=žªºC ,Q2·#*ç•Œ½dý@qI�ç2º^%ºÈ˜ -<•ûk Äw$9iÕÇ“ ýµ&ï—;`穦!OLê–X🇯¦Ž¢¶ð"ÎnC²aÎý0·SɪI0$ž¸Ç–¨$¸×È9š¦B‘ƹI#Éq»e<£Ë:ÕrHAŒµ¤DËÜÎ|ÈàgGüLô´ÝŒTU:*œgmÿ�çé¨2Zèiî͘‚Æã(9ƒ*g>#á:´›ˆ!1”r¯O‡p1í¶±ÉªfŒ¶AÌwÙf§¶Ðµr„ÂÎ˶‰ä’–Z@ÑÈŽÛ:·Ûª©á–¤BÏ9I\·ËQ«bÇMC¦ ÜÀ±ôë©âYqœaq†Õ~¯¢*1ï@ÆÄý¶ùjϳzheŽyécbe ãŸûë¡.جòZ¦¡¨iÌÒ¸0± ¶Hé·Ž¯{?5ôöJHéä‘3Ï#rà¹$îN@ÛDa”t´êq,pFí K¯>2Å°3¶2zŸA¥p¤Ñ×@iÑDU.¨ -ôÄ�}·Óx³ÉPµ5˜îä< …aÿ�™Ö¼mnÚó‡#âV^ ë(ýVêC”óuâÝ5¦çQCUËÞÂü¤©È>Dz¾¡s!‡Ps¢N;kím|ºÆ…cs&µV¶ÁËI:áˆÈõÕ%92‰‡!|F"p]0ŽGjªé¥�”ûÅUφF?}Çc áÉïtQ÷5Tj - ÿ�Æ „õ¾¾šàUòû§†Þ:Ÿc¥¬–ÍÄôQs’›âøb�÷Ÿê]™…¶þÊ<UTÈQ.-íÐS×ÄÎÐÌ …èqæ>šÚâªâ':u�0ÄM -pÞE¢î&žNDgf_oN¿¡Ôû„—ÅÜZíTïGÞ©if}ˆQ±�‡¿].×")Ì¢¤‘˜Úµ|Ct ´”t;»¯æmº}|Έ8æ)Yi+bhÄnÁAÜdÆ|ÆŒÒÏaáʆ±ãžd<í/9fÇR?sôÒK^®Ÿ‰%¹ÑBô—S \rì tt5Î+¿(‘×�x1klžþLr\YMi– -vu—pA< ã©zXæÝjšjæ'Ÿ$.1ì�Ч_/u–xkÖ–3àºn2GQ©7 .yàzùTF¤rD3ç¦ lº}BÖÅøDçÒÉMw”¸åïþôžº£Æš}¡[ymQ$†QÈHß ü·¦—Fž7 ê`ôÈ—ŒX@Ó‚Hê3¢~¿Š÷Q>A€’ùJàÿ�¹¿] -© cÈ軳¿ŠöäøS6?ÔºCÔ¿å -tâI¶pÝ:ÜêfŠR²’A°-·‡±ã\®UÏAS$‰?v¼2žgåêFq¹;ãç¢ö‘¡¢¬tÀnwož”·º‰ zDNVU.çÄœêw -±}ŒÖl.±²ÃÔ~æ$®–RVš0¶ï#nÞ¸Æÿ�3®7;|7\ô• -‘R+x‘ÖiöìK¯¶utEdnö9x4sOc« f’|Çâ_¦~GF2TP<[o§Š ¬Ë…† °•zxé"Õ2Ò]䨅±,S—Sëͦggô‰5–žEtIpŠØ]ˆ#Ø0On«ÆUUwo¡1ÚÒw¶™ÙGÁ.~l’Á -œéÁÛDÏ %$œG<®òyžP¸ßÒ—ªå¢Û¶ˆ§‰ÿÙ \ No newline at end of file diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-test.gif b/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-test.gif deleted file mode 100644 index 432990b832d877e8dcdd9197e39184be16900e50..0000000000000000000000000000000000000000 --- a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-test.gif +++ /dev/null @@ -1,2 +0,0 @@ -GIF89a(��¢�����ÿ���ÿÿ��ÿÿ�ÿÿÿ������!ù���,����(���|8ºþ0ʪ lÍÍݵ™ÒÔ‡…d -˜gp,ÏEù… Tàl ±¸Ïä{�Qºá§è1“¡žíò|ì¢Ä©…Àí^Þ®`L0er˜^§Çç·`ýÕÑåñ7½ÆGä{vnoyiV4‰0zk*$€Ž‘a“”–—r �; \ No newline at end of file diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-test.jpg b/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-test.jpg deleted file mode 100644 index de4eace04ecaea499e70812df0797318d700ad9f..0000000000000000000000000000000000000000 --- a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-test.jpg +++ /dev/null @@ -1,10 +0,0 @@ -ÿØÿà�JFIF��H�H��ÿÛ�C�ÿÛ�CÿÀ���(�ÿÄ��������������� � -ÿÄ�1�� ������� � -x·6789uwµ¶ÿÄ�������������� � -ÿÄ�3��������� 8w·5u´¶ -67vxµÿÚ���?�BsOàä³üfüÿ�,«ÒÒÿ�\CÊã¿õÑõ·›°ùY¹_ “íÔ ‚ĬJ'ºˆ¢àf)Šàd8E³Èvû#[ënz]w.Ïm»ˆt6l³¢â-é=²’ÙO·¥0G7!ÅSŽB†@€$ý›Mš mIÝÝÓ¸)L¥À¦Ð´¤Çç&V¨"U+F^`Z3p°0Cï0ÀሄŠÛ°O®Ê|ïN©Ó¼A•í– ¾j©TÕ{ÓsQMÏLG§N{~F¬NW#BaE„¤ø§)Pƨ�’Oc°ÞÖ8r>'÷ŸÆ6!Ãâ2)½nš]Ûˆ²¶f^ÒgQ§ôúÁËÍõW–8Î/R–@vÍá‚~§vÖéöÖ¸éÝš&vvªT·»XV_fgÇ´ÎîÏ€{¨ïSèòßIÏ{Š5,ÏÏžJáþ²-·Åœr^rM9Ñë<ŒÉ³m{ΣJëÛòkƒ\R°µfaàÌ·ËãÜóêLúçžZf» d¨=Ež£¥A+ŒHó´àYÈIÈZp)@bVm¼:Híã4ÔYD5…)pQjÓ®ÑeòèŠöæÖçõQÃÉ‘¥nH¸K’759˜iE¶:»‘Š\HwL�j@n'�ðˆ€€%˜`Óo7 ¹h[œê -Ù(ihi”-‰(O-DÒ…Än(ZY 8’™Þß“ “?$f YgâyjB$À,u¤¬¿òwiÿ�-0OÒæ·HFº{«ÕJ…ûµß¬Å\§Ìe~ú×U?}>ôÃq¾ÃcÛ ½×û> Ú¬{C¹GƒY[¹ó!ýÄÙ†^‹HŠ:IêaÝ™"ÆtŠ$Í‘3—’l°åë*†k»ë‰“\]Ž=Ô=k4‚µÒ¶Gt|J›VØë:b@½6¡$d…Dg¥<Ò³“J‚»»É4³áÐæ¡_uÕËà3ˆœŠ©îùDBK}AÁéÂMs;Ó2Ö×4z¤1ËSjQ)<B5)Õߘœò1ðšÛKvQn$ÑÔÈÀ7#¶_ö$õ"ˆMeâ†)Uäæíñ!•U¨Û%e TJ�Oqªñ.`؉õÔz‘/YŠÛõ0_^[¨LLëwc˜?ÍEVØŠtG -ƒc?u./Œ:x5ªT3ŠCŠfð;£\ôEd¨9*]P5™G6Ó\gôví1§2Ôð×·(’èÒ§5-±Ç@Ô±á…Ðô'“¶º �VÌ…Fœ -ÂQ�³‚IŠ�cÅîÊn2Ð=½}•¹?…Ü>ì÷ã´Ñ$¡r®%ÛN×ïü¹Wá¾\šDÚ¶ý‡‘y©j÷MŒ¶ÜGÿ�®Ð»·÷}üãàÚøÛŸœä³TÍå~kòïâò -7Ï;8Ý0ÞõÜ‹÷´i¶ŽD£t£}LÞ\¯çÂ~âù—ÅHâa$F¸ç:à\ƒ?ÆEF5»¿dËÞõÚm¬Í·Mž¿QZ|Zü/ÂÉ,3ÞËU¥_tø‡ìÒôBnr™»K†ÆÔ¦E¬q¢ËúÎ>VT²ý)c†hù%4ïâÔ•Qr¬ÂðíÚË힦1Á,]Aº’;A[%²"aUVGWÚ…QW¿ÉÙÝQ%“Ígkиcaˆ€Ö2Ó¤Lœ W–ÚIÎj¬-ê‘C¨¼-Î-Œ¨Š5/”-PÞ¥kêñœà©©•¸Õ¸ \à°!13RB0,£‚›Sˆ@+Fp‡Æ"ÜCï “GLÖÄ¿¶6ÚLF‹a¼›À"ã›z}=)$–±A’lù½!…ÀÔ4dØùy¦L5U‰SY£„Þ•UzRŠ±PígÏê}5‚Ô9Ëÿ�›î5§|˜ÍbírI3ÆÔÇW›Y[w'§%«vövæö´yÚvôIRQ‰³»>·I4Þe${§zשªBöî³–ÎSjÝ]Ö/^§N’LBB3Õži¹)ˆ%9]Ý„”Ya0Ò?ŸÓc¯‘Û±ú -þ듽§|ÓÛOûFþâÇ:w¿‚<þTáúCºÇGÀt6u:N§S©Ñ–×û²Ýý‰#úòýmæÓþVm«èûuèl}ümçóWÕ×ÿÙ \ No newline at end of file diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-test.png b/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-test.png deleted file mode 100644 index 39c041927e1d7e1ee2b7904763c78d7c9d5caaab..0000000000000000000000000000000000000000 --- a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/core/tests/fixtures/files/image-test.png +++ /dev/null @@ -1,4 +0,0 @@ -‰PNG - -��� IHDR���(������ÿF»���DIDATxÚíÎ1 -�@ÄÀýÿ§ïzÁ4‚ d%¥0yÉëÊRtÖ†ÛÒœ@7´Ø[ üx8Øpž@µyý‰¯°a„����IEND®B`‚ \ No newline at end of file diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/test.txt b/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/test.txt new file mode 100644 index 0000000000000000000000000000000000000000..573541ac9702dd3969c9bc859d2b91ec1f7e6e56 --- /dev/null +++ b/core/modules/forum/tests/src/Functional/migrate_drupal/d6/files/test.txt @@ -0,0 +1 @@ +0 diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d7/Upgrade7Test.php b/core/modules/forum/tests/src/Functional/migrate_drupal/d7/Upgrade7Test.php index a7430cb32d60db43dd27a9996eaa27102d724972..0afbe92550cec73ea93ff7da80df84abf797cdce 100644 --- a/core/modules/forum/tests/src/Functional/migrate_drupal/d7/Upgrade7Test.php +++ b/core/modules/forum/tests/src/Functional/migrate_drupal/d7/Upgrade7Test.php @@ -61,39 +61,39 @@ protected function getSourceBasePath() { */ protected function getEntityCounts() { return [ + 'action' => 27, + 'base_field_override' => 3, 'block' => 26, 'block_content' => 1, 'block_content_type' => 1, 'comment' => 0, - 'comment_type' => 5, + 'comment_type' => 7, 'contact_form' => 2, 'contact_message' => 0, + 'date_format' => 12, 'editor' => 2, - 'field_config' => 20, - 'field_storage_config' => 14, - 'file' => 2, + 'entity_form_display' => 16, + 'entity_form_mode' => 1, + 'entity_view_display' => 24, + 'entity_view_mode' => 11, + 'field_config' => 26, + 'field_storage_config' => 16, + 'file' => 1, 'filter_format' => 7, 'image_style' => 7, + 'menu' => 5, + 'menu_link_content' => 3, 'node' => 2, - 'node_type' => 4, + 'node_type' => 6, + 'path_alias' => 1, 'search_page' => 3, 'shortcut' => 2, 'shortcut_set' => 1, - 'action' => 27, - 'menu' => 5, 'taxonomy_term' => 6, 'taxonomy_vocabulary' => 2, - 'path_alias' => 1, 'user' => 4, 'user_role' => 4, - 'menu_link_content' => 3, 'view' => 14, - 'date_format' => 12, - 'entity_form_display' => 12, - 'entity_form_mode' => 1, - 'entity_view_display' => 18, - 'entity_view_mode' => 11, - 'base_field_override' => 3, ]; } @@ -101,15 +101,7 @@ protected function getEntityCounts() { * {@inheritdoc} */ protected function getEntityCountsIncremental() { - $counts = $this->getEntityCounts(); - $counts['block_content'] = 2; - $counts['comment'] = 5; - $counts['file'] = 4; - $counts['menu_link_content'] = 13; - $counts['node'] = 8; - $counts['taxonomy_term'] = 26; - $counts['user'] = 5; - return $counts; + return []; } /** @@ -148,6 +140,12 @@ protected function getAvailablePaths() { protected function getMissingPaths() { return [ 'Locale', + 'Entity Translation', + 'Internationalization', + 'String translation', + 'Taxonomy translation', + 'Translation sets', + 'Variable', ]; } diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d7/files/sites/default/files/cube.jpeg b/core/modules/forum/tests/src/Functional/migrate_drupal/d7/files/sites/default/files/cube.jpeg deleted file mode 100644 index 652a7db77d5e3489745effa930f1a41b2d1ba69f..0000000000000000000000000000000000000000 --- a/core/modules/forum/tests/src/Functional/migrate_drupal/d7/files/sites/default/files/cube.jpeg +++ /dev/null @@ -1 +0,0 @@ -******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** \ No newline at end of file diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d7/files/sites/default/files/ds9.txt b/core/modules/forum/tests/src/Functional/migrate_drupal/d7/files/sites/default/files/ds9.txt deleted file mode 100644 index 6a7e452749cf08168239c3e267a7e1d07c49ddc0..0000000000000000000000000000000000000000 --- a/core/modules/forum/tests/src/Functional/migrate_drupal/d7/files/sites/default/files/ds9.txt +++ /dev/null @@ -1 +0,0 @@ -*** diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d7/files/sites/default/private/Babylon5.txt b/core/modules/forum/tests/src/Functional/migrate_drupal/d7/files/sites/default/private/Babylon5.txt deleted file mode 100644 index 6a7e452749cf08168239c3e267a7e1d07c49ddc0..0000000000000000000000000000000000000000 --- a/core/modules/forum/tests/src/Functional/migrate_drupal/d7/files/sites/default/private/Babylon5.txt +++ /dev/null @@ -1 +0,0 @@ -*** diff --git a/core/modules/forum/tests/src/Functional/migrate_drupal/d7/files/test.txt b/core/modules/forum/tests/src/Functional/migrate_drupal/d7/files/test.txt new file mode 100644 index 0000000000000000000000000000000000000000..573541ac9702dd3969c9bc859d2b91ec1f7e6e56 --- /dev/null +++ b/core/modules/forum/tests/src/Functional/migrate_drupal/d7/files/test.txt @@ -0,0 +1 @@ +0 diff --git a/core/modules/forum/tests/src/Kernel/Migrate/MigrateTestTrait.php b/core/modules/forum/tests/src/Kernel/Migrate/MigrateTestTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..0e2f77c4fcf499223f37124114649d6b6f5f9bd0 --- /dev/null +++ b/core/modules/forum/tests/src/Kernel/Migrate/MigrateTestTrait.php @@ -0,0 +1,103 @@ +<?php + +namespace Drupal\Tests\forum\Kernel\Migrate; + +use Drupal\taxonomy\Entity\Term; +use Drupal\taxonomy\TermInterface; + +/** + * Common assertions for migration tests. + */ +trait MigrateTestTrait { + + /** + * The cached taxonomy tree items, keyed by vid and tid. + * + * @var array + */ + protected $treeData = []; + + /** + * Validate a migrated term contains the expected values. + * + * @param int $id + * Entity ID to load and check. + * @param string $expected_language + * The language code for this term. + * @param $expected_label + * The label the migrated entity should have. + * @param $expected_vid + * The parent vocabulary the migrated entity should have. + * @param string|null $expected_description + * The description the migrated entity should have. + * @param string|null $expected_format + * The format the migrated entity should have. + * @param int $expected_weight + * The weight the migrated entity should have. + * @param array $expected_parents + * The parent terms the migrated entity should have. + * @param int|null $expected_container_flag + * The term should be a container entity. + * + * @internal + */ + protected function assertEntity(int $id, string $expected_language, string $expected_label, string $expected_vid, ?string $expected_description = '', ?string $expected_format = NULL, int $expected_weight = 0, array $expected_parents = [], int|null $expected_container_flag = NULL): void { + /** @var \Drupal\taxonomy\TermInterface $entity */ + $entity = Term::load($id); + $this->assertInstanceOf(TermInterface::class, $entity); + $this->assertSame($expected_language, $entity->language()->getId()); + $this->assertEquals($expected_label, $entity->label()); + $this->assertEquals($expected_vid, $entity->bundle()); + $this->assertEquals($expected_description, $entity->getDescription()); + $this->assertEquals($expected_format, $entity->getFormat()); + $this->assertEquals($expected_weight, $entity->getWeight()); + $this->assertEquals($expected_parents, array_column($entity->get('parent') + ->getValue(), 'target_id')); + $this->assertHierarchy($expected_vid, $id, $expected_parents); + if (isset($expected_container_flag)) { + $this->assertEquals($expected_container_flag, $entity->forum_container->value); + } + } + + /** + * Retrieves the parent term IDs for a given term. + * + * @param $tid + * ID of the term to check. + * + * @return array + * List of parent term IDs. + */ + protected function getParentIDs($tid) { + return array_keys(\Drupal::entityTypeManager() + ->getStorage('taxonomy_term') + ->loadParents($tid)); + } + + /** + * Assert that a term is present in the tree storage, with the right parents. + * + * @param string $vid + * Vocabulary ID. + * @param int $tid + * ID of the term to check. + * @param array $parent_ids + * The expected parent term IDs. + */ + protected function assertHierarchy(string $vid, int $tid, array $parent_ids): void { + if (!isset($this->treeData[$vid])) { + $tree = \Drupal::entityTypeManager() + ->getStorage('taxonomy_term') + ->loadTree($vid); + $this->treeData[$vid] = []; + foreach ($tree as $item) { + $this->treeData[$vid][$item->tid] = $item; + } + } + + $this->assertArrayHasKey($tid, $this->treeData[$vid], "Term $tid exists in taxonomy tree"); + $term = $this->treeData[$vid][$tid]; + $this->assertEquals($parent_ids, $term->parents, "Term $tid has correct parents in taxonomy tree"); + } + +} diff --git a/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTest.php b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTest.php new file mode 100644 index 0000000000000000000000000000000000000000..077e94208fcac0278ad76a8e297a86f7f3a0ad2d --- /dev/null +++ b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTest.php @@ -0,0 +1,50 @@ +<?php + +namespace Drupal\Tests\forum\Kernel\Migrate\d6; + +use Drupal\Tests\forum\Kernel\Migrate\MigrateTestTrait; +use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; + +/** + * Test migration of forum taxonomy terms. + * + * @group forum + */ +class MigrateTaxonomyTermTest extends MigrateDrupal6TestBase { + + use MigrateTestTrait; + + /** + * {@inheritdoc} + */ + protected static $modules = ['taxonomy', 'comment', 'forum', 'menu_ui']; + + /** + * {@inheritdoc} + */ + protected function setUp(): void { + parent::setUp(); + $this->installEntitySchema('taxonomy_term'); + $this->installConfig('forum'); + $this->executeMigrations(['d6_taxonomy_vocabulary', 'd6_taxonomy_term']); + } + + /** + * Gets the path to the fixture file. + */ + protected function getFixtureFilePath() { + return __DIR__ . '/../../../../fixtures/drupal6.php'; + } + + /** + * Assert the forum taxonomy terms. + */ + public function testTaxonomyTerms() { + $this->assertEntity(8, 'en', 'General discussion', 'forums', '', NULL, 2, ['0'], 0); + $this->assertEntity(9, 'en', 'Earth', 'forums', '', NULL, 0, ['0'], 1); + $this->assertEntity(10, 'en', 'Birds', 'forums', '', NULL, 0, ['9'], 0); + $this->assertEntity(11, 'en', 'Oak', 'trees', '', NULL, 0, ['0'], NULL); + $this->assertEntity(12, 'en', 'Ash', 'trees', '', NULL, 0, ['0'], NULL); + } + +} diff --git a/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateTaxonomyVocabularyTest.php b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateTaxonomyVocabularyTest.php new file mode 100644 index 0000000000000000000000000000000000000000..13b8e344c739c5b035bf94b2df10a42dd150b7fd --- /dev/null +++ b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateTaxonomyVocabularyTest.php @@ -0,0 +1,63 @@ +<?php + +namespace Drupal\Tests\forum\Kernel\Migrate\d6; + +use Drupal\Tests\taxonomy\Kernel\Migrate\d6\MigrateTaxonomyVocabularyTest as TaxonomyVocabularyTest; +use Drupal\taxonomy\Entity\Vocabulary; +use Drupal\taxonomy\VocabularyInterface; + +/** + * Migrate forum vocabulary to taxonomy.vocabulary.*.yml. + * + * @group forum + */ +class MigrateTaxonomyVocabularyTest extends TaxonomyVocabularyTest { + + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'comment', + 'forum', + ]; + + /** + * Gets the path to the fixture file. + */ + protected function getFixtureFilePath() { + return __DIR__ . '/../../../../fixtures/drupal6.php'; + } + + /** + * Validate a migrated vocabulary contains the expected values. + * + * @param string $id + * Entity ID to load and check. + * @param $expected_label + * The label the migrated entity should have. + * @param $expected_description + * The description the migrated entity should have. + * @param $expected_weight + * The weight the migrated entity should have. + * + * @internal + */ + protected function assertEntity(string $id, string $expected_label, string $expected_description, int $expected_weight): void { + /** @var \Drupal\taxonomy\VocabularyInterface $entity */ + $entity = Vocabulary::load($id); + $this->assertInstanceOf(VocabularyInterface::class, $entity); + $this->assertSame($expected_label, $entity->label()); + $this->assertSame($expected_description, $entity->getDescription()); + $this->assertSame($expected_weight, (int) $entity->get('weight')); + } + + /** + * Tests the Drupal 6 taxonomy vocabularies migration. + */ + public function testTaxonomyVocabulary() { + $this->assertEntity('forums', 'Forums', '', 0); + $this->assertEntity('trees', 'Trees', 'A list of trees.', 0); + $this->assertEntity('freetags', 'FreeTags', '', 0); + } + +} diff --git a/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateVocabularyEntityDisplayTest.php b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateVocabularyEntityDisplayTest.php new file mode 100644 index 0000000000000000000000000000000000000000..2723bd622f19a65a55109ea177d0bfc46d4ca97c --- /dev/null +++ b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateVocabularyEntityDisplayTest.php @@ -0,0 +1,114 @@ +<?php + +namespace Drupal\Tests\forum\Kernel\Migrate\d6; + +use Drupal\Core\Entity\Display\EntityViewDisplayInterface; +use Drupal\Core\Entity\Entity\EntityViewDisplay; +use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; + +/** + * Vocabulary entity display migration. + * + * @group forum + */ +class MigrateVocabularyEntityDisplayTest extends MigrateDrupal6TestBase { + + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'field', + 'comment', + 'forum', + 'taxonomy', + 'menu_ui', + ]; + + /** + * {@inheritdoc} + */ + protected function setUp(): void { + parent::setUp(); + + // Execute Dependency Migrations. + $this->migrateContentTypes(); + $this->installEntitySchema('taxonomy_term'); + $this->executeMigrations([ + 'd6_node_type', + 'd6_taxonomy_vocabulary', + 'd6_vocabulary_field', + 'd6_vocabulary_field_instance', + 'd6_vocabulary_entity_display', + ]); + } + + /** + * Gets the path to the fixture file. + */ + protected function getFixtureFilePath() { + return __DIR__ . '/../../../../fixtures/drupal6.php'; + } + + /** + * Tests the Drupal 6 vocabulary-node type association to Drupal 8 migration. + */ + public function testVocabularyEntityDisplay() { + $this->assertEntity('node.forum.default'); + $this->assertComponent('node.forum.default', 'taxonomy_forums', 'entity_reference_label', 'hidden', 20); + $this->assertComponent('node.forum.default', 'field_trees', 'entity_reference_label', 'hidden', 20); + $this->assertComponent('node.forum.default', 'field_freetags', 'entity_reference_label', 'hidden', 20); + } + + /** + * Asserts various aspects of a view display. + * + * @param string $id + * The view display ID. + * + * @internal + */ + protected function assertEntity(string $id): void { + $display = EntityViewDisplay::load($id); + $this->assertInstanceOf(EntityViewDisplayInterface::class, $display); + } + + /** + * Asserts various aspects of a particular component of a view display. + * + * @param string $display_id + * The view display ID. + * @param string $component_id + * The component ID. + * @param string $type + * The expected component type (formatter plugin ID). + * @param string $label + * The expected label of the component. + * @param int $weight + * The expected weight of the component. + * + * @internal + */ + protected function assertComponent(string $display_id, string $component_id, string $type, string $label, int $weight): void { + $component = EntityViewDisplay::load($display_id)->getComponent($component_id); + $this->assertIsArray($component); + $this->assertSame($type, $component['type']); + $this->assertSame($label, $component['label']); + $this->assertSame($weight, $component['weight']); + } + + /** + * Asserts that a particular component is NOT included in a display. + * + * @param string $display_id + * The display ID. + * @param string $component_id + * The component ID. + * + * @internal + */ + protected function assertComponentNotExists(string $display_id, string $component_id): void { + $component = EntityViewDisplay::load($display_id)->getComponent($component_id); + $this->assertNull($component); + } + +} diff --git a/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateVocabularyEntityFormDisplayTest.php b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateVocabularyEntityFormDisplayTest.php new file mode 100644 index 0000000000000000000000000000000000000000..cf5c02181208aef9aeaabb7e591f11f7ce60acb6 --- /dev/null +++ b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateVocabularyEntityFormDisplayTest.php @@ -0,0 +1,97 @@ +<?php + +namespace Drupal\Tests\forum\Kernel\Migrate\d6; + +use Drupal\Core\Entity\Display\EntityFormDisplayInterface; +use Drupal\Core\Entity\Entity\EntityFormDisplay; +use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; + +/** + * Vocabulary entity form display migration. + * + * @group forum + */ +class MigrateVocabularyEntityFormDisplayTest extends MigrateDrupal6TestBase { + + /** + * {@inheritdoc} + */ + protected static $modules = ['comment', 'forum', 'taxonomy', 'menu_ui']; + + /** + * {@inheritdoc} + */ + protected function setUp(): void { + parent::setUp(); + + // Execute Dependency Migrations. + $this->migrateContentTypes(); + $this->installEntitySchema('taxonomy_term'); + $this->executeMigrations([ + 'd6_taxonomy_vocabulary', + 'd6_vocabulary_field', + 'd6_vocabulary_field_instance', + 'd6_vocabulary_entity_display', + 'd6_vocabulary_entity_form_display', + ]); + } + + /** + * Gets the path to the fixture file. + */ + protected function getFixtureFilePath() { + return __DIR__ . '/../../../../fixtures/drupal6.php'; + } + + /** + * Tests the Drupal 6 vocabulary-node type association to Drupal 8 migration. + */ + public function testVocabularyEntityFormDisplay() { + $this->assertEntity('node.forum.default', 'node', 'forum'); + $this->assertComponent('node.forum.default', 'taxonomy_forums', 'options_select', 20); + $this->assertComponent('node.forum.default', 'field_trees', 'options_select', 20); + $this->assertComponent('node.forum.default', 'field_freetags', 'entity_reference_autocomplete_tags', 20); + } + + /** + * Asserts various aspects of a form display entity. + * + * @param string $id + * The entity ID. + * @param string $expected_entity_type + * The expected entity type to which the display settings are attached. + * @param string $expected_bundle + * The expected bundle to which the display settings are attached. + * + * @internal + */ + protected function assertEntity(string $id, string $expected_entity_type, string $expected_bundle): void { + /** @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface $entity */ + $entity = EntityFormDisplay::load($id); + $this->assertInstanceOf(EntityFormDisplayInterface::class, $entity); + $this->assertSame($expected_entity_type, $entity->getTargetEntityTypeId()); + $this->assertSame($expected_bundle, $entity->getTargetBundle()); + } + + /** + * Asserts various aspects of a particular component of a form display. + * + * @param string $display_id + * The form display ID. + * @param string $component_id + * The component ID. + * @param string $widget_type + * The expected widget type. + * @param int $weight + * The expected weight of the component. + * + * @internal + */ + protected function assertComponent(string $display_id, string $component_id, string $widget_type, int $weight): void { + $component = EntityFormDisplay::load($display_id)->getComponent($component_id); + $this->assertIsArray($component); + $this->assertSame($widget_type, $component['type']); + $this->assertSame($weight, $component['weight']); + } + +} diff --git a/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateVocabularyFieldInstanceTest.php b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateVocabularyFieldInstanceTest.php new file mode 100644 index 0000000000000000000000000000000000000000..9f04e00efcaa3333b57b2392398181e72ddc51b0 --- /dev/null +++ b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateVocabularyFieldInstanceTest.php @@ -0,0 +1,124 @@ +<?php + +namespace Drupal\Tests\forum\Kernel\Migrate\d6; + +use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; +use Drupal\field\Entity\FieldConfig; +use Drupal\field\FieldConfigInterface; + +/** + * Vocabulary field instance migration. + * + * @group forum + */ +class MigrateVocabularyFieldInstanceTest extends MigrateDrupal6TestBase { + + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'comment', + 'forum', + 'menu_ui', + 'taxonomy', + ]; + + /** + * {@inheritdoc} + */ + protected function setUp(): void { + parent::setUp(); + // Execute Dependency Migrations. + $this->migrateContentTypes(); + $this->installEntitySchema('taxonomy_term'); + $this->executeMigrations([ + 'd6_node_type', + 'd6_taxonomy_vocabulary', + 'd6_vocabulary_field', + 'd6_vocabulary_field_instance', + ]); + } + + /** + * Gets the path to the fixture file. + */ + protected function getFixtureFilePath() { + return __DIR__ . '/../../../../fixtures/drupal6.php'; + } + + /** + * Tests the Drupal 6 vocabulary-node type association migration. + */ + public function testVocabularyFieldInstance() { + $this->assertEntity('node.forum.taxonomy_forums', 'Forums', 'entity_reference', FALSE, FALSE); + $this->assertEntity('node.forum.field_trees', 'Trees', 'entity_reference', FALSE, FALSE); + $this->assertEntity('node.forum.field_freetags', 'FreeTags', 'entity_reference', FALSE, FALSE); + } + + /** + * Asserts various aspects of a field config entity. + * + * @param string $id + * The entity ID in the form ENTITY_TYPE.BUNDLE.FIELD_NAME. + * @param string $expected_label + * The expected field label. + * @param string $expected_field_type + * The expected field type. + * @param bool $is_required + * Whether or not the field is required. + * @param bool $expected_translatable + * Whether or not the field is expected to be translatable. + * + * @internal + */ + protected function assertEntity(string $id, string $expected_label, string $expected_field_type, bool $is_required, bool $expected_translatable): void { + [$expected_entity_type, $expected_bundle, $expected_name] = explode('.', $id); + + /** @var \Drupal\field\FieldConfigInterface $field */ + $field = FieldConfig::load($id); + $this->assertInstanceOf(FieldConfigInterface::class, $field); + $this->assertEquals($expected_label, $field->label()); + $this->assertEquals($expected_field_type, $field->getType()); + $this->assertEquals($expected_entity_type, $field->getTargetEntityTypeId()); + $this->assertEquals($expected_bundle, $field->getTargetBundle()); + $this->assertEquals($expected_name, $field->getName()); + $this->assertEquals($is_required, $field->isRequired()); + $this->assertEquals($expected_entity_type . '.' . $expected_name, $field->getFieldStorageDefinition()->id()); + $this->assertEquals($expected_translatable, $field->isTranslatable()); + } + + /** + * Asserts the settings of a link field config entity. + * + * @param string $id + * The entity ID in the form ENTITY_TYPE.BUNDLE.FIELD_NAME. + * @param int $title_setting + * The expected title setting. + * + * @internal + */ + protected function assertLinkFields(string $id, int $title_setting): void { + $field = FieldConfig::load($id); + $this->assertSame($title_setting, $field->getSetting('title')); + } + + /** + * Asserts the settings of an entity reference field config entity. + * + * @param string $id + * The entity ID in the form ENTITY_TYPE.BUNDLE.FIELD_NAME. + * @param string[] $target_bundles + * An array of expected target bundles. + * + * @internal + */ + protected function assertEntityReferenceFields(string $id, array $target_bundles): void { + $field = FieldConfig::load($id); + $handler_settings = $field->getSetting('handler_settings'); + $this->assertArrayHasKey('target_bundles', $handler_settings); + foreach ($handler_settings['target_bundles'] as $target_bundle) { + $this->assertContains($target_bundle, $target_bundles); + } + } + +} diff --git a/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateVocabularyFieldTest.php b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateVocabularyFieldTest.php new file mode 100644 index 0000000000000000000000000000000000000000..100c85c75541a6b856bb0effe6380e12abf0e4f4 --- /dev/null +++ b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateVocabularyFieldTest.php @@ -0,0 +1,85 @@ +<?php + +namespace Drupal\Tests\forum\Kernel\Migrate\d6; + +use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; +use Drupal\field\Entity\FieldStorageConfig; +use Drupal\field\FieldStorageConfigInterface; + +/** + * Vocabulary field migration. + * + * @group forum + */ +class MigrateVocabularyFieldTest extends MigrateDrupal6TestBase { + + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'comment', + 'forum', + 'taxonomy', + 'menu_ui', + ]; + + /** + * {@inheritdoc} + */ + protected function setUp(): void { + parent::setUp(); + $this->migrateTaxonomy(); + } + + /** + * Gets the path to the fixture file. + */ + protected function getFixtureFilePath() { + return __DIR__ . '/../../../../fixtures/drupal6.php'; + } + + /** + * Tests the Drupal 6 vocabulary-node type association migration. + */ + public function testVocabularyField() { + // Test that the field exists. + $this->assertEntity('node.field_freetags', 'entity_reference', TRUE, -1); + $this->assertEntity('node.field_trees', 'entity_reference', TRUE, 1); + $this->assertEntity('node.taxonomy_forums', 'entity_reference', TRUE, 1); + } + + /** + * Asserts various aspects of a field_storage_config entity. + * + * @param string $id + * The entity ID in the form ENTITY_TYPE.FIELD_NAME. + * @param string $expected_type + * The expected field type. + * @param bool $expected_translatable + * Whether or not the field is expected to be translatable. + * @param int $expected_cardinality + * The expected cardinality of the field. + * + * @internal + */ + protected function assertEntity(string $id, string $expected_type, bool $expected_translatable, int $expected_cardinality): void { + [$expected_entity_type, $expected_name] = explode('.', $id); + + /** @var \Drupal\field\FieldStorageConfigInterface $field */ + $field = FieldStorageConfig::load($id); + $this->assertInstanceOf(FieldStorageConfigInterface::class, $field); + $this->assertEquals($expected_name, $field->getName()); + $this->assertEquals($expected_type, $field->getType()); + $this->assertEquals($expected_translatable, $field->isTranslatable()); + $this->assertEquals($expected_entity_type, $field->getTargetEntityTypeId()); + + if ($expected_cardinality === 1) { + $this->assertFalse($field->isMultiple()); + } + else { + $this->assertTrue($field->isMultiple()); + } + $this->assertEquals($expected_cardinality, $field->getCardinality()); + } + +} diff --git a/core/modules/forum/tests/src/Kernel/Migrate/d7/MigrateLanguageContentTaxonomyVocabularySettingsTest.php b/core/modules/forum/tests/src/Kernel/Migrate/d7/MigrateLanguageContentTaxonomyVocabularySettingsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..f7e8f284a5648b6ea109678942e3413671fdb464 --- /dev/null +++ b/core/modules/forum/tests/src/Kernel/Migrate/d7/MigrateLanguageContentTaxonomyVocabularySettingsTest.php @@ -0,0 +1,30 @@ +<?php + +namespace Drupal\Tests\forum\Kernel\Migrate\d7; + +use Drupal\Core\Language\LanguageInterface; +use Drupal\Tests\language\Kernel\Migrate\d7\MigrateLanguageContentTaxonomyVocabularySettingsTest as CoreTest; + +/** + * Tests migration of i18ntaxonomy vocabulary settings. + * + * @group forum + */ +class MigrateLanguageContentTaxonomyVocabularySettingsTest extends CoreTest { + + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'comment', + 'forum', + ]; + + /** + * Tests migration of 18ntaxonomy vocabulary settings. + */ + public function testLanguageContentTaxonomy() { + $this->assertLanguageContentSettings('taxonomy_term', 'forums', LanguageInterface::LANGCODE_NOT_SPECIFIED, FALSE, ['enabled' => FALSE]); + } + +} diff --git a/core/modules/forum/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php b/core/modules/forum/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php new file mode 100644 index 0000000000000000000000000000000000000000..937052e738b23d3a54005df03a28e9064139b4fc --- /dev/null +++ b/core/modules/forum/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php @@ -0,0 +1,84 @@ +<?php + +namespace Drupal\Tests\forum\Kernel\Migrate\d7; + +use Drupal\Tests\forum\Kernel\Migrate\MigrateTestTrait; +use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase; +use Drupal\taxonomy\Entity\Term; + +/** + * Test migration of forum taxonomy terms. + * + * @group forum + */ +class MigrateTaxonomyTermTest extends MigrateDrupal7TestBase { + + use MigrateTestTrait; + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'comment', + 'forum', + 'content_translation', + 'datetime', + 'datetime_range', + 'image', + 'language', + 'menu_ui', + 'node', + 'taxonomy', + 'text', + ]; + + /** + * {@inheritdoc} + */ + protected function setUp(): void { + parent::setUp(); + $this->installConfig('forum'); + $this->installEntitySchema('comment'); + $this->installEntitySchema('file'); + + $this->migrateTaxonomyTerms(); + $this->executeMigrations([ + 'language', + 'd7_user_role', + 'd7_user', + 'd7_entity_translation_settings', + 'd7_taxonomy_term_entity_translation', + ]); + } + + /** + * Gets the path to the fixture file. + */ + protected function getFixtureFilePath() { + return __DIR__ . '/../../../../fixtures/drupal7.php'; + } + + /** + * Assert the forum taxonomy terms. + */ + public function testTaxonomyTerms() { + $this->assertEntity(1, 'en', 'General discussion', 'forums', '', NULL, 2, ['0'], 0); + + $this->assertEntity(5, 'en', 'Custom Forum', 'forums', 'Where the cool kids are.', NULL, 3, ['0'], 0); + $this->assertEntity(6, 'en', 'Games', 'forums', NULL, '', 4, ['0'], 1); + $this->assertEntity(7, 'en', 'Minecraft', 'forums', '', NULL, 1, [6], 0); + $this->assertEntity(8, 'en', 'Half Life 3', 'forums', '', NULL, 0, [6], 0); + + // Verify that we still can create forum containers after the migration. + $term = Term::create([ + 'vid' => 'forums', + 'name' => 'Forum Container', + 'forum_container' => 1, + ]); + $term->save(); + + // Reset the forums tree data so this new term is included in the tree. + unset($this->treeData['forums']); + $this->assertEntity(9, 'en', 'Forum Container', 'forums', '', '', 0, ['0'], 1); + } + +} diff --git a/core/modules/forum/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTranslationTest.php b/core/modules/forum/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTranslationTest.php new file mode 100644 index 0000000000000000000000000000000000000000..883b47fc0885c1210511302929f42eb2474a262e --- /dev/null +++ b/core/modules/forum/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTranslationTest.php @@ -0,0 +1,41 @@ +<?php + +namespace Drupal\Tests\forum\Kernel\Migrate\d7; + +use Drupal\Tests\taxonomy\Kernel\Migrate\d7\MigrateTaxonomyTermTranslationTest as TaxonomyTermTranslationTest; + +/** + * Test migration of translated taxonomy terms. + * + * @group forum + */ +class MigrateTaxonomyTermTranslationTest extends TaxonomyTermTranslationTest { + + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'comment', + 'forum', + ]; + + /** + * Gets the path to the fixture file. + */ + protected function getFixtureFilePath() { + return __DIR__ . '/../../../../fixtures/drupal7.php'; + } + + /** + * Tests the Drupal i18n taxonomy term to Drupal 8 migration. + */ + public function testTaxonomyTermTranslation() { + // Forums vocabulary, no multilingual option. + $this->assertEntity(1, 'en', 'General discussion', 'forums', NULL, NULL, '2', []); + $this->assertEntity(5, 'en', 'Custom Forum', 'forums', 'Where the cool kids are.', NULL, '3', []); + $this->assertEntity(6, 'en', 'Games', 'forums', NULL, NULL, '4', []); + $this->assertEntity(7, 'en', 'Minecraft', 'forums', NULL, NULL, '1', ['6']); + $this->assertEntity(8, 'en', 'Half Life 3', 'forums', NULL, NULL, '0', ['6']); + } + +} diff --git a/core/modules/forum/tests/src/Kernel/Migrate/d7/MigrateTaxonomyVocabularyTest.php b/core/modules/forum/tests/src/Kernel/Migrate/d7/MigrateTaxonomyVocabularyTest.php new file mode 100644 index 0000000000000000000000000000000000000000..f1c5b7827f32aab0dd5f9864d7758722ce5d9c90 --- /dev/null +++ b/core/modules/forum/tests/src/Kernel/Migrate/d7/MigrateTaxonomyVocabularyTest.php @@ -0,0 +1,37 @@ +<?php + +namespace Drupal\Tests\forum\Kernel\Migrate\d7; + +use Drupal\Tests\taxonomy\Kernel\Migrate\d7\MigrateTaxonomyVocabularyTest as TaxonomyVocabularyTest; + +/** + * Migrate forum vocabulary to taxonomy.vocabulary.*.yml. + * + * @group forum + */ +class MigrateTaxonomyVocabularyTest extends TaxonomyVocabularyTest { + + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'comment', + 'forum', + ]; + + /** + * Gets the path to the fixture file. + */ + protected function getFixtureFilePath() { + return __DIR__ . '/../../../../fixtures/drupal7.php'; + } + + /** + * Tests the Drupal 7 taxonomy vocabularies to Drupal 8 migration. + */ + public function testTaxonomyVocabulary() { + $this->assertEntity('tags', 'Tags', 'Use tags to group articles on similar topics into categories.', 0); + $this->assertEntity('forums', 'Subject of discussion', 'Forum navigation vocabulary', -10); + } + +} diff --git a/core/modules/language/tests/src/Kernel/Migrate/d7/MigrateLanguageContentTaxonomyVocabularySettingsTest.php b/core/modules/language/tests/src/Kernel/Migrate/d7/MigrateLanguageContentTaxonomyVocabularySettingsTest.php index 2cacadd2394adf3e0ef9bad6211dcc347b0b9df0..424f8d69105b258cfc2d6809ec88fca3edc67baf 100644 --- a/core/modules/language/tests/src/Kernel/Migrate/d7/MigrateLanguageContentTaxonomyVocabularySettingsTest.php +++ b/core/modules/language/tests/src/Kernel/Migrate/d7/MigrateLanguageContentTaxonomyVocabularySettingsTest.php @@ -43,7 +43,7 @@ public function testLanguageContentTaxonomy() { $target_entity = 'taxonomy_term'; // No multilingual options for terms, i18n_mode = 0. $this->assertLanguageContentSettings($target_entity, 'tags', LanguageInterface::LANGCODE_NOT_SPECIFIED, FALSE, ['enabled' => FALSE]); - $this->assertLanguageContentSettings($target_entity, 'forums', LanguageInterface::LANGCODE_NOT_SPECIFIED, FALSE, ['enabled' => FALSE]); + $this->assertLanguageContentSettings($target_entity, 'sujet_de_discussion', LanguageInterface::LANGCODE_NOT_SPECIFIED, FALSE, ['enabled' => FALSE]); $this->assertLanguageContentSettings($target_entity, 'vocabulary_name_much_longer_th', LanguageInterface::LANGCODE_NOT_SPECIFIED, FALSE, ['enabled' => FALSE]); $this->assertLanguageContentSettings($target_entity, 'test_vocabulary', LanguageInterface::LANGCODE_NOT_SPECIFIED, FALSE, ['enabled' => FALSE]); // Localize, i18n_mode = 1. diff --git a/core/modules/taxonomy/migrations/d6_taxonomy_vocabulary.yml b/core/modules/taxonomy/migrations/d6_taxonomy_vocabulary.yml index f4a3ec1355fcabb0be8cadbe71cb9982a914ea6a..1a0044345e583157a0f78e598b00a8b8c845a26c 100644 --- a/core/modules/taxonomy/migrations/d6_taxonomy_vocabulary.yml +++ b/core/modules/taxonomy/migrations/d6_taxonomy_vocabulary.yml @@ -16,12 +16,6 @@ process: field: vid length: 30 migrated: true - - - # This plugin checks if the vocabulary being migrated is the one used by - # Forum. If so, we use the machine name that Forum expects. Otherwise, we - # leave it unchanged. - plugin: forum_vocabulary - machine_name: forums label: name name: name description: description diff --git a/core/modules/taxonomy/migrations/d6_vocabulary_entity_display.yml b/core/modules/taxonomy/migrations/d6_vocabulary_entity_display.yml index 760b6dde39d3096a893514d4f6ed86ca2388863a..50e66e61145481fe30020da245f4f77f7a20eed0 100644 --- a/core/modules/taxonomy/migrations/d6_vocabulary_entity_display.yml +++ b/core/modules/taxonomy/migrations/d6_vocabulary_entity_display.yml @@ -45,12 +45,6 @@ process: - plugin: substr length: 32 - - - # This plugin checks if the vocabulary being migrated is the one used by - # Forum. If so, we use the machine name that Forum expects. Otherwise, we - # leave it unchanged. - plugin: forum_vocabulary - machine_name: taxonomy_forums destination: plugin: component_entity_display migration_dependencies: diff --git a/core/modules/taxonomy/migrations/d6_vocabulary_entity_form_display.yml b/core/modules/taxonomy/migrations/d6_vocabulary_entity_form_display.yml index da8cd2704b9b805828707f185cc72b67a95f451e..c33d85b7a95cde519997716fdcc7a87212d510f2 100644 --- a/core/modules/taxonomy/migrations/d6_vocabulary_entity_form_display.yml +++ b/core/modules/taxonomy/migrations/d6_vocabulary_entity_form_display.yml @@ -49,12 +49,6 @@ process: - plugin: substr length: 32 - - - # This plugin checks if the vocabulary being migrated is the one used by - # Forum. If so, we use the machine name that Forum expects. Otherwise, we - # leave it unchanged. - plugin: forum_vocabulary - machine_name: taxonomy_forums destination: plugin: component_entity_form_display migration_dependencies: diff --git a/core/modules/taxonomy/migrations/d6_vocabulary_field.yml b/core/modules/taxonomy/migrations/d6_vocabulary_field.yml index 36974e159c7286f1400496eb0a39f130be4f84ef..d6730eded8562eb4752647b213138674ec012ed0 100644 --- a/core/modules/taxonomy/migrations/d6_vocabulary_field.yml +++ b/core/modules/taxonomy/migrations/d6_vocabulary_field.yml @@ -33,12 +33,6 @@ process: - plugin: substr length: 32 - - - # This plugin checks if the vocabulary being migrated is the one used by - # Forum. If so, we use the machine name that Forum expects. Otherwise, we - # leave it unchanged. - plugin: forum_vocabulary - machine_name: taxonomy_forums 'settings/target_type': 'constants/target_entity_type' cardinality: cardinality destination: diff --git a/core/modules/taxonomy/migrations/d6_vocabulary_field_instance.yml b/core/modules/taxonomy/migrations/d6_vocabulary_field_instance.yml index ac3ed4e08b4cfb50330c45eba46bfa8dc351a801..a88ffb4fdd3e1be9d4d3ed26386bba4a65acd993 100644 --- a/core/modules/taxonomy/migrations/d6_vocabulary_field_instance.yml +++ b/core/modules/taxonomy/migrations/d6_vocabulary_field_instance.yml @@ -41,12 +41,6 @@ process: - plugin: substr length: 32 - - - # This plugin checks if the vocabulary being migrated is the one used by - # Forum. If so, we use the machine name that Forum expects. Otherwise, we - # leave it unchanged. - plugin: forum_vocabulary - machine_name: taxonomy_forums label: name _vid: - diff --git a/core/modules/taxonomy/migrations/d7_taxonomy_term.yml b/core/modules/taxonomy/migrations/d7_taxonomy_term.yml index 1bae2d6e32f9d8e6903d3db377b88c16164b877c..163dd454409d419698e76799b38599bff5e753ae 100644 --- a/core/modules/taxonomy/migrations/d7_taxonomy_term.yml +++ b/core/modules/taxonomy/migrations/d7_taxonomy_term.yml @@ -32,7 +32,6 @@ process: plugin: default_value default_value: 0 source: '@parent_id' - forum_container: is_container changed: timestamp langcode: language destination: diff --git a/core/modules/taxonomy/migrations/d7_taxonomy_vocabulary.yml b/core/modules/taxonomy/migrations/d7_taxonomy_vocabulary.yml index e9c811d1665cc7106e0ac15105026bb74b4a7f6f..c26c14a98f28ff29c9b282568acbd8b9a44bd19b 100644 --- a/core/modules/taxonomy/migrations/d7_taxonomy_vocabulary.yml +++ b/core/modules/taxonomy/migrations/d7_taxonomy_vocabulary.yml @@ -7,19 +7,12 @@ source: plugin: d7_taxonomy_vocabulary process: vid: - - - plugin: make_unique_entity_field - source: machine_name - entity_type: taxonomy_vocabulary - field: vid - length: 30 - migrated: true - - - # This plugin checks if the vocabulary being migrated is the one used by - # Forum. If so, we use the machine name that Forum expects. Otherwise, we - # leave it unchanged. - plugin: forum_vocabulary - machine_name: forums + plugin: make_unique_entity_field + source: machine_name + entity_type: taxonomy_vocabulary + field: vid + length: 30 + migrated: true label: name name: name description: description diff --git a/core/modules/taxonomy/src/Plugin/migrate/process/ForumVocabulary.php b/core/modules/taxonomy/src/Plugin/migrate/process/ForumVocabulary.php index 677f246519fcec6ec982c3cac2fe1d7a049036c6..15efb661f43aad858d9fcb955ba3229a6b505cd0 100644 --- a/core/modules/taxonomy/src/Plugin/migrate/process/ForumVocabulary.php +++ b/core/modules/taxonomy/src/Plugin/migrate/process/ForumVocabulary.php @@ -27,12 +27,28 @@ * machine_name: taxonomy_forums * @endcode * - * @MigrateProcessPlugin( - * id = "forum_vocabulary" - * ) + * @deprecated in drupal:10.1.0 and is removed from drupal:11.0.0. Use + * \Drupal\forum\Plugin\migrate\process\ForumVocabulary instead. + * + * @see https://www.drupal.org/node/000000 */ class ForumVocabulary extends ProcessPluginBase { + /** + * Constructs a MigrationLookup object. + * + * @param array $configuration + * A configuration array containing information about the plugin instance. + * @param string $plugin_id + * The plugin_id for the plugin instance. + * @param mixed $plugin_definition + * The plugin implementation definition. + */ + public function __construct(array $configuration, $plugin_id, $plugin_definition) { + @trigger_error(__CLASS__ . 'is deprecated in drupal:10.1.0 and is removed from drupal:11.0.0. Use \Drupal\forum\Plugin\migrate\process\ForumVocabulary instead. See https://www.drupal.org/node/000000 ', E_USER_DEPRECATED); + parent::__construct($configuration, $plugin_id, $plugin_definition); + } + /** * {@inheritdoc} */ diff --git a/core/modules/taxonomy/src/Plugin/migrate/source/d7/Term.php b/core/modules/taxonomy/src/Plugin/migrate/source/d7/Term.php index 40c7a6bcb9171673b777c3f42a4ea06fa0d9b615..edb74619b4e67fe5636a696f9c465599dd1ce853 100644 --- a/core/modules/taxonomy/src/Plugin/migrate/source/d7/Term.php +++ b/core/modules/taxonomy/src/Plugin/migrate/source/d7/Term.php @@ -132,11 +132,6 @@ public function prepareRow(Row $row) { ->fetchCol(); $row->setSourceProperty('parent', $parents); - // Determine if this is a forum container. - $forum_container_tids = $this->variableGet('forum_containers', []); - $current_tid = $row->getSourceProperty('tid'); - $row->setSourceProperty('is_container', in_array($current_tid, $forum_container_tids)); - // If the term name or term description were replaced by real fields using // the Drupal 7 Title module, use the fields value instead of the term name // or term description. diff --git a/core/modules/taxonomy/src/Plugin/migrate/source/d7/TermEntityTranslation.php b/core/modules/taxonomy/src/Plugin/migrate/source/d7/TermEntityTranslation.php index 594cde8fe9935d95e49fa959b940904f6f9b246a..88cb561b8537249c9cd8a0e8cbd19674f7ffb294 100644 --- a/core/modules/taxonomy/src/Plugin/migrate/source/d7/TermEntityTranslation.php +++ b/core/modules/taxonomy/src/Plugin/migrate/source/d7/TermEntityTranslation.php @@ -103,11 +103,6 @@ public function prepareRow(Row $row) { $row->setSourceProperty('format', $description_field[0]['format']); } } - - // Determine if this is a forum container. - $forum_container_tids = $this->variableGet('forum_containers', []); - $row->setSourceProperty('is_container', in_array($tid, $forum_container_tids)); - return parent::prepareRow($row); } diff --git a/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTest.php b/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTest.php index 459400356bba8240079061c2ad7c6f4abbafd2a4..ccb9cbca3a38051bbf857195b214f0e46dcd29bf 100644 --- a/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTest.php +++ b/core/modules/taxonomy/tests/src/Kernel/Migrate/d6/MigrateTaxonomyTermTest.php @@ -15,14 +15,13 @@ class MigrateTaxonomyTermTest extends MigrateDrupal6TestBase { /** * {@inheritdoc} */ - protected static $modules = ['comment', 'forum', 'taxonomy']; + protected static $modules = ['comment', 'taxonomy']; /** * {@inheritdoc} */ protected function setUp(): void { parent::setUp(); - $this->installConfig('forum'); $this->installEntitySchema('taxonomy_term'); $this->executeMigrations(['d6_taxonomy_vocabulary', 'd6_taxonomy_term']); } @@ -114,10 +113,6 @@ public function testTaxonomyTerms() { sort($actual_parents); $this->assertEquals($expected_parents, $actual_parents, "Term $tid has correct parents in vocabulary tree"); } - - // Check the forum is not a container. - $term = Term::load(8); - $this->assertEquals(0, $term->forum_container->value); } } diff --git a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php index e90ba79ee5aa713b2d68f38d4dacd83a2f1bcf5e..a7f4ea69e861d1e693a7474f80b4a7eb00a8ab9a 100644 --- a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php +++ b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTest.php @@ -15,7 +15,6 @@ class MigrateTaxonomyTermTest extends MigrateDrupal7TestBase { protected static $modules = [ 'comment', - 'forum', 'content_translation', 'datetime', 'datetime_range', @@ -41,7 +40,6 @@ class MigrateTaxonomyTermTest extends MigrateDrupal7TestBase { */ protected function setUp(): void { parent::setUp(); - $this->installConfig('forum'); $this->installEntitySchema('comment'); $this->installEntitySchema('file'); @@ -103,16 +101,13 @@ protected function assertEntity(int $id, string $expected_language, string $expe $this->assertTrue($entity->hasField('field_integer')); $this->assertEquals($expected_term_reference_tid, $entity->field_term_reference->target_id); } - if (isset($expected_container_flag)) { - $this->assertEquals($expected_container_flag, $entity->forum_container->value); - } } /** * Tests the Drupal 7 taxonomy term to Drupal 8 migration. */ public function testTaxonomyTerms() { - $this->assertEntity(1, 'en', 'General discussion', 'forums', '', NULL, 2); + $this->assertEntity(1, 'en', 'General discussion', 'sujet_de_discussion', '', NULL, 2); // Tests that terms that used the Drupal 7 Title module and that have their // name and description replaced by real fields are correctly migrated. @@ -120,18 +115,10 @@ public function testTaxonomyTerms() { $this->assertEntity(3, 'en', 'Term2', 'test_vocabulary', 'The second term.', 'filtered_html'); $this->assertEntity(4, 'en', 'Term3 in plain old English', 'test_vocabulary', 'The third term in plain old English.', 'full_html', 0, [3], 6); - $this->assertEntity(5, 'en', 'Custom Forum', 'forums', 'Where the cool kids are.', NULL, 3, [], NULL, NULL, 0); - $this->assertEntity(6, 'en', 'Games', 'forums', NULL, '', 4, [], NULL, NULL, 1); - $this->assertEntity(7, 'en', 'Minecraft', 'forums', '', NULL, 1, [6], NULL, NULL, 0); - $this->assertEntity(8, 'en', 'Half Life 3', 'forums', '', NULL, 0, [6], NULL, NULL, 0); - - // Verify that we still can create forum containers after the migration. - $term = Term::create(['vid' => 'forums', 'name' => 'Forum Container', 'forum_container' => 1]); - $term->save(); - - // Reset the forums tree data so this new term is included in the tree. - unset($this->treeData['forums']); - $this->assertEntity(26, 'en', 'Forum Container', 'forums', '', '', 0, [], NULL, NULL, 1); + $this->assertEntity(5, 'en', 'Custom Forum', 'sujet_de_discussion', 'Where the cool kids are.', NULL, 3, [], NULL, NULL, 0); + $this->assertEntity(6, 'en', 'Games', 'sujet_de_discussion', NULL, '', 4, [], NULL, NULL, 1); + $this->assertEntity(7, 'en', 'Minecraft', 'sujet_de_discussion', '', NULL, 1, [6], NULL, NULL, 0); + $this->assertEntity(8, 'en', 'Half Life 3', 'sujet_de_discussion', '', NULL, 0, [6], NULL, NULL, 0); // Test taxonomy term language translations. $this->assertEntity(19, 'en', 'Jupiter Station', 'vocablocalized', 'Holographic research.', 'filtered_html', 0, [], NULL, NULL); diff --git a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTranslationTest.php b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTranslationTest.php index f8acceff8dd8a7e306a8f6fb461c25c9eab44ea6..98137eb8a359825d2f36af4d74a4443d43bc42fa 100644 --- a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTranslationTest.php +++ b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyTermTranslationTest.php @@ -132,11 +132,11 @@ protected function assertHierarchy(string $vid, int $tid, array $parent_ids): vo */ public function testTaxonomyTermTranslation() { // Forums vocabulary, no multilingual option. - $this->assertEntity(1, 'en', 'General discussion', 'forums', NULL, NULL, '2', []); - $this->assertEntity(5, 'en', 'Custom Forum', 'forums', 'Where the cool kids are.', NULL, '3', []); - $this->assertEntity(6, 'en', 'Games', 'forums', NULL, NULL, '4', []); - $this->assertEntity(7, 'en', 'Minecraft', 'forums', NULL, NULL, '1', ['6']); - $this->assertEntity(8, 'en', 'Half Life 3', 'forums', NULL, NULL, '0', ['6']); + $this->assertEntity(1, 'en', 'General discussion', 'sujet_de_discussion', NULL, NULL, '2', []); + $this->assertEntity(5, 'en', 'Custom Forum', 'sujet_de_discussion', 'Where the cool kids are.', NULL, '3', []); + $this->assertEntity(6, 'en', 'Games', 'sujet_de_discussion', NULL, NULL, '4', []); + $this->assertEntity(7, 'en', 'Minecraft', 'sujet_de_discussion', NULL, NULL, '1', ['6']); + $this->assertEntity(8, 'en', 'Half Life 3', 'sujet_de_discussion', NULL, NULL, '0', ['6']); // Test vocabulary, field translation. $this->assertEntity(2, 'en', 'Term1 (This is a real field!)', 'test_vocabulary', 'The first term. (This is a real field!)', 'filtered_html', '0', []); diff --git a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyVocabularyTest.php b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyVocabularyTest.php index 979d5b5ac1fb4192cc0f48196c3f99eb96fd5b46..d90b71b905276474acc02aa69a73d4f3279df736 100644 --- a/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyVocabularyTest.php +++ b/core/modules/taxonomy/tests/src/Kernel/Migrate/d7/MigrateTaxonomyVocabularyTest.php @@ -54,7 +54,7 @@ protected function assertEntity(string $id, string $expected_label, string $expe */ public function testTaxonomyVocabulary() { $this->assertEntity('tags', 'Tags', 'Use tags to group articles on similar topics into categories.', 0); - $this->assertEntity('forums', 'Sujet de discussion', 'Forum navigation vocabulary', -10); + $this->assertEntity('sujet_de_discussion', 'Sujet de discussion', 'Forum navigation vocabulary', -10); $this->assertEntity('test_vocabulary', 'Test Vocabulary', 'This is the vocabulary description', 0); $this->assertEntity('vocabulary_name_much_longer_th', 'vocabulary name clearly different than machine name and much longer than thirty two characters', 'description of vocabulary name much longer than thirty two characters', 0); } diff --git a/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermEntityTranslationTest.php b/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermEntityTranslationTest.php index d8c48e840f3be3401a6195de3ec53c5cdf367c72..9cb061d19895afbcabdf9ea84fffd0cfbfe162a7 100644 --- a/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermEntityTranslationTest.php +++ b/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermEntityTranslationTest.php @@ -295,7 +295,6 @@ public function providerSource() { 'description' => 'Term Description FR', 'format' => 'full_html', 'machine_name' => 'tags', - 'is_container' => FALSE, 'field_test' => [ [ 'value' => 'French field', @@ -318,7 +317,6 @@ public function providerSource() { 'description' => 'Term Description ES', 'format' => 'full_html', 'machine_name' => 'tags', - 'is_container' => FALSE, 'field_test' => [ [ 'value' => 'Spanish field', diff --git a/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermLocalizedTranslationTest.php b/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermLocalizedTranslationTest.php index f9bce5525775e5efcf67d4f21db293ee276063fe..1447eda0b510f0ee75c54c59508194ea99e22790 100644 --- a/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermLocalizedTranslationTest.php +++ b/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermLocalizedTranslationTest.php @@ -101,7 +101,6 @@ public function providerSource() { 'name' => 'name value 1 (name_field)', 'description' => 'description value 1 (description_field)', 'weight' => 0, - 'is_container' => '', 'language' => 'fr', 'i18n_tsid' => '0', 'machine_name' => 'tags', @@ -119,7 +118,6 @@ public function providerSource() { 'name' => 'name value 1 (name_field)', 'description' => 'description value 1 (description_field)', 'weight' => 0, - 'is_container' => '', 'language' => 'fr', 'i18n_tsid' => '0', 'machine_name' => 'tags', @@ -182,7 +180,6 @@ public function providerSource() { 'name' => 'name value 3', 'description' => 'description value 3', 'weight' => 0, - 'is_container' => '', 'language' => 'zu', 'i18n_tsid' => '0', 'machine_name' => 'categories', @@ -198,7 +195,6 @@ public function providerSource() { 'name' => 'name value 5', 'description' => 'description value 5', 'weight' => 1, - 'is_container' => '1', 'language' => 'fr', 'i18n_tsid' => '0', 'machine_name' => 'categories', @@ -216,7 +212,6 @@ public function providerSource() { 'name' => 'name value 5', 'description' => 'description value 5', 'weight' => 1, - 'is_container' => '1', 'language' => 'fr', 'i18n_tsid' => '0', 'machine_name' => 'categories', diff --git a/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermTest.php b/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermTest.php index 2c2365b26c54acffdf2d4bfc25831c59157a9858..8ee71dfcc218e2832a20cc76237500d065770a66 100644 --- a/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermTest.php +++ b/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermTest.php @@ -31,7 +31,6 @@ public function providerSource() { 'name' => 'name value 1', 'description' => 'description value 1', 'weight' => 0, - 'is_container' => FALSE, ], [ 'tid' => 2, @@ -39,7 +38,6 @@ public function providerSource() { 'name' => 'name value 2', 'description' => 'description value 2', 'weight' => 0, - 'is_container' => TRUE, ], [ 'tid' => 3, @@ -47,7 +45,6 @@ public function providerSource() { 'name' => 'name value 3', 'description' => 'description value 3', 'weight' => 0, - 'is_container' => FALSE, ], [ 'tid' => 4, @@ -55,7 +52,6 @@ public function providerSource() { 'name' => 'name value 4', 'description' => 'description value 4', 'weight' => 1, - 'is_container' => FALSE, ], [ 'tid' => 5, @@ -63,7 +59,6 @@ public function providerSource() { 'name' => 'name value 5', 'description' => 'description value 5', 'weight' => 1, - 'is_container' => FALSE, ], [ 'tid' => 6, @@ -71,7 +66,6 @@ public function providerSource() { 'name' => 'name value 6', 'description' => 'description value 6', 'weight' => 0, - 'is_container' => TRUE, ], [ 'tid' => 7, @@ -79,7 +73,6 @@ public function providerSource() { 'name' => 'name value 7', 'description' => 'description value 7', 'weight' => 0, - 'is_container' => TRUE, ], ]; $tests[0]['source_data']['taxonomy_term_hierarchy'] = [ diff --git a/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermTranslationTest.php b/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermTranslationTest.php index 2008546d76f8d2381f81582d3645c09e16603336..9e37649da850adaf265f122c75de5eb9bcb52bce 100644 --- a/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermTranslationTest.php +++ b/core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/TermTranslationTest.php @@ -31,7 +31,6 @@ public function providerSource() { 'name' => 'fr - name 1', 'description' => 'desc 1', 'weight' => 0, - 'is_container' => FALSE, 'language' => 'fr', 'i18n_tsid' => '1', ], @@ -41,7 +40,6 @@ public function providerSource() { 'name' => 'name 2', 'description' => 'desc 2', 'weight' => 0, - 'is_container' => TRUE, 'language' => 'en', 'i18n_tsid' => '1', ], @@ -51,7 +49,6 @@ public function providerSource() { 'name' => 'name 3', 'description' => 'desc 3', 'weight' => 0, - 'is_container' => FALSE, 'language' => '', 'i18n_tsid' => '', ], @@ -61,7 +58,6 @@ public function providerSource() { 'name' => 'is - name 4', 'description' => 'desc 4', 'weight' => 1, - 'is_container' => FALSE, 'language' => 'is', 'i18n_tsid' => '1', ], @@ -71,7 +67,6 @@ public function providerSource() { 'name' => 'name 5', 'description' => 'desc 5', 'weight' => 1, - 'is_container' => FALSE, 'language' => '', 'i18n_tsid' => '', ], @@ -81,7 +76,6 @@ public function providerSource() { 'name' => 'name 6', 'description' => 'desc 6', 'weight' => 0, - 'is_container' => TRUE, 'language' => '', 'i18n_tsid' => '', ], @@ -91,7 +85,6 @@ public function providerSource() { 'name' => 'is - captains', 'description' => 'desc 7', 'weight' => 0, - 'is_container' => TRUE, 'language' => 'is', 'i18n_tsid' => '', ], @@ -277,7 +270,6 @@ public function providerSource() { 'name' => 'fr - name 1', 'description' => 'desc 1', 'weight' => 0, - 'is_container' => '', 'language' => 'fr', 'i18n_tsid' => '1', 'machine_name' => 'tags', @@ -291,7 +283,6 @@ public function providerSource() { 'name' => 'name 2', 'description' => 'desc 2', 'weight' => 0, - 'is_container' => '', 'language' => 'en', 'i18n_tsid' => '1', 'machine_name' => 'tags', @@ -305,7 +296,6 @@ public function providerSource() { 'name' => 'is - name 4', 'description' => 'desc 4', 'weight' => 1, - 'is_container' => '', 'language' => 'is', 'i18n_tsid' => '1', 'machine_name' => 'tags', @@ -336,7 +326,6 @@ public function providerSource() { 'name' => 'is - captains', 'description' => 'desc 7', 'weight' => 0, - 'is_container' => '', 'language' => 'is', 'i18n_tsid' => '', 'machine_name' => 'categories',